Andrew Tridgell
e1a5d73504
HAL_ChibiOS: fixed DTCM comment for F732
2021-05-09 06:44:19 +10:00
Andrew Tridgell
b7fffe35f9
HAL_ChibiOS: added FreeflyRTK GPS build
...
a F732 based GPS peripheral
2021-05-09 06:44:19 +10:00
Andrew Tridgell
4d661911e5
HAL_ChibiOS: allow adjustment of F7 I2C timing
...
needed for F732
2021-05-09 06:44:19 +10:00
Andrew Tridgell
6b9e4161cb
HAL_ChibiOS: removed UDID_START from all MCU defs
...
use UID_BASE from ChibiOS headers
2021-05-09 06:44:19 +10:00
Andrew Tridgell
36d5c98e96
HAL_ChibiOS: default UDID_START to UID_BASE
2021-05-09 06:44:19 +10:00
Andrew Tridgell
2dc4c50953
HAL_ChibiOS: fixed default OTP address and size
2021-05-09 06:44:19 +10:00
Andrew Tridgell
22f7218acf
HAL_ChibiOS: support 512k F7 parts for flash
2021-05-09 06:44:19 +10:00
Andrew Tridgell
03cae60471
HAL_ChibiOS: added STM32F732 support
2021-05-09 06:44:19 +10:00
Andrew Tridgell
f1de0c7fe2
HAL_ChibiOS: added F732 16MHz CubeMX config
2021-05-09 06:44:19 +10:00
Andy Piper
f6b9479542
AP_HAL_ChibiOS: add accessor for UART DMA status
2021-05-05 17:50:42 +10:00
Andy Piper
dbd9b3a9ae
AP_HAL_ChibiOS: ESC telemetry is orthogonal to RPM telemetry
2021-05-05 17:41:24 +10:00
Andy Piper
384ecd4a5b
AP_HAL_ChibiOS: check command queue is empty before arming
2021-05-05 17:41:24 +10:00
Andy Piper
66fadf53a1
AP_HAL_ChibiOS: remove dshot calibration step
2021-05-05 17:41:24 +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
Andrew Tridgell
8764d69e2c
HAL_ChibiOS: default SDMMC clock to 12.5MHz max on H7
...
this makes microsd considerably more reliable
2021-05-02 13:04:42 +10:00
Andrew Tridgell
f9866dc27e
HAL_ChibiOS: fixed LED_SAFETY attached to FMU with recent DShot updates
2021-04-30 17:26:33 +10:00
QioTek
ca6102ed28
f103Qiotek_Periph
...
f103Qiotek_Periph
2021-04-24 07:48:40 +10:00
QioTek
1de3135d14
HAL_ChibiOS: added f103-QiotekPeriph hwdef ( #1 )
...
HAL_ChibiOS: added f103-QiotekPeriph
2021-04-24 07:48:40 +10:00
Andy Piper
42ebc13e6c
Revert "AP_HAL_ChibiOS: support 6 bi-directional dshot channels on the MatekH743"
...
This reverts commit f9d166edf6
.
2021-04-22 18:39:06 +10:00
Andrew Tridgell
6764f039ca
HAL_ChibiOS: added support for the new H7 luminousbee version 5
2021-04-21 20:41:34 +10:00
Andy Piper
f9d166edf6
AP_HAL_ChibiOS: support 6 bi-directional dshot channels on the MatekH743
2021-04-21 17:18:53 +10:00
Andy Piper
558631918c
AP_HAL_ChibiOS: add %age of total to thread statistics
...
don't display meaningless thread info
2021-04-21 17:14:11 +10:00
Andrew Tridgell
961e538cc0
HAL_ChibiOS: reduced flash usage on MatekF405
...
overflowing by 1k
2021-04-21 07:12:55 +10:00
Andy Piper
4bb4e2fb22
AP_HAL_ChibiOS: adjust GPIO settings for serial passthru
2021-04-20 10:35:22 +10:00
Andrew Tridgell
4118a3eb03
HAL_ChibiOS: check bus owner on all SPI transfers
2021-04-16 10:02:02 +10:00
Andrew Tridgell
9990404e64
HAL_ChibiOS: fixed G4 analog input build
...
use right resolution in ADC peripheral for ADCv3
2021-04-14 13:11:58 +10:00
Andrew Tridgell
eca8cf3414
HAL_ChibiOS: save flash on boards that are critically low
...
move to single OSD font on some boards
this saves about 12k on these boards. They were also extremely close
to overflowing flash, under 2k on some
Now that we support having an OSD font on the microSD card (where
available) we can reduce built in fonts without a large functionality
impact
This also disables some less used features on these boards:
- generator support
- object avoidance path planning
- precision landing
This will give us some breathing room on these boards
2021-04-13 09:58:59 +10:00
Andrew Tridgell
47a5d78397
HAL_ChibiOS: disable DMA on high contention UARTs
...
switch to interrupt driven when in high contention
2021-04-08 06:53:48 +10:00
anbello
77998fb5ba
revo-mini bdshot
2021-04-07 17:44:29 +10:00
anbello
dcb90c7bdb
revo-mini ext i2c
2021-04-07 17:26:56 +10:00
Andy Piper
be39e1f297
AP_HAL_ChibiOS: correct current scale for BeastH7 and BeastF7
2021-04-07 17:25:19 +10:00
Andy Piper
aa0ec0f091
AP_HAL_ChibiOS: optimize BeastH7 compilation
2021-04-07 17:25:19 +10:00
Iampete1
ec90ab13f4
AP_HAL_ChibiOS: RCOutput: print DMA alocation errors
2021-04-07 17:24:25 +10:00
Iampete1
15509f314c
AP_HAL_ChibiOS: RCOuput: LED setup re-work
2021-04-07 17:24:25 +10:00
Andrew Tridgell
61c829d624
HAL_ChibiOS: only use SRAM4 for DMA for now
...
we can enable others when we have an allocation interface that
specifies the peripheral type
2021-04-07 17:10:45 +10:00
Iampete1
2377d33417
AP_HAL_ChibiOS: H7 set SRAM4 to no cache and allow DMA
2021-04-07 17:10:45 +10:00
Andrew Tridgell
4cddb12508
HAL_ChibiOS: fixed DMA sent calculation on UART DMA timeout
2021-04-07 07:34:45 +10:00
Andy Piper
b3dbc21fa7
AP_HAL_ChibiOS: KakuteF7 bdshot configuration, tested by yaapu
2021-04-06 11:33:53 +10:00
Andy Piper
721850d00a
AP_HAL_ChibiOS: fix dshot150.
2021-04-06 10:24:04 +10:00
Andy Piper
f6b1e15b0e
AP_HAL_ChibiOS: optimize bdshot ISRs
2021-04-06 10:24:04 +10:00
Andy Piper
cb3b37d181
AP_HAL_ChibiOS: ensure that non-dshot modes get regular 1Khz updates
2021-04-06 10:24:04 +10:00
Andy Piper
ea3291520c
AP_HAL_ChibiOS: add fast cycle calibration step
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
Andrew Tridgell
45477f6063
HAL_ChibiOS: fixed default MSP port for f405-MatekGPS
2021-04-05 11:02:32 +10:00
Andrew Tridgell
ca948171fe
HAL_ChibiOS: fixed ADC error on revXY STM32H7 boards
...
with the new ChibiOS revision we were configuring for newer revisions
of the H7, which meant that we changed the ADC config. This broke ADC
readings on revX and revY H7 MCUs.
This PR fixes it in two ways:
1) change ChibiOS config to assume XY config chips
2) use 16 bit ADC for H7, which means the chip rev doesn't matter,
and also gives us 16x the resolution for ADC readinga, so we can
read smaller voltage and current values
2021-04-05 11:01:03 +10:00
willpiper
94bdca7f6f
AP_HAL_ChibiOS: tidy up beastF7 DMA channels
2021-04-04 16:51:19 +10:00
Andrew Tridgell
f0d6b79e8a
HAL_ChibiOS: fixed skyviper builds with BMM150
2021-03-30 13:31:50 +09:00
Peter Barker
cfacb5d34d
AP_HAL_ChibiOS: split out a calculate_thread_priority method
2021-03-30 10:49:06 +11:00
Iampete1
7c96522e44
AP_HAL_ChibiOS: add semaphore to AnalogIn::channel to make it thread safe
2021-03-30 10:44:43 +11:00
Andrew Tridgell
07313ae71d
HAL_ChibiOS: fixed 2nd CAN inferface on F4/F7
...
CAN1_TX_IRQn is an enum not a defined. This was broken by the recent
change to support different CAN ordering
2021-03-29 20:14:29 +11:00
Andrew Tridgell
88e277420f
AP_HAL_ChibiOS: removed assert calls
...
these waste flash space and do not do us any good
2021-03-25 14:03:40 +11:00
Andrew Tridgell
2d4dfe8a2a
HAL_ChibiOS: fixed (unused) FF_FS_TIMEOUT
...
this change was harmless as we don't define FF_FS_REENTRANT
2021-03-23 12:01:20 +11:00
Andrew Tridgell
ffb2876f58
HAL_ChibiOS: disable unused ChibiOS features
2021-03-23 12:01:20 +11:00
Andrew Tridgell
744a2fe535
HAL_ChibiOS: use uint32_t for bit timing in passthru
...
we should not use systime_t as it may be 16 bit
2021-03-23 12:01:20 +11:00
Andrew Tridgell
c3d16cf2e2
HAL_ChibiOS: use defines for G4 messageram
...
review fix
2021-03-23 12:01:20 +11:00
Andrew Tridgell
b4e4d48e52
HAL_ChibiOS: switch OMNIBUSF7V2 timer for RCIN
...
this avoids a conflict with shared interrupt on TIM1
2021-03-23 12:01:20 +11:00
Andrew Tridgell
ff31e10d9e
HAL_ChibiOS: ensure that RCIN DMA channel is not shared
...
RCIN DMA cannot be shared as it runs all the time
2021-03-23 12:01:20 +11:00
Andrew Tridgell
2842730868
HAL_ChibiOS: fixed F3 CAN build
2021-03-23 12:01:20 +11:00
Andrew Tridgell
2fc7ea1a8b
HAL_ChibiOS: added G4-ESC hwdef
2021-03-23 12:01:20 +11:00
Andrew Tridgell
353eca79b6
HAL_ChibiOS: fixed 32/64 micros bug in CAN select()
2021-03-23 12:01:20 +11:00
Andrew Tridgell
bac9b27a3f
HAL_ChibiOS: enable analogin on G4
2021-03-23 12:01:20 +11:00
Andrew Tridgell
ac9e6ba86d
HAL_ChibiOS: fix label for CCM on G4
2021-03-23 12:01:20 +11:00
Andrew Tridgell
7496b8bff5
HAL_ChibiOS: fixed DMAR register offset
...
use offsetof() instead of a magic value
2021-03-23 12:01:20 +11:00
Andrew Tridgell
4f10565f82
HAL_ChibiOS: fixed CANFD build on H7
2021-03-23 12:01:20 +11:00
Andrew Tridgell
f2ac61f6ba
HAL_ChibiOS: enable DShot on G4
2021-03-23 12:01:20 +11:00
Andrew Tridgell
f57b1b9c4b
HAL_ChibiOS: support logical/physical CAN bus mapping
...
allow for first CAN interface to be CAN2 or CAN3
2021-03-23 12:01:20 +11:00
Andrew Tridgell
2f7ff778be
HAL_ChibiOS: fixed bug in DMA resolver
...
idsets can be empty for a peripheral
2021-03-23 12:01:20 +11:00
Andrew Tridgell
439a944801
HAL_ChibiOS: added support for STM32G474 MCU
2021-03-23 12:01:20 +11:00
Andy Piper
e1d71486e4
AP_HAL_ChibiOS: build fixes for ChibiOS 20.3.x
2021-03-23 12:01:20 +11:00
Andrew Tridgell
5b59445471
AP_HAL_ChibiOS: fixes for build with 20.3.x ChibiOS
2021-03-23 12:01:20 +11:00
QioTek
fe30612bb0
AP_HAL_ChibiOS: release ICM20649 reserve sensor
...
BMI055 & BMI088 out of stock, release ICM20649 reserve sensor
2021-03-22 19:05:03 +11:00
Andrew Tridgell
bbd32844d1
HAL_ChibiOS: switch more boards to 32k FRAM
...
this enables the parameter backup/restore on those boards, as well as
more waypoints
This is in response to a report that CUAVv5 boards can suffer from the
parameter reset issue
2021-03-21 11:59:12 +11:00
Andy Piper
bb270014e7
AP_HAL_ChibiOS: make sure LEDs get a DMA channel on MatekH743-bdshot
2021-03-17 18:28:01 +11:00
Andy Piper
968d05a637
AP_HAL_ChibiOS: allow further LED channels to be allocated at the same length
2021-03-17 18:24:11 +11:00
Andrew Tridgell
8a8db85b9c
HAL_ChibiOS: fixed build of f103-trigger fw
2021-03-16 18:28:58 +11:00
Lava Chemist
4a52f945db
AP_HAL_ChibiOS: Add FlywooF745
2021-03-16 11:27:23 +11:00
Andy Piper
d6575fb6ad
AP_HAL_ChibiOS: bdshot configs for CubeYellow and mRoControlZeroH7
2021-03-03 18:02:26 +11:00
Andrew Tridgell
4fbdb59398
HAL_ChibiOS: prevent sharing the same DMA stream on TIMn_UP channels
...
this avoids an issue with DShot where we run the same DMA stream on
two timers at once
2021-03-02 11:58:38 +11:00
Andy Piper
6cb263056d
AP_HAL_ChibiOS: build fix for iomcu
2021-03-02 11:58:38 +11:00
Andy Piper
d0e4d510cf
AP_HAL_ChibiOS: order PWM timers by DMA UP stream id to prevent deadlocks in dshot
2021-03-02 11:58:38 +11:00
Andrew Tridgell
14791c335b
HAL_ChibiOS: fixed build of f3 boards without PWM out
2021-02-24 18:25:02 +11:00
Andrew Tridgell
243cf2199d
HAL_ChibiOS: disable shared DMA on IOMCU
...
this saves about 600 bytes of ram
2021-02-24 18:21:08 +11:00
Andrew Tridgell
c23f61b79a
HAL_ChibiOS: set internal error on panic
2021-02-24 18:18:37 +11:00
Andrew Tridgell
eec05c1f48
HAL_ChibiOS: fixed a race and null ptr deref in dshot
...
if a dshot is cancelled then the waiter can be nullptr
2021-02-24 15:39:10 +11:00
Andy Piper
b102391163
AP_HAL_ChibiOS: don't send rcout events without rcout thread
2021-02-24 08:55:12 +11:00
Mirko Denecke
edc2b0c94e
AP_HAL_ChibiOS: fix copy and paste typo
2021-02-23 08:15:50 +09:00
Andrew Tridgell
7af20e9ea3
HAL_ChibiOS: increase H7 serial buffer sizes
...
this takes better advantage of the new UART code. Log download over
USB gets to 730 kbyte/s. For comparison, with the 4.0 code on the same
H7 we get about 300 kbyte/s
2021-02-20 20:49:45 +11:00
Andrew Tridgell
3b88a3273b
HAL_ChibiOS: adjust up uart tx stack size
...
lowest was showing 80 bytes free, which is too close to the 64 byte
level where we trigger an internal error
2021-02-20 14:37:11 +11:00
Andrew Tridgell
5e0f175223
HAL_ChibiOS: adjust UART buffer sizes for new UART code
...
this gains about 20k of RAM, and has almost no impact on log download
speed at 921600 on a F427. The improved threading means we can afford
to have smaller buffers
2021-02-20 14:37:11 +11:00
Andy Piper
4e61ba2dc8
AP_HAL_ChibiOS: reduce stack sizes for rcout, uart_rx and storage.
2021-02-20 14:37:11 +11:00
Andy Piper
94de238751
AP_HAL_ChibiOS: disable RCOUT thread on iomcu and rebuild iomcu.
2021-02-20 14:37:11 +11: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
mateksys
7eb4e9b370
AP_Periph: set PORT defaults for F405-MatekGPS
2021-02-18 11:51:50 +11:00
mateksys
97c2b7228e
AP_Periph: Matek F303 and F405 AP_Periph use DSP310 baro
2021-02-18 11:51:50 +11:00
Andy Piper
4c2cbdab8d
AP_HAL_ChibiOS: only setup half-duplex for receive when transmit is fully over
2021-02-17 20:09:48 +11:00
Andy Piper
5c32007cdf
AP_HAL_ChibiOS: ensure stop bits can be set before UART begin
2021-02-17 20:09:48 +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
Michael du Breuil
c0da87c066
AP_HAL_ChibiOS: Update HitecMosaic to reflect changes to GPS config
2021-02-15 16:31:45 -07:00
Andrew Tridgell
9de1519928
HAL_ChibiOS: prevent hw flow control from hogging a DMA channel
...
When hw flow control is enabled check the CTS pin before we grab the
DMA channel to prevent a long timeout trying to send to a blocked port
from holding a DMA channel against another device
this fixes issue #16587
2021-02-15 07:23:56 +11:00