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
Andrew Tridgell
d1f93cd66c
HAL_Chibios: auto-generate I2C, SPI and UART device lists
...
this is less error prone and make a port faster as more information is
in hwdef.dat
2018-01-15 11:46:02 +11:00
Andrew Tridgell
280140bf25
HAL_ChibiOS: added support for MindPX-v2
2018-01-15 11:46:02 +11:00
Andrew Tridgell
9f5e01d20a
HAL_Chibios: fixed FMUv4 compasses
2018-01-15 11:46:02 +11:00
Andrew Tridgell
c3435e45c5
HAL_ChibiOS: initial port to FMUv4
2018-01-15 11:46:02 +11:00
bugobliterator
5feef04f5f
HAL_ChibiOS: add support for CCM memory
...
this uses DMA bounce buffers for bus transfers, and falls back to CCM
ram in allocations if the type is unspecified
2018-01-15 11:46:02 +11:00
Andrew Tridgell
791edee0ff
HAL_Chibios: added more SPI devices for FMUv3
2018-01-15 11:46:02 +11:00
Andrew Tridgell
755eca31c2
HAL_Chibios: don't unregister shared DMA
...
the shared DMA handle is a property of the bus, not the device, so
should not be unregistered when the device is removed
2018-01-15 11:46:02 +11:00
Andrew Tridgell
7971f03bde
Hal_Chibios: fixed F412 SPI config
2018-01-15 11:46:02 +11:00
Andrew Tridgell
c742543565
HAL_Chibios: align SPI device IDs with px4 IDs
...
this makes for easier update to ChibiOS without redoing accelcal
2018-01-15 11:46:02 +11:00