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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.