Commit Graph

60 Commits

Author SHA1 Message Date
Andy Piper
34411809d3 AP_HAL_ChibiOS: revert to ChibiOS SPI driver model v1 2023-03-31 05:40:20 +11:00
Andy Piper
667b386356 AP_HAL_ChibiOS: port to ChibiOS 21.11.x
convert RCOutput to new virtual timer interface
cope with SDC vs SDMMC
use new SPIv3 driver. Correct clocks for SDMMCv2.
add STM32L431 support
port ChibiOS config to version 8
support SPIv3 driver model v2 on H7
use currcore in debug options
use new mmc API
disable speed optimizations in the bootloader to save a little flash
upgrade to halconf v8.4
relax constraints on QSP/flash clock.
add support for disabling QSPI reset in main firmware
2023-03-29 20:49:40 +11:00
Andy Piper
3521090dd5 AP_HAL_ChibiOS: correct HAL_SPI_CHECK_CLOCK_FREQ build error 2022-08-12 20:53:36 +10:00
bugobliterator
76d6170ec9 AP_HAL_ChibiOS: add mechanism to set register rw register using device name for SPI 2022-05-25 18:14:46 +10:00
murata
e007b21f9e AP_HAL_ChibiOS: Console output can be disabled 2022-05-17 09:53:06 +10:00
Andrew Tridgell
638e20a0b9 HAL_ChibiOS: bring in hal.h where it is needed 2022-02-22 12:13:19 +11:00
Andrew Tridgell
d1d5cd5d9f HAL_ChibiOS: fix sdcard on SPI bus on H7
the spiIgnore() call was hanging on H7. The ChibiOS submodule change
fixes that, but this patch is also needed to ensure we timeout any
spiIgnore calls correctly
2021-09-29 18:11:04 +10:00
Andrew Tridgell
2c2c85c4d8 HAL_ChibiOS: fixed polled SPI 2021-09-29 18:11:04 +10:00
Siddharth Purohit
abc26d1993 AP_HAL_ChibiOS: add QSPI Device Driver in HAL 2021-06-30 19:33:17 +10:00
Peter Barker
f780a5c358 AP_HAL_ChibiOS: fix infinite loop for large SPI transfers
len is 32 bits; i may integer-wrap back to zero at 65535+1
2021-06-14 09:13:49 +10:00
Andrew Tridgell
4118a3eb03 HAL_ChibiOS: check bus owner on all SPI transfers 2021-04-16 10:02:02 +10:00
Siddharth Purohit
3ddd1d484a AP_HAL_ChibiOS: add support for bank selection call outside SPI driver 2020-08-06 12:41:35 +10:00
Peter Barker
48da4e523c AP_HAL_ChibiOS: create and use INTERNAL_ERROR macro so we get line numbers 2020-04-30 13:21:36 +10:00
Andrew Tridgell
cf7c2b1475 HAL_ChibiOS: suppress SPI timeout error for expected delay 2020-03-11 16:30:06 +11:00
Andrew Tridgell
0aae8e13c1 AP_HAL_ChibiOS: use take_blocking instead of HAL_SEMAPHORE_BLOCK_FOREVER
this makes for cleaner and smaller code as the failure case is not
needed
2020-01-19 20:19:30 +11:00
Andrew Tridgell
56985f8c33 HAL_ChibiOS: added checking on bouncebuffer allocation
fail operations if DMA bouncebuffer alloc fails
2020-01-18 07:13:11 +11:00
Andrew Tridgell
f17178ace0 HAL_ChibiOS: fixed build of SPI clock test 2019-12-13 09:30:48 +11:00
Andrew Tridgell
d8445928d1 HAL_ChibiOS: fixed SPI timeout bug
thanks to CUAV for noticing
2019-11-01 22:11:17 +11:00
Mirko Denecke
b84dcd483d AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces 2019-10-21 08:01:56 +11:00
Andrew Tridgell
59678840a8 HAL_ChibiOS: log SPI and I2C counters 2019-05-17 08:56:06 +10:00
Andrew Tridgell
ce9b75fdf0 HAL_ChibiOS: added timeouts on all SPI transfers
this is never expected to trigger unless we have a severe MCU error as
SPI transfers don't rely on a response from a device.

