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
Die LPC2119/2129 sind aus der gleichen Typenreihe (2xCAN statt 4xCAN) und dort funktioniert CAN1 nachweislich.
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...
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.
Wie gesagt, schon der Transmit-Pin am Prozessor sprich vor dem CAN-Umsetzer liefert nichts ab. Ich schau mal in den Error-Counter...
Wenn zu keinem Zeitpunkt ab dem Einschalten des Controllers jemals etwas auf TD1 auftaucht, dann ist das CAN falsch konfiguriert.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.