Forum: Mikrocontroller und Digitale Elektronik Can einstieg


von ohne (Gast)


Lesenswert?

Guten Abend,
zu aller erst möchte ich mich für dieses Forum bedanken.
Ich interessiere mich seit längeren für Can Bus und habe daher Bücher 
besorgt und gelesen.
Nun möchte ich den Schritt wagen und selbst was mit dem Canbus anfangen.
Bis jetzt war bei allem was ich in der Mikrocontroller Welt getan habe 
ein Stück Code den ich ihr gefunden habe das Fundament! Dieses Fundament 
habe ich dann versucht zu verstehen und weiter gebaut!
Zum Thema Can finde ich nichts. Nun möchte ich in die Runde fragen ob 
jemand ein solches Fundament für mich hätte und es mir zur Verfügung 
stellt?
Habe die Lib von Kreativen Chaos versucht aber ich schaffe es nicht 
unter Atmel Studio7 einzubinden!
Als Hartware habe ich eine Platine mit at90can128 und einen PCAN-USB 
inklusive Software

Danke für die Hilfe

von Wolfgang (Gast)


Lesenswert?

ohne schrieb:
> Zum Thema Can finde ich nichts. Nun möchte ich in die Runde fragen ob
> jemand ein solches Fundament für mich hätte und es mir zur Verfügung
> stellt?

Such mal nach "Arduino MCP2515". Da findest du mehr als genug.

von Christian K. (christian_rx7) Benutzerseite


Lesenswert?

Der LPC11C24 ist sehr beliebt und es gibt im dazugehörigen LPCioen Paket 
Beispielcode für CAN (für das LPC11C24 LPCXpresso board passend).
Christian_RX7

von Erwin D. (Gast)


Lesenswert?

Christian K. schrieb:
> Der LPC11C24 ist sehr beliebt und es gibt im dazugehörigen LPCioen Paket
> Beispielcode für CAN (für das LPC11C24 LPCXpresso board passend).
> Christian_RX7

Das wird ihm bei seiner Hardware nicht viel nützen.

ohne schrieb:
> Als Hartware habe ich eine Platine mit at90can128 und einen PCAN-USB
> inklusive Software

Und für den AVR gibt es auch viele Möglichkeiten und Bibliotheken. Setze 
ich selbst ein, auch mit verschiedenen AVRs (AT90CAN128, ATmega88, 
ATmega2560...). Alles völlig problemlos. Da muß man nicht unbedingt auf 
einen anderen µC umsteigen.

Andererseits ist es auch nicht schlimm, wenn man verschiedene 
Plattformen kennen lernt :-)

von Rudolph R. (rudolph)


Lesenswert?

ohne schrieb:
> Zum Thema Can finde ich nichts.
> Als Hartware habe ich eine Platine mit at90can128

Dann such noch mal, unter "90CAN" findet sich hier so einiges.

von Hilfreich? (Gast)


Lesenswert?


von asdf (Gast)


Lesenswert?

Hilfreich? schrieb:
> http://www.kreatives-chaos.com/artikel/can

Ähmmm:
ohne schrieb:
> Habe die Lib von Kreativen Chaos versucht aber ich schaffe es nicht
> unter Atmel Studio7 einzubinden!

von Peter D. (peda)


Lesenswert?

Versuche nicht, irgendwelchen Code als großen unverstandenen Block zu 
übernehmen.

CAN ist ganz einfach gestrickt.
Zuerst muß man die Timings einstellen, d.h. die Bitzeiten. Da gibt es in 
der Regel fertige Beispiele im Datenblatt, die man einfach übernehmen 
kann.

Und dann stellt einfach der Sender ein Paket in ein MOB (Message Objekt) 
und warten auf den Interrupt, daß es gesendet wurde.

Der Empfänger initialisiert ein MOB mit dem Identifier, auf den er 
warten will, gibt es zum Empfang frei und wartet auf den Interrupt, daß 
was empfangen wurde. Dann liest er das empfangene Paket aus und macht 
was damit.

von ohne (Gast)


Lesenswert?

Peter D. schrieb:
> Versuche nicht, irgendwelchen Code als großen unverstandenen Block zu
> übernehmen.
>
> CAN ist ganz einfach gestrickt.
> Zuerst muß man die Timings einstellen, d.h. die Bitzeiten. Da gibt es in
> der Regel fertige Beispiele im Datenblatt, die man einfach übernehmen
> kann.
>
> Und dann stellt einfach der Sender ein Paket in ein MOB (Message Objekt)
> und warten auf den Interrupt, daß es gesendet wurde.
>
> Der Empfänger initialisiert ein MOB mit dem Identifier, auf den er
> warten will, gibt es zum Empfang frei und wartet auf den Interrupt, daß
> was empfangen wurde. Dann liest er das empfangene Paket aus und macht
> was damit.

