Hallo zusammen, über die Suchfunktion habe ich zwar schon einige Beiträge zum Thema gefunden, allerdings war da noch nicht das Richtige für mich dabei. Ich würde gerne drei DS1820 Temperatursensoren an meinen PIC12F1840 an nur einen Pin anschließen. Dabei würde ich gerne diese Library verwenden: http://www.mikroe.com/download/eng/documents/compilers/mikroc/pro/pic/help/onewire_library.htm Mich interessiert zunächst mal, ob die Routine, die auf den Seiten 10 und 11 (http://www.micropik.com/PDF/ds1820.pdf) erklärt wird, automatisch ausgeführt wird oder ob ich das selbst umsetzen muss? Und wenn das Ganze automatisch vonstatten geht, wo werden die Adressen dann gespeichert: sprich, wie kann ich jetzt die Temperaturen der drei Fühler nacheinander auslesen? Danke und viele Grüße Peter
P. S. schrieb: > Ich würde gerne drei DS1820 Temperatursensoren an meinen PIC12F1840 an Zunächst mal scheint deine Datenbasis überaltert zu sein. Dallas bzw. Maxim hat schon mehrere Serien dieser Chips mit diversen Verbesserungen bzw. Bugfixes auf den Markt gebracht. Aktuell sollten sie bei "DS18S20" sein. Dazu das Datenblatt: http://datasheets.maximintegrated.com/en/ds/DS18S20.pdf Auf den Seiten 9 bis 12 steht die Bus"topologie" und die Adressierung und was man von den Chips sonst noch so erfragen kann. > nur einen Pin anschließen. Dabei würde ich gerne diese Library > verwenden: > http://www.mikroe.com/... > Mich interessiert zunächst mal, ob die Routine, die auf den Seiten 10 > und 11 (http://www.micropik.com/PDF/ds1820.pdf) erklärt wird, > automatisch ausgeführt wird oder ob ich das selbst umsetzen muss? Das steht im Beispiel der Library in der main() innerhalb der do{..}while(1) Schleife: -> Ja, das mußt du selber machen. Die Funktionen selbst sind ja wohl nicht einsehbar. Jedenfalls kann ich davon nichts auf der Seite finden. Falls sich deine Frage auf die Adressenfindung (Search ROM) der Chips bezieht: Das scheint die Lib offenbar nicht zu unterstützen. Diese ist wohl nur auf einen Busteilnehmer ausgelegt. > Und wenn das Ganze automatisch vonstatten geht, wo werden die Adressen > dann gespeichert: sprich, wie kann ich jetzt die Temperaturen der drei > Fühler nacheinander auslesen? In dem Beispiel wird 0xCC auf den Bus geschrieben: "Skip ROM", d.h. es gibt offenbar nur einen Chip am Pin und der muß nicht adressiert werden bzw. werden alle auf einmal adressiert, was aber keinen Sinn macht, weil dann alle gleichzeitig losreden und es Datensalat gibt. Hast du nun drei davon, mußt du deren Adressen jeweils auf den Bus schreiben ("Match ROM") und danach lesen, wie im Beispiel. Achtung: Hier spielt das Timing eine tragende Rolle! Du mußt dir also selbst die Funktion zur Adressenfindung schreiben. Siehe dazu die Funktionene "Search ROM" und "Match ROM" im Datenblatt. Oder du siehst dir mal verschiedene offene Projekte an, wo das schon umgesetzt ist. Sollte z.B. bei Arduino zu finden sein. Jede $SUCHMASCHINE ist dein Freund. Viel Erfolg!
Nicht-PIC-Nutzer schrieb: > Aktuell sollten sie bei "DS18S20" sein. Und für Neuentwiclungen ist dem eher der DS18B20 mit verändertem Datenformat vorzuziehen
Ich habe gerade nochmal gestöbert: In den Application Notes zum DS18B20 sind eigentlich alle relevanten Informationen verfügbar, wie man mit den Sensoren bzw. 1-Wire® Chips allgemein umgehen muß. http://www.maximintegrated.com/en/products/analog/sensors-and-sensor-interface/DS18B20.html - AppNote 162: "Interfacing the DS18X20/DS1822 1-Wire® Temperature Sensor in a Microcontroller Environment" - AppNote 187: "1-Wire® Search Algorithm" - AppNote 126: "1-Wire® Communication Through Software" Die AppNote 1199 von Microchip selbst und der Quellcode dazu ist nicht sonderlich ergiebig in Hinblick auf mehrere Sensoren am Pin. http://ww1.microchip.com/downloads/en/AppNotes/01199a.pdf Oder vom AVR nehmen und umschreiben: http://siwawi.bauing.uni-kl.de/avr_projects/tempsensor/ Aber mein Geheimtip: Sieh dir den Code vom BusPirate an, der auf einen PIC aufsetzt, und schreibe ihn nach deinen Bedürfnissen um! http://code.google.com/p/dangerous-prototypes-open-hardware/source/browse/#svn%2Ftrunk%2FBus_Pirate%2FFirmware Dort die Dateien: - 1wire.c + 1wire.h - 1wire_lib.c + 1wire_lib.h Ist relativ gut dokumentiert und deshalb auch halbwegs zu verstehen. Viel Erfolg!
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.