Discussions Générales > Bus CAN

Bus CAN avec DCCpp

(1/3) > >>

Tony04:
Bonjour à tous,

j'essaye depuis plusieurs heures d'intégrer les routines du bus CAN dans le NANO qui fabrique le signal DCC avec la bibliothèque DCCpp.

Il se trouve que les bits 10 et 11 du NANO sont utilisés pour la communication avec la carte CAN mais sont également nécessaires pour le DIR du booster MAIN et le PWM du booster PROG. J'ai essayé d'attribuer la pin 6 ou 9 (libres chez moi) à DCC_SIGNAL_PIN_MAIN dans Config.h mais dés la mise sous tension avec <1>, ma machine file à fond sans contrôle possible.
Je suppose que c'est une question de timer lié à ces pins...

J'utilise un LMD18200  et j'ai mis dans le setup:

--- Code: ---  DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0);
  DCCpp::beginProg(UNDEFINED_PIN, DCC_SIGNAL_PIN_PROG, 5, A1);

--- Fin du code ---


Y aurait-il une âme charitable pour me donner la solution ?

Bonne journée à vous
Antoine

Thierry:
Tu n'as pas besoin de toucher aux différents fichiers .h . Pour utiliser la broche 1, il suffit de le dire dans le beginMain :


--- Code: --- DCCpp::beginMain(UNDEFINED_PIN, 1, 3, A0);
--- Fin du code ---

Cela dit, sur un Nano les broches 10 et 5 sont utilisables pour les timers, ce qui n'est pas le cas des autres. Et le timer est obligatoire pour le DCC. Donc, pas de 10 ou de 5, pas de DCC !

Tony04:
Bonjour Thierry,


--- Citation de: Thierry le juillet 25, 2018, 11:25:11 pm ---Cela dit, sur un Nano les broches 10 et 5 sont utilisables pour les timers, ce qui n'est pas le cas des autres. Et le timer est obligatoire pour le DCC. Donc, pas de 10 ou de 5, pas de DCC !

--- Fin de citation ---

C'est bien ce que j'ai cru comprendre, adieu donc le bus CAN et le DCC sur le même NANO. Du coup pour communiquer entre les deux je vais utiliser la liaison série.

Merci Thierry pour tes explications et bonne journée

Cordialement
Antoine

Jean-Luc:
Bonjour,

Si j'ai bien compris, DCCpp utilise la PWM engendrée par le TIMER 1 sur la pin 10 (OC1B) pour le signal DCC. Il pourrait très bien faire la même chose sur la pin 9 (moyennant une modification de DCCpp) et libérer ainsi le SPI. Pour rappel il n'est pas obligatoire que la pin 9 (CS) soit employée comme chip select pour le SPI. Elle doit juste être programmée en sortie pour que le SPI soit en mode maître.

Tony04:
Bonjour Jean-Luc,

merci pour ta réponse; je peux toujours faire l'essai pour libérer la pin 10 mais le problème est le même pour la pin 11 pour la voie de programmation que j'aimerais quand même garder, et là pas question d'utiliser la pin 3 à la place (également timer2).
Mais j'essaie quand même pour la pin 10.

à plus tard donc...

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique