From 712e8c8b8f9880332d96c9224fcbbe4ed05d139d Mon Sep 17 00:00:00 2001 From: Empire Phoenix Date: Mon, 6 Oct 2025 16:44:46 +0200 Subject: [PATCH] cleanups --- .../battery_board-2024-08-23_235516.zip | Bin 13477 -> 0 bytes board/.gitignore | 2 + .../battery/battery_board_old}/.gitignore | 0 .../battery_board.kicad_pcb | 0 .../battery_board.kicad_prl | 0 .../battery_board.kicad_pro | 0 .../battery_board.kicad_sch | 0 .../battery_board_old}/bq34z100-r2.pdf | Bin .../fabrication-toolkit-options.json | 0 .../battery/battery_board_old}/fp-lib-table | 0 ...0UPB+DATA-M_1x02_P5.0mm_Vertical.kicad_mod | 0 .../kicad-stuff/BQ34Z100PWR-G1.kicad_sym | 0 .../kicad-stuff/BQ34Z100PWR-G1.step | 0 .../kicad-stuff/CCC Mannheim Logo2_full.svg | 0 .../battery_board_old}/kicad-stuff/DW01.dcm | 0 .../kicad-stuff/DW01.kicad_sym | 0 .../battery_board_old}/kicad-stuff/DW01.lib | 0 .../ESP32/CCC_Mannheim_Logo2_full.kicad_mod | 0 .../ESP32/DPAK457P991X255-3N.kicad_mod | 0 ...ESP32-DEVKITC-32D--3DModel-STEP-56544.STEP | 0 .../kicad-stuff/ESP32/ESP32-DEVKITC-32D.dcm | 0 .../ESP32/ESP32-DEVKITC-32D.kicad_sym | 0 .../kicad-stuff/ESP32/ESP32-DEVKITC-32D.lib | 0 .../ESP32/MODULE_ESP32-DEVKITC-32D.kicad_mod | 0 ...2PinHeader_1x04_P2.54mm_Vertical.kicad_mod | 0 .../kicad-stuff/ESP32/how-to-import.htm | 0 .../kicad-stuff/LP38690DT-3.3.kicad_sym | 0 .../kicad-stuff/LP38690DT-3.3.lib | 0 ...ishay_WSK2512_6332Metric_T1.19mm.kicad_mod | 0 .../kicad-stuff/SOP65P640X120-14N.kicad_mod | 0 .../kicad-stuff/SSOP10.kicad_mod | 0 .../kicad-stuff/SX1308.kicad_sym | 0 .../battery_board_old}/kicad-stuff/SX1308.lib | 0 .../kicad-stuff/ds2438.kicad_sym | 0 .../battery_board_old}/kicad-stuff/ds2438.lib | 0 .../MINI-USB-SMD_UX-144S-ACP5.step | 0 .../MINI-USB-SMD_UX-144S-ACP5.wrl | 0 .../kicad-stuff/easyeda2kicad.kicad_sym | 0 .../MINI-USB-SMD_UX-144S-ACP5.kicad_mod | 0 .../misc_footprints-master/.gitignore | 0 .../misc_footprints-master/LICENSE | 0 .../misc_footprints-master/README.md | 0 .../misc_footprints-master/eaglize.py | 0 .../16850_cell_casket.kicad_mod | 0 .../4056E_LiIon_loader.kicad_mod | 0 .../4056E_LiIon_loader_SMT.kicad_mod | 0 .../4056E_LiIon_loader_prot.kicad_mod | 0 ...teryHolder_Keystone_1042_1x18650.kicad_mod | 0 .../MP1584_buck_module.kicad_mod | 0 .../MT3608_module.kicad_mod | 0 .../MT3608_module_SMT.kicad_mod | 0 .../N95_battery_connector.kicad_mod | 0 .../misc_footprints.pretty/SOT-23-6.kicad_mod | 0 .../SOT95P280X135-6N.kicad_mod | 0 .../XL6009_module.kicad_mod | 0 .../XL6009_module_SMT.kicad_mod | 0 .../ds2438az&plus_.kicad_mod | 0 .../battery/battery_board_old}/sym-lib-table | 0 .../3v3/fabrication-toolkit-options.json | 1 + .../LightOut/fabrication-toolkit-options.json | 1 + .../MPPT/fabrication-toolkit-options.json | 1 + .../Sensors/fabrication-toolkit-options.json | 1 + .../Sensors/fabrication-toolkit-options.json | 1 + .../modules/Sensors_can/Sensors/fp-lib-table | 4 + .../Sensors/production/netlist.ipc | 71 +++++++++++++++ board/modules/Sensors_can/ch32-sensor/.doomrc | 32 +++++++ .../Sensors_can/ch32-sensor/.idea/.gitignore | 8 ++ .../ch32-sensor/.idea/ch32-sensor.iml | 11 +++ rust_can_sensor/.idea/vcs.xml | 1 + rust_can_sensor/Cargo.toml | 6 +- rust_can_sensor/src/main.rs | 83 +++++++++++------- 71 files changed, 187 insertions(+), 36 deletions(-) delete mode 100644 battery_board/battery_board/battery_board-backups/battery_board-2024-08-23_235516.zip rename {battery_board/battery_board => board/battery/battery_board_old}/.gitignore (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/battery_board.kicad_pcb (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/battery_board.kicad_prl (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/battery_board.kicad_pro (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/battery_board.kicad_sch (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/bq34z100-r2.pdf (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/fabrication-toolkit-options.json (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/fp-lib-table (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/AMASS_XT30UPB+DATA-M_1x02_P5.0mm_Vertical.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/BQ34Z100PWR-G1.kicad_sym (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/BQ34Z100PWR-G1.step (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/CCC Mannheim Logo2_full.svg (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/DW01.dcm (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/DW01.kicad_sym (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/DW01.lib (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ESP32/CCC_Mannheim_Logo2_full.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ESP32/DPAK457P991X255-3N.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ESP32/ESP32-DEVKITC-32D--3DModel-STEP-56544.STEP (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ESP32/ESP32-DEVKITC-32D.dcm (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ESP32/ESP32-DEVKITC-32D.kicad_sym (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ESP32/ESP32-DEVKITC-32D.lib (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ESP32/MODULE_ESP32-DEVKITC-32D.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ESP32/SR04M-2PinHeader_1x04_P2.54mm_Vertical.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ESP32/how-to-import.htm (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/LP38690DT-3.3.kicad_sym (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/LP38690DT-3.3.lib (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/SOP65P640X120-14N.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/SSOP10.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/SX1308.kicad_sym (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/SX1308.lib (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ds2438.kicad_sym (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/ds2438.lib (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/easyeda2kicad.3dshapes/MINI-USB-SMD_UX-144S-ACP5.step (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/easyeda2kicad.3dshapes/MINI-USB-SMD_UX-144S-ACP5.wrl (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/easyeda2kicad.kicad_sym (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/easyeda2kicad.pretty/MINI-USB-SMD_UX-144S-ACP5.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/.gitignore (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/LICENSE (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/README.md (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/eaglize.py (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/16850_cell_casket.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/4056E_LiIon_loader.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/4056E_LiIon_loader_SMT.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/4056E_LiIon_loader_prot.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/BatteryHolder_Keystone_1042_1x18650.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/MP1584_buck_module.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/MT3608_module.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/MT3608_module_SMT.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/N95_battery_connector.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/SOT-23-6.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/SOT95P280X135-6N.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/XL6009_module.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/XL6009_module_SMT.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/kicad-stuff/misc_footprints-master/misc_footprints.pretty/ds2438az&plus_.kicad_mod (100%) rename {battery_board/battery_board => board/battery/battery_board_old}/sym-lib-table (100%) create mode 100644 board/modules/3v3/fabrication-toolkit-options.json create mode 100644 board/modules/LightOut/fabrication-toolkit-options.json create mode 100644 board/modules/MPPT/fabrication-toolkit-options.json create mode 100644 board/modules/Sensors/Sensors/fabrication-toolkit-options.json create mode 100644 board/modules/Sensors_can/Sensors/fabrication-toolkit-options.json create mode 100644 board/modules/Sensors_can/Sensors/fp-lib-table create mode 100644 board/modules/Sensors_can/Sensors/production/netlist.ipc create mode 100644 board/modules/Sensors_can/ch32-sensor/.doomrc create mode 100644 board/modules/Sensors_can/ch32-sensor/.idea/.gitignore create mode 100644 board/modules/Sensors_can/ch32-sensor/.idea/ch32-sensor.iml diff --git a/battery_board/battery_board/battery_board-backups/battery_board-2024-08-23_235516.zip b/battery_board/battery_board/battery_board-backups/battery_board-2024-08-23_235516.zip deleted file mode 100644 index c1c8f5170d47f66f1861d0c503f0b6c9a612e5c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13477 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 s{|VyopOF8|T>URdGVFg3`IpD4C= version 14.1) + (user-error "Requires gdb version >= 14.1")))) + modes () + command-cwd dape-command-cwd + command "gdb" + command-args ("--interpreter=dap") + :request nil + :program nil + :args [] + :stopAtBeginningOfMainSubprogram nil)) +) + +;;; .doomrc ends here diff --git a/board/modules/Sensors_can/ch32-sensor/.idea/.gitignore b/board/modules/Sensors_can/ch32-sensor/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/board/modules/Sensors_can/ch32-sensor/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/board/modules/Sensors_can/ch32-sensor/.idea/ch32-sensor.iml b/board/modules/Sensors_can/ch32-sensor/.idea/ch32-sensor.iml new file mode 100644 index 0000000..cf84ae4 --- /dev/null +++ b/board/modules/Sensors_can/ch32-sensor/.idea/ch32-sensor.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/rust_can_sensor/.idea/vcs.xml b/rust_can_sensor/.idea/vcs.xml index 288b36b..ed1b09d 100644 --- a/rust_can_sensor/.idea/vcs.xml +++ b/rust_can_sensor/.idea/vcs.xml @@ -3,5 +3,6 @@ + \ No newline at end of file diff --git a/rust_can_sensor/Cargo.toml b/rust_can_sensor/Cargo.toml index 03333e6..3a58a8c 100644 --- a/rust_can_sensor/Cargo.toml +++ b/rust_can_sensor/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -ch32-hal = { path = "/home/empire/workspace/ch32-hal/", features = [ +ch32-hal = { git = "https://github.com/empirephoenix/ch32-hal.git", features = [ "ch32v203c8t6", "memory-x", "embassy", @@ -25,6 +25,7 @@ embassy-executor = { version = "0.7.0", features = [ embassy-usb = { version = "0.3.0" } embassy-futures = { version = "0.1.0" } embassy-sync = { version = "0.6.0" } +embedded-can = "0.4.1" # This is okay because we should automatically use whatever ch32-hal uses qingke-rt = "*" @@ -35,13 +36,14 @@ panic-halt = "1.0" heapless = { version = "0.8.0", features = ["portable-atomic-critical-section"] } embassy-time = { version = "0.4.0" } +static_cell = "2.1.1" [profile.dev] #lto = true opt-level = 1 [profile.release] -strip = false # symbols are not flashed to the microcontroller, so don't strip them. +strip = true # symbols are not flashed to the microcontroller, so don't strip them. lto = true debug = false opt-level = "z" # Optimize for size. diff --git a/rust_can_sensor/src/main.rs b/rust_can_sensor/src/main.rs index da9a413..ecc4883 100644 --- a/rust_can_sensor/src/main.rs +++ b/rust_can_sensor/src/main.rs @@ -1,9 +1,14 @@ #![no_std] #![no_main] + +use crate::hal::peripherals::CAN1; use core::fmt::Write as _; use ch32_hal::gpio::{Level, Output, Speed}; use ch32_hal::adc::{Adc, SampleTime, ADC_MAX}; +use ch32_hal::can; +use ch32_hal::can::{Can, CanFifo, CanFilter, CanFrame, CanMode}; +use ch32_hal::mode::{Blocking, Mode}; use ch32_hal::peripherals::USBD; // use ch32_hal::delay::Delay; use embassy_executor::{Spawner, task}; @@ -14,22 +19,24 @@ use hal::usbd::{Driver}; use hal::{bind_interrupts}; use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex; use embassy_sync::channel::{Channel, TrySendError}; -use embassy_time::{Timer, Instant, Duration}; +use embassy_time::{Timer, Instant, Duration, Ticker}; +use embedded_can::StandardId; use heapless::String; use {ch32_hal as hal, panic_halt as _}; +macro_rules! mk_static { + ($t:ty,$val:expr) => {{ + static STATIC_CELL: static_cell::StaticCell<$t> = static_cell::StaticCell::new(); + #[deny(unused_attributes)] + let x = STATIC_CELL.uninit().write(($val)); + x + }}; +} + bind_interrupts!(struct Irqs { USB_LP_CAN1_RX0 => hal::usbd::InterruptHandler; }); -// 'static storage for USB descriptors and state so we can spawn tasks -static mut USB_CONFIG_DESCRIPTOR: [u8; 256] = [0; 256]; -static mut USB_BOS_DESCRIPTOR: [u8; 256] = [0; 256]; -static mut USB_CONTROL_BUF: [u8; 64] = [0; 64]; -static mut CDC_STATE: core::mem::MaybeUninit> = core::mem::MaybeUninit::uninit(); -static mut USB_DEVICE: core::mem::MaybeUninit>> = core::mem::MaybeUninit::uninit(); -static mut CDC_CLASS: core::mem::MaybeUninit>> = core::mem::MaybeUninit::uninit(); - static LOG_CH: Channel, 8> = Channel::new(); #[embassy_executor::main(entry = "qingke_rt::entry")] @@ -57,30 +64,25 @@ async fn main(spawner: Spawner) { config.device_protocol = 0x00; config.composite_with_iads = false; - let usb = unsafe { - let mut builder = Builder::new( - driver, - config, - &mut USB_CONFIG_DESCRIPTOR, - &mut USB_BOS_DESCRIPTOR, - &mut [], // no msos descriptors - &mut USB_CONTROL_BUF, - ); + let mut builder = Builder::new( + driver, + config, + mk_static!([u8;256], [0; 256]), + mk_static!([u8;256], [0; 256]), + &mut [], // no msos descriptors + mk_static!([u8;64], [0; 64]), + ); + // Initialize CDC state and create CDC-ACM class + let class = mk_static!(CdcAcmClass<'static, Driver<'static, hal::peripherals::USBD>>, + CdcAcmClass::new( + &mut builder, + mk_static!(State, State::new()), + 64 + ) + ); - // Initialize CDC state and create CDC-ACM class - CDC_STATE.write(State::new()); - let class = { - let state_ref: &mut State<'static> = CDC_STATE.assume_init_mut(); - CdcAcmClass::new(&mut builder, state_ref, 64) - }; - CDC_CLASS.write(class); - - // Build USB device - let dev = builder.build(); - USB_DEVICE.write(dev); - - USB_DEVICE.assume_init_mut() - }; + // Build USB device + let usb = mk_static!(UsbDevice>, builder.build()) ; // Create GPIO for 555 Q output (PB0) let q_out = Output::new(p.PB0, Level::Low, Speed::Low); @@ -91,15 +93,27 @@ async fn main(spawner: Spawner) { let adc = Adc::new(p.ADC1, Default::default()); let ain = p.PA1; + let config = can::can::Config::default(); + let can: Can<'static, CAN1 , Blocking> = Can::new_blocking(p.CAN1, p.PB8, p.PB9, CanFifo::Fifo1, CanMode::Normal, 500_000, config).expect("Valid"); + let mut filter = CanFilter::new_id_list(); + + filter + .get(0) + .unwrap() + .set(StandardId::new(0x580 | 0x42).unwrap().into(), Default::default()); + + can.add_filter(CanFilter::accept_all()); + + // Spawn independent tasks using 'static references unsafe { - let class = CDC_CLASS.assume_init_mut(); spawner.spawn(usb_task(usb)).unwrap(); spawner.spawn(usb_writer(class)).unwrap(); // move Q output, LED, ADC and analog input into worker task - spawner.spawn(worker(q_out, led, adc, ain)).unwrap(); + spawner.spawn(worker(q_out, led, adc, ain, can)).unwrap(); } + // Prevent main from exiting core::future::pending::<()>().await; } @@ -110,6 +124,7 @@ async fn worker( mut led: Output<'static>, mut adc: Adc<'static, hal::peripherals::ADC1>, mut ain: hal::peripherals::PA1, + mut can: Can<'static, CAN1, Blocking>, ) { // 555 emulation state: Q initially Low let mut q_high = false;