Guten Tag. Habe folgendes Problem und hoff irgendjemand kann mir weiterhelfen. Ich habe 2 uC´s über CAN miteinander verbunden. D.h. mega32 -> mcp2515 -> mcp2551 und umgekehrt. Wenn ich nun die Stromversorgung einschalte passiert erstmal gar nichts. Nachdem ich nun an beiden Controllern den Reset betätige, klappt die Kommunikation einwandfrei. Jemand ne Ahnung was das sein könnte?
Gast
#2117844
fehlerhafte initialisierung? bus blockade?
Gast
#2117848
µC und mcp2515 kommen unterschiedlich schnell aus dem Power-Up hoch und Timing gerät ausser Kontrolle?
Hallo, Wartezeiten für Peripherie-ICs zu kurz für deren PowerOn-Reset bevor die Initialisierung durch den µC startet. Ist zumindest die Art Fehler, die ich mir gern einbaue (und inzwischen schnell behebe...). Wenn die Startzeit nach PowerOn unkritisch ist, warte ich meist generell mehrere 100ms in einer Warteschleife. Gruß aus Berlin Michael
Vielleicht ne blöde Frage, aber nach dem einschalten müsste der uC doch ab der main() beginnen, oder? Dann muss ich also als erste Anweisung eine Verzögerung einbauen. Ist das richtig?
Gast
#2118081
Ja so ist das gemeint. Durch den Versuch kannst du ja nichts kaputt
machen.
Dem Hinweis von muh
> bus blockade?
könntest du auch noch nach gehen. Wie balowern die beiden µC aus, wer
was auf dem Bus macht - wer lauscht und wer tönt und wie lange
jeweils...
In meinem Programm wird zuerst die SPI Schnittstelle (als Master), danach der mcp2515 initialisiert. Dies geschieht auf beiden Controllern genau gleich. Was meinst du mit ausbalowern? Das Bit-Timing? Hab vor dem initialisieren mal 1000ms abgewartet. leider keine Besserung.
Gast
#2118875
Sorry, ich habe nicht in den Programmcode oder das Datenblatt des MCP2515 geschaut. Ich war der Meinung dass du zwischen den µCs eine Master-Slave Situation aufbaust. Mit dem CAN Controller MCP2515 hast du aber folgende Situation: µC (Master) -SPI- MCP2515 (Slave) -CAN- MCP2515 (Slave) -SPI- µC (Master)
Ja. Die Situation hab ich. Aber ist da was falsch dran?
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.