So wie du es schreibst klingt das einfach!
Aber wenn ich mir das Datenblatt erscheint es mir doch recht 
umfangreich!
Ich war es bis jetzt immer gewohnt mit einem Beispiel zu starten!
Danke für deine Zusammenfassung und danke für deine Codes die du im 
Forum zu Verfügung gestellt hast und erklärt hast.

Erwin D. schrieb:
> Und für den AVR gibt es auch viele Möglichkeiten und Bibliotheken. Setze
> ich selbst ein, auch mit verschiedenen AVRs (AT90CAN128, ATmega88,
> ATmega2560...). Alles völlig problemlos. Da muß man nicht unbedingt auf
> einen anderen µC umsteigen.
Kannst Du mir die Quellen für den Avr nennen?
Lg

von Erwin D. (Gast)


Lesenswert?

ohne schrieb:
> Kannst Du mir die Quellen für den Avr nennen?

Die hast du doch schon. Ich meinte die Bibliothek von 
kreatives-chaos.com samt Beschreibung. Das funktioniert schon gut. Du 
mußt nur nach der Anleitung gehen. Ich kann nur grob sagen, daß du ein 
config-File editieren mußt, also auf deine Bedürfnisse anpassen. Die 
verwendeten Pins, den µC, gegebenenfalls die Pins vom MCP2515...
Dann mußt du eine Bibliothek erstellen (endet auf *.a). Die bindest du 
dann in dein Projekt ein. Steht aber alles gut beschrieben. Lies dir in 
aller Ruhe erstmal die Beschreibung durch, ok?

Erwin

von ohne (Gast)


Lesenswert?

Erwin D. schrieb:
> Dann mußt du eine Bibliothek erstellen (endet auf *.a). Die bindest du
> dann in dein Projekt ein. Steht aber alles gut beschrieben. Lies dir in
> aller Ruhe erstmal die Beschreibung durch, ok?

Habe die libcan.a erstellt aber schaffe es nicht in AtmelStudio7 
einzubinden das es kompiliert wird.
Lg

von Erwin D. (Gast)


Lesenswert?

ohne schrieb:
> Erwin D. schrieb:
>> Dann mußt du eine Bibliothek erstellen (endet auf *.a). Die bindest du
>> dann in dein Projekt ein. Steht aber alles gut beschrieben. Lies dir in
>> aller Ruhe erstmal die Beschreibung durch, ok?
>
> Habe die libcan.a erstellt aber schaffe es nicht in AtmelStudio7
> einzubinden das es kompiliert wird.
> Lg

Vielleicht liegt es daran, daß du bei Einbinden den vollen Namen 
angegeben hast? Das "lib" und das ".a" mußt du weglassen. Ist wohl eine 
Eigenart vom GCC. Also im Endeffekt bleibt dann beim Biblioteksnamen 
libcan.a ein "can" übrig, den du beim Linker eintragen mußt, ok?

von Peppi (Gast)


Lesenswert?

1.
Für den Atcan... Gibt es einen wizart. Gehe auf hpinfotech.ro und 
installiere die Evaluation Software. Mit Neu/project und der Zustimmung 
den Wizart zu verwenden kannst Du ohne das Datenblatt zu studieren den 
Canbaustein. Initialisieren. (Der Code wird mit "Generäle/Save und Exit" 
erstellt"

2.
Oder verwende den "arduino due" ist ein ARM 3 und läuft auf Arduino IDE.
Sogar unter github sind Beispiele für CAN.

von ohne (Gast)


Lesenswert?

Peppi schrieb:
> Für den Atcan... Gibt es einen wizart. Gehe auf hpinfotech.ro und
> installiere die Evaluation Software. Mit Neu/project und der Zustimmung
> den Wizart zu verwenden kannst Du ohne das Datenblatt zu studieren den
> Canbaustein. Initialisieren. (Der Code wird mit "Generäle/Save und Exit"
> erstellt"

Danke werde den +Tipp ausprobieren!
Mal sehen ob ich es hinbekomme!

von ohne (Gast)


Lesenswert?

Peppi schrieb:
> Mit Neu/project und der Zustimmung
> den Wizart zu verwenden kannst Du ohne das Datenblatt zu studieren den
> Canbaustein. Initialisieren. (Der Code wird mit "Generäle/Save und Exit"
> erstellt"

So einfach ist es auch wieder nicht:-(

von ohne (Gast)


Lesenswert?

Habe einige schwierig keiten hat jemand ein einfaches Programm indem die 
Konfiguration und die Interrupt Empfangsseite gemacht ist?

Danke und Lg

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.