Michael (XIAO Xufeng)
49a48644e4
spi: allow using esp_flash and spi_master driver on the same bus
2020-03-26 22:08:26 +08:00
Angus Gratton
24d26fccde
Merge branch 'master' into feature/esp32s2beta_update
2019-08-08 13:44:24 +10:00
Michael (XIAO Xufeng)
28b2e113ca
spi_master: move the spi_bus_init function into common header
2019-06-27 13:27:26 +08:00
suda-morris
84b2f9f14d
build and link hello-world for esp32s2beta
2019-06-11 13:07:37 +08:00
Oleg Antonyan
4430456b64
Change SPI_USE_RXDATA->SPI_TRANS_USE_RXDATA and SPI_USE_TXDATA->SPI_TRANS_USE_TXDATA on documentation
...
Closes https://github.com/espressif/esp-idf/pull/2802
2019-05-29 18:02:18 +05:30
Michael (XIAO Xufeng)
af2fc96ee1
spi_master: refactor and add HAL support
2019-03-28 17:14:50 +08:00
michael
b812520b19
spi_master: add support for variable dummy length in a same device
...
Resolves https://github.com/espressif/esp-idf/issues/2741
2019-02-27 02:13:33 +08:00
Michael (XIAO Xufeng)
8cddfa35b8
spi: fix the crash when callbacks are not in the IRAM
...
Introduced in 9c23b8e5 and 4f87a62f. To get higher speed, menuconfig
options are added to put ISR and other functions into the IRAM. The
interrupt flag ESP_INTR_FLAG_IRAM is also mistakenly set when the ISR is
put into the IRAM. However callbacks, which are wrote by the user, are
called in the master and slave ISR. The user may not be aware of that
these callbacks are not disabled during flash operations. Any cache miss
during flash operation will cause panic.
Essentially IRAM functions and intrrupt flag ESP_INTR_FLAG_IRAM are
different, the latter means not disabling the ISR during flash
operations. New bus_config flag intr_flags is offered to help set the
interrupt attribute, including priority level, SHARED, IRAM (not
disabled during flash operations). It introduced a small BREAK to
IDFv3.1 (but the same as IDFv3.0) that the user has to manually set IRAM
flag now (therefore he's aware of the IRAM thing) to void the ISR being
disabled during flash operations.
2018-11-20 13:07:13 +08:00
michael
26626dfbf2
spi: add documents explicitly showing the executing core of the ISR
...
It is an ESP specific FreeRTOS feature that the ISR is always executed
on the core which calls the interrupt register function. In the SPI
driver, the function is always called in the bus initialization
function.
Hence, the ISR will be executed on the core which initialize the driver.
If the core is starved due to higher priority ISRs, or the interrupt is
disabled on the core (spinlock called, etc.), the ISR will not get
executed and SPI transactions will not be handled.
(MINOR CHANGE)
Resolves https://github.com/espressif/esp-idf/issues/2432 .
2018-11-13 11:49:31 +08:00
Michael (Xiao Xufeng)
4af51833f3
spi_master: add new polling mode to decrease time cost each transaction
2018-09-20 19:46:46 +08:00
Michael (XIAO Xufeng)
939e5693a5
chore(spi): fix the terms of native to iomux
2018-06-06 06:08:39 +00:00
michael
5cf7d3768d
feat(spi_master): fine tune the timing of SPI
2018-06-06 06:08:39 +00:00
Angus Gratton
b90ad81f22
driver: Add notes to SPI driver docs about thread safety
2018-05-07 09:03:48 +08:00
Michael (Xiao Xufeng)
dceb3452c7
doc(spi_master): format the documentation of several fields and macros in spi_master.h
2018-04-12 17:01:37 +08:00
Michael (Xiao Xufeng)
7563510758
feat(spi_master): allow output high speed data when dummy bits are not used.
2018-03-26 21:24:32 +08:00
Jonathan Kaufmann
a99d4d5a7f
Modified spi_bus_add_device so that it takes a constant *dev_config parameter.
...
Merges https://github.com/espressif/esp-idf/pull/1690
2018-03-19 12:17:45 +08:00
michael
be96e1db95
fix(spi): fix typo of LSBFIRST macro.
...
Closes https://github.com/espressif/esp-idf/issues/1480 , Closes https://github.com/espressif/esp-idf/issues/1464
2018-01-29 17:44:37 +08:00
michael
8900200147
fix(spi_master): fix the variable command and address flag issue.
...
Closes https://github.com/espressif/esp-idf/issues/1549
2018-01-29 17:44:36 +08:00
michael
7a7b8fc182
refactor(spi_master): move the clock calculation from ISR to initialization.
2017-12-28 12:03:28 +08:00
Angus Gratton
f54e99008d
spi: Add ESP_ERR_NO_MEM to spi_device_queue_trans() documentation
...
Ref https://github.com/espressif/esp-idf/pull/1243#issuecomment-343103414
2017-11-20 16:06:59 +11:00
Raphael Luba
31711b5ac7
SPI: Document TIMEOUT return values
...
`spi_device_queue_trans` and `spi_device_get_trans_result` can return `ESP_ERR_TIMEOUT` – but this had not been documented.
Merges https://github.com/espressif/esp-idf/pull/1243
2017-11-17 10:50:54 +11:00
michael
0330ec270a
feat(spi_master): add new feature allow use variable command and address field length for the same device.
...
Closes #654
2017-10-30 19:33:41 +08:00
Jeroen Domburg
edbeee8326
Merge branch 'bugfix/spi_def_typo_lsbfirst' into 'master'
...
bugfix(spi_master): fix the definition of ``SPI_DEVICE_BIT_LSBFIRST``.
See merge request !1154
2017-08-29 11:24:31 +08:00
Ivan Grokhotkov
3161854efb
Merge branch 'bugfix/spi_hd_rx' into 'master'
...
fix(spi_dma_rx): add check to avoid using SPI half-duplex mode DMA with both MOSI and MISO phases.
See merge request !1111
2017-08-28 17:36:58 +08:00
Ivan Grokhotkov
b636f81619
Merge branch 'bugfix/spi_command' into 'master'
...
fix(spi_master): fix the command field to make it more intuitive to use.
See merge request !1119
2017-08-28 10:29:56 +08:00
michael
0cb14f1648
fix(spi_dma_rx): add check to avoid using SPI half-duplex mode DMA with both MOSI and MISO phases.
2017-08-26 02:15:30 +08:00
michael
dd1e6ea296
typo(spi_master): fix the definition of `SPI_DEVICE_BIT_LSBFIRST
`.
...
also fix the documentation of spi_device_transmit.
2017-08-26 02:04:37 +08:00
michael
4c9754726f
fix(spi_master): fix the command field to make it more intuitive to use.
2017-08-21 20:37:57 +08:00
michael
a01db5569c
fix(spi_dma): fix the receive error with RX DMA start with non-aligned address.
2017-08-18 10:14:49 +08:00
Ivan Grokhotkov
159a2d01d1
Merge branch 'bugfix/spi_dma' into 'master'
...
bugfix(spi_master): fix several issues when using RX DMA
See merge request !1006
2017-08-16 18:55:25 +08:00
michael
ed1d084aea
fix(spi_master): make the address field more intuitive to use.
...
The address field should be placed at the highest bits of address and slv_wr_status registers. Instead of breaking the address into two parts and fill in each register, move the address to the highest bits and write to the registers respectively.
Breaking change: if you fill-in the SPI address filed in a previous version in some way and it works correctly, you still have to rewrite the address, in a more intuitive way.
2017-08-15 14:49:31 +08:00
michael
227b011f6a
fix(spi_master): fix SPI master, now able to transfer more than 32 bytes in non-DMA-accessable area.
...
apply for internal space to hold these data.
use DMA when it's enabled, no matter long or short.
TW#12226, github#551
2017-08-14 17:19:57 +08:00
Ivan Grokhotkov
54dc350907
spi_master: fix duplicate bit mask for SPI_TRANS_MODE_DIOQIO_ADDR
2017-07-20 13:34:21 +08:00
Jeroen Domburg
8af3fe4e84
Warn against and check for non-DMA-capable pointers being passed to SPI when DMA is used
2017-05-05 12:28:03 +08:00
Jeroen Domburg
04b901e629
SPI: More MR issues fixed, style fixup
2017-04-27 11:49:04 +08:00
Jeroen Domburg
cecb846450
SPI: Fix comment for 3wire, make GPIO pins GPIO_MODE_INPUT_OUTOUT. Fixes https://github.com/espressif/esp-idf/issues/533
2017-04-27 11:49:04 +08:00
Jeroen Domburg
e9c372bc2d
SPI: Split common SPI stuff out of master driver; add slave driver; add workaround for DMA issue.
2017-04-27 11:49:04 +08:00
Michel Pollet
349a77cb55
components/driver: 'const' all config calls.
...
Some were, some weren't. They all could/should be.
Signed-off-by: Michel Pollet <buserror@gmail.com>
2017-04-13 18:33:33 +01:00
Jeroen Domburg
76295c7a13
Fix timing adjustment needed for higher speeds of SPI master bus.
2017-03-28 11:31:59 +08:00
Jeroen Domburg
ee59fa75f4
Rename SPI Master IO pins to more common terminology, add better explanation to queue_length initialization value
2017-01-11 11:25:56 +08:00
Jeroen Domburg
5eb8eb3855
SPI master: rename transaction flags from SPI_* to SPI_TRANS_*, like the documentation says. Also add some explanation about the SPI signals in the documentation
2017-01-10 14:41:12 +08:00
Jeroen Domburg
23455de4c2
Add SPI Master driver, example, test and docs
2017-01-06 14:20:32 +08:00