Leonard Hall
05a896cc4c
AP_HAL_ChibiOS: don't fake CAN send success in bootloader builds
2026-08-04 12:04:45 +10:00
Thomas Watson
f4ae5d7901
AP_HAL_ChibiOS: drop CAN log message calls
...
The infrastructure for these has been continually buggy and rarely used.
Delete calls in preparation for ripping it out entirely.
2026-05-18 20:58:47 -05:00
Thomas Watson
048f4d9b60
AP_HAL_ChibiOS: drop CAN interface alternate mode support
...
Only "NormalMode" was ever used; the others had rotted or were never
implemented.
2025-11-11 10:58:43 +11:00
Thomas Watson
763a6361de
AP_HAL_ChibiOS: drop CAN filter support from HAL
...
Has been unused since the removal of libuavcan.
2025-11-11 10:58:43 +11:00
Thomas Watson
0e4db74c75
AP_HAL_ChibiOS: ignore rare CAN modes
...
These are never used anywhere by ArduPilot.
2025-11-11 10:58:43 +11:00
muramura
4a9ddef8ee
AP_HAL_ChibiOS: Change division to multiplication
2025-01-02 23:22:42 +11:00
Peter Barker
8b9154d115
AP_HAL_ChibiOS: re-order initialiser lines so -Werror=reorder will work
2024-09-24 22:50:28 +10:00
Andrew Tridgell
05d43fd00b
HAL_ChibiOS: allow for MCAST UDP with no CAN link
...
this allows the CAN interface to operate without a CAN cable, allowing
for bridging of MCAST UDP CAN
2024-09-17 10:02:29 +10:00
Andrew Tridgell
e8b4010899
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-02-09 18:55:08 +11:00
Andrew Tridgell
a2707b48c5
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:02 +11:00
Andrew Tridgell
2d031a4d20
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:02 +11:00
Andrew Tridgell
1c8048df8f
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:02 +11:00
Andrew Tridgell
c0d0aeee86
HAL_ChibiOS: reimplement CAN with BinarySemaphore
2024-01-03 07:37:05 +11:00
Thomas Watson
87fef1ae5d
AP_HAL_ChibiOS: use get_HAL_mutable() to install new CAN interfaces
...
Avoids dubious extern redefinition.
2023-11-28 08:24:25 +11:00
Andrew Tridgell
d5fbce0547
AP_HAL_ChibiOS: added last_transmit_us to CAN stats
2023-09-05 06:56:51 +10:00
Andrew Tridgell
aa0b119806
HAL_ChibiOS: disable CANFD bits if CANFD not enabled
...
cannot support CANFD receive on G4
2023-07-12 18:54:45 +10:00
Andrew Tridgell
0cfd9c2ed5
HAL_ChibiOS: don't consider a MAVCAN send failure as a send failure
...
this prevents duplicate sends if MAVCAN buffer is full
2023-06-08 10:15:50 +10:00
bugobliterator
6a0c46d241
AP_HAL_Periph: assert clock is FDCANCLK is 80MHz for H7 boards
2022-03-11 18:13:54 +11:00
bugobliterator
633eb0db8b
AP_HAL_ChibiOS: move to using data_32 for copying into CANFD buffer
2022-03-11 18:13:54 +11:00
bugobliterator
faf0c0d7c3
AP_HAL_ChibiOS: set canfd bitrates using CANFD_SUPPORTED opt
2022-03-11 18:13:54 +11:00
bugobliterator
4bdbd37731
AP_HAL_ChibiOS: use datalength when copying payload into CAN Frames
2022-03-11 18:13:54 +11:00
bugobliterator
47dd964e63
AP_HAL_ChibiOS: add init method to take in separate canfd bitrate
2022-03-11 18:13:54 +11:00
Siddharth Purohit
8aa047d876
AP_HAL_ChibiOS: add support for CANFD for H7 and G4
2022-03-11 18:13:54 +11:00
Andrew Tridgell
638e20a0b9
HAL_ChibiOS: bring in hal.h where it is needed
2022-02-22 12:13:19 +11:00
Andrew Tridgell
fd8d28e23c
HAL_ChibiOS: reduced time in critical sections for CAN processing
2022-02-19 18:24:56 +11:00
Andrew Tridgell
33ebc83a68
AP_HAL_ChibiOS: disable CAN filtering except on AP_Periph
...
this saves flash space and makes CAN forwarding for any bus without
reconfigure/reboot easy. CAN filtering is not useful in the main
flight controller firmware as we want to see nearly all packets
2022-02-12 16:36:05 +11:00
Andrew Tridgell
124c9d5d9b
HAL_ChibiOS: support mavcan message forwarding
2022-02-12 16:36:05 +11:00
bugobliterator
a8ab20abd9
AP_HAL_ChibiOS: allow sending stats via mavftp on AP_Periph
2021-08-19 14:20:58 +10:00
bugobliterator
81c5a99527
AP_HAL_ChibiOS: fix invalid use of FDCAN2_IT0_IRQn enum for ifdef
2021-08-10 07:25:05 +10:00
Andrew Tridgell
bab0c1dfc7
HAL_ChibiOS: fixed build for single FDCAN G4 boards
2021-08-03 10:54:03 +10:00
Siddharth Purohit
882b01bae3
AP_HAL_ChibiOS: Use HAL_CANMANAGER_ENABLED instead of HAL_ENABLE_LIBUAVCAN_DRIVERS
2021-06-24 09:02:42 +10:00
Tom Pittenger
7a004656a2
AP_HAL_ChibiOS: use HAL_ENABLE_LIBUAVCAN_DRIVERS instead of HAL_MAX_CAN_PROTOCOL_DRIVERS
2021-06-09 18:36:18 +10:00
Tom Pittenger
f764bd6547
AP_HAL_ChibiOS: disable EventSource only when CH_CFG_USE_EVENTS is false
...
(cherry picked from commit 6e7542a70ca2343ab8d18470deaf5fc2d27390af) from bugobliterator
2021-06-09 18:36:18 +10:00
Siddharth Purohit
ad9a8c8bd9
AP_HAL_ChibiOS: record error states in CANFDIface and CANIface
2021-05-26 18:25:01 +10:00
Andrew Tridgell
c3d16cf2e2
HAL_ChibiOS: use defines for G4 messageram
...
review fix
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
4f10565f82
HAL_ChibiOS: fixed CANFD build on H7
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
439a944801
HAL_ChibiOS: added support for STM32G474 MCU
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
Andrew Tridgell
42bc9adfb7
HAL_ChibiOS: use ExpandingString for @SYS buffers
2021-01-05 10:52:00 +11:00
bugobliterator
e16cab0437
AP_HAL_ChibiOS: ensure we timeout while checking FDCAN register sets
2020-10-08 09:31:35 +11:00
bugobliterator
ca957519dc
AP_HAL_ChibiOS: redo filter configuration to make it work with STM32H7
2020-10-08 09:31:35 +11:00
bugobliterator
0a4ea250ad
AP_HAL_ChibiOS: disable CANFilter on H7 boards temporarily
2020-10-01 07:19:19 +10:00
Siddharth Purohit
36ffcdae30
HAL_ChibiOS: modify hal can drivers for use by AP_Periph
2020-09-24 12:32:19 +10:00
Siddharth Purohit
cdf8e369f1
AP_HAL_ChibiOS: create UAVCAN agnostic CANIface driver
...
HAL_ChibiOS
2020-08-19 17:31:09 +10:00
bugobliterator
7b9f0f3fd7
HAL_ChibiOS: use FIFO mode instead of Queue mode in FDCAN driver
2020-05-21 15:32:53 +10:00
Andrew Tridgell
2c68ce1986
HAL_ChibiOS: fixed clock source for FDCAN
...
use selected source and add 80MHz limit, as per manual and latest STM32CubeMX tool
2020-04-24 16:55:03 +10:00
Siddharth Purohit
8c413d3c09
HAL_ChibiOS: fix writing into a NULL pointer CANFD interrupt
2019-10-30 22:15:04 +11:00
Andrew Tridgell
15e4641e51
AP_HAL_ChibiOS: cleanup ifdefs for SLCAN enable
2019-10-08 10:02:14 +11:00