mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik HC12 CAN Programmierung


Autor: Tobias Hauser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein HC12 Board von elektronikladen.de
nun würde ich gerne die CAN Schnittstelle in C programmieren.
Bisher hab ich ein paar CAN Anwendungen am PC programmiert
und würde einfach mal gerne probieren wie das am Mikocontroller läuft.
Hat jemand ein Beispiel, in dem man sehen kann wie man

- die Bitrate setzen kann
- 8 Bytes auf einem bestimmten Identifier sendet
- 8 Bytes und den Identifier lesen kann

oder hat jemand Dokumente darüber?

Ich habe das "Card12" Board mit MC912D60

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, wir haben damals den CAN-Stack gekauft - von Vector-Informatik. Die
Software ist recht komplex. Bisher ist mir auch an anderer Stelle nur
Industriesoftware in die Hände gefallen die ich nicht rausrücken oder
anderweitig nutzen darf.  Ich suche daher auch nach etwas einfacherem-
wenn Du was findets, wäre ich dankbar.

Autor: Tobias Hauser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab im Geschäft auch eine Vector CAN Karte mit CANalyzer nun
möchte ich halt für den "Heimgebrauch" zum etwas spielen eine kleine
CAN Kommunikation mit dem HC12 und einer Peak PCAN USB Karte aufbauen.
Was ich damit mache weiß ich noch nicht, im Moment will ich einfach
nur eine CAN Botschaft vom HC12 an die Peak Karte schicken und das
im CAN Monitor sehen ;)

Hier hab ich einen Source gefunden, der relativ gut passen würde,
leider ist das ganze in Assembler und nicht in C programmiert :(
http://elmicro.com/files/canchat.zip

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CANalyzer habe ich nicht privat und Peak PCAN USB sagt mir six. Das
Assemblerprogramm ist klein genug um es in C zu reversen und neu zu
backen. Must Dir halt Die Doku für dies Karte besoergen, um
rauszufinden, welcher Port auf dieser Karte WAS genau macht.

Ich kenne nun den HC12 nicht so gut, hatte es mit mit den x08-tern-
könnte es sein, daß das derselbe CAn-Controller ist? Eigentlich müsste
es doch seitens Motorola (inz. freescale) etwas doku geben, oder ?

Autor: Tobias Hauser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab nun den Assembler Code zum laufen bekommen :)
nun muss ich das ganze nur noch nach C portieren. Wenn ich weiter
gekommen bin dann melde ich mich.

Peak PCAN USB ich ein USB to CAN Adapter auf Basis eines SJA1000
ist um einiges billiger wie eine Vector Karte, daher hab ich mir
das für zuhause gekauft. Kann jedoch leider keine Wakeup Frames
erzeugen.

Autor: Tobias Hauser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich hab nun versucht das ganze in C zu konvertieren, leider
klappt das ganze nicht.

Ich hab das ganze so übersetzt:

-------------------------------------------------
movb  #$01,CMCR0 --> CMCR0 = 0x01;
-------------------------------------------------
clr  CMCR1 --> CMCR1 = 0x00;
-------------------------------------------------
movb  #2,Tx0+$0C -->

#define Tx0    _P(0x0150)
#define DLC    _P(0x0150 + 0x0C)
DLC = 0x1;
-------------------------------------------------
Sloop  brclr  CTFLG,$01,Sloop
  staa  Tx0+4
  movb  #$01,CTFLG
-->
      #define CANTransmit  _P(0x0150 + 0x04)

  CTFLG = 0x00;
  wait(30000);
  CANTransmit = 0xAA;
  CTFLG = 0x01;

-------------------------------------------------

die Zeile: Sloop  brclr  CTFLG,$01,Sloop
ist natürlich noch nicht optimal übersetzt, sollte so doch aber
funktionieren oder? Sieht jemand den Fehler?

Autor: Tobias Hauser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum auch immer: es klappt ;)

ich hab nochmal alles neu übersetzt und ein paar sachen entfernt.
Ich fasse nun alles in ein paar Routinen zusammen und wenn gewünscht
dann kann ich das natürlich hier posten.

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.