@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