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
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
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.
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.
@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?!?
@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
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.