Forum: Mikrocontroller und Digitale Elektronik CAN-Bus mit AVR?


von franz (Gast)


Lesenswert?

Hallo CAN-Spezialisten,

habe zwar schon gegoogelt, aber nichts eindeutiges gefunden:

Ist es möglich, einen AVR als CAN-Controller einzusetzen?
Man findet zwar einige Schaltungen mit CAN für den AVR, dabei wird aber
immer ein Controllerchip verwendet.


Danke für Antworten!

Grüße,
Peter

von Henning (Gast)


Lesenswert?

gibt bei reichelt nen demoboard, aber auch mit controler chip denke ich
mal

von AndreasH (Gast)


Lesenswert?

Sieh mal hier auf der Linkseite.
Da gibt es 2 Links.

Can@home ist superklasse.
Vor allen Dingen ist André Füßer super auskunftsfreudig.

von franz (Gast)


Lesenswert?

Hallo,

danke für Eure Antworten!

@AndreasH: Bei den beiden Links werden auch CAN-Controller verwendet.

Aber es müsste doch möglich sein, den Controller, der die
CAN-Kommunikation durchführt, durch z.B. einen AT90S2313
(+Pegelanpasser)o.ä. zu ersetzen.

Gäbe es da irgendwo Anhaltspunkte?

Grüße,
Peter

von AndreasH (Gast)


Lesenswert?

Stimmt, ist mir hinterher auch eingefallen.

Ansonsten kenn ich nur einen mit integrierten Can-Controller der
kompatibel zum 8051 ist. Da kennt sich Peter Dannegger gut aus. Glaube
nennt sich T89C51CC01.

Versuch es mal auf der Atmel-HP. Wenn ich mich richtig erinnere, habe
ich da mal was gesehen. Bin mir aber nicht mehr ganz sicher.

von Frank Linde (Gast)


Lesenswert?

Hallo Peter,

grundsätzlich möglich ist das sicherlich, fragt sich nur, ob es den
Aufwand wert ist, wenn es fertige IC gibt. Und vielleicht kann man mit
dem AVR nicht die theoretische Maximal-Geschwindigkeit machen.

Gruß, Frank

von Ralf (Gast)


Lesenswert?

Hi,

ich denke auch, dass der AVR nicht schnell genug ist um gängige
Bitraten zu realisieren. 500kBit sollten denke ich nicht möglich sein.
Aufwändigere Berechnungen sind wohl das CRC, Synchronisation,
Fehlerbehandlung und evtl. Bitstuffing.  Theoretisch würde man es wohl
hinkriegen, dann hat der AVR aber keine Rechenleistung mehr übrig um
ein vielleicht vorhandenes übergeordnetes Protokoll oder irgentwelche
Messungen abzuarbeiten. D.h. man braucht dann trotzdem noch einen
weiteren Controller, weshalb man auch gleich einen CAN-Controller
nehmen kann. Atmel will gegen Ende des Jahres einen Mega 128 mit CAN
rausbringen. Vielleicht ist der ja was interessantes.

Gruß,

Ralf

von Eddi (Gast)


Lesenswert?

Hallo Franz

Ansonsten wäre da noch
http://caraca.sourceforge.net/

Die haben dem AT90S4433 CAN beigebracht.

Gruß
Eddi

von Schmittchen (Gast)


Lesenswert?

@Eddi:
Treffender wäre: Carancan hat an den AT90S4433 einen CAN-Transceiver
angeschlossen und überträgt damit Daten.
Das funktioniert prima, bis ein richtiger CAN-Controller an diesen Bus
soll.

Man hat zwar auch schon USB und Ethernet per Software im AVR gesehen,
aber um die CAN-Specs vollständig einzuhalten wird der AVR nicht
schnell genug sein. (z.B. Bitsampling - Der Abtastzeitpunkt ist
innerhalb des Bits einstellbar, genauso wie die Anzahl der Samples pro
Bit). Du willst ja schliesslich bestimmt noch mehr machen...

Also wenn du nur irgendwie Daten übertragen willst, dann bau dein
eigenes Protokoll oder lehn dich an CAN an (z.B. so wie Caracan). Einen
vollwertigen CAN-Controller in AVR-Software: nein.

Schmittchen.

von Dirk (Gast)


Lesenswert?

Hi,

ich nehme die Moeglichkeit:

1 x Avr/Pic mit Spi
1 x MCP2510 Standalone Can Controller mit spi
1 x Sja1000 Transceiver IC

Mfg

Dirk

von Peter D. (peda)


Lesenswert?

Soweit ich mich erinnere, schafft die Software CAN gerade mal 10kBit und
der AVR ist auch voll damit ausgelastet. Auch sind nicht alle
CAN-Funktionen implementiert.

Ansonsten wird gerne der SJA1000 genommen und auch der MSP2510.

Wenns aber auf kleinsten Platz ankommt, dann ist der T89C51CC02 am
besten (CAN+8051+Flash+Bootloader).


Peter

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.