Hi, ich bin neu im Forum und hoffe schonmal zu Beginn dass ich die richtige Kategorie gewählt habe. Wenn nicht, tut es mir schonmal leid ;). So, nun zu meinem Problem. Ich habe ein Raspberry Pi und darauf den DS2482-100 1-Wire Adapter gesteckt. An diesem Adapter ist der DS18B20 Temperatursensor angeschlossen. Hier mal kurz die beiden Links zu den entsprechenden Datenblättern des DS2482-100 und DS18B20: http://datasheets.maximintegrated.com/en/ds/DS2482-100.pdf http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf Eine grundlegende Übersicht wie die Geräte angeschlossen sind habe ich auch. http://evil.hn.vc/linux/HomeServer/pdf/Raspberry%20Pi%20-%20Hardware.pdf Auf Seite 8 ist das ganze mal schematisch dargestellt. Den zweiten Sensor einfach wegdenken, es ist nur einer angeschlossen. Danach wird beschrieben wie man das ganze mit Hilfe von OWFS ausliest. Nun möchte ich aber nicht mit OWFS darauf zugreifen sondern mit den i2c-tools Befehlen i2cset und i2cget (Ziel ist es ohne OWFS zu arbeiten). Und hier komme ich nicht weiter. Der i2cset Befehl sieht grundlegend so aus: i2cset -y <Bus> <Adresse> <Register> <Wert> Der i2cget Befehl ist ähnlich: i2cget -y <Bus> <Adresse> Der Bus wäre 1 und die Adresse 0x18, aber welches Register muss ich benutzen? Ich muss folgende Befehle an den DS18B20 senden: 0xCC für das SkipROM Command 0x4E für Write Scratchpad Dann eine Sekunde ungefähr warten damit die Daten geschrieben werden. Und dann: 0xBE für READ Scratchpad Mit ist einfach nicht klar wie ich dass über den DS2482-100 machen muss, da ich ja die Befehle zuerst an ihn senden muss. Der leitet doch dann die Befehle an den DS18B20 weiter, dass ist doch richtig so oder? Sobald dann der READ Scratchpad-Befehl gelaufen ist müsste ich das Ergebnis doch beim DS2482-100 auslesen können oder? Ich weiß dass sind eine ganze Menge Fragen aber ich sitze jetzt schon eine ganze Weile an dem Problem, genau genommen knapp 3 Wochen und komme einfach nicht weiter. Weiß vielleicht jemand von euch wie ich dass machen muss? Ich bin dankbar für jede Idee bzw. jeden Hinweis den ihr mir geben könnt. Ich habe schon so viel im Internet gesucht, mir fällt einfach nichts mehr ein wo ich noch suchen soll bzw. welche Suchbegriffe ich noch verwenden soll :(.
Hi, habe mich auch kürzlich mit dem DS2482 bzw. DS18B20 beschäftigt. Habe da zwar noch ärger mit der parasitären Stromversorgung, aber ganz andere Baustelle. Schau dir mal im Datenblatt vom DS2482 ab Seite 18 an. Hier ist beschrieben, welche Befehle du über I2C senden musst, damit er z.B. ein Byte über 1-Wire rausschickt. Du willst z.B. alle Sensoren anweisen, eine Messung durchzuführen. Der allererste Schritt ist das Initialisieren vom DS2482. Du Sendest also ein I2C_start, Adresse + Write (Write ist 0, also direkt die Adresse), DS-Reset, I2C_stop Das sollte dann z.B. so aussehen i2cset -y 0 0x30 0xF0 Jetzt musst du das Teil konfigurieren, also Statusregister setzen. Das Teil soll auf normaler geschwindigkeit mit Active-Pull-Up laufen, das Byte für das Control-Register ist damit 11100001 -> E1 (die vorderen 4 Bit sind die hinteren 4 invertiert, Bit 5 ist immer 1, Bit 1 ist immer 0) Das Konfigurationsregister des DS2482 ist 0xD2 also i2cset -y 0 0x30 0xD2 0xE1 Als nächstes möchtest du die Temperaturmessung anwerfen... Dazu musst du dem 1-Wire-Sensor ein Skip ROM 0xCC und dann ein convert_t 0x44 schicken. Das Senden von 1-wire-Bytes geht mit dem DS2482 über den OW-Write-Byte-Befehl 0xA5 ic2set -y 0 0x30 0xA5 0xCC i2cset -y 0 0x30 0xA5 0x44 Schließlich nach einer kleinen Pause noch auslesen. Entweder du ließt über Match-Rom aus 0x55 oder wieder über Skip-Rom, wenn du nur einen Sensor hast. Bei Match-Rom musst du dann die 8-Byte ROM-ID einzeln verschicken, danach den Read Scratch-Pad-Befehl 0xBE ic2set -y 0 0x30 0xA5 0x55 # Match ROM ic2set -y 0 0x30 0xA5 0x28 # Family Code DS28B20 ic2set -y 0 0x30 0xA5 <1. Byte Adresse> .... und die weiteren 8 Byte ic2set -y 0 0x30 0xA5 0xBE # Read Scratch-Pad und jetzt 9x ic2set -y 0 0x30 0x96 # 1-wire receive byte i2cget -y 0 0x30 0xE1 # Read Register 0xE1 <- hier ist das 1. byte aus scratch pad Danach hast du alles ausgelesen... Hoffe das Hilft dir etwas weiter, sonst wie gesagt im Datenblatt stehen ein Haufen Befehlssequenzen...
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.