Protocole ASCII type NMEA ($T/$C avec checksum) entre l'ESP32-C3 et le TMS320 (frequence/duty/tensions/courants/temperatures + commandes HT/PWM1/PWM2), avec simulateur local le temps que le firmware TMS320 existe. Driver SSD1322 repointe sur les GPIO du schema, dashboard texte 3 pages tournantes sur l'ecran ER-OLEDM032-1. LED RGB embarquee (GPIO8) clignotante 1 Hz vert 30% comme indicateur de vie. Serveur web laisse en stub (sera branche en STA sur le reseau local une fois l'OLED valide). Ajout de la documentation technique (schema, datasheets, protocole).
39 lines
1.3 KiB
C
39 lines
1.3 KiB
C
#pragma once
|
|
|
|
#include <Arduino.h>
|
|
|
|
// Protocole ASCII de type NMEA entre l'ESP32-C3 et le TMS320.
|
|
//
|
|
// Telemetrie TMS320 -> ESP32, periodique :
|
|
// $T,FREQ1=100000,FREQ2=100000,DUTY1=45.2,DUTY2=50.0,VIN=400.5,IIN=1.20,
|
|
// V1=200.3,I1=2.50,T1=45.2,VOUT=200.1,I2=2.48,T2=44.8,IOUT=1.05*XX\n
|
|
//
|
|
// Commande ESP32 -> TMS320, a chaque changement (et rafraichissement
|
|
// periodique) :
|
|
// $C,HT=1,PWM1=1,PWM2=0*XX\n
|
|
//
|
|
// XX = XOR de tous les octets entre '$' et '*', en hexadecimal majuscule.
|
|
|
|
struct Telemetry {
|
|
float freq1 = 0; // Hz, frequence etage 1
|
|
float freq2 = 0; // Hz, frequence etage 2
|
|
float duty1 = 0; // %, duty cycle etage 1
|
|
float duty2 = 0; // %, duty cycle etage 2
|
|
float vin = 0; // V, tension entree
|
|
float iin = 0; // A, courant entree
|
|
float v1 = 0; // V, tension etage 1
|
|
float i1 = 0; // A, courant shunt mosfet 1
|
|
float t1 = 0; // C, temperature NTC etage 1
|
|
float vout = 0; // V, tension etage 2 (sortie boost)
|
|
float i2 = 0; // A, courant shunt mosfet 2
|
|
float t2 = 0; // C, temperature NTC etage 2
|
|
float iout = 0; // A, courant sortie
|
|
uint32_t lastUpdateMs = 0;
|
|
};
|
|
|
|
struct CommandState {
|
|
bool ht = false; // sortie HT activee/desactivee
|
|
bool pwm1 = false; // PWM etage 1 activee/desactivee
|
|
bool pwm2 = false; // PWM etage 2 activee/desactivee
|
|
};
|