Hallo, die "normalen" 5V CAN-Transceiver verbraten ja laut Datenblatt auch recht ein paar mA, wenn auf dem Bus nix los ist. Wäre bei mir in 99,x % der Zeit so (sollen 24/7 laufen). Bei ca. 20 Nodes kommen da im Jahr (wenige) kWh zusammen. Geht aber ums Prinzip. Nun habe ich mir theoretisch folgendes ausgesponnen: Bis auf einen Node (zum Halten des Buspegels) wird einfach der Transceiver per Portpin und Transistor abgeschaltet, wenn eine gewisse Zeit kein Verkehr war. Ein anderer Portpin wird dann per Pin-change-interrupt zum Überwachen des Busses abgestellt und der µC pennt auch. Wenn dann was auf dem Bus passiert, wird es erkannt, µC wacht auf und in der ISR der Transceiver wieder aktiviert. Das dieser Frame verloren ist, ist klar, aber kein Problem. Ist das mal wieder viel zu blauäugig gedacht oder könnte das so funktionieren?
Wenn der Sender niemand hat, der seine Frames bestätigt, wird er in einen Bus Error laufen. Außerdem ist Deine Idee deshalb Pfusch, weil die Receiver ja die SpannungsDIFFERENZ auswerten und nicht die absoluten Pegel der beiden Einzelsignale. Der Stromverbrauch eines Tranceivers ist im Wesentlichen durch die Erzeugung der dominanten Zustände bestimmt. Sendest Du nix (außer den erforderlichen Acks), brauchst Du weniger Strom. Also streiche Deine Idee. fchk
Manche Transceiver versprechen, ein aktives Signal auch im Standby zu melden, allerdings nicht mit der benötigten Geschwindigkeit. Ich habe mir eine kleine Transistorschaltung gebaut, die den Transceiver dann für 10 ms aktiv schaltet. Ergebnis: einige errorframes, aber sonst alles perfekt. Mehr kann ich dazu nicht veröffentlichen.
@ Lutz (Gast) >die "normalen" 5V CAN-Transceiver verbraten ja laut Datenblatt auch >recht ein paar mA, wenn auf dem Bus nix los ist. Wirklich? Glaub ich nicht. Z.B. der TJA1040 hat explizit eine Wake Up Funktion bei max. 15µA stand by current. "Wake-up In the standby mode the bus lines are monitored via a low-power differential comparator. Once the low-power differential comparator has detected a dominant bus level for more than tBUS, pin RXD will become LOW."
Frank K. schrieb: > Wenn der Sender niemand hat, der seine Frames bestätigt, wird er in > einen Bus Error laufen. Tschuldigung, aber Ochsenkot. Ein unbestätigtes Frame wird ganz einfach (mehrmals) neu gesendet.
Frank K. schrieb: > Wenn der Sender niemand hat, der seine Frames bestätigt, wird er in > einen Bus Error laufen. Natürlich bekommt er antworten; aber erst, wenn die anderen Busteilnehmer aufwachen. Und das dauert nicht so lange. > Außerdem ist Deine Idee deshalb Pfusch, weil die Receiver ja die > SpannungsDIFFERENZ auswerten und nicht die absoluten Pegel der beiden > Einzelsignale. Also ändern sich die absoluten Spannungen an CANH und CANL nicht in Abhängigkeit des zu übertragenden Bits zwischen 1,5 V/ 3,5 V ??? => Ich will ja nur erkennen, ob der Bus idle ist oder nicht und keine Nachrichten damit auswerten. Das soll dann natürlich der reaktivierte Transceiver leisten. Scheinst du, wie auch der erste Punkt erkennen läßt, mißverstanden zu haben. > Der Stromverbrauch eines Tranceivers ist im Wesentlichen durch die > Erzeugung der dominanten Zustände bestimmt. Sendest Du nix (außer den > erforderlichen Acks), brauchst Du weniger Strom. Schon klar, aber laut Datenblatt sind es auch zwischen 2,5 und 10 mA (Typ. 5 mA). Falk Brunner schrieb: > Wirklich? Glaub ich nicht. Z.B. der TJA1040 hat explizit eine Wake Up > Funktion bei max. 15µA stand by current. Leider handelt es sich (laut NXP mit "großer Wahrscheinlichkeit") um den TJA1050, welcher in den LPC11C24 werkelt. Am schönsten wäre natürlich, NXP würde dort einen mit Standby reindrücken; und das natürlich auch mit 3.3 V :-)
Lutz schrieb: > Frank K. schrieb: >> Wenn der Sender niemand hat, der seine Frames bestätigt, wird er in >> einen Bus Error laufen. > Natürlich bekommt er antworten; aber erst, wenn die anderen > Busteilnehmer aufwachen. Und das dauert nicht so lange. Wenn das Aufwachen schneller geht als der Errorcounter abläuft... nun gut. >> Außerdem ist Deine Idee deshalb Pfusch, weil die Receiver ja die >> SpannungsDIFFERENZ auswerten und nicht die absoluten Pegel der beiden >> Einzelsignale. > Also ändern sich die absoluten Spannungen an CANH und CANL nicht in > Abhängigkeit des zu übertragenden Bits zwischen 1,5 V/ 3,5 V ??? Der Sender sendet genau das. Was dann aber 50m weiter ankommt, ist eine andere Frage. Genau deswegen macht man ja eine differentielle Übertragung und wertet beim Empfänger niemals die absoluten Pegel, sondern immer nur die Pegeldifferenzen aus. Eine Leitung ist in der Realität eben kein idealer Kurzschluss. > => Ich will ja nur erkennen, ob der Bus idle ist oder nicht und keine > Nachrichten damit auswerten. Das soll dann natürlich der reaktivierte > Transceiver leisten. Ja, unter idealen Bedingungen kann das funktionieren. Das ist wie das Loriot'sche 3 Minuten Ei, das eben nur zufällig weich ist. >> Wirklich? Glaub ich nicht. Z.B. der TJA1040 hat explizit eine Wake Up >> Funktion bei max. 15µA stand by current. > Leider handelt es sich (laut NXP mit "großer Wahrscheinlichkeit") um den > TJA1050, welcher in den LPC11C24 werkelt. Am schönsten wäre natürlich, > NXP würde dort einen mit Standby reindrücken; und das natürlich auch mit > 3.3 V :-) Dann nimmst Du eben halt einen LPC11C14 ohne integrierten Transceiver und wählst Deinen Transceiver passend aus. Das würde ich aus ESD-Gründen ohnehin immer machen. Im Falle von Ungemach auf dem Bus geht dann nur ein SO-08 hopps, was leichter ausgetauscht werden kann als ein TQFP48. fchk
Frank K. schrieb: > Wenn das Aufwachen schneller geht als der Errorcounter abläuft... nun > gut. Also m.W. geht er bei fehlendem ACK nur in den Error-Passive Mode und nicht in den Bus-Off Mode. Bin aber ehrlichgesagt auch kein CAN-Spezi. Aber selbst wenn: Das ließe sich damit verhindern, daß ich halt 2 Nodes am Leben lasse. Frank K. schrieb: > Dann nimmst Du eben halt einen LPC11C14 ohne integrierten Transceiver > und wählst Deinen Transceiver passend aus. Dann wird es aber halt schon wieder fast doppelt so teuer. Ein "vernüftiger" Transceiver kostet praktisch genauso viel wie ein LPC11C24. Außerdem sehr platzsparend (wobei das hierbei allerdings nicht so wichtig ist). Frank K. schrieb: > Im Falle von Ungemach auf dem Bus geht dann nur > ein SO-08 hopps, was leichter ausgetauscht werden kann als ein TQFP48. Das ist natürlich richtig. Aber die sind da garantiert auf 50-70 m unter sich und haben dabei nichts auszustehen. Frank K. schrieb: > Der Sender sendet genau das. Was dann aber 50m weiter ankommt, ist eine > andere Frage. Genau deswegen macht man ja eine differentielle > Übertragung und wertet beim Empfänger niemals die absoluten Pegel, > sondern immer nur die Pegeldifferenzen aus. Eine Leitung ist in der > Realität eben kein idealer Kurzschluss. Absolut richtig. Ich will ja aber nur erkennen, wenn etwas auf dem Bus los ist. Wenn der Bus idle ist, müßten CANH und CANL beide stabil 2.5 V haben. Ist ja keine Dynamik vorhanden. Da sind die von dir beschriebenen realen Leitungseigenschaften dann ohne Einfluß. Und sobald sich das ändert, werden ja die Tranceiver wieder zugeschaltet.
@ Lutz (Gast) >Das ist natürlich richtig. Aber die sind da garantiert auf 50-70 m unter >sich und haben dabei nichts auszustehen. Das muss nix heißen, wenn genügend kräftige Störer in der Nähe sind. >> sondern immer nur die Pegeldifferenzen aus. Eine Leitung ist in der >> Realität eben kein idealer Kurzschluss. >Absolut richtig. Ich will ja aber nur erkennen, wenn etwas auf dem Bus >los ist. Wenn der Bus idle ist, müßten CANH und CANL beide stabil 2.5 V >haben. NEIN! Das ist sowohl statisch als auch dynamisch NICHT SO! Denkst du, der Rest der Welt ist doof und mach die voll differentielle Auswertung aus Spaß?
>Wäre bei mir in 99,x % >der Zeit so (sollen 24/7 laufen). Bei ca. 20 Nodes kommen da im Jahr >(wenige) kWh zusammen. Geht aber ums Prinzip. Pro Tag 1 Minute weniger fernsehen spart mehr ein. Dann kannst du dir deine 20 Nodes leisten;)
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.