Forum: Mikrocontroller und Digitale Elektronik CAN vs. CAN mit ATMEGA


von Ulrich U. (uli-dd-70)


Lesenswert?

Liebe Leute,

für ein Projekt benötige ich CAN-Bus Unterstützung. Meine Wahl fiel auf 
die ATMEGA-Reihe als Controller. Eine allgemeine Frage: Welcher Variante 
sollte ich den Vorzug geben:

CAN über Controller wie MCP2515 per SPI angesteuert

ODER

CAN direkt mit Controller, der das unterstützt - also AT90CAN64 oder 
ATMEGA64M1

Hier sind für mich Vor- und Nachteile bzw. Eure Erfahrungswerte wichtig.

Danke und Gruß, Uli

von Sven (Gast)


Lesenswert?

Ich rate direkt zum CAN. Der AT90CANxx hat 15 MOBs die Du frei 
konfigurieren kannst. (Eingangsbuffer / Filter).
Der MCP hat nur 2 oder 3. Außerdem: Warum mehr Bauteile einsetzen, als 
unbedingt notwendig?

von H.Joachim S. (crazyhorse)


Lesenswert?

Funktioniert natürlich beides.
AT90CANxx ist aber rel. teuer, ich setze meist den MCP2551 ein.
Oder, wenn es kein Atmel-Prozessor sein muss - es gibt ne ganze Menge 
PICs mit internem CAN sehr preiswert.

von Blueberry (Gast)


Lesenswert?

Warum nicht gleich einen LPC11C12?
Der hat den kompletten CAN-Controller incl. Tranceiver integriert.
Also eine EIN-CHIP-LÖSUNG.
http://www.nxp.com/documents/leaflet/75017050.pdf

Kosten tut er mit 3 EUR auch weniger, wie wenn ich mir den MCP + 
2.Controller + Tranceiver kaufe.
http://de.mouser.com/Search/Refine.aspx?Keyword=LPC11C&Ns=Pricing|0&FS=True

Ein Debugger gibts mit dem LPCExpresso schon für 20 EUR.

Grüße

von Ulrich U. (uli-dd-70)


Lesenswert?

Mich interessiert eher noch, ob es Unterschiede begl. CAN-Protokoll gibt 
oder sich beide Varianten wirklich an die Spezifikationen halten...

von Blueberry (Gast)


Lesenswert?

Achso, den LPC könnte man auch gleich direkt über CAN flashen, falls man 
keinen Debugger benötigt...

von Blueberry (Gast)


Lesenswert?

Sorry, stimmt nicht.
Nur der LPC11C22/C24 hat den Tranceiver schon integriert.
Kostet um die 4,30EUR!

von Frank K. (fchk)


Lesenswert?

Ulrich Uhlig schrieb:
> Mich interessiert eher noch, ob es Unterschiede begl. CAN-Protokoll gibt
> oder sich beide Varianten wirklich an die Spezifikationen halten...

An die Spezifikationen halten sich beide, sonst dürfte sich das nicht 
CAN nennen. Außerdem spielt noch der Transceiver eine wichtige Rolle bei 
der Standardkonformität.

Allerdings, und das haben hier schon einige Leute gesagt, und ich kann 
dem nur zustimmen, ist AVR für ein CAN-Projekt nicht die optimale Wahl. 
Andere Plattformen sind entweder billiger weil höher integriert (z.B. 
viele PIC18) oder bei gleichem Aufwand leistungsfähiger 
(PIC24/32/dsPICs, ARM Cortex).

Ist es so, dass Dein Tellerrand nicht weiter als AVR reicht?

PS: Der LPC11C22/C24 mit integriertem Transceiver ist auf dem ersten 
Blick attraktiv, aber ich setze ihn nicht ein, weil mir die 
Spannungsfestigkeit nicht ausreicht. Andere Transceiver können 
problemlos ±80V auf CANH/CANL ab, und im Ernstfall ist ein SO08 leichter 
zu tauschen als ein QFN48.

