1
Vos projets / Re : LaBox" : Une Centrale DCC polyvalente et abordable
« le: mai 16, 2024, 08:07:20 pm »
Bonjour.
Je viens de recevoir un ESP32 pour construire « La Box »
Pressé d’explorer le code pour la rendre compatible RailCom.
La modification est très simple, ajout de deux delay au bon endroit.
Dans le fichier DCCRMT.cpp, chercher :
void IRAM_ATTR interrupt(rmt_channel_t channel, void *t) {
La modifier comme ci-dessous.
pinMode(25, OUTPUT);
L’introduction du CutOut dans la trame DCC se fait de manière matérielle avec un circuit TTL logique 7400 (4 portes Nand) , voir les photos en pièces jointes.
De cette façon le signal DCC original n’est pas altéré, que du contraire, il est temponné.
Placer des Delay dans une interruption, n’est pas très élégant, il est possible de les remplacer par des Timers.
Bien à vous.
Je viens de recevoir un ESP32 pour construire « La Box »
Pressé d’explorer le code pour la rendre compatible RailCom.
La modification est très simple, ajout de deux delay au bon endroit.
Dans le fichier DCCRMT.cpp, chercher :
void IRAM_ATTR interrupt(rmt_channel_t channel, void *t) {
La modifier comme ci-dessous.
Code: [Sélectionner]
void IRAM_ATTR interrupt(rmt_channel_t channel, void *t) {
delayMicroseconds(22);
digitalWrite(25,1);
delayMicroseconds(412); // ___________---___________
digitalWrite(25,0);
RMTChannel *tt = channelHandle[channel];
if (tt) tt->RMTinterrupt();
if (channel == 0)
DCCTimer::updateMinimumFreeMemoryISR(0);
}
et dans le setup(), mettre la pin D25 en sortie :pinMode(25, OUTPUT);
L’introduction du CutOut dans la trame DCC se fait de manière matérielle avec un circuit TTL logique 7400 (4 portes Nand) , voir les photos en pièces jointes.
De cette façon le signal DCC original n’est pas altéré, que du contraire, il est temponné.
Placer des Delay dans une interruption, n’est pas très élégant, il est possible de les remplacer par des Timers.
Bien à vous.