2016-08-03 2 views
0

Je suis confronté à un problème de communication de bus CAN dont je ne connais pas la raison. J'ai MCP2515 comme une interface SPI-> CAN connecté au MCP2551 (dans le passé) et maintenant le HVD256 de la TI.MCP2515 & ATMEGA328 SPI particularité

Actuellement, les composants sont connectés comme décrit dans le schéma. SCK, MOSI, MISO et CAN-CS sont connectés aux broches appropriées de l'AVR.

schematic + oscilloscope screenshots

Le problème réside dans le fait que la communication peut parfois fonctionner et ne parfois pas alors que ce dernier prévaut de manière significative. Parfois, je n'obtiens même pas de réponse du MCP2515 alors que le signal MISO (vert) ressemble à celui de l'écran de l'oscilloscope gauche.

On m'a même recommandé d'essayer d'utiliser des tirettes ou des pull-ups sur la ligne MISO (ce que je n'ai jamais rencontré auparavant); alors le signal est sur la droite.

Une idée de ce qui pourrait arriver? Il y a aussi un problème secondaire - dans les rares cas où le MCP2515 communique bien sur le SPI, le contenu de tous les registres a du sens, il n'y a pas de signal/données sur la broche TX qui sort vers le MCP2551 (ou HVD256). La sortie est soit 0V ou + 5V mais pas de données.

Un grand merci pour tous les indices !!

-blume-

Répondre

0

Avez-vous des résistances entre CanLo/CanHigh sur la ligne? Il devrait être là au moins à une extrémité de la ligne. Voir ici: SN65HVD256 with MCU example schematics

Pour autant que je sache, les pull-down sont censés être là par la spécification. Résistance de 120 Ohms est un nominal commun, je suppose.

+0

Bien sûr que oui. Il y en a un dans le lecteur USB2CAN qui relie mon PC et un autre à la fin du bus sur l'appareil. Le CAN fonctionne vraiment bien maintenant, juste les niveaux de tension sur le SPI entre le microcontrôleur et le MCP2515 sont bizarres .. Mais quand même, si ça fonctionne, ne veux pas être surpris une fois qu'il est sorti du laboratoire .. – Blume