Forum: Mikrocontroller und Digitale Elektronik PullUp über weitere Distanz mehrere Teilnehmer CAN Bus


von Christian S. (vivus)


Angehängte Dateien:

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?

von Benjamin S. (recycler)


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.

von A. S. (Gast)


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.

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
Noch kein Account? Hier anmelden.