Forum: Mikrocontroller und Digitale Elektronik Braucht der MCP2515 Pausen?


von Alex A. (Gast)


Lesenswert?

Hallo.
Ich arbeite gerade mit einem Atmega32 (16Mhz) und dem MCP2515 (16Mhz), 
der per SPI angeschlossen ist.

Meine Frage ist, ob der Can-Controller irgendwo beim Operieren Pausen 
braucht?

Vielleicht weiss das Jemand, bzw. schon ausprobiert hat.

Die Pause beim Initialiesieren nach dem Software-Reset kann ich ihm 
gerne geben, damit der Quarz anschwingen kann.

Danach will ich aber Gas geben, und insbesondere beim Register 
lesen/schreiben möchte ich keine waitus/ms, delays oder Sonstiges haben.

Klar, kann ich das ausprobieren, aber falls es zu den 
Übertragungsfehlern kommt, merkt man diese evtl. nicht sofort, und sich 
nachher bei der Fehlersuche den Po aufreisst.

Also, hat das Jemand schon probiert, bzw. weisst das GENAU bescheid?

Konnte im Datenblatt keine Infos dazu finden.

Danke
Gruss Alex S.

von (prx) A. K. (prx)


Lesenswert?

Ich habe den MCP2515 verwendet und mir ist nichts dergleichen bekannt. 
Gibt es einen konkreten Anlass für diese Frage, wie etwa "Es tut nicht 
und mir fällt sonst nichts mehr ein"?

von Alex A. (Gast)


Lesenswert?

Nein, es gibt keinen Anlass.
Als ich damit angefangen habe, bin ich auf die Codes von den Anderen 
zurückgegriffen, weil ich keine Lust hatte (oder nicht konnte) alles von 
vorne selbst anzufangen.
Und in den Subroutinen zum Lesen/Schreiben sind teilweise Pausen drin.

Den Code habe ich mittlerweile komplett verstanden, und auch auf meine 
Bedürfnisse geändert, aber die Subroutinen habe ich unangetastet 
gelassen, da es kein Bedarf war, diese die ändern.

Gruss Alex

von cskulkw (Gast)


Lesenswert?

Naja, genau genommen gibt es schon Betriebsanforderungen, wo man warten 
sollte.

Wenn Du versucht über Ein-Byte-Befehle zwei Nachrichten mit 
unterschiedlichen IDs über ein und die selbst Sendemesseagebox zu 
senden, dann läßt sich die erste Nachricht laden und absenden. Wenn Du 
jetzt aber sofort versuchst die gleiche Sendemessagebox mit anderen 
Werten (insbesondere einer anderen ID) zu beschreiben, während diese 
Messagebox sich noch im Sendemodus befindet, dann sind die Register 
schreibgeschützt. Mit SPI kann man schneller die Register beschreiben, 
als der Controller deren Inhalt dann sendet.

An diesem Problem hatte ich eine Zeit lang gesessen, bis ich es 
herausgefunden hatte.

Da habe ich dann eine Abfrage des Sendestautus mit eingebaut. Jetzt 
läuft es gut.

Andererseits habe ich keine Probleme mit Waits, weil mein Treiber im 
Idle-Modus läuft und eine Zustandsmaschine hat.

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.