Forum: Mikrocontroller und Digitale Elektronik Welchen Mikrocontroller CAN-Bus


von Thomas (Gast)


Lesenswert?

Hallo,

welchen Mikrocontroller mit Kommunikationsmöglichkeit über CAN-Bus könnt 
ihr mir empfehlen.

Über die Suche bin ich auf zwei Atmel-Mikrocontroller gestoßen.
Was benötige ich an Hard- bzw. Softeware ?
Gibt es ein Starterkit ?


Ich habe vor 10 Jahren im Studium leider nur das Arbeiten mit dem MSP430 
erlernt und da leider auch schon einiges vergessen.


Vielen Dank.

von Thomas L. (ics1702)


Lesenswert?

stm32f103 oder grösser. Die haben Can, bekommst du bei Reichelt.
Ansonsten geht es auch irgend ein MC und dann einen Cancontroller dazu 
wie den mcp2515
Dazu noch einen can transeiver wie mcp2551

schau mal hier
http://www.mikrocontroller.net/articles/CAN

von Alex S. (thor368)


Lesenswert?

Tach Thomas,

was ist den die Aufgabe? Es gibt aus jeder aktuellen µC Serie einige, 
die einen CAN controller onboard haben. An weiter hardware brauchst du 
nicht viel mehr als einen CAN transceiver.

Thor

von Thomas (Gast)


Lesenswert?

Danke für die schnellen Antworten.

Ich möchte Nachrichten auf dem CAN-Bus empfangen und evtl. auch senden.

Werde im Frühjahr meinen Job wechseln und möchte mich im Vorfeld mit der 
Thematik beschäftigen.

Mir fehlt noch das grundlegende Verständnis wie der 
Anschluß/Kommunikation vom MC zum CAN-transceiver stattfindet.

Gibt es verständliche Bücher/Quellen zu dieser Thematik ?
Oder noch besser ein Starterkit wo ich mich nach und nach wieder 
einarbeiten kann ?


Danke.

von Alex S. (thor368)


Lesenswert?

Der CAN transceiver ist bloß ein etwas intelligenter Pegelwandler. Schau 
dir die Datenblätter an und gut ist.

Thor

von Tach (Gast)


Lesenswert?

Lpc11c-Serie hat glaube ich schon alles an Board.
Also CAN Controller und Tranceiver!
Schau mal ob es für die Reihe auch ein LPCXpresso gibt.

von H.Joachim S. (crazyhorse)


Lesenswert?

Schon etwas älter - aber in den CAN-Grundlagen natürlich immer noch 
aktuell:
Wolfgang Lawrenz - CAN Controller Area Network
Soweit ich weiss, neu nicht mehr erhältlich.
Aktuelle Hardware wird natürlich nicht behandelt, das macht aber gar 
nichts. Aber sehr gute Erklärung des CAN-Bus an sich, Arbitrierung, 
Zeitverhalten und vor allem Topologiemöglichkeiten des realen Busses, 
incl. Stichleitungen.
Ich fands Klasse.

von Thomas (Gast)


Lesenswert?

Ein allgemeines Buch zum Thema CAN-Bus habe ich mir besorgt und bin 
gerade dabei mich einzulesen.


Welchen MC würdet ihr nehmen ?
Welche Programmiersoftware etc. benötige ich ?
Eine Programmierung in "C" wäre mir natürlich am liebsten.


Danke

von Roland H. (batchman)


Lesenswert?

Thomas L. schrieb:
> stm32f103 oder grösser.

Eher nur größer, beim stm32f103 geht CAN und USB nicht gleichzeitig.

Tach schrieb:
> Lpc11c-Serie hat glaube ich schon alles an Board.

Das stimmt, der hat aber leider den Nachteil, dass die 
Transceivereinheit 5V benötigt. Es gibt ein LPCXpresso dazu.

In "The Insider's Guide To The Philips ARM7-Based Microcontrollers", 
auch schon etwas betagt, steht m. E. eine recht kompakte Einführung. Es 
gilt in großen Teilen auch noch für das CAN des lpc1769 (auch für den 
gibt es ein LPCXpresso).

