CAN-Bus mit AVR?

Gast #52859
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
Gast #52862
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
Gast #52863
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.
Gast #52864
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
Gast #52865
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
Gast #52867
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.
#52869
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren