Ich versteh dein Problem. Du mußt das Ding ganz langsam und schrittweise
vereinnahmen.
Haste n Oszi? Das ist bei solchen von-Null-auf-hundert-Versuchen
obligat. Am besten wärn Speicherozi, dann kannn man besser sehen was
schief läuft.
Mit nem Analogoszi gehts aber auch, den Vorgang halt immer wieder
wiederholen und ein Portbit des uC zum externen triggern benutzen. Hab
ich früher immer so gemacht.
Schau dir mal zB das Datenblatt des DS18B20 genau an (bis zum lesen
der Seriennummer sind zB fast alle 1-Wire Ics gleich).
Los geht's!
1. Schick mal nen entsprechenden Reset-Impuls, dann muß das Ding mit nem
einzelnen zurückkommenden Impuls "Hallo" sagen. Wenn der nicht kommt
wäre schon mal an der HW was faul.
2. Dann wieder auf Ausgabe umschalten, das Timing genau nach Kochrezept
einhalten und 0x33 wegschicken.
3. Dann wieder umschalten und die 6 Bytes die im Gänsemarsch rauskommen,
einsammeln.
Fertich ist die Seriennummer!
Genauso nach diesem Schema funktionieren auch alle anderen Funktionen
des Thermometers. Mit 0x44 kannste die Temperatur rauskitzeln. Dazu
braucht er aber ein paar ms weil er erst den Strom von der Datenleitung
saugen muß um den internen Kondensator zu füllen.
Und erst wenn du so weit bist daß du reproduzierbar(!) ein paar Bits in
den Händen hälst und absolut nicht mehr weiterweißt wie man sie
zusammensetzen muß dann meldeste dich wieder. An die Arbeit!