Commit Graph

16 Commits

Author SHA1 Message Date
Andy Piper 3c8d94304d AP_HAL_ChibiOS: allow bdshot to work on MCUs with DMAv1
remove magic value from DCR setup in bdshot
predicate FIFO usage on advanced DMA
2022-09-20 09:45:03 +10:00
Andrew Tridgell 1d9abefbb1 AP_HAL_ChibiOS: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Andy Piper 7c4d0ad9f4 AP_HAL_ChibiOS: catch and handle STM32_DMA_ISR_DMEIF in bdshot. 2022-04-27 18:19:24 +10:00
Andy Piper 4fa0e275fd AP_HAL_ChibiOS: fix ESCs constantly arming on rover with dshot commands
make sure debug will compile
take into account active channels when configuring bdshot
add channel mask debug output
correct set bdshot telemetry position at startup
make sure all channels in a bdshot group are pulled high to prevent spurious pulses
2022-03-29 10:29:31 +11:00
Andrew Tridgell 638e20a0b9 HAL_ChibiOS: bring in hal.h where it is needed 2022-02-22 12:13:19 +11:00
Andy Piper 48c21299f8 AP_HAL_ChibiOS: hwdef for SPRacingH7
hwdef for DevEBoxH7v2
pin definitions for STM32H750
add QSPI to DevEBox bootloader
add external flash to DevEBox
rename EXTERNAL_PROG_FLASH_MB to EXT_FLASH_SIZE_MB
Add support for EXT_FLASH_RESERVE_START_KB and EXT_FLASH_RESERVE_END_KB
Disable HAL_ENABLE_SAVE_PERSISTENT_PARAMS when there is no bootloader flash available
relax storage health status with SD card backend
don't check SD card health unless USE_POSIX
binary sections rearranged on external ram
manage RAMFUNC through ldscript and optimize function placement in external flash
inline timer functions
optimize placement of ChibiOS and functions in ITCM and AXI RAM
fix chibios features on bootloader build with external flash
change H750 memory layout
increase line storage for SD card based parameters
comment external flash linker script
move vtables into DTCM
update ram map for H757
enable crashdump support with external flash
correct bootloader pins and generator on SPRacingH7/DevEBoxH7v2
setup external flash reserve regions
allow different RAM_MAP for external flash on H750 and H757
2022-02-09 12:47:55 +00:00
Andy Piper f8a59a4a72 AP_HAL_ChibiOS: set inbound bitrate correctly for bi-directional dshot1200 2021-05-14 07:23:59 +10:00
Andy Piper f3f3056dba AP_HAL_ChibiOS: add support for dshot commands to rcout
add support for dshot beepcodes through tonealarm
add support for dshot reversal and command queue
add support for dshot commands to all channels
correctly manage channel enablement in PWM groups
Correctly send dshot commands when using bi-dir dshot
allow reversible settings to be changed
ChibiOS: allow more than one type of ESC for dshot commands
Only execute reverse/reversible commands on BLHeli
add support for checking active ESCS
mark ESCs active when bdshot telemetry is returned
allow dshot alarm to be disabled
allow priroitized dshot commands
2021-05-05 17:41:24 +10:00
Andy Piper f6b1e15b0e AP_HAL_ChibiOS: optimize bdshot ISRs 2021-04-06 10:24:04 +10:00
Andy Piper 74d4af9ac9 AP_HAL_ChibiOS: reset bdshot IC correctly
don't allow dshot rates below 800Hz.
set pin speed to MID1 to avoid glitching
don't run receive pulses on a timer
2021-04-06 10:24:04 +10:00
Andy Piper 477ff72214 AP_HAL_ChibiOS: allow dshot rate to be set so as to both regularize the output as well as
allow faster rates synchronized to the loop rate
synchronize 1Khz and use Betaflight definition for prescaler
adjust dshot bitrates
don't allocate IC DMA if already allocated
cancel DMA pulses correctly
try really hard to align pulses with push() by making each dshot pulse event driven
2021-04-06 10:24:04 +10:00
Andy Piper f9c5f9be00 AP_HAL_ChibiOS: make dshot DMA unlock event driven in order to allow unlocking from rcout thread
refactor rcout into separate thread and process all dshot requests there
move uart DMA completion to event model
process dshot locks in strick reverse order when unlocking
convert Shared_DMA to use mutexes
move UART transmit to a thread-per-uart
do blocking UART DMA transactions
do blocking dshot DMA transactions
trim stack sizes
cancel dma transactions on dshot when timeout occurs
support contention stats on blocking locking
move thread supression into chibios_hwdef.py
invalidate DMA bounce buffer correctly
separate UART initialisation into two halves
cleanup UART transaction timeouts
add @SYS/uarts.txt
move half-duplex handling to TX thread
correct thread statistics after use of ExpandingString
set unbuffered TX thread priority owner + 1
correctly unlock serial_led_send()
don't share IMU RX on KakuteF7Mini
observe dshot pulse time more accurately.
set TRBUFF bit for UART DMA transfers
deal with UART DMA timeouts correctly
don't deadlock on reverse ordered DMA locks
change PORT_INT_REQUIRED_STACK to 128
2021-02-20 14:37:11 +11:00
Andy Piper 3a9107245c AP_HAL_ChibiOS: allocate DMA and LED buffers correctly when the length changes
calculate DMAR pulse times correctly
ensure 50us pulse separation for LED
make sure the LEDs are signalled for output
only allow LED length to be set once
2021-02-17 18:36:36 +11:00
Andy Piper 2fadcf6ba0 AP_HAL_ChibiOS: handle UP/CH channel sharing on H7 correctly 2021-01-20 18:15:17 +11:00
Andy Piper fdbf2d369a AP_HAL_ChibiOS: do not take bi-dir path when in serial DMA 2021-01-13 18:03:41 +11:00
Andy Piper 401e5c2073 AP_HAL_ChibiOS: add support for bidir DShot support in RCOutput
add support for sampling GPIO pins using timer
don't restart pwm group when not doing bi-dir
fix hwdef generation preproc for TIM DMA
decode telemetry at the start of the dshot cycle
calculate dshot pulse separation correctly and ensure we output rapidly enough
calculate dshot min periods and timeouts correctly
refactor dshot_send() into dshot_send_groups()
use bi-dir dshot channel mask
selectively enable bi-dir RC Channels
process bi-dir mask correctly when allocating DMA channels
allow UP and CH DMA channel sharing
optionally enable bidir vars in hwdef.

enable bi-dir dshot in KakuteF7Mini
enable bi-dir dshot in OmnibusF4Pro
enable bi-dir dshot in OmnibusNanoV6
enable bi-dir dshot in MatekF405
enable bi-dir dshot in fmuv5
enable bi-dir dshot in fmuv3
enable bi-dir dshot in OmnibusF7V2
enable bi-dir dshot in OmnibusNanoV6
enable bi-dir dshot in CubeOrange
enable bi-dir dshot in Pixracer
enable bi-dir dshot in mRoPixracerPro

Co-authored-by: bugobliterator <siddharthbharatpurohit@gmail.com>
2020-12-30 19:14:16 +11:00