Die vorgeschlagenen 10k als Pullup-Widerstand sind zu groß. Du musst auf 1k heruntergehen. Mit dem Levelshifter wirst Du wahrscheinlich keine langen Strecken überwinden können, aber für einige wenige 10 cm sollte es reichen. Die "Strong Pullup" Funktion des DS2480 wird durch den Pegelwandler nicht funktionieren.
Damit kannst Du sicher ausschließen, dass Probleme durch den Levelshifter auftreten.
Erst wenn Du den zuverlässig enumerieren, lesen und beschreiben kannst, macht es Sinn, den Levelshifter und Deinen DS28E05 anzufassen. Vorher weißt Du nicht ob es Deine Software oder Dein Aufbau ist, der Probleme macht.
Warum hast Du Dir den DS2805 überhaupt ausgesucht? Es gibt den DS28E07, der 5V verträgt? Oder ein anderes 1-Wire Host-Interface?
Da wird beschrieben, wie man mit einem UART einen 1-Wire Master realisiert. Wenn Du RS232 hast, brauchst Du einen RS232-nach-3.3V Umsetzer wie den MAX3221.
So, nochmal: "Alarm Presence" ist ein Bit im DS2480, der eine Fehlfunktion auf dem Bus anzeigt. Der DS28E05 kennt diese Funktion nicht. Heißt: Da ist bei Dir elektrisch was faul.
Deswegen zuerstmal ohne Pegelwandler mit einem 5V 1-Wire Chip testen. Dabei ist es fast egal, welchen Du nimmst.
Ich habe ds28 nicht ausgesucht, es ist so leider vorgegeben.
Ja dann mußt Du eben das 1-wire Protokoll mit einem beliebigen 3,3V µC in Software nachbilden. Ist nicht weiter schlimm, da es ja im Datenblatt ausführlich beschrieben ist. Kostet also nur etwas Fleiß.
Die beiden genannten ICs können jedenfalls nicht zusammen, der eine will min 4,5V, der andere max 3,6V.
Ja dann mußt Du eben das 1-wire Protokoll mit einem beliebigen 3,3V µC
in Software nachbilden.
Allerdings muss das etwas schneller gehen als normal:
1
The DS28E05 supports overdrive speed of 76.9kbps (max) only and
2
cannot be used together with standard speed or dual-speed 1-Wire
3
slaves on the bus.
Der braucht zwar nur 400uA zum programmieren, aber wegen overdrive sollte man einen "strong pullup" in Erwägung ziehen.
1
The value of the pullup resistor primarily depends on the 1-Wire
2
pullup voltage, network size and load conditions.
Schlimm genug, dass der DS28E05 vorgegeben ist, aber wie sieht es auf der anderen Seite aus? Geht da evt. I2C? Der DS2484R funktioniert ähnlich wie der DS2480, aber auch als Pegelwandler, 3.3V zu 5V und umgekehrt.
"Alarm Presence" ist ein Bit im DS2480, der eine
Fehlfunktion auf dem Bus anzeigt. Der DS28E05 kennt diese Funktion
nicht. Heißt: Da ist bei Dir elektrisch was faul.
Ja, ein 3.3V-Chip bekommt mit 5V leicht mal faulige Stellen ;) Wenn er noch funktioniert, kommt der alarm evt. daher:
Die beiden genannten ICs können jedenfalls nicht zusammen, der eine will
min 4,5V, der andere max 3,6V.
Das stimmt so allgemein (mal wieder) nicht. Frank hat es klar gesagt. Mit einem Pegelwandler kann man den EEPROM ansprechen und lesen. Allerdings kann man dann nicht schreiben, denn der braucht einen Strong Pull Up. Das geht mit dem IC und dem externen Pegelwandler nicht.
Damit kann man den EEPROM lesen aber nicht schreiben. Nun zum 3. Mal . .
Na ja, mit der Lösung aus Figure 2 würde auch das gehen. Aber der DS2480B hat keinen Ausgangspin, mit dem er den externen Strong Pullup aktivieren könnte. Schade auch. Bei der UART-Lösung könnte man dafür eine Handshake-Leitung (z.B. DTR) nehmen.
Wenn man das Datenblatt des DS28E05 genau liest, läuft der mit 1,7-3,6V IO/VCC Spannung. Beim Schreiben des EEPROM darf diese nicht unter 1,69V sinken, dabei zieht der IC max. 400uA.
"Note 18: Current drawn from IO during the EEPROM programming interval, during which the voltage at IO must not drop below 1.69V."
D.h. mit einem 1K Pull Up an 3,3V kann man den EEPROM ohne zusätzlichen Strong Pull Up schreiben (400uA durch 1k = 0,4V Spannungsabfall = 2,9V VCC). D. h. der mehrfach zitierte Pegelwandler mit 1k auf der 3,3V Seite und vielleicht 3,3k auf der 5V Seite reichen aus, um beide ICs vollständig zu verbinden!
Für die Test des Aufbaus sollte man erstmal den direkten Lesezugriff auf den EEPROM machen. Kommando READ_ROM, das geht, weil nur ein IC am Bus hängt. Dann muss man die 8 Bytes lesen und die CRC prüfen. Wenn das klappt, geht es weiter.