Commit Graph

36 Commits

Author SHA1 Message Date
Andy Piper 43b6fc0dba AP_IOMCU: constrain PWM channels to 8, telem channels to 4 and RC channels to 16
make ADC readings interrupt driven
turn off iomcu updates when debugging
allow for correct number of telemetry channels
cycle between vservo and vrssi when reading adc
build adc with O2
2023-12-18 19:02:52 +11:00
Andy Piper 153c5181cb AP_IOMCU: reset erpm to zero on timeout
remove unneeded packed attribute
reset the PWM status after channels have been enabled or disabled
2023-12-18 19:02:52 +11:00
Andy Piper 98aeade904 AP_IOMCU: bdshot for iomcu
prevent repeated rcout mode sets
add ESC telemetry if compiled in
add infrastructure to support propagating erpm and telemetry from iomcu
add support to propagate bdmask to iomcu
add support for EDT
scale voltage and current correctly when reading EDT data
ensure that telemetry data is reset
reset ESC telemetry data to zero if stale
ESC type and bdmask must be setup before the output mode
2023-12-18 19:02:52 +11:00
Andy Piper 9db5d0bf9b AP_IOMCU: reduce latency for oneshot
correctly update outmode modes when requested
get ARM CPUID and display in startup banner
ensure correct rc input timing on 1Khz iofirmware
2023-08-15 06:53:48 +10:00
Andy Piper bb730e8e24 AP_IOMCU: inverted locking model 2 2023-08-15 06:53:48 +10:00
Andy Piper ec1edea1da AP_IOMCU: add support for shared DMA to iomcu-dshot
new event-based update() loop for iomcu to allow for DMA channel sharing
spin event loop at 2Khz to give dshot thread ample access to DMA channels
correct transmission complete callbacks
ensure peripheral is re-enabled on DMA resumption
ensure DMA transactions do not get clobbered by locking
restructure callbacks for shared and non-shared DMA cases
ensure RC updates happen at 1Khz
increase expected delay at startup
2023-08-15 06:53:48 +10:00
Andy Piper e6e0543b8a AP_IOMCU: propagate dshot rates through to IOMCU
implement dshot ESC telemetry
add support for channel enablement/disablement
add stack checks and reporting for MSP stack
wait correct timeout in tickless mode
ensure that dshot sees all pwm updates as the occur in order to maintain periodicity
ensure dshot options are propagated on reset
implement dshot commands
ensure oneshot/125 and mode are setup correctly
add instrumentation for process stack
prevent illegal recursive locks
ignore requests for dshot 600
add support for soft reboot of iomcu
2023-08-15 06:53:48 +10:00
bugobliterator ad428ac060 AP_IOMCU: add support for sending DShot function command
add support for dshot on iomcu
add support for updating to dshot iofirmware
2023-08-15 06:53:48 +10:00
Iampete1 12d5fbbc86 AP_IOMCU: iofirmware: support digital write 2021-09-28 09:40:25 +10:00
Iampete1 cc03b2975c AP_IOMCU: iofirmware: remove saftey PWM 2021-09-14 09:23:02 +10:00
Mirko Denecke 12c9e50aef AP_IOMCU: remove unnecessary tabs and whitespaces 2019-10-21 07:57:44 +11:00
Andrew Tridgell 672d09c965 AP_IOMCU: use AP::RC() for AP_RCProtocol 2019-09-06 08:51:45 +10:00
Andrew Tridgell 454717cf6f AP_IOMCU: cleanup IO protocol and add logging
this cleans up the IOMCU protocol structures now we don't need to be
compatible with the old nuttx based protocol and adds logging of IOMCU
errors
2019-08-17 17:36:41 +10:00
bugobliterator c07fe55b87 AP_IOMCU: remove autodetection of heater pin polarity, instead hardcode it 2019-07-25 17:05:41 +10:00
Siddharth Purohit f23746053d AP_IOMCU_FW: autodetect active high/low on heater control pin 2019-06-08 14:31:01 +10:00
Pierre Kancir eab7d08021 AP_IOMCU: fix includes 2019-03-26 10:27:54 +11:00
Andrew Tridgell 69c4fb671e AP_IOMCU: optimisations to reduce ISR latency
this speeds up the DMA ISR handlers to reduce the change of losing a
byte on RC input due to loss of an interrupt
2018-11-27 09:38:18 +11:00
Andrew Tridgell 29fb674f3f AP_IOMCU: use macros for LED outputs in iofirmware 2018-11-07 07:35:45 +11:00
Andrew Tridgell 107ccb3eef AP_IOMCU: enable DSM input in iofirmware 2018-11-07 07:35:45 +11:00
Andrew Tridgell 2488d25284 AP_IOMCU: fixed rate of failsafe handling 2018-11-07 07:35:45 +11:00
Andrew Tridgell f8dc17f8ff AP_IOMCU: implement DSM bind 2018-11-07 07:35:45 +11:00
Andrew Tridgell 843772a2bc AP_IOMCU: added some debug code
and lower PKT_MAX_REGS to reduce max DMA size. This fixes an
occasional fault
2018-11-07 07:35:45 +11:00
Andrew Tridgell e70a98fa9a AP_IOMCU: support elevon and vtail mixing in failsafe 2018-11-07 07:35:45 +11:00
Andrew Tridgell 285508d568 AP_IOMCU: added initial mixing support
supports aileron, elevator, throttle and rudder
2018-11-07 07:35:45 +11:00
Andrew Tridgell 191f72d2e6 AP_IOMCU: added mixing structure to protocol 2018-11-07 07:35:45 +11:00
Andrew Tridgell 1711b93602 AP_IOMCU: fixed read packet count 2018-10-30 13:00:48 +11:00
Andrew Tridgell f600ebd758 AP_IOMCU: added SBUS output support 2018-10-30 13:00:48 +11:00
Andrew Tridgell b45b8ff703 AP_IOMCU: added analog input to iofirmware 2018-10-30 13:00:48 +11:00
Andrew Tridgell f0b27c9b92 AP_IOMCU: support brushed output 2018-09-19 12:14:15 +10:00
Andrew Tridgell cfb10fbb2f AP_IOMCU: fixed oneshot support in IO firmware 2018-09-19 12:14:15 +10:00
Andrew Tridgell 2c7e27374f AP_IOMCU: use ioevents for oneshot in iofirmware 2018-09-19 12:14:15 +10:00
Andrew Tridgell ecfe06b9e4 AP_IOMCU: implement safety LED and switch in iofirmware 2018-09-19 12:14:15 +10:00
Andrew Tridgell 037a455784 AP_IOMCU: moved protocol structures to a common header 2018-09-19 12:14:15 +10:00
Andrew Tridgell 89bfd7e850 AP_IOMCU: added blue LED support on PH1 2018-09-19 12:14:15 +10:00
Siddharth Purohit 19c002baaf AP_IOMCU: add support for iofirmware update 2018-09-19 12:14:15 +10:00
Siddharth Purohit 4608e90913 IOMCU: add application for ioboard firmware 2018-09-19 12:14:15 +10:00