diff --git a/Mikrokontroller.md b/Mikrokontroller.md index 8d21e55..9b15c96 100644 --- a/Mikrokontroller.md +++ b/Mikrokontroller.md @@ -2,6 +2,27 @@ ## Verbindungen +Alle AqHome-Geräte werden über einen einfachen 4-adrigen Bus angeschlossen. Dieser enthält diese Leitungen: +* 5V +* GND +* COM_DATA +* COM_CLOCK + +Die ersten beiden Leitungen bieten die Stromversorgung, die letzten beiden dienen der Kommunikation untereinander. + +In AqHome-Netzwerken sind alle Geräte gleichberechtigt und können jederzeit senden, wenn der Bus frei ist. +Kollisionen führen hier schlimmstenfalls zu Datenfehlern, die aber durch Checksummen erkannt werden. + +Damit das funktioniert, dürfen angeschlossene Geräte die Leitungen COM_DATA und COM_CLOCK immer nur in einen von zwei Zuständen versetzen: +* aktiv auf GND ziehen (also Pin als 'OUTPUT' definieren und diesen auf '1' setzen) +* offen lassen (also Pin als 'INPUT' definieren ohne Pull-Up-Widerstand) + +> [!CAUTION] +> Auf keinen Fall dürfen die COM-Leitungen aktiv HIGH gesetzt werden, denn das führt zu einem Kurzschluß, falls ein anderes Gerät die Leitung auf GND zieht! + +Um definierte Zustände auf den Leitungen auch dann zu haben, wenn alle Geräte auf 'INPUT' stehen, muss es im Netzwerk genau ein Gerät mit Pull-Up-Widerstand geben. In meinen Netzwerken ist das praktischerweise das Gerät, das auch die Stromversorgung (5V, GND) einspeist. + + ## Protokoll ## Mikrokontroller