Bonjour,
J'ai commencé à étudier le bus CAN au travers des articles de Locoduino et du forum (encore bravo); j'aurais quelques questions à poser à propos du schéma de câblage du breakout du CAN bus présenté un peu plus haut dans ce fil (cf. l' intervention de Jean-Luc du 23 janvier, dans [2]). Ces interrogations sont simplement formulées pour m'éviter doutes et tâtonnements. Elles seront peut-être utiles à d'autres et permettront de nous assurer que notre compréhension est correcte. Malgré l'excellente clarté des explications, il peut se faire que je comprenne de travers.
En l'étudiant, il semblerait que le schéma puisse être beaucoup simplifié, en ne câblant pas ce qui n'est, en réalité, pas utilisé, et sans perdre la flexibilité pour le couplage, au choix, à des Arduino Uno ou à des Due.
Par exemple, tout ce qui concerne le Reset physique semble inutile puisqu'on se charge de le faire par logiciel avec une commande SPI, quand c'est nécessaire. Sur un montage définitif, le bouton-poussoir ne sera même pas accessible...
On peut donc omettre : bouton-poussoir, pont de résistances, diode. Et dans ces conditions, même la borne 6 (Reset) du bornier K3 est superflue. K3 peut donc se limiter à cinq contacts.
Par ailleurs, il y a toutes les pins de IC1 qui ne sont pas du tout utilisées dans la façon présentée d'utiliser les composants CAN (tous les TXiRTS ou RXiBF, pin 4 à 6 et 10-11 de IC1), ainsi que SOF (pin 3). Il s'ensuit que le bornier K5 tout entier peut-être omis. A moins que cela présente un intérêt pour tester le fonctionnement du montage à l'oscillo (certaines pins sont des signaux d'interruptions)? Sur un proto, peut-être cela présente-t-il un intérêt, mais est-ce utile sur un montage de 'série'?
L'examen de la bibliothèque CAN proposée pour le Uno ne montre même pas de possibilités d'utiliser les fonctionnalités de ces 'registres' TXiRTS ou RXiBF autrement que par logiciel au travers du bus SPI. Je n'ai pas encore vérifié dans le cas Due.
Est-ce une compréhension correcte du montage proposé? Et le breakout ainsi simplifié fonctionnera-t-il de façon satisfaisante?
Enfin, dans la même intervention de Jean-Luc, l'usage des straps est défini.
L'usage du premier cité (S2 entre GND et Rx) ne me paraît pas totalement clair.
Si c'est pour utilisation avec un Due, on utilise les pins 2 et 3 de K4 pour piloter directement le transceiver CAN MCP2551 (le 2515 ne sert pas du tout) avec les Tx, Rx qui existent spécifiquement sur le Due pour piloter un CAN. Dans ce cas, il faut omettre le strap S2 de façon à atténuer la réception Rx en 5V sur le MCP2551 pour l'adapter au 3,3V du Due grâce à un pont diviseur ?
Si c'est pour utilisation avec un Uno (5V), cette atténuation n'est au contraire pas souhaitable, donc il faut shunter le strap dans ce cas. De toutes façons, avec un Uno, on n'utilise pas ce canal direct pour piloter le MCP2551, puisqu'on passe par les pin Tx Rx du contrôleur MCP2515, lui-même relié au bus SPI du Uno. Les bornes 2 et 3 de K4 sont 'à vide' dans ce cas. Je me demande même si la résistance de tirage ainsi introduite entre Rx et GND (R4= 18kOhm ) est nécessaire avec le Uno; elle va jouer sur l'entrée Rx du 2551. Elle ne semble pas nuisible puisque les tests montrent un fonctionnement correct, mais est-elle utile? Dans ce cas ne pourrait-on mettre le strap en série avec R5? Et on ne shunterait le strap, ainsi disposé, que pour l'utilisation avec un Due?
Est-ce une évolution correcte?
D'avance merci et encore bravo pour cette initiation au CAN.