fchk

von Lutz (Gast)


Lesenswert?

Blueberry schrieb:
> Sorry, stimmt nicht.
> Nur der LPC11C22/C24 hat den Tranceiver schon integriert.
> Kostet um die 4,30EUR!

Korrekt. Bei http://de.futureelectronics.com gibt's die aber billiger. 
Gut; Steuer und Versand kommen noch dazu.

von Ulrich U. (uli-dd-70)


Lesenswert?

@fchk:

Soll ich wirklich auf meinen "Tellerrand" eingehen? AVR ist kein muß, 
sondern meine bisher am meisten genutzte Plattform. Also bitte keine 
dummen Sprüche!

Spannungsfestigkeit könnte ein Thema werden; welchen Transceiver würdest 
Du denn empfehlen?

Gruß Uli

von STM´ler (Gast)


Lesenswert?

Ich mache recht viel mit CAN. früher mit PIC und AVR und separatem SJA, 
später dann auch mit MCP2515.

irgendwann mal bin ich dann beim STM32 mit integriertem CAN-Controller 
gelandet. Unabhängig davon ob Du nun einen STM32 oder einen AVR nimmst, 
bei der integrierten Lösung hast Du weniger zu tun und bist vor allem 
'deutlich' schneller!

Während du bei einer externen Lösung immer noch eine SPI-Routine 
ausführen musst schreibst du bei einer integrierten Lösung kurz etwas in 
den Speicher und der rest geht per DMA im Hintergrund.
Beim empfangen genau das selbe, man springt schnell in die ISQ, holt die 
empfangene CAN-Nachricht ab und macht im Programm weiter, dank PLL geht 
das bei einem modernen µC Pfeilschnell.

einen Vorteil der diskret aufgebauten Lösung mit externen CAN-Controller 
sehe ich keinen mehr und würde es auch nicht mehr verwenden!

von STM´ler (Gast)


Lesenswert?

bzgl. des transreceiver: Ich verwende meist den PCA82C251 - der kann 
aber 'nur' 36V Volt an den Eingängen (transienten bis 200V)
Hat bis jetzt immer gereicht, einen defekt hatte ich hier noch nie!

von Frank K. (fchk)


Lesenswert?

Ulrich Uhlig schrieb:

> Spannungsfestigkeit könnte ein Thema werden; welchen Transceiver würdest
> Du denn empfehlen?

Ich setze sehr gerne den MAX13054 ein, weil der (a) 3.3V Logik plus 5V 
für die Bus-Treiber hat, und weil der einer der Typen ist, die ±80V auf 
CANH/CANL abkönnen. Ein normaler 82C250 kann nur -7 bis +18V ab, und in 
der Industrie mit ihren 24V-Systemen ist das viel zu wenig, und auch im 
KFZ, wo beim Anlassen Peaks bis zu 30V auf der 12V-Versorgung vorkommen, 
reicht es nicht. Viele modernere Transceiver sind daher inzwischen auf 
-27 bis +40V Spannungsfestigkeit ausgelegt, aber für 24V-Systeme ist 
auch das knapp.

5V-Logik kommt bei mir praktisch gar nicht mehr vor. Ich setze 
inzwischen entweder dsPICs ein, die bei gleichem Preis wie ein AVR 
mindestens die dreifache Leistung bringen und leistungsfähigere 
Peripherieeinheiten haben, oder Cortexe. Reine 3.3V-Transceiver wie die 
SN65HVD230-232 sind auf der Bus-Seite etwas kritisch, denn wenn der 
Standard im dominanten Zustand 3.5V vorschreibt, dann kann ein reiner 
3.3V Transceiver die eben nicht liefern, sondern vielleicht nur 3.1V, 
und das will ich nicht.

Falls Dein System ein reines 5V-System wird, gibts aus der gleichen 
Familie noch die MAX13050-13053 mit 5V Single Supply.

fchk

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.