Forum: Haus & Smart Home Frage zu Verbindung Mikrocontroller <=> Bus


von Steffen H. (teetasse)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich entwerfe gerade eine Art Hausbus (nutze es nur für die 
12V-LED-Beleuchtung) und bin bei der Anbindung der Mikrocontroller an 
den Bus nicht sicher, ob ich etwas übersehen habe. Bei der Leitungslänge 
gehe ich mal von 100m aus (werden sicher weniger werden) und die 
Übertragungsrate ist 1000 Bit/s.

Jetzt würde mich interessieren, ob das so passt bzw. was ich übersehen 
habe?

Beim Ausgang (uC ==> Bus) kann ich nicht abschätzen, wie viel T1 leisten 
muss und habe deshalb auch keinen blassen Schimmer, wie groß R3 sein 
muss. Der Wert ist eher geraten bzw. geschätzt.

Den Eingang (Bus ==> uC) habe ich so gedacht: Den uC direkt an eine 
mehrere Meter lange Busleitung anzuschließen dürfte zu unsicher sein. 
Daher nehme ich die 12V aus der Stromversorgung. Über C1 und R1 wird (im 
Ruhezustand) der Eingang auf 3,3V gehalten. Wenn am Bus ein Signal 
anliegt (ca. 0V), sinkt die Spannung auf irgendwas um -8V, die mit R2 
und den internen Schutzdioden auf 0V begrenzt werden. Gibt es da 
irgendwelche Bedenken?

Fertige Bus-Treiber-ICs möchte ich möglichst keine nehmen.

Danke schon mal, ich bin gespannt :-))

: Verschoben durch Moderator
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Steffen H. schrieb:
> ich entwerfe gerade eine Art Hausbus (nutze es nur für die
> 12V-LED-Beleuchtung) und bin bei der Anbindung der Mikrocontroller an
> den Bus nicht sicher, ob ich etwas übersehen habe.
Du hast offenbar den CAN-Bus übersehen....

> Fertige Bus-Treiber-ICs möchte ich möglichst keine nehmen.
Warum nicht? Wenn du einen störsicheren und weltweit erprobten 
Transceiver für den Bruchteil eines Euros bekommst, dann lohnt sich 
keine Bastelei.

Steffen H. schrieb:
> Beim Ausgang (uC ==> Bus) kann ich nicht abschätzen, wie viel T1 leisten
> muss und habe deshalb auch keinen blassen Schimmer, wie groß R3 sein
> muss. Der Wert ist eher geraten bzw. geschätzt.
Passt schon. Kommt aber im Prinzip auf den Pullup deines Busses an.

> Den Eingang (Bus ==> uC) habe ich so gedacht: Den uC direkt an eine
> mehrere Meter lange Busleitung anzuschließen dürfte zu unsicher sein.
Warum?
Beim Ausgang machst du das ja auch mit 1k und einer hauchdünnen 
Siliziumschicht im Transistor...

> und den internen Schutzdioden auf 0V begrenzt werden. Gibt es da
> irgendwelche Bedenken?
Du solltest die Schutzdioden nicht als Bauteile verwenden, wenn du dich 
auf die Schaltung verlassen musst. Diese Dioden sind nämlich in keinem 
Datenblatt bezüglich Belastbarkeit oder Kennlinie spezifiziert. Mach 
externe Dioden ran, wenn du was Verlässliches willst.

Ich würde übrigens auf jeden Fall den C1 weglassen. Denn eine 
hochfrequente ESD-Impuls geht sowieso geradeaus durch den durch...

BTW: wie schnell soll denn der Bus "laufen"? Welche Datenrate hast du 
geplant? Wie machst du die Arbitrierung?

von Sven L. (sven_rvbg)


Lesenswert?

Ich würde auf jeden Fall mal noch einen R am Schreibtransistor vorsehen, 
da sonst bei versehentlicher Verwechselung der Transistor raucht.

