PullUp über weitere Distanz mehrere Teilnehmer CAN Bus

OP #5237410
Lesenswert?

Hallo,

ich habe mehrere Teilnehmer im Bus wie im Anhang skizziert.

Nun will ich einige Teilnehmer in den Sleep Mode versetzen und nach 
einer bestimmten Zeit wieder was tun lassen - was auch klappt. Das 
könnte hier z.b. D2 sein.

Nun will ich aber beispielsweise eine neue Firmware flashen über den 
Bus. Dh. ich muss das jeweilige Gerät erst einmal wecken. Wecken muss 
nur ein einziges Gerät können. Hier z.B. D1.
Das Signal zu wecken würde ich über die in rot gezogene Linie 
realisieren. Dh. es werden immer direkt alle geweckt.

Nun bin ich am überlegen, wie ich das am besten mache.

Wichtig:
- Wecken kann nur D1, D1 schläft nicht! :)
- Geweckt werden nur D2 / D3
- CAN ist isoliert
- 5V Schaltregler nutzen alle den gleichen GND (abgesehen von 
Spannungsabfällen über die Leitung)
- Strecke zwischen D1 und D2 / D3 können 100 Meter sein
- Aus dem Sleepmode kommen die MCU nur über einen getriggerten PIN

Meine Ideen:

1. D1 Levelshift auf 48V mit pullup und auf der D2/D3 Seite levelshift 
von 48V auf 5V.

2. D1 5V vom Converter mit PullUp direkt an Mikrocontroller Pin von 
D2/D3

3. Warten bis der Knoten aufwacht und Daten sendet. Darauf dann 
reagieren und Flashen. (Diese Möglichkeit finde ich nicht so toll, da es 
bei vielen Knoten am Bus wirklich dauern könnte)


Was würdet ihr empfehlen? Habt ihr andere Ideen/Vorschläge?
Angehängte Dateien:
#5237415
Lesenswert?

Ich kann dir aus der Praxis sagen, dass lange Weckleitungen immer als 
Antennen wirken und deine Teilnehmer dann zufällig aufwachen.

Was du suchst sind CAN Transceiver mit Weckfähigkeit. Beim Empfang eines 
vorher definierten Magic Byte oder Sequence können Sie den µC Wecken.
So ist das Standard in der Automobilindustrie.

Mit den richtigen Netzteilen ist der Ruhestrom < 100µA.
Wenn du allerdings nicht aus Batterien speist, dann ist die Frage ob 
sich ein Sleep überhaupt lohnt.
Gast #5237430
Lesenswert?

Christian S. schrieb:
> iese Möglichkeit finde ich nicht so toll, da es
> bei vielen Knoten am Bus wirklich dauern könnte)

Um welche Zeiten geht es denn? Die Anzahl sollte doch egal, sein, da es 
maximal 1*Sleeptime ist.

Müssen die anderen Geräte weiter laufen? Sonst wäre auch ein Spgs.reset 
möglich.

was meinst Du mit 48V? Sind die geschaltet? Wofür werden die Gebraucht, 
wenn D1 sie jederzeit missbrauchen kann?

Warum nur eine Leitung? Wenn kurzzeitiger Strom aber keine Rolle spielt, 
dann ist z.B. ein 120R am Ende gegen GND und je Knoten nochmal 1k gegen 
GND auch OK. An D1 dann halt einfach einen 100mA-Treiber einschalten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren