fix(sd): resolver conflicto de pines SPI con CAN y crear archivo de sesion por arranque

La SD usaba VSPI por defecto (SCK=18, MISO=19, MOSI=23, CS=5), y el pin
MOSI (GPIO23) coincidía físicamente con el RX del CAN, por lo que ambos
periféricos competían por el mismo pin y la SD no funcionaba de forma
fiable.

Se migra la SD a un bus SPI propio (HSPI) con los pines validados por
esquemático de la PCB (CS=25, MOSI=26, SCK=27, MISO=14), que no
colisionan con ningún pin usado por el CAN. Se baja además la
velocidad de reloj SPI de 20 MHz a 1 MHz mediante SdSpiConfig,
necesario por la integridad de señal del cableado/PCB actual.

Se añade también la creación de un archivo de sesión nuevo en cada
arranque (G26-1.csv, G26-2.csv, ...) usando O_EXCL para no sobrescribir
nunca sesiones anteriores, evitando que distintas ejecuciones
compartan el mismo archivo con timestamps solapados.
This commit is contained in:
Alejandro Guerrero 2026-07-21 20:02:00 +02:00
parent 72dc48807d
commit ad23f59ba4
5 changed files with 49 additions and 29 deletions

View file

@ -9,7 +9,11 @@ public:
// Estructura de datos
struct CarState {
int ect = 0; // Temperatura (IMPORTANTE POR AHORA). Luego habría que añadir aquí todas las variables que se vallan a guardar.
int ect = 0;
int rpm = 0;
int tps = 0;
double vbatt = 0;
};
// Configuración SD