mbed-os/targets/TARGET_STM/TARGET_STM32L0
Alexandre Bourdiol 315220832f TARGET_STM: L0 CUBE SPI async mode send next byte after previous one read
In STM32 Cube HAL, in interrupt mode (async),
2 bytes can be prepared in hardware registers without any read
(1 in regular register, the other in shift register),
but Only 1 RX byte can stored in hardware register, specially when there is no hardware FIFO.
If interrupt handling is fast enough, each read is made in parralele of the write.
But if interrupt handling is too long or is interrupted for too long,
it can happen that one read byte is lost (overrun).
For STM32F4, Tickless has been deactivated to avoid such issue.
For STM32L0, we don't want to deactivate tickless,
because those chips are specially design for lowpower.

So instead of removing SPI async mode,
we propose to change the HAL behavior specially for L0:
each byte is send only when previous read is performed.
Thus only 1 RX byte at a time which is saved in hardware register.
This prevent overrun, but it introduceS some latency between each byte send,
this is why it is not applied to all STM32 families.
2020-02-04 13:26:49 +01:00
..
TARGET_NUCLEO_L011K4 Clean up ARM toolchain heap+stack setup in targets 2019-10-23 14:53:49 +03:00
TARGET_NUCLEO_L031K6 Clean up ARM toolchain heap+stack setup in targets 2019-10-23 14:53:49 +03:00
TARGET_NUCLEO_L073RZ Disable Analogin D13(PA_5) on some NUCLEO targets 2020-02-03 11:39:31 +00:00
TARGET_STM32L0x2xZ Correct PB_6/PB_7 Serial AF mapping 2019-11-12 14:16:21 +00:00
TARGET_STM32L053x8 Merge pull request #11675 from jeromecoutant/PR_USB_STEP1 2019-10-28 14:06:15 +01:00
TARGET_STM32L072xZ Merge pull request #11675 from jeromecoutant/PR_USB_STEP1 2019-10-28 14:06:15 +01:00
device TARGET_STM: L0 CUBE SPI async mode send next byte after previous one read 2020-02-04 13:26:49 +01:00
analogin_device.c Change explicit pinmap to static pinmap 2019-11-28 08:32:12 +01:00
analogout_device.c Change explicit pinmap to static pinmap 2019-11-28 08:32:12 +01:00
cmsis.h STM32: common cmsis.h and device.h 2019-05-27 16:27:41 +02:00
common_objects.h Update HAL CRC API 2019-12-02 14:45:37 +02:00
flash_api.c STM license file update 2019-09-10 14:24:48 +02:00
gpio_irq_device.c STM32: move pin_lines_desc to c file 2017-02-16 19:34:11 +01:00
gpio_irq_device.h STM32: move pin_lines_desc to c file 2017-02-16 19:34:11 +01:00
i2c_device.h Don't use define checks on DEVICE_FOO macros (partner code) 2018-12-20 20:02:29 +11:00
pin_device.h TARGET_STM32L0 astyle 2018-06-27 14:43:59 +02:00
pwmout_device.c Don't use define checks on DEVICE_FOO macros (partner code) 2018-12-20 20:02:29 +11:00
pwmout_device.h __cplusplus guard fixed pwmout_device.h for STM32 families 2019-08-09 09:51:39 +02:00
serial_device.c Change explicit pinmap to static pinmap 2019-11-28 08:32:12 +01:00
spi_api.c TARGET_STM32L0 astyle 2018-06-27 14:43:59 +02:00
spi_device.h STM32 SPI specific mode for higher performance 2017-06-16 10:23:48 +02:00