Ein 1-MHz getakteter ATmega8 steuert ein 1-WIRE BUS per TWI,I2C, USART bzw. RS232. Bei manchen zeitkritischen Anwendungen wäre die 1-WIRE Anbindung ziemlich schwierig: Beitrag "SEISMOGRAPH TV FBAS composite video Eigenbau selber bauen BMA020 ATmega1284p Assembler" Beitrag "VGA 640x480 60Hz (164x120) RGB Vollgrafic ATmega1284p Assembler" Bis zu 64 angeschlossenen 1WIRE-SLAVES erkennt die interne ROM-SEARCH-Routine. Einfach per USART oder TWI x20 senden, nach einiger Zeit liegen die geprüften ROM-IDs im SRAM und können abgerufen werden. Eine Automatik schaltet zwischen USART- und 1-WIRE-Betrieb um. Eine Taste ermöglicht zusätzlich einen ROM-Suchlauf, leuchtet die ROTE-LED, dann stimmt irgend etwas nicht (z.B. CRC-Prüfung, RESET-PRSENCE). Bei 29 Slaves dauert der Suchlauf ca. 800ms. Der ONE-WIRE-BUS wird permanent überwacht, bei Kurzschluss oder zu hoher Strombelastung leuchtet die GELBE-LED und der BUS wird nach einigen ms abgeschaltet Tritt im Normalbetrieb ein Fehler auf, dann leuchtet die ROTE-LED, der Fehlercode lässt sich auslesen. Einzelne Bits / Bytes können auf dem ONE-WIRE-BUS gelesen und geschrieben werden, aber auch ganze Kommando-Ketten verarbeitet dieses Interface. Beispiel: - RESET-PRESENCE + SKIP-ROM + CONVERT "T" - BUS-RESET (einige ms BUS auf GND) - RESET-PRESENCE-AUSWERTUNG - ROM-SEARCH-ROUTINE Problem: Manche SLAVES benötigen einen relativ hohen Strom, um gewisse Aktionen durchzuführen (z.B. bei Temperaturmessung). Der Programmcode ist so gestaltet, dass in diesem Fall der BUS-PIN auf Ausgang und HIGH geschaltet wird und einen höheren Strom zur Verfügung stellt. Bei Bedarf kann ein FET/Transistor Unterstützung leisten. Alternativ wäre auch ein DS2482-100 Single-Channel 1-Wire Master, die SMD-Technologie schreckte mich nur ab. Für Hinweise und Verbesserungsvorschläge bin ich sehr dankbar Bernhard
:
Bearbeitet durch User
Messungen am 1-WIRE-BUS bei Temperaturmessung DS18s20 DS1822 DS18B20. Bei den ersten beiden Bildern wird der benötigte Strom nur über einen 1k Widertand zur Verfüng gestellt, deutlich ist der Spannungseinbruch bei der Temperaturmessung zu sehen. Im rechten Bild werden 29 Slaves mit STRONG-PULLUP, also PIN auf HIGH + Ausgang gespeist.
:
Bearbeitet durch User
Messung an einem 1-Wire USB Adapter Das Zusammenspiel zwischen Master und Slave bei ROM-SEARCH, (A) und (B) vom SLAVE empfangen, anschließend antwortet der MASTER: https://www.mikrocontroller.net/attachment/279678/ROM_SEARCH.jpg z.B. hier erhältlich: http://www.1-wire.de/oxid/1-Wire/1-Wire-Module/
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.