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