1-Wire Frage: DS28e05 mit DS2480 interface chip auslesen

OP #7825697
Lesenswert?

Moin,

Kann ich den DS28E05 eprom mithilfe von ds2480 interface chip auslesen?

Der EPROM akzeptiert laut Datasheet nur max 3.6 V. Während der 1Wire interface chip mit 5V arbeitet.

Wird der EPROm dadurch zerstört, oder vllt ist es egal? Kann man das problem mit einem 5V zu 3.3V level shifter lösen?

https://www.analog.com/media/en/technical-documentation/data-sheets/DS2480B.pdf

https://www.analog.com/media/en/technical-documentation/data-sheets/ds28e05.pdf

#7825704
Lesenswert?

Wenn im Datenblatt "max. 3.6V" steht, dann ist das ernst gemeint.

Du musst das EEPROM mit 3.3V versorgen. Für die Datenleitung könnte ein bidirektionaler Levelshifter wie der hier funktionieren: https://iamkisly.medium.com/simple-i2c-level-converter-916f1e76256a

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.

fchk

OP #7826854
Lesenswert?

Ok,danke für die Antworten. Ich habe trotzdem den Chip angeschlossen. Nach reset Befehl gibt mir DS2480 "alarm presence" feedback zuruck.

Ich folge diesen App Note (s.9) https://techwww.in.tu-clausthal.de/site/Dokumentation/Sensoren/OneWire/app_SIO-OW.pdf

Wo genau ist der Unterschied zwischen presence und alarm presence?

Beim Versuch den Speicher zu lesen bekomme ich noch Probleme. Dies kann aber nocn an der software liegen...

#7826877
Lesenswert?

Nimm erstmal ein 5V EEPROM wie den DS2431. https://www.analog.com/en/products/ds2431.html

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?

fchk

#7826897
Lesenswert?

Es geht auch anders. Lies das hier:

https://www.analog.com/en/resources/technical-articles/using-a-uart-to-implement-a-1wire-bus-master.html

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.

https://www.ti.com/lit/ds/symlink/max3221.pdf

Wenn der Ausgangsstrom vom MAX3221 nicht reicht, kannst Du noch einen Treiber wie den 74LVC1G07 dahinter schalten:

https://www.ti.com/lit/ds/symlink/sn74lvc1g07.pdf

Beispielsoftware findet sich als Link am Ende der AppNote.

Damit umgehst Du den Levelshifter und den relativ speziellen Bridge-Baustein.

fchk

#7826951
Lesenswert?

GS schrieb:

Das ist alles sehr interessant, und ich werde die info auch lesen...

Aber wo ist denn bitte der Unterschied zwishxen alarm presence und presence? :)

Bei Alarm Presence stimmt was nicht.

Siehe Datenblatt DS2480B Seite 16. Nach der Timing-Tabelle wird der Presence Detect Mechanismus erklärt. Da steht auch das mit dem Alarm Presence.

Ich wiederhole mich: Probiere erstmal einen 5V-Chip aus, bevor Du Dich an Deinen 3.3V Chip machst.

fchk

#7827143
Lesenswert?

GS schrieb:

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.

#7827182
Lesenswert?

Peter D. schrieb:

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.

#7827185
Lesenswert?

Frank K. schrieb:

"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:

1
Presence Detect Sample Time tMSP (Notes 2, 15) 8 ... 10 µs
2

3
Note 15: Interval after tRSTL during which a bus master can read a
4
logic 0 on IO if there is a DS28E05 present. The power-up presence
5
detect pulse could be outside this interval but will be complete
6
within 2ms for a 3.3V VPUP or 20ms for a 1.8V VPUP after power-up.
#7827245
Lesenswert?

Peter D. schrieb:

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.

#7827251
Lesenswert?

Falk B. schrieb:

GS schrieb:

Vielen Dank für die Antworten.

Bevor ich einen uC nehme, Versuche ich die einfache Lösung mit N-MOSFET und zwei Widerständen.

Die von mir vorgeschlagene UART-Lösung ist einfacher. Da brauchst Du keine uC-Firmware zu schreiben.

https://www.analog.com/en/resources/design-notes/how-to-level-shift-1wire-systems.html

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.

fchk

#7827254
Lesenswert?

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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren