Forum: Mikrocontroller und Digitale Elektronik uC funktioniert erst nach reset


von Matthias G. (hugo1986)


Lesenswert?

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?

von muh (Gast)


Lesenswert?

fehlerhafte initialisierung?
bus blockade?

von Helfer (Gast)


Lesenswert?

µC und mcp2515 kommen unterschiedlich schnell aus dem Power-Up hoch und 
Timing gerät ausser Kontrolle?

von Michael U. (amiga)


Lesenswert?

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

von Matthias G. (hugo1986)


Lesenswert?

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?

von Helfer (Gast)


Lesenswert?

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...

von Matthias G. (hugo1986)


Lesenswert?

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.

von Helfer (Gast)


Lesenswert?

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)

von Matthias G. (hugo1986)


Lesenswert?

Ja. Die Situation hab ich. Aber ist da was falsch dran?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.