Andrew Tridgell
adf17414e0
HAL_ChibiOS: fixed output string for non-DMA capable chan
...
this fixes a problem where the user requests DShot (which rquired DMA)
on an output channel which cannot allocate a DMA channel. We end up
sending normal PWM, so the string representation of the output modes
should reflect that
2020-02-12 14:08:40 +11:00
Randy Mackay
a71ae54d3a
AP_HAL: add RCOutput::get_output_mode_banner
2020-02-04 12:23:33 +11:00
Andrew Tridgell
4636a4c458
HAL_ChibiOS: support LEDs with a wider range of frequencies
...
this fixed LEDs on FMUv5 boards on first 4 aux channels. We need to
round up not round down in the resulting bitrate
2019-11-18 15:54:36 -08:00
Mirko Denecke
b84dcd483d
AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces
2019-10-21 08:01:56 +11:00
Andrew Tridgell
77bf67e15f
HAL_ChibiOS: fixed padding of neopixel bits
...
lack of padding at start caused occasional glitches in colors
displayed
2019-10-10 10:41:19 +11:00
Mark Whitehorn
d8a07b6c44
HAL_ChibiOS: fix FMU fast_channel_mask
...
fix IO fast channel mask
use IOMCU chmask to only set right channels
remove unused variable
2019-10-01 07:13:33 +10:00
Andrew Tridgell
386e7dc3e8
HAL_ChibiOS: fixed delay for OneShot125 channels
...
we were delaying output for OneShot125 by 8x as much as we need to,
which reduced our max loop rate
2019-09-22 19:43:35 +10:00
Andrew Tridgell
03c1a8bfd9
HAL_ChibiOS: use safety button logic from AP_BoardConfig
2019-09-10 16:22:33 +10:00
Andrew Tridgell
f441223b55
HAL_ChibiOS: implement updated NeoPixel API
...
allow for N leds per chain, and setting separate colours per led in
each chain
2019-09-10 13:03:28 +10:00
Tom Pittenger
e3416b66dc
AP_HAL_ChibiOS: add Neopixel output type, similar to dshot
2019-09-10 13:03:28 +10:00
Andrew Tridgell
d1565a96c5
HAL_ChibiOS: wrap cacheBuffer functions
...
needed to avoid problem with end() method in UARTDriver shadowing with
F7 implementation of cache macros
2019-08-27 15:40:43 +10:00
Andrew Tridgell
dbfe6b8019
HAL_ChibiOS: implement persistent_data for watchdog
...
this is a much simpler approach to persistent data
2019-05-15 15:33:48 +10:00
Andrew Tridgell
1acb7e977f
HAL_ChibiOS: added ability to restore safety state on watchdog reset
2019-04-22 16:53:35 +10:00
Andrew Tridgell
94abc5a54d
HAL_ChibiOS: fixed DShot on H7
2019-02-26 16:18:26 +11:00
Andrew Tridgell
231117e9b1
HAL_ChibiOS: invalidate before read on rx, not on DMA setup
...
more efficient, as we only invalidate what was used
2019-02-26 16:18:26 +11:00
Andrew Tridgell
071d5e01af
HAL_ChibiOS: added DMAMUX channel assignment calls
2019-02-26 16:18:26 +11:00
Andrew Tridgell
f4e31ce65b
HAL_ChibiOS: added more cache flush ops
2019-02-26 16:18:26 +11:00
Andrew Tridgell
d96142a37e
HAL_ChibiOS: allow double allocate call in RCOutput
2019-02-26 16:18:26 +11:00
Andrew Tridgell
bbd25350eb
HAL_ChibiOS: support ChibiOS kernel major 6
...
preparing for STM32H7 support
2019-02-26 16:18:26 +11:00
Tom Pittenger
548a579f18
AP_HAL_ChibiOS: unify singleton naming to _singleton and get_singleton()
2019-02-10 19:09:58 -07:00
Andrew Tridgell
50683633b3
HAL_ChibiOS: setup for brushed feature in IOMCU
2018-11-30 13:14:14 +11:00
Andrew Tridgell
8dd58b4181
HAL_ChibiOS: support reversible DShot motors
2018-11-16 08:33:35 +11:00
Randy Mackay
c1ab3afb6c
AP_HAL_ChibiOS: fix safety switch option handling
2018-10-04 16:13:24 +10:00
Andrew Tridgell
8c391291a3
HAL_ChibiOS: fixed a race in DShot code
...
this fixes a problem found by Daniel Met with the copter 3.6 beta
release
2018-10-03 15:28:07 +10:00
Siddharth Purohit
87a2dea9d4
HAL_ChibiOS: disable features that require advanced dma
2018-09-19 12:14:15 +10:00
Andrew Tridgell
8c33b4b97d
HAL_ChibiOS: implement set_failsafe_pwm()
2018-09-13 08:15:02 +10:00
Peter Barker
2209e4a697
AP_HAL_ChibiOS: new HAL functor-based methods
...
AP_HAL_ChibiOS: adjust for irq-type enumeration change
AP_HAL_ChibiOS: implement attach-AP_HAL::Proc to interrupt interface
2018-08-21 20:34:01 +09:00
Andrew Tridgell
3df2a1c228
HAL_ChibiOS: fixed dshot bad frames
...
adding a pre-bit on the DMAR, and ensuring that all groups are setup
for DMA together fixes the remaining bad frames reports in BLHeli32
2018-08-04 19:29:13 +10:00
Andrew Tridgell
946b4db0e6
HAL_ChibiOS: set min dshot separation to 100usec
...
this fixes a problem with BLHeli32 not recognising dshot
2018-08-04 19:29:13 +10:00
Andrew Tridgell
22ba9a0aea
HAL_ChibiOS: fixed timeout of serial read bytes
...
this allows for fast timeout of serial read bytes in BLHeli pass-thru
2018-08-04 19:29:13 +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
1eef29e525
HAL_ChibiOS: only set freq on valid IO channels
2018-07-28 15:25:57 +10:00
Andrew Tridgell
e3b68876a9
HAL_ChibiOS: fixed tx_len on tx DMA timeout
2018-06-19 09:08:45 +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
7e897c16c0
HAL_ChibiOS: maintain rcout state beyond BRD_PWM_COUNT
...
allow channels beyond BRD_PWM_COUNT to be sent over SBUS or DShot
distribution
2018-05-26 12:08:54 +10:00
Andrew Tridgell
f3179e7934
HAL_ChibiOS: improved reliability of DShot passthru
...
thanks to WickedShell for debugging this on his Wraith32 ESCs. We were
truncating the last bit on some BLHeli transfers
2018-05-22 18:59:51 +10:00
Andrew Tridgell
dcd7799ec9
HAL_ChibiOS: fixed DShot output on fixed wing
...
we need to mark the channels as 'fast' for DShot to enable properly
2018-05-21 13:31:00 +10:00
Andrew Tridgell
794ebe32e3
HAL_ChibiOS: fixed mixture of oneshot and normal PWM on IOMCU
2018-05-12 07:28:05 +10:00
Andrew Tridgell
bb0cbd15a4
HAL_ChibiOS: implement fmuv4 safety state
...
and added safety_mask and safety_pwm support for both fmuv3 and fmuv4
2018-04-17 10:14:01 +10:00
Andrew Tridgell
4871bbf403
HAL_ChibiOS: make soft serial for RC serial more efficient
...
using system ticks halves the IRQ time
2018-04-16 07:40:55 +10:00
Alexander Malishev
79b5719419
ChibiOS: add support for complementry output timer channels
2018-04-14 09:25:15 +10:00
Andrew Tridgell
1b9cebc3f2
HAL_ChibiOS: check pwm count in rcout init
2018-04-09 15:32:04 +10:00
Andrew Tridgell
68293c9c11
HAL_ChibiOS: don't require GPIO() markers on PWM outputs
...
this fixes blheli pass-thru on MindPX-v2
2018-04-09 15:32:04 +10:00
Andrew Tridgell
eb6c852ee3
HAL_ChibiOS: use simpler pullup on serial input
...
this maps to the right bits for each MCU type
2018-04-07 09:10:29 +10:00
Andrew Tridgell
71cd58cc7e
HAL_ChibiOS: run rc serial thread at top priority
...
this maximises reliability for serial IO to ESCs, increasing flashing
reliability
2018-04-07 09:10:29 +10:00
Andrew Tridgell
3cd4f2a002
AP_ChibiOS: handle oneshot125 separately
...
this sets up oneshot125 with the full 1000 steps of throttle
resolution, using a 8MHz clock. This matches the behaviour of modern
ESCs that measure PWM values with high accuracy
2018-04-07 09:10:29 +10:00
Andrew Tridgell
5bfc97f9c0
HAL_ChibiOS: fixed dshot trigger while serial active
2018-04-07 09:10:29 +10:00
Andrew Tridgell
6fd0af11ef
HAL_ChibiOS: implement telem request API
2018-04-07 09:10:29 +10:00
Andrew Tridgell
6bdb523630
HAL_ChibiOS: guarantee 1kHz output for DShot
2018-04-07 09:10:29 +10:00
Andrew Tridgell
ef539d4145
HAL_ChibiOS: added debug timing option for RCOut
2018-04-07 09:10:29 +10:00
Andrew Tridgell
af1e3aa64d
HAL_ChibiOS: increase timeout on bytes for blheli
2018-04-07 09:10:29 +10:00
Andrew Tridgell
756c0d4b0b
HAL_ChibiOS: fixed reset for oneshot
...
after a BLHeli connection we need to go back to 1Hz on timer
2018-04-07 09:10:29 +10:00
Andrew Tridgell
019049e76b
HAL_ChibiOS: fixed RC period setting
2018-04-07 09:10:29 +10:00
Andrew Tridgell
d258eac88d
HAL_ChibiOS: fixed reconfig of group after serial_end()
2018-04-07 09:10:29 +10:00
Andrew Tridgell
46c76c3d5d
HAL_ChibiOS: increase serial byte timeout
...
needs 2ms for final ack in verify
2018-04-07 09:10:29 +10:00
Andrew Tridgell
202a7dd091
HAL_ChibiOS: don't allow dshot while serial active
2018-04-07 09:10:29 +10:00
Andrew Tridgell
382772d999
HAL_ChibiOS: initial support for ESC serial output
2018-04-07 09:10:29 +10:00
Andrew Tridgell
26d279e165
HAL_ChibiOS: improve DShot timing accuracy
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
b992b5e02a
HAL_ChibiOS: allow for 16kHz brushed on all timers
2018-02-07 20:33:45 +11:00
Andrew Tridgell
7c23e33775
HAL_Chibios: set min output rate for oneshot to 100Hz
...
this will keep ESCs happy during gyro cal
2018-01-20 17:40:07 +11:00
Andrew Tridgell
880a84294e
HAL_ChibiOS: support oneshot mode
...
supports oneshot 125 and oneshot
2018-01-20 17:40:07 +11:00
Andrew Tridgell
f14a847b97
HAL_ChibiOS: rename classes to remove 'Chibi'
...
it is redundent as all classes are in ChibiOS namespace, and makes the
code harder to read
2018-01-15 11:46:02 +11:00
Andrew Tridgell
25b68dc150
HAL_ChibiOS: switch base freq when needed
...
timers can't do below 123 Hz with a clock of 8MHz, so we need to
change clock frequency based on the target period
2018-01-15 11:46:02 +11:00
Andrew Tridgell
738d70ef02
HAL_ChibOS: fixed handling of disabled channels
2018-01-15 11:46:02 +11:00
Andrew Tridgell
d17e9f321a
HAL_ChibOS: fixed mixture of brushed and normal PWM
...
allow non-brushed PWM servos with brushed main motors
2018-01-15 11:46:02 +11:00
Andrew Tridgell
c639708e22
HAL_ChibOS: auto-generate full PWM config
...
use PWM markers in hwdef.dat to mark each PWM channel
2018-01-15 11:46:02 +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
280140bf25
HAL_ChibiOS: added support for MindPX-v2
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
Andrew Tridgell
3a004adbd4
HAL_Chibios: use macro for NUM_GROUPS
2018-01-15 11:46:02 +11:00
Andrew Tridgell
26d6947bf6
HAL_ChibiOS: fixed PWM output
2018-01-15 11:46:02 +11:00
Andrew Tridgell
6dbab450a5
Hal_Chibios: use AP_BoardConfig::io_enabled()
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