ATMega16M1 CAN Übertragung abbrechen / neues Telegram senden?

OP #4948790
Lesenswert?

Hallo,

ich bin gerade dabei mit einem CAN Knoten eine Nachricht zu verschicken, 
was auch alles funktioniert, mangels weiterer Teilnehmer wird die 
Nachricht endlos wiederholt was auch normal ist. Ich werte noch keine 
Fehler aus um das zu stoppen.

Habe nun aber folgendes Problem ich arbeite ohne Mobs und dachte das so 
auch kein Buffer existiert, einfach neue Daten übergeben und diese 
werden versenden. Was leider nicht so ist. Wie stoppt man die aktuelle 
Übertragung?

Ich bediene eine Taste (wird korrekt entprellt und gebe die Daten an den 
CAN Controller der das versendet. Nun wird die Taste nochmals gedrückt 
und es soll eine andere Nachricht verschickt werden, leider passiert 
nichts. Ich vermute das hier erst auf ein ACK für das erste Telegram 
gewartet wird. bevor die 2te Nachricht auf den Bus gelangt.

Ich habe einige Punkte gefunden die dafür in Frage kommen könnten 
vielleicht weiß ja jemand wie es gemacht wird.

1. Abort Request Bit im CANGCON-Register
2. ENA/STB: Enable / Standby Mode Bit ebenfalls im CANGCON Register 
wodurch beim wiedereinschalten ja die gleiche Nachricht wieder erscheint
3. NONMOB1:0 auf 00 disable
#4949340
Lesenswert?

Thomas O. schrieb:
> Ich bediene eine Taste (wird korrekt entprellt und gebe die Daten an den
> CAN Controller der das versendet. Nun wird die Taste nochmals gedrückt
> und es soll eine andere Nachricht verschickt werden, leider passiert
> nichts. Ich vermute das hier erst auf ein ACK für das erste Telegram
> gewartet wird. bevor die 2te Nachricht auf den Bus gelangt.

Häng doch einfach eine zweite Node mit an den Bus und fertig?
Am Ende wird die Taste auch nicht alle paar hundert µs bestätigt werden.

Thomas O. schrieb:
> ich arbeite ohne Mobs

Sorry, aber das möchte ich mal sehen.
Mindestens einer zum Senden und einer zum Epfangen sollte es schon sein.
OP #4949370
Lesenswert?

Rudolph R. schrieb:
> Sorry, aber das möchte ich mal sehen.

Welche Register interessieren dich dazu?

Es muss doch trotzdem eine Möglichkeit geben eine Übertragung 
abzubrechen? Aber wenn man den CANTroller ausschaltet und wieder 
einschaltet setzt er die Übertragung einfach wieder fort.

Ok dann muss ich mal den 2ten Node mit Minimalkonfiguration aufsetzen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren