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
GS schrieb: > Wird der EPROm dadurch zerstört, oder vllt ist es egal? Naja, das sollte man nicht überstrapazieren. > Kann man das > problem mit einem 5V zu 3.3V level shifter lösen? Ja. Siehe Pegelwandler. Ein MOSFET reicht, BSS138 ist dein Freund.
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
:
Bearbeitet durch User
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...
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
Ich habe ds28 nicht ausgesucht, es ist so leider vorgegeben. Und einen rs232 to 3.3v 1wire habe ich nicht gefunden.
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
Das ist alles sehr interessant, und ich werde die info auch lesen... Aber wo ist denn bitte der Unterschied zwishxen alarm presence und presence? :) Wenn ich den Speicherchip trenne, gibt die Abfrage "no presence" zurück, was auch gut ist.
:
Bearbeitet durch User
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
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. fchk
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.
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.
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. |
Alles klar, Vielen Dank für die Antworten. Bevor ich einen uC nehme, Versuche ich die einfache Lösung mit N-MOSFET und zwei Widerständen. Sogar Analog Devices empfiehlt das: https://www.analog.com/en/resources/design-notes/how-to-level-shift-1wire-systems.html
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.
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. > > Sogar Analog Devices empfiehlt das: > > 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 . . .
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
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.
Ja, so werde ich auch machen, mit einem 2n7000. Die Teile sind schon bestellt
:
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.