Commit Graph

3019 Commits

Author SHA1 Message Date
Andrew Tridgell 3047c1ed92 HAL_ChibiOS: fixed CANFD timings (again!)
the timing table was not correct, thanks to APD for pointing this out.

This is recalculated from
https://www.kvaser.com/support/calculators/can-fd-bit-timing-calculator,
with transmitter timing delay compensation added and tested with Salae
captures to ensure we are getting the right bit rates
2024-03-14 11:42:42 +11:00
yjuav 7f98c7f737 hwdef: add YJUAV_A6Ultra board support 2024-03-14 11:42:42 +11:00
David O'Connor 8621495480 hwdef: add AnyLeaf H7 board 2024-03-14 11:42:42 +11:00
Andrew Tridgell 6e3369611e HAL_ChibiOS: enable clock management on G4
this allows for a different clock tree in the main fw from the
bootloader
2024-01-25 11:44:52 +11:00
Andrew Tridgell 06a8aef998 HAL_ChibiOS: switched G4 FDCAN clock to 80MHz
this requires main CPU clock at 160 MHz instead of 168 MHz
2024-01-25 11:44:44 +11:00
Andrew Tridgell 2d965684f6 HAL_ChibiOS: fixed CANFD timings
our CANFD timings were resulting in a lot of busoff errors. Here is an
example of master at 1Mbit/5MBit:

Getting @SYS/can0_stats.txt as -
------- Clock Config -------
CAN_CLK_FREQ:   80MHz
Std Timings: bitrate=1000000 presc=7
sjw=0 bs1=7 bs2=0 sample_point=90.00000%
FD Timings:  bitrate=5000000 presc=1
sjw=0 bs1=5 bs2=0 sample_point=90.00000%
------- CAN Interface Stats -------
tx_requests:    2689
tx_rejected:    0
tx_overflow:    443
tx_success:     7
tx_timedout:    2232
tx_abort:       0
rx_received:    18470
rx_overflow:    0
rx_errors:      0
num_busoff_err: 34439
num_events:     18477
ECR:            F8
fdf_rx:         18467
fdf_tx_req:     2182
fdf_tx:         0

here is an example with the new timings:

------- Clock Config -------
CAN_CLK_FREQ:   80MHz
Std Timings: bitrate=1000000 presc=8
sjw=1 bs1=8 bs2=1 sample_point=90.00000%
FD Timings:  bitrate=8000000 presc=2
sjw=3 bs1=8 bs2=3 sample_point=80.00000%
------- CAN Interface Stats -------
tx_requests:    3023
tx_rejected:    0
tx_overflow:    0
tx_success:     3023
tx_timedout:    0
tx_abort:       0
rx_received:    27865
rx_overflow:    0
rx_errors:      0
num_busoff_err: 0
num_events:     30888
ECR:            0
fdf_rx:         27862
fdf_tx_req:     3016
fdf_tx:         3016

I am testing between a CubeOrange and a Pixhawk6X. I tested 1, 2, 4, 5
and 8 MBit (which are the only valid FD bitrates in our parameters)

