Forum: Mikrocontroller und Digitale Elektronik ATMega16M1 CAN Übertragung abbrechen / neues Telegram senden?


von Thomas (kosmos)


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

von Rudolph R. (rudolph)


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.

von Thomas (kosmos)


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?

von Peter D. (peda)


Lesenswert?

Ohne 2. Teilnehmer funktioniert der CAN-Bus nicht, Punkt.
Du kannst das CAN disablen, dann sollten die Sendeversuche aufhören.

von Thomas (kosmos)


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.

: Bearbeitet durch User
von Rudolph (Gast)


Lesenswert?

Thomas O. schrieb:
>>> ich arbeite ohne Mobs
>>
>> Sorry, aber das möchte ich mal sehen.
>
> Welche Register interessieren dich dazu?

Welche auch immer Du benötigst, um ohne Message-Objekt was zu senden.

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.