From f1dadd7e6e3932235ba7294f7a2b4ea05ed7467a Mon Sep 17 00:00:00 2001 From: Empire Phoenix Date: Tue, 31 Mar 2026 18:24:23 +0200 Subject: [PATCH] massivly reduce canbus speed --- Software/CAN_Sensor/src/main.rs | 2 +- Software/MainBoard/rust/src/hal/v4_hal.rs | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Software/CAN_Sensor/src/main.rs b/Software/CAN_Sensor/src/main.rs index e3349fc..c98b172 100644 --- a/Software/CAN_Sensor/src/main.rs +++ b/Software/CAN_Sensor/src/main.rs @@ -241,7 +241,7 @@ async fn main(spawner: Spawner) { p.PB9, CanFifo::Fifo0, CanMode::Normal, - 125_000, + 20_000, config, ) .expect("Valid"); diff --git a/Software/MainBoard/rust/src/hal/v4_hal.rs b/Software/MainBoard/rust/src/hal/v4_hal.rs index 6551340..588fc12 100644 --- a/Software/MainBoard/rust/src/hal/v4_hal.rs +++ b/Software/MainBoard/rust/src/hal/v4_hal.rs @@ -33,7 +33,13 @@ use measurements::{Current, Voltage}; use pca9535::{GPIOBank, Pca9535Immediate, StandardExpanderInterface}; const MPPT_CURRENT_SHUNT_OHMS: f64 = 0.05_f64; -const TWAI_BAUDRATE: twai::BaudRate = twai::BaudRate::B125K; +const TWAI_BAUDRATE: twai::BaudRate = twai::BaudRate::Custom(twai::TimingConfig { + baud_rate_prescaler: 200, // 40MHz / 200 * 2 = 100 on C6, 100 * 20 = 2000 divisor, 40MHz / 2000 = 20kHz + sync_jump_width: 3, // 4 TQ + tseg_1: 15, + tseg_2: 4, + triple_sample: true, +}); pub enum Charger<'a> { SolarMpptV1 {