mikrocontroller.net

Forum: Haus & Smart Home Einfaches Beispiel in C zur CAN-Programmierung


Autor: Maus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich möchte demnächst meine erste Schaltung mit einem AVR nach den 
Tutorial hier aufbauen. Zusätzlich brauche ich einen CAN-Anschluss.

Hat jemand vielleicht schon einmal sowas für sich zum testen gemacht? 
(Ich bräuchte Schaltplan und Programm)

AVR durch Quarzoszillator getaktet, einen Eingang mit Taster.

Wenn der Eingang kommt, soll folgende CAN-Message gesendet werden:
ID: 520 | Length: 1 | Data[0]: 168

Beim Abfallen des Signals soll in Data[0]=255 stehen.

Ich weiss es ist für euch vielleicht sehr simpel aber ich bin 
Anfänger... Habe heute schon einmal im Forum geschaut, bin aber nicht 
klargekommen wie nun eigentlich eine Message über den BUS gesendet wird 
und Wo ich CAN_H und CAN_L schschließe (ich habe etwas von einem 
Transreciever gehört) Ich kenne aus meinen bisherigen Programmen nur, 
dass ich ID, Len und Data übertragen muss.

Vielleicht kann mir ja jemand helfen.

Autor: Hans Josef (hjm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Maus,

schau z.B. mal hier: 
http://www.chip45.com/index.pl?page=Crumb128-CAN_D...

Da gibts ein Board mit AT90CAN128 und auch die entsprechenden 
Code-Beispiele dazu.

Dies sollte sich leicht auf Deine einfache Anwendung ändern lassen.

Wenn Du Dich für eine Hardware entschieden hast, poste noch einmal dann 
kann man Dir auch weiterhelfen bzgl. der Programmierung.

Grüße
Hans-Josef

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier gibt es auch Beispiele und eine Library direkt von Atmel:

http://www.atmel.com/dyn/general/advanced_search_r...

Autor: Maus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hans Josef,

Du sagtest, wenn ich mich für eine Hardware entschieden habe... Das 
weiss ich nicht was ich nehme. Ist mir eigentlich egal, soll ja nur 
erstmal zum testen sein. Wie wäre ein AT90CAN?

Autor: Hans Josef (hjm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die AT90CANxxx kann man wohl nicht mehr mit einem Lötkolben löten. Daher 
ist es einfacher ein fertiges Board wie z.B. die Crumb128CAN-Variante 
von Chip45 zu nutzen. Dieses Board setzt Du auf eine Lochrasterplatine 
ergänzt noch den PCA82C250, sowie eine Spannungsversorgung und schon 
kanns losgehen. (Hier gibts ein USB-Interface noch mit dazu)

Du kannst natürlich auch ein einfaches Board mit einem kleineren ATMega 
nutzen und dieses mittels CAN-Baustein (z.B. SJA1000) und Transeiver 
erweitern. Geht auch, ist aber mehr Aufwand.

Letzte Möglichkeit eigenes Board routen, Ätzen, bohren und bestücken....

Wenn Du Deinen finanziellen Rahmen und Zeitrahmen festgelegt hast, 
kannst Du unter den Alternativen wählen.

Grüße
Hans-Josef

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für solchen Kleinkram tut es jeder Microcontroller, dem man einen 
MCP2515 (18pin) als CAN-Controller dranpappt. Kategorie Mega8 oder so. 
Viel billiger als QFPs und zumal für den Anfang einfacher.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.