Forum: Haus & Smart Home zusatzbeschaltung?


von G0nz00 (Gast)


Lesenswert?

In einem Beitrag wurde gesagt das man einen CAN-BUS-Treiber zum
AT90can128 mitbestellen sollte. andere bauen mit diesem CAN-BUS-Treiber
und einem mega 128 auch ein can fähiges gerät. Ich dachte der
CAN-BUS-Treiber wäre im at90can128 integriert oder irre ich mich? lohnt
sich dann ein so teurer at90can128 wenn ich das auch mit einem normalen
megaxx MC und CAN-BUS-Treiber aufbauen kann?

danke im vorraus

gonzoo

von Frank (Gast)


Lesenswert?

Ob du dafür Hardware oder Software verwendest ist erstmal deine Sache.
Nimm mal die UART Funktion als Beispiel. Du kannst auch per Software
eine UART nachbilden und so einen Chip der sowas nicht in Hardware hat
seriell kommunizieren lassen. Für beide Lösungen wirst du dennoch
Pegelwandler brauchen, also z.B. MAX232. Das ist bei CAN sehr ähnlich.
Den Treiber brauchst du um die Schicht 1 abzubilden. Die höheren
Kommunikationsebenen kannst du entweder softwaremässig realisieren oder
auf Ressourcen eines passenden Chips zurückgreifen.

bye

Frank

von Ithamar G. (antimon)


Lesenswert?

Du musst unterscheiden zwischen Bustreiber und CAN-Controller. Den
Bustreiber brauchst du immer, der setzt die entsprechenden Pegel auf
dem Bus und wird vom CAN Controller angesteuert. Beim AC90CAN128 ist
der Controller integriert, du kannst direkt die Register setzen, beim
Mega128 musst du den CAN Controller halt per I2C beispielsweise
ansprechen. Ist ein wenig komplizierter, geht aber auch gut und ist um
einiges billiger.

von Christian I. (alloc)


Lesenswert?

Außerdem kann man beim AT90CAN (soweit ich das bis jetzt rausbekommen
habe) zB nicht die CAN-ID einer Nachricht selber auslesen sondern nur
Nachrichten-Objekte einstellen und die werden dann automatisch
gefiltert. Wenn du also zB die CAN-ID als Adressen oder ähnliches
"missbrauchen" willst, musst du einen externen CAN-Controller
verwenden.

von Richard (Gast)


Lesenswert?

@Christian: Ich kenn mich mit dem AT90CAN nicht aus, aber da MUSST du
was falsch verstanden haben - so will ich das nicht glauben.
Ich vermute, dass du einen Filter auf "alles akzeptieren" stellen
kannst und dann per Software die relevanten IDs rausfilterst?!?

von Christian I. (alloc)


Lesenswert?

@Richard: Ich kann nicht drauf schwören, dass es so ist, allerdings habe
ich mir gerade nochmal das Datenblatt kurz angeschaut und ich kann
nichts finden, was einem ermöglichen würde, die ID auszulesen die
empfangen wurde. Es gibt einfach nur 15 MessageObjects denen man zwar
auch Masken gibt, welche IDs sie annehmen (theoretisch kann das
wahrscheinlich auch heissen "nimm jede ID"), aber die ID der
empfangenen Nachrichten scheint nicht gespeichert zu werden. Also ist
es wohl nicht möglich, damit viel anzustellen. (Ich kam übrigens auch
nicht selber drauf, dass das so ist, habe das ursprünglich woanders
gelesen ... demnach bin ich nicht mal der einzige, der das meint ;) ).

Chris

von Richard (Gast)


Lesenswert?

> Also ist es wohl nicht möglich, damit viel anzustellen.
Richtig, die Kiste wäre unbrauchbar.

> demnach bin ich nicht mal der einzige, der das meint ;)
Umso schlimmer. :-)

Zum Thema:
Du suchst die Register CANIDT1..4. Aktuellstes Datenblatt Kap. 20.11.3
(S.261).

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.