Wake Up nach CAN-Nachricht

Gast #1276162
Ich habe folgendes Problem:
Ich habe ein At90can128 mit einem ATA6660 Transreciever, der 
CAN-Botschaften empfängt. Wenn nach 4 Sekunden auf dem Bus keine 
Aktiviäten mehr sind soll der Controller in den Standbybetrieb wechseln. 
Soweit funktioniert das auch.
Falls nun aber wieder Nachrichten auf dem Bus versendet werden soll der 
Controller so schnell wie möglich aufwachen um die Nachrichten zu 
empfangen. Im Datenblatt steht, dass nur ein externer Interuppt den 
Atmel wieder weckt. könnte ich einfach die rxd leitung vom transrecier 
an einen externen Interrupt anschließen
Gast #1276225
...einige can contr speichern die erste nachricht imho. aber guck dir 
mal zb die bosch dinger an - hatte nur kurz damit zu tun, machte aber 
einen soliden eindruck. ist natürlich nen unterschied, ob du nur einen 
TRANSCEIVER oder einen ECHTEN CONTROLLER nutzt.

Klaus.
#1276431
@Klaus2: man benutzt beides: der Transceiver ist nur für die Umsetzung 
von Unipoloar RX/TX auf die differentielle Leitung des CAN. Der 
Controller hängt hinter dem Transceiver am RX/TX. Der At90can128 ist 
dabei ein FULL-CAN-CONTROLLER. Er kann also "alles".

@Jan: Die Sleepmodes der Transceiver sind Teilweise etwas 
merkwürdig...der MAX3053 braucht z.B. für den Wakup >9V auf CANH. Andere 
brauchen einen Dominanten Zustand über mehrere µs.
Der ATA6660 horcht ja im Stby auf einen Dominanten Zustand auf der 
Leitung und signalisiert dem Controller dann per RXD, das was los ist. 
Dafür braucht er laut DB 400ns. Diesen Pin könntest du an einen Int des 
AT90 hängen und diesen Int nur aktivieren, wenn der ATA6660 im Stby ist. 
Kommt der Int, wird der ATA6660 wieder auf normal geschaltet.
Ob du das erste Byte der Nachricht (also der Aufwachgrund) tatsächlich 
noch korrekt und vollständig empfangen wird müsste man ausrechnen 
können...zum aufwachen braucht er 2µs, also zusammen 2,5µs. Bei 1Mbit 
ist aber eine Bit-Time schon kürzer...bei 100kBit könnte es gehen.
Dieses relativ schnelle Aufwachen erkauft man sich aber auch durch einen 
Stby-Strom von relativ hohen 600µA.

Das war jetzt zwar viel mehr Ausführung als du vielleicht wissen 
wolltest, aber evtl. trotzdem interessant. ;-)

Gruß
Fabian
Gast #1276451
@Klaus2: man benutzt beides: der Transceiver ist nur für die Umsetzung
von Unipoloar RX/TX auf die differentielle Leitung des CAN. Der
Controller hängt hinter dem Transceiver am RX/TX. Der At90can128 ist
dabei ein FULL-CAN-CONTROLLER. Er kann also "alles".

schon klar, aber das bosch teil ist für automotive ein spezialchip und 
daher speziell. den rest kenn ich auch, also "diskret".

Klaus.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.