Forum: Digitale Signalverarbeitung / DSP / Machine Learning CAN-Bus Selftest Mode. Problem mit Senden


von Marodeur (Gast)


Lesenswert?

Moinmoin

Ich arbeite mich grad in die CAN-Kommunikation mit dem TMS320LF ein.
Und da dachte ich mir wenn ich mit dem self-test-mode anfange brauch ich 
erstmal keinen Bus und zweiten Controller und hab damit ne Fehlerquelle 
weniger.
Ich habe die Mailboxes konfiguriert (zu sendende Daten geschrieben, 
Acceptance Mask gesetzt (es soll ALLES akzeptiert werden), Selftest-Mode 
aktiviert, Mailboxes aktiviert usw.). Wenn ich dann allerdings das 
betreffende TRS-Bit im TCR setze wird das Bit gesetzt und das wars dann.
Eigentlich sollte ab da ja der Controller versenden und irgendwann nen 
Acknowledge setzen.
Aber es passiert halt einfach nichts weiter.
Hat irgendwer ne Idee was ich falsch machen könnte?

von Christian W. (chrisw84)


Lesenswert?

Hi Marodeur,
hast du das Problem gelöst?
Wie sieht es mit dem MSGID aus?
Kenne die DSP explizit nicht, aber einen ähnlichen.
Bist du dir sicher die richtige Mailbox zu verwenden?
Es können nicht alle Mailboxes als trans bzw. receive mailboxes 
verwendet werden.


Viele Grüße

von Marodeur (Gast)


Lesenswert?

Leider hab ich das Problem bisher nicht lösen können.

Ich verwende die richtige Mailbox (im Augenblick Mailbox 4).
Diese ist enabled (MDR = 1.0001) Mailbox 0 soll als receive-Mailbox 
fungieren.
Die Local-Acceptance-Mask für Mailbox 0 ist auf alle Nachrichten 
annehmen gestellt (LAM0_H = 1001111111111111, LAM0_L = 
1111111111111111).
MCR = 10.0110.1100.0000
(da hat ja bis auf selftest-Mode aktiv erstmal nichts eine Auswirkung 
aufs Senden, oder?)
BRC2=1 (Prescaler von 1)
BCR1=1.0101.0111 (aus nem Beispiel übernommen)
bit 10 SBG = 0 => Synchronization on falling edge
bit 8-9 SJW = 10 => Synchronization jump width
bit 7 SAM = 0 => CAN module samples only once
bit 3-6 TSEG1 = 1010
bit 0-2 TSEG2 = 111
TCR = 100.0000 (Transmission request set Mailbox 4)
MSGID4L/H ist 1111111111111111.
MSGCTRL ist 8 (die Länge der Daten halt)
Im ESR steht 100.0000 (also kein Fehler aufgetreten)

Rein theoretisch ist also alles vorhanden.
Obwohl laut Datenblatt kein Bus angeschlossen sein muss sind auch die 
entsprechenden PINs auf CAN-Mode gestellt.
An dieser Stelle passiert allerdings nichts mehr.

von Marodeur (Gast)


Lesenswert?

Ich hab das Problem gefunden...
Das ist etwas peinlich, da ich mich allerdings mit der ganzen Thematik 
nicht auskenne wohl verzeilich.
Ich habe auf dem Board das mir zur Verfügung gestellt wurde keinen 
CAN-Transceiver...
Und ohne den funktioniert keine Kommunikation.
Für den Selbsttest-Modus reicht allerdings eine Drahtbrücke zwischen den 
beiden PINs...

Und wegen so einer Kleinigkeit verlier ich diverse Stunden...

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.