Andrew Tridgell
46976c4358
HAL_ChibiOS: fixed remapping of ioline_t with BRD_ALT_CONFIG
...
when a peripheral is made available via BRD_ALT_CONFIG we need to
remap the existing ioline_t in the UART and I2C drivers to use the new
pin.
This fixes an issue with half-duplex, inverted, swapped UART pins for
protocols like FPort and FPort2
2020-10-28 19:51:45 +11: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
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
f68b9bafd8
HAL_ChibiOS: fixed H7 I2C timing
...
we were running the clock at too low speed. This affected the SSD1306 display
2019-12-30 16:10:44 +11:00
Andrew Tridgell
bc1de7a208
HAL_ChibiOS: support STM32F3xx MCUs
2019-11-01 10:53:53 +11:00
Mirko Denecke
b84dcd483d
AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces
2019-10-21 08:01:56 +11:00
Andrew Tridgell
b30f3697d2
HAL_ChibiOS: fixed build without ISR limit
2019-08-27 10:29:56 +10:00
Andrew Tridgell
16bdaaa1af
HAL_ChibiOS: added support for STM31F10x for AP_Periph
2019-08-27 10:29:56 +10:00
Andrew Tridgell
aeb58cede1
HAL_ChibiOS: I2C timeout should be send+recv, not MAX(send,recv)
...
MAX() is right for SPI, not I2C
2019-08-26 09:13:39 +10:00
Andrew Tridgell
578e5dfdaa
HAL_ChibiOS: add up i2c ISR count
2019-08-26 09:13:39 +10:00
Andrew Tridgell
f8cfbb8062
HAL_ChibiOS: added ISR limit on I2C
...
this will prevent any possibility of an I2C interrupt storm. This is
designed to address the most likely cause of #11642
2019-08-25 17:12:16 +10:00
Lucas De Marchi
e66de36016
HAL_ChibiOS: fix I2C transaction without stop condition
...
Start using i2cSoftStop() instead of i2cStop() so the peripheral
continues to be enabled and with non-gated clock. This allows time for
the I2C peripheral to continue the ack or stop.
2019-06-06 09:27:47 -07:00
Andrew Tridgell
59678840a8
HAL_ChibiOS: log SPI and I2C counters
2019-05-17 08:56:06 +10:00
Andrew Tridgell
d9c888ab45
HAL_ChibiOS: port SPI, I2C and UART drivers to H7
2019-02-26 16:18:26 +11:00
Andrew Tridgell
adf7fefc2e
HAL_ChibiOS: detect stuck I2C bus and clear with SCL
...
This detects the I2C bus becoming stuck with SDA low after a timeout
and clears the bus by toggling SCL. Many thanks to @jhw84 for the
suggestion
2018-11-16 08:30:40 +11:00
Andrew Tridgell
d3af854949
HAL_ChibiOS: fixed bootloader build
2018-08-16 12:40:10 +10:00
Lucas De Marchi
668c941717
Global: use new version of ARRAY_SIZE
2018-08-04 15:31:55 +10:00
Siddharth Purohit
395c48933c
HAL_ChibiOS: move tto using updated time conversion API
2018-08-03 13:44:59 +10:00
Andrew Tridgell
13f96bcb00
HAL_ChibiOS: fixed an i2c dma callback bug
...
many thanks to Kelly-Foster for chasing me on this one!
2018-08-02 12:29:02 +10:00
Andrew Tridgell
73cfd40e7f
HAL_ChibiOS: reduce latency of DMA sharing
...
if we are sharing a DMA channel between i2c and SPI then this saves
latency on SPI by giving up the DMA channel between retries
2018-07-20 14:51:18 +10:00
Andrew Tridgell
59aab9987e
HAL_ChibiOS: account for I2C base in compass masks
2018-07-18 12:04:01 +10:00
Andrew Tridgell
476bddd9a3
HAL_ChibiOS: use HAL_I2C_INTERNAL_MASK
2018-07-14 17:51:50 +10:00
Andrew Tridgell
4f9bd50038
HAL_ChibiOS: implement I2C bus masks
2018-07-10 15:39:47 +10:00
Andrew Tridgell
e068106669
HAL_ChibiOS: support I2C devices on STM32F7 without DMA
...
this allows us to support I2C4 on fmuv5
2018-06-13 20:05:26 +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
fef1b0ffc6
HAL_ChibiOS: fixed I2C flush/invalidate calls
2018-06-06 07:15:41 +10:00
Andrew Tridgell
4d4ea894e8
HAL_ChibiOS: disable i2c device debug code
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
mirkix
c2eee2db23
AP_HAL_ChibiOS: add STM32F7 I2C support
2018-04-29 07:59:52 +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
5f353b5c85
HAL_ChibiOS: fixed build of I2C without I2C1 defined
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
8eff43a352
HAL_ChibiOS: fixed printf arguments
2018-02-08 17:36:33 +11:00
Siddharth Purohit
40142e5aef
ChibiOS: implement way to clear i2c bus by toggling clock line
2018-02-08 17:36:33 +11:00
Andrew Tridgell
47ce37f463
HAL_ChibiOS: report I2C clock downgrades
2018-02-08 17:36:33 +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
23e1b2e271
HAL_ChibiOS: added paranoid state checking on I2C
...
this is here just while debugging an issue with Mark
2018-02-07 20:33:45 +11:00
Andrew Tridgell
87389e0fdc
HAL_ChibiOS: fixed double DMA allocation on i2c
2018-02-07 20:33:45 +11:00
Andrew Tridgell
63671b06a8
HAL_ChibiOS: added HAL_I2C_MAX_CLOCK define
2018-01-20 17:40:07 +11:00
Andrew Tridgell
88f11f5a50
HAL_ChibiOS: added HAL_I2C_BUS_BASE
...
this allows fmuv4 to start at bus 1
2018-01-20 17:40:07 +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
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
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
36227aa126
HAL_ChibiOS: implement bus speed and smbus for I2C
...
use the slowest speed of all devices on the bus
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
9812fc9574
HAL_Chibios: prevent creation of i2c devices on invalid bus
2018-01-15 11:46:02 +11:00
Andrew Tridgell
8b6bab7b17
HAL_Chibios: added ChibiOS HAL
...
this is based on initial work by Sid, reset here for easier merging
2018-01-15 11:46:02 +11:00