Many thanks to Kai from Salient Motion for finding this issue and
providing the corrected timing table
2024-01-25 11:44:32 +11:00
Hayden Donald a81f2785aa AP_HAL_ChibiOS: Use correct pin config for ADC2 and ADC3 2024-01-24 08:03:24 +11:00
MallikarjunSE 873e2eac7d AP_HAL_ChibiOS: update truenav hwdef 2024-01-24 07:58:09 +11:00
Andrew Tridgell e714f0a7a3 AP_HAL_ChibiOS: fixed name of pitch limit parameters 2024-01-23 15:00:30 +11:00
Andrew Tridgell a6bceccd82 AP_HAL_ChibiOS: convert param files LIM_ROLL_CD -> ROLL_LIMIT_DEG 2024-01-23 15:00:30 +11:00
Andrew Tridgell 862b0ed8d6 AP_HAL_ChibiOS: convert param files for pitch limits 2024-01-23 15:00:30 +11:00
Andrew Tridgell e5199a71d6 AP_HAL_ChibiOS: convert ALT_HOLD_RTL to RTL_ALTITUDE 2024-01-23 15:00:30 +11:00
Andrew Tridgell f935cbaead AP_HAL_ChibiOS: convert ARSPD_FBW_MIN/MAX to AIRSPEED_MIN and AIRSPEED_MAX 2024-01-23 15:00:30 +11:00
Andrew Tridgell 98d40d0e58 AP_HAL_ChibiOS: converted TRIM_ARSPD_CM to AIRSPEED_CRUISE 2024-01-23 15:00:30 +11:00
Andy Piper 6c634ebc00 AP_HAL_ChibiOS: allow dshot beeps to play on all dshot ESC types 2024-01-23 11:58:55 +11:00
Peter Barker 331110639e AP_HAL_ChibiOS: rename COMPASS_TYPEMASK to COMPASS_DISBLMSK
this is a very confusingly named parameter.  I've seen several instances of people treating this as an enable mask rather than a disable mask
2024-01-23 11:54:49 +11:00
Andrew Tridgell 140518da3c hwdef: added support for Holybro6X-45686 2024-01-23 11:49:14 +11:00
bugobliterator 9de1b6164b AP_HAL_ChibiOS: add more pins to STM32H757 ADC channel map 2024-01-22 20:35:16 +11:00
bugobliterator b17d864d1a AP_HAL_ChibiOS: fix set_pin and _pin_scalar methods for ADC2 and ADC3 2024-01-22 20:35:16 +11:00
MallikarjunSE f71fc58767 AP_HAL_ChibiOS: Add hwdef for TrueNavPro-G4 2024-01-21 13:10:10 +11:00
MallikarjunSE 6231a5edfd AP_HAL_ChibiOS: add TrueNavIC hwdef 2024-01-21 13:10:10 +11:00
Andrew Tridgell f7c7ee00e9 HAL_ChibiOS: added a delete_next thread field for cleanup
allows for cleanup of web server threads in bootloader
2024-01-21 12:30:08 +11:00
Andrew Tridgell 5e7b211b79 HAL_ChibiOS: moved M4 disable into H757 script
this fixes assert checking in the bootloader and for boards other than
CubeRedPrimary
2024-01-21 12:30:08 +11:00
Andrew Tridgell b49a7da32a hwdef: disable use of external flash in PPPGW
we cannot upload new firmware on CAN or network with external flash
2024-01-21 12:30:08 +11:00
Andrew Tridgell 855a5d28c0 hwdef: use a common PPPGW include
and fixed missing RTC bindings in web server
2024-01-21 12:30:08 +11:00
Andrew Tridgell 3a84f35593 HAL_ChibiOS: support building with no GPIOs 2024-01-21 12:30:08 +11:00
Andrew Tridgell f225d797d2 hwdef: use common include for network bootloader 2024-01-21 12:30:08 +11:00
Andrew Tridgell 4e49481d3a hwdef: enable USB for bootloader on Pixhawk6X-PPPGW 2024-01-21 12:30:08 +11:00
Andrew Tridgell 91cc0d7dba HAL_ChibiOS: ensure periph uses same RAM0 address as bootloader
this fixes passing of addresses for boards that use an ALT_RAM_MAP
2024-01-21 12:30:08 +11:00
Andrew Tridgell 82dea9c037 HAL_ChibiOS: ensure our reserved ram is not in available ram regions
this prevents a fault when the ram0 region is filled in by the periph
code on boards that do dynamic memory allocation
2024-01-21 12:30:08 +11:00
Andrew Tridgell a155f592a4 hwdef: added CubePilot PPPGW builds 2024-01-21 12:30:08 +11:00
Andrew Tridgell 2fee9e69db HAL_ChibiOS: support ROMFS_DIRECTORY in hwdef.dat 2024-01-21 12:30:08 +11:00
Andrew Tridgell 46f65aec4e AP_Periph: moved web UI script to Tools/AP_Periph
for use in multiple boards
2024-01-21 12:30:08 +11:00
Andrew Tridgell 69f23edd4a hwdef: added bootloader web server for Pixhawk6X-PPPGW 2024-01-21 12:30:08 +11:00
Andrew Tridgell 654b70da67 HAL_ChibiOS: allow HAL_Semaphore in the bootloader 2024-01-21 12:30:08 +11:00
Peter Barker 8e2a634c72 hwdef: don't enable filesystem-romfs just because we have a defaults file 2024-01-18 21:44:15 +11:00
Peter Barker e958e7b720 hwdef: enable ROMFS if we have a defaults filepath to embed 2024-01-18 21:44:15 +11:00
Peter Barker 3aab3bac52 Tools/AP_HAL_ChibiOS: move defaults from tools to hwdef directory
Tools: move defaults from tools to hwdef directory
2024-01-17 18:28:48 +11:00
Peter Barker c4a342f0af AP_HAL_ChibiOS: use @ROMFS/defaults.parm rather than apj_tool for defaul parms 2024-01-17 18:28:48 +11:00
Peter Barker 29f1953ad7 AP_HAL_ChibiOS: remove bad default from kha_eth hwdef
off is the default, but you have to use 0 not FALSE or it's a redefinition error
2024-01-17 18:25:55 +11:00
Peter Barker 2e23fa7612 hwdef: remove ghost telemetry from peripherals 2024-01-16 09:46:57 +11:00
Peter Barker f7365556d0 AP_HAL_ChibiOS: tidy disabling of GHST on iomcu 2024-01-16 09:46:57 +11:00
Thomas Watson 5f5673b58f AP_HAL_ChibiOS: match thread stack pointer types to ChibiOS
`__main_thread_stack_base__` and `__main_thread_stack_end__` are
variables whose address is defined to be the corresponding part of the
stack. These are declared as `extern stkalign_t` in ChibiOS code, and
being declared as `extern uint32_t` in ArduPilot code creates a warning
at link time when using LTO. Correct the declaration to eliminate this
warning.

