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
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?
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.
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
Mich interessiert eher noch, ob es Unterschiede begl. CAN-Protokoll gibt oder sich beide Varianten wirklich an die Spezifikationen halten...
Achso, den LPC könnte man auch gleich direkt über CAN flashen, falls man keinen Debugger benötigt...
Sorry, stimmt nicht. Nur der LPC11C22/C24 hat den Tranceiver schon integriert. Kostet um die 4,30EUR!
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
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.
@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
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!
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.