Was mir bei deiner Schaltung in den Kopf kam, war V-BUS 
(https://hobbyelektronik.org/w/index.php/VBus-Decoder), der lässt sich 
verpolungssicher anschließen.

Man muss halt immer mit äußeren Störeinflüssen etc. rechnen.

Ich persönlich bin ein Fan von RS458, die Treiber sind billig, einen 
UART haben die meisten Controller auch.

Ansonsten finde ich CAN sehr interesant.

von Steffen H. (teetasse)


Lesenswert?

Den CAN-Bus kenne ich natürlich. Ich möchte das ganze im Ruhezustand so 
stromsparend wie möglich haben, und die ganzen CAN-Bus-Bausteine 
brauchen auch ne Menge Strom. Bin gerade bei ca. 5uA pro Teilnehmer 
(theoretisch - messen kann ich erst wenns fertig ist).

Lothar M. schrieb:
> Passt schon. Kommt aber im Prinzip auf den Pullup deines Busses an.

Den passe ich an die Schaltung an.

Lothar M. schrieb:
>> Den Eingang (Bus ==> uC) habe ich so gedacht: Den uC direkt an eine
>> mehrere Meter lange Busleitung anzuschließen dürfte zu unsicher sein.
> Warum?
> Beim Ausgang machst du das ja auch mit 1k und einer hauchdünnen
> Siliziumschicht im Transistor...

Weil ich davon ausgehe, dass je nach Leitungslänge und Verbraucher die 
Pegel am Bus nicht mehr zuverlässig sind.

Lothar M. schrieb:
> Du solltest die Schutzdioden nicht als Bauteile verwenden, wenn du dich
> auf die Schaltung verlassen musst. Diese Dioden sind nämlich in keinem
> Datenblatt bezüglich Belastbarkeit oder Kennlinie spezifiziert.

Darum der Eingangswiderstand von 100kOhm, bei 12V macht das 0.12mA. Muss 
ich davon ausgehen, dass SCHUTZdioden das nicht packen? (dass sie drin 
sind steht ja im Datenblatt)

Übrigens habe ich mal an einen ATtiny + und - vertauscht. Die 
Versorgungsspannung (60VA) ging in die Knie (min. 2-3V weniger), der uC 
wurde nicht mal warm und funktioniert noch. Scheint also sehr robust zu 
sein...

Lothar M. schrieb:
> Ich würde übrigens auf jeden Fall den C1 weglassen. Denn eine
> hochfrequente ESD-Impuls geht sowieso geradeaus durch den durch...

C1 hat einzig die Aufgabe, dass im Ruhezustand (Bus auf 12V) kein Strom 
fließt (und die Schutzdioden werden dann auch nicht belastet).

Lothar M. schrieb:
> BTW: wie schnell soll denn der Bus "laufen"? Welche Datenrate hast du
> geplant? Wie machst du die Arbitrierung?

1000 Bit/Sekunde (steht im Ausgangsbeitrag). Kommunikation ist so 
geregelt, dass alle Teilnehmer syncron lesen/schreiben. Jeder, der 
schreibt, liest mit, und sobald das nicht übereinstimmt bricht er das 
Senden ab und versucht es später erneut.

Sven L. schrieb:
> Ich würde auf jeden Fall mal noch einen R am Schreibtransistor vorsehen,
> da sonst bei versehentlicher Verwechselung der Transistor raucht.

Guter Hinweis! Auf Verpolungsschutz habe ich an sich geachtet, wie muss 
ich denn den Bus falsch anschließen, damit hier was zerstört wird? +12 
an den Buseingang dürfte nichts ausmachen (liegt ja immer an, T1 
sperrt), vielleicht bei +12V an GND und 0V an der Busleitung? (stehe 
gerade auf dem Schlauch...)

von Sven L. (sven_rvbg)


Lesenswert?

12 V direkt an die Busleitung...

von Steffen H. (teetasse)


Lesenswert?

Sven L. schrieb:
> 12 V direkt an die Busleitung...

Jetzt weiß ich was Du meinst - Danke :)

von Frank K. (fchk)


Lesenswert?

Steffen H. schrieb:

> Fertige Bus-Treiber-ICs möchte ich möglichst keine nehmen.

Die Räder sind schon erfunden, und zwar von der Automobilindustrie. Das 
ganze nennt sich ISO 9141 und wird auch als K-Line bezeichnet. Dieser 
Physical Layer wird auch von LIN benutzt.

https://www.cs-group.de/wp-content/uploads/2016/11/LIN_Specification_Package_2.2A.pdf

Es gibt fertige Transceiverbausteine, die die Busankopplung, 
Spannungsversorgung und ESD/Überspannungsschutz machen. Z.B:

http://www.microchip.com/wwwproducts/en/ATA6629

Dieses ganze Zeugs ist millionenfach erprobt und funktioniert einfach.

Nutze das Know-How und versuche nicht schlauer zu sein als die Profis. 
Wenn DU das wärst, würdest Du hier nämlich nicht schreiben.

Als Prozessor solltest Du einen Attiny 87/167 verwenden, wenn Du AVR 
verwenden willst. Das ist nämlich einer der wenigen AVRs, die 
normgerechten LIN-Support (LIN 2.1 certified) haben, und der wurde extra 
für die Automobilindustrie gebaut.

Dazu gibts dann auch die passende AppNote:

http://www.atmel.com/Images/doc8123.pdf

Wie gesagt, die Denkarbeit haben andere Leute schon gemacht.

fchk

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.