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
...hat der can contr keine spezielle INT leitung? beim bosch gibts da welche, die bei spez (einstellbaren) adressen einen INT auslösen. Klaus.
ich denke mal mit dem interrupt über die RXD leitung könnte es eventuell zeitliche Probleme geben. Wacht der schnell genug auf um dann den Rest des 1.Bits mit zu kriegen?
...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.
@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
@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.
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.