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


von Maus (Gast)


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.

von Hans J. (hjm)


Lesenswert?

Hallo Maus,

schau z.B. mal hier: 
http://www.chip45.com/index.pl?page=Crumb128-CAN_Downloads&lang=de

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

von Patrick (Gast)


Lesenswert?


von Maus (Gast)


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?

von Hans J. (hjm)


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

von Andreas K. (a-k)


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.

von Andreas K. (a-k)


Lesenswert?


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.