From f851f0c769471db515c4a01bb216a38633686801 Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 1 Mar 2026 02:06:03 +0100 Subject: [PATCH] Mikrokontroller aktualisiert --- Mikrokontroller.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Mikrokontroller.md b/Mikrokontroller.md index fded047..ab838a1 100644 --- a/Mikrokontroller.md +++ b/Mikrokontroller.md @@ -25,6 +25,20 @@ Um definierte Zustände auf den Leitungen auch dann zu haben, wenn alle Geräte ## Protokoll +Das Protokoll ist extrem einfach, damit auch das einfachste Gerät damit umgehen kann. Die COM-Leitungen sind normalerweise 'offen', d.h. alle Geräte definieren die entsprechenden Pins als INPUT und die Pullup-Widerstände im Stromversorgung-Gerät ziehen diese Pins damit definiert auf HIGH. + +Daten werden in Paketen übertragen, die eine Zieladresse, eine Längenangabe, Nutzdaten und eine Checksumme enthalten. + +Wenn ein Gerät senden möchte, beobachtet es den Bus und wartet, bis die Leitungen 'HIGH' sind. Dann zieht es die COM_CLOCK-Leitung nach GND (also 'LOW') und wartet eine kurze Zeit, damit alle angeschlossenen Geräte Gelegenheit haben, auf diese Änderung zu reagieren und in den Empfangsmodus zu schalten. Dann beginnt die Übertragung. Dabei wird bei jeder steigenden Flanke der COM_CLOCK-Leitung (also von LOW nach HIGH) das auf der COM_DATA-Leitung anliegende Bit gelesen und gespeichert, bis ein Byte übertragen ist. + +Im ersten Byte wird die Zieladresse übertragen, so daß sich im Prinzip nicht angesprochene Geräte wieder aus dem Empfangsmodus ausklinken könnten (tatsächlich lesen aber meine eigenen Geräte immer ganze Nachrichten und entscheiden nach korrektem Empfang, ob diese zu verwenden sind). + +Im nächsten Byte wird die verbliebene Anzahl an Nutzdaten-Bytes gesendet. Danach folgt die entsprechende Anzahl Bytes. + +Im letzten Byte wird eine Checksumme übertragen. + + + ## Mikrokontroller ### Einfachstes Beispiel