The only case that we could get a timeout is when a bug leads to use
doing transfers from memory that does not support the DMA
transaction (such as on H7). This change turns that from a immediately
fatal lockup into a bus error and failed sensor
2019-04-30 10:16:38 +10:00
Andrew Tridgell
63895d8b0c HAL_ChibiOS: setup dummy pointers for H7 SPI 2019-03-10 21:53:06 +11:00
Andrew Tridgell
1414988870 HAL_ChibiOS: use spiSend/spiReceive
this fixes an issue with microSD on F405.
2019-03-10 21:53:06 +11:00
Andrew Tridgell
a7c91d1cb4 HAL_ChibiOS: show all SPI clocks 2019-03-09 07:33:47 +11:00
Andrew Tridgell
807d9e4b92 HAL_ChibiOS: added optional polled SPI mode 2019-02-26 16:18:26 +11:00
Andrew Tridgell
a3e69e715d HAL_ChibiOS: avoid doing one-way SPI transfers
these transfers use dummy bytes in the hal driver, which may not be in
DMA safe memory, so best to avoid them
2019-02-26 16:18:26 +11:00
Andrew Tridgell
7c61d66d75 HAL_ChibiOS: fixed SPI clocks on H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
4c7fa7c6fb HAL_ChibiOS: make SPI clock test non-blocking 2019-02-26 16:18:26 +11:00
Andrew Tridgell
d9c888ab45 HAL_ChibiOS: port SPI, I2C and UART drivers to H7 2019-02-26 16:18:26 +11:00
Andrew Tridgell
24f6d6d647 HAL_ChibiOS: support microSD slowdown
allow use of BRD_SD_SLOWDOWN to slow down clock on microSD
2018-12-31 08:00:14 +11:00
Randy Mackay
8b963e7b92 AP_HAL_ChibiOS: remove debug print when SPI device not found 2018-12-06 16:50:16 +11:00
Lucas De Marchi
668c941717 Global: use new version of ARRAY_SIZE 2018-08-04 15:31:55 +10:00
Andrew Tridgell
5bf078cc86 HAL_ChibiOS: fixed build with -Werror-sign-compare 2018-06-27 11:37:45 +10:00
Andrew Tridgell
a945c97ec6 HAL_ChibiOS: fixed 3-way DMA sharing bug
when we have 3 way contention across two DMA streams we could get the
dma_deallocate function called in an object from two places at
once. This adds a mutex that prevents that scenario
2018-06-06 07:15:41 +10:00
Andrew Tridgell
2493cdbcb6 HAL_ChibiOS: switch to new bouncebuffer system
this removes the dma_flush and dma_invalidate methods and uses a
common bouncebuffer system for all CPU types. This enables microSD
support on STM32F7
2018-06-06 07:15:41 +10:00
Andrew Tridgell
edb831653f HAL_ChibiOS: added dma_flush and dma_invalidate operations
these are needed to manage the data cache on the STM32F7
2018-06-06 07:15:41 +10:00
Andrew Tridgell
eca634ec62 HAL_ChibiOS: support 6 SPI buses 2018-06-06 07:15:41 +10:00
Andrew Tridgell
86ded2c40c HAL_ChibiOS: cleanup sdcard API usage 2018-05-27 19:10:24 +10:00
Andrew Tridgell
52c8d3ed9f HAL_ChibiOS: fixed SPI select error
changes by sdcard PR
2018-05-27 19:10:24 +10:00
Alexander Malishev
6b15b2f44f HAL_ChibiOS: Enable sdcard on spi bus 2018-05-27 19:10:24 +10:00
mirkix
79f3fd532b AP_HAL_ChibiOS: fix spi clock calculation 2018-04-19 08:32:31 +10:00
Andrew Tridgell
01e9c55721 HAL_ChibiOS: fixed SPI bus speed on SPI3
and add optional bootup test of SPI bus speeds to help with porting to
new MCUs
2018-04-07 09:10:29 +10:00
Andrew Tridgell
bc32276966 HAL_ChibiOS: support DShot output
use DMAR burst DMA to minimise number of DMA channels needed

thanks to betaflight for the great reference implementation!
2018-04-07 09:10:29 +10:00
Andrew Tridgell
306d35655e HAL_ChibiOS: allow for bare board builds
this allows for a build with no UARTs, no SPI, no I2C, no PWM. Great
for initial board bringup with just USB
2018-03-02 12:52:50 +11:00
Andrew Tridgell
9301e4888a HAL_ChibiOS: make not having bus lock a soft error
this is nicer for driver developers
2018-02-09 10:14:49 +11:00
Andrew Tridgell
f1ce321a2f HAL_ChibiOS: added checking of bus owner
this ensures all bus transfers are only done by the thread that owns
the semaphore
2018-02-07 20:33:45 +11:00
Andrew Tridgell
63a825dd2c HAL_ChibiOS: don't call spiStart() unless bus is stopped 2018-02-07 20:33:45 +11:00
Andrew Tridgell
e29b79f41b HAL_ChibiOS: fixed DMA allocation bug on SPI
thanks to Mark Whitehorn for finding this crash
2018-02-07 20:33:45 +11:00
Andrew Tridgell
f5c8754d75 HAL_ChibiOS: use ARRAY_SIZE_SIMPLE
this allows for boards without a device type (eg. no SPI bus)
2018-01-15 11:46:02 +11:00
Andrew Tridgell
58796ff435 HAL_Chibios: moved SPI device tables to hwdef.dat 2018-01-15 11:46:02 +11:00