Ich würde einen µC mit integriertem Controller und zwei Interfaces 
nehmen. Da kann man die SW auf einem µC zwischen beiden Interfaces 
testen.

lpc1769 auf LPCXpresso oder stm32f407 auf dem Discovery bieten sich an.

Je nachdem, wie kaufmännisch Du Deine Zeit bewertest, könnte sich ein 
USB-CAN-Dongle für 100 EUR schnell amortisieren. Es ist ein Vorteil, 
wenn man sicher sein kann, dass eine Gegenstelle garantiert 
funktioniert, und Fehler zuverlässig anzeigt.

von Roland H. (batchman)


Lesenswert?

Nachtrag: Einen evtl. Vorteil hat die CAN-Implementierung im stm32f407, 
vielleicht auch in anderen stm32-Controllern: Im Testmodus benötigt man 
keinerlei externe Beschaltung. Ist am Anfang einfach eine Fehlerquelle 
weniger. Siehe auch Beitrag "STM32F4 : CAN Loopback ohne Transceiver Baustein!?"

von Thomas L. (ics1702)


Lesenswert?

Roland H. schrieb:

>
> Je nachdem, wie kaufmännisch Du Deine Zeit bewertest, könnte sich ein
> USB-CAN-Dongle für 100 EUR schnell amortisieren. Es ist ein Vorteil,
> wenn man sicher sein kann, dass eine Gegenstelle garantiert
> funktioniert, und Fehler zuverlässig anzeigt.

Geht auch günstiger
http://www.fischl.de/usbtin/

von Frank K. (fchk)


Lesenswert?

Thomas schrieb:

> Welchen MC würdet ihr nehmen ?
> Welche Programmiersoftware etc. benötige ich ?
> Eine Programmierung in "C" wäre mir natürlich am liebsten.

Zum Einstieg:

dsPIC33FJ128GP802.
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en532298

Oder wenn Du es bekommst: dsPIC33EP256GP502 - das ist die neue Serie mit 
70 MHz.
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en558774

Gibts auch in SDIL28, d.h. Du kannst Dir das ganze zur Not auch auf 
einem Steckbrett aufbauen. Dazu vorzugsweise einen SN65HVD232 3.3V 
Transceiver (die meisten Transceiver brauchen 5V, der dsPIC ist aber wie 
die meisten aktuellen Controller ein 3.3V Chip), und los gehts. Die 
MPLAB IDE und den C30/XC16 Compiler sowie die Microchip Application Libs 
holst DU Dir direkt von www.microchip.com. Als Programmer/Debugger 
nimmst Du ein PicKIT3 oder einen 100%-Nachbau. Das Original kostet etwa 
50€.

Zum Transceiver:
http://www.ti.com/product/sn65hvd232

Schau auch hier:
http://ww1.microchip.com/downloads/en/DeviceDoc/70319B.pdf

fchk

von Martin H. (marrtn)


Lesenswert?

Thomas schrieb:
> Werde im Frühjahr meinen Job wechseln und möchte mich im Vorfeld mit der
> Thematik beschäftigen.

In welchem Bereich ist denn der neue Job - bei CAN liegt Automotive und 
Industrieautomatisierung nahe.
Geht es im neuen Job um Hardware oder Software oder beides?

Die Hardwareseite bei CAN ist relativ einfach - da helfen die 
Datenblätter von den Transceivern (z.B. TJA1050) schon recht viel. Es 
gibt je nach Einsatz noch dierse Filter-/Schutzmaßnahmen, wie z.B. TVS 
und Gleichtaktdrosseln, die darin nicht auftauchen, google dürfte da 
aber weiterhelfen.

Bei der Software gibt es je nach Bereich komplett unterschiedliche 
Protokolle, die über CAN "gefahren" werden und somit auch verschiedene 
SW-Stacks.

Automotve --> z.B. AUTOSAR
Industrie --> z.B. CANopen


Für den "nackten" CAN-Bus gibt es von Vector ein recht übersichtliches 
Poster zum an die Wand hängen - als schnelle Gedankenstütze z.B. zum 
Frameaufbau. 
(http://www.vector.com/vi_infomaterial_orderlist_details_de.html)

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Thomas L. schrieb:
> Roland H. schrieb:
>
>>
>> Je nachdem, wie kaufmännisch Du Deine Zeit bewertest, könnte sich ein
>> USB-CAN-Dongle für 100 EUR schnell amortisieren. Es ist ein Vorteil,
>> wenn man sicher sein kann, dass eine Gegenstelle garantiert
>> funktioniert, und Fehler zuverlässig anzeigt.
>
> Geht auch günstiger
> http://www.fischl.de/usbtin/

Noch besser, da mehr Platz im Controller, integrierte CAN-Logik im 
Controller und vor allem galvanische Trennung:

http://www.kreatives-chaos.com/artikel/can-debugger

Läuft hier sehr zufriedenstellend unter Linux :-)

Das Poster "CAN Protocol Reference Chart" von Vector kann man übrigens 
wirklich nur empfehlen. Eine sehr gute Übersicht - hängt hier an der 
Labortür :-)

Chris D.

von Thomas (kosmos)


Angehängte Dateien:

Lesenswert?

hier sieht man den Aufbau, also CAN-Transceiver, Drossel, evtl. 
Abschlußwiderstände und der ESD-Schutz.

In eigener Sache: Braucht jemand CAN-Bauteile, habe sehr günstige 
Drosseln gefunden ab 100 Stück mit Rabatt etwa 0,29€ inkl. Märchensteuer
Beitrag "CAN Drosseln und CAN Schutzdioden, jemand Interesse wegen Staffelpreis?"

von Bronco (Gast)


Lesenswert?

Thomas schrieb:
> Mir fehlt noch das grundlegende Verständnis wie der
> Anschluß/Kommunikation vom MC zum CAN-transceiver stattfindet.

Hierzu sollte man vielleicht sagen, daß es vom verwendeten µC abhängt, 
wie der integrierte CAN-Controller angebunden ist.
D.h. auf einem STM32 ist er anders angebunden als in einem PIC24 und 
nochmal anders in einem C167.
Insofern wäre es am sinnvollsten, wenn Du den gleichen µC wählst wie 
Dein zukünftiger Arbeitgeber.

von Thomas (Gast)


Lesenswert?

Was haltet ihr von den Mikrocontrollern :

- AT90CAN128
- AT91SAM7X / A

Ich denke ich muss sehr weit am Anfabg der Thematik anfangen, sprich der 
generelle Umgang mit einem dieser Mikrocontroller und erst dann in das 
CAN-Bus Thema einsteigen.

Lassen sich Atmel Mikrocontroller generell mit der BASCOM Software in 
"C" programmieren.

Gibt es fertige Platinen mit den oben genannten Mikrocontrollern ?
Evtl. sogar ein Startetkit ?

Über google läßt sich zwar einiges finden, die Informationsflut ist 
hierzu allerdings so groß, dass ich etwas ratlos bin.

Mein zukünftiger Job wird im Automotive-Bereich sein, allerdings nicht 
sehr tiefgründig mit dem CAN-Bus zu tun haben.
Möchte mich auch aus privatem Interesse in die Materie einarbeiten.

Sorry für die einfachen Fragen.


Gruß
Thomas

von Frank K. (fchk)


Lesenswert?

Thomas schrieb:
> Was haltet ihr von den Mikrocontrollern :
>
> - AT90CAN128

8 Bit AVR, 5V, TQFP64
AVRs sind die typischen Anfängerprozessoren hier, aber es gibt fürs 
gleiche Geld leistungsfähigere Alternativen. Ein Nachteil ist, dass die 
JTAG-Debugger, mit denen Du Programme tatsächlich debuggen und im 
Einzelschrittmodus ablaufen lassen kannst und Dir Variablen anschauen 
und ändern kannst, ziemlich teuer sind. Bei PICs (sowohl 8 als auch 16 
und 32 Bit) und ARM kommst Du deutlich preiswerter weg. Viele Leute 
verwenden daher nur einfache Programmer, die nur den Code in den Chip 
reinladen, aber nicht debuggen können.

> - AT91SAM7X / A
Das ist ein ARM7, und damit würde ich heutzutage nicht mehr anfangen. 
Die Cortex M-Serie ist bei gleichem Preis leistungsfähiger und auch 
deutlich einfacher zu verwenden. ARM7 sollte nicht mehr für 
Neuentwicklungen verwendet werden.

> Ich denke ich muss sehr weit am Anfabg der Thematik anfangen, sprich der
> generelle Umgang mit einem dieser Mikrocontroller und erst dann in das
> CAN-Bus Thema einsteigen.
>
> Lassen sich Atmel Mikrocontroller generell mit der BASCOM Software in
> "C" programmieren.

BASCOM ist ein BASIC-Compiler für AVR und 8051. Viele Anfänger nutzen 
den. Ich rate davon aber ab. Wenn Du Dich einarbeiten willst, fange 
gleich mit C an. Wenn Du noch kein C kannst, fange damit erstmal auf dem 
PC damit an.

C und Bascom haben nichts miteinander zu tun.

> Gibt es fertige Platinen mit den oben genannten Mikrocontrollern ?
> Evtl. sogar ein Startetkit ?

Ja. Z.B. bei www.olimex.com.

fchk

von Peter (Gast)


Lesenswert?

Hallo,

ich wollte mal wissen, welches Kit der TO genommen hat. Ich stehe vor 
einer ähnlichen Entscheigung. Habe mir mal das LPC1769 LPCXpresso 
ausgesucht und dazu bräuchte ich ja dann noch einen CAN Tranceiver. 
Günstiger wirds wohl kaum mehr gehen aber es gibt ja einige LPCXpresso 
Kits und auch noch die von STM.
Welche Erfahrungen habt ihr mit diesen Kits gesammelt?

von Gerd B. (bertr2d2) Benutzerseite


Lesenswert?

Hallo,

Peter schrieb:
> Hallo,
>
> ich wollte mal wissen, welches Kit der TO genommen hat. Ich stehe vor
> einer ähnlichen Entscheigung. Habe mir mal das LPC1769 LPCXpresso
> ausgesucht und dazu bräuchte ich ja dann noch einen CAN Tranceiver.
> Günstiger wirds wohl kaum mehr gehen

Ein Vergleich bei Watterott (Cortex M3/4 incl. CAN Controller):
LPC1769 LPCXpresso   23,80 EUR
STM32F4 Discovery    16,66 EUR
Stellaris LaunchPad  12,35 EUR

wobei das Stellaris im TI Store für 12,99 $ incl. Versand(!) erhältlich
ist. Das macht < 10 EUR - absoluter Kampfpreis.

> Welche Erfahrungen habt ihr mit diesen Kits gesammelt?

LPC1768 habe ich ausprobiert. Fungiert bei mir als CAN Lastgenerator.
In das Stellaris Launchpad arbeite ich mich gerade rein. Ich finde das
Launchpad für eins der besten Boards, die ich bisher hatte. Die
Beispiele und Videos halte ich persönlich für recht gelungen.

Siehe auch:

http://www.fischl.de/arm/can_bus_interface_for_stellaris_launchpad/

von John (Gast)


Lesenswert?

Schau mal hier:

http://www.kreatives-chaos.com/artikel/can-testboard-40

damit kannst üben, experimentieren usw.

von Peter (Gast)


Lesenswert?

John schrieb:
> http://www.kreatives-chaos.com/artikel/can-testboard-40
>
> damit kannst üben, experimentieren usw

Naja zum Üben brauche ich das Kit nicht. Ich will einen 16 oder 32 Bit 
Controller, daher fällt der Atmel raus. Ich denke ich hole mir den 
LPC1769 LPCXpresso und noch einen MCP2551 und dann bin ich ja mit der 
Hardware auf der sicheren Seite. Und dann gehts mit der Software los.
Ich würde ja auch bei einem Atmel Controller bleiben aber ich hab kein 
günstiges Kit mit einem 16 oder 32 Controller und CAN gefunden.

von temp (Gast)


Lesenswert?

Ich würde auch über den ISO1050 oder  ADM3053 nachdenken. Das ist zwar 
teurer, dafür hast du die CAN Seite aber isoliert vom Rest.

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.