Forum: Mikrocontroller und Digitale Elektronik LPC2294 Probleme mit Ausgabe auf CAN Bus


von Bernd Bubble (Gast)


Lesenswert?

Hallo nochmal,

benutze das Olimex-Board mit LPC2294.
Möchte über den CAN1-Controller Signale ausgeben, dies geschieht auf dem 
festen PIN TD1.

Leider kommt dort (=Prozessorpin = vor dem CAN-Treiberbaustein) 
irgendwie nichts an. Bei debuggen mit uVision3 von Keil fällt mir jedoch 
auf, dass ich im Code das Command Register CANCMR auf den Wert 0x01 
setze und damit eine transmission request erzeuge, dieses aber nicht 
umgesetzt wird, im Memory MAP bleibt an der entsprechenden Adresse 
0xE0044004 stur ein 0x00 stehen.

Im Datenblatt steht, dass das Register ein Write/Only ist??!! Heisst 
das, das hier mit nichts anderem als einer 0x00 zu rechnen ist?

Vielleicht gibt es hier im Forum einen 2294er Spezialisten, der mir 
helfen kann..ansonsten nehme ich demnächst nen Hammer, der hilft 
immer...


Grüße,
Bernd

von (prx) A. K. (prx)


Lesenswert?

Die LPC2119/2129 sind aus der gleichen Typenreihe (2xCAN statt 4xCAN) 
und dort funktioniert CAN1 nachweislich.

von Bernd Bubble (Gast)


Lesenswert?

Ich habe ja nicht gesagt, dass es prinzipiell nicht geht?
Ich glaube schon, dass alle 4 CAN-Controller gehen...auch die 2 auf dem 
LPC2119..

Wie gesagt ich wundere mich nur, warum nichts auf dem BUS liegt und sich 
das CMR-Register nicht umschreiben lässt...

von (prx) A. K. (prx)


Lesenswert?

Write-Only würde ich so interpretieren, dass man den Inhalt nicht 
auslesen kann.

Schau mal in die Error-Counter.

Hängt jemand im Bus? Ein CAN-Bus funktioniert nur, wenn mindestens eine 
weitere Station funktionsfähig ist und den Frame quittiert (tut sie auch 
wenn dadurch nicht adressiert). Sonst gibt es beim Versuch zu senden 
eine Ladung Fehler und anschliessend meldet sich die sendende Station 
ab. Sieht man am erwähnten Error-Counter.

von Bernd Bubble (Gast)


Lesenswert?

Wie gesagt, schon der Transmit-Pin am Prozessor sprich vor dem 
CAN-Umsetzer liefert nichts ab. Ich schau mal in den Error-Counter...

von (prx) A. K. (prx)


Lesenswert?

Wenn zu keinem Zeitpunkt ab dem Einschalten des Controllers jemals etwas 
auf TD1 auftaucht, dann ist das CAN falsch konfiguriert.

von (prx) A. K. (prx)


Lesenswert?

Bernd Bubble schrieb:

> auf, dass ich im Code das Command Register CANCMR auf den Wert 0x01
> setze und damit eine transmission request erzeuge

Könnte nützlich sein, wenn er mitkriegt auf welchen transmit buffer das 
gemünzt ist.

Dass dieses Register beim Lesen 0 liefert steht ausdrücklich im Manual.

von Bernd Bubble (Gast)


Lesenswert?

Du hast recht, so steht es im Manual! Liefert nur 0...

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.