Also update `__main_stack_base__` and `__main_stack_end__` which don't
currently trigger this warning but serve similar purposes and so might
in the future.

The hardware expects an alignment of `stkalign_t` (which is 8 bytes) and
the linker script defines the variable values with this alignment as
well, so this is safe.

No code size or functional change.
2024-01-16 09:24:34 +11:00
Peter Barker d0e7039b68 hwdef: remove un-needed AP_PARAM_MAX_EMBEDDED_PARAM default
these boards have <= 1024, and we have code in place which defaults this value tto 1024
2024-01-15 20:25:59 +11:00
Peter Barker 7cf66d917c hwdef: correct compilation of revo-mini-sd
this isn't built on the firmware server, so we won't notice when it dies

In this case the SMBUS batter define was being set differently

Also remove some redundant defines which come from includes anyway
2024-01-15 20:24:37 +11:00
Peter Barker d4f59cbe5f hwdef: remove HAL_NO_LOGGING from Here4FC-bl.dat
this was removed from master a long time ago
2024-01-15 09:40:35 +11:00
Peter Barker ad90e37f21 hwdef: remove bad AP_PERIPH_HAVE_LED lines from bootloaders
this define is only used within the AP_Periph directory
2024-01-15 09:40:35 +11:00
Andrew Tridgell 60c69d052b hwdef: added scripting to CubePilot-PPPGW 2024-01-12 19:06:49 -08:00
Andrew Tridgell faea203af6 hwdef: added web UI to PPPGW example 2024-01-12 19:06:49 -08:00
Andrew Tridgell 2c946b92e9 hwdef: added Pixhawk6X-PPPGW 2024-01-12 14:23:34 -08:00