www.mikrocontroller.net

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


Autor: Bernd Bubble (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

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

Autor: Bernd Bubble (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernd Bubble (Gast)
Datum:

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

Autor: A. K. (prx)
Datum:

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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernd Bubble (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.