Unter http://c-control-support.de/ gibt es Demoprogramm hierzu.
mfg
Stefan
Hi!
Ich habe ne C-Control und habe vier DS1820 angeschlossen (jeweils an einen digitalen Port). Nun habe ich aber ein Problem: Wie lese ich diesen Temperatursensor aus? Hat sich da schon einer mit diesem Thema beschäftigt und könnte mir vielleicht helfen?
Viele Grüße
Bernie
Unter http://c-control-support.de/ gibt es Demoprogramm hierzu.
mfg
Stefan
*Räuspern* Die Seite habe ich auch schon durchsucht, aber ich find's da nicht. Ich seh da nur den einene Temperatursensor. Aber das ist doch kein DS1820, oder?
mfg
Bernie (dem hoffentlich geholfen werden kann)
Hi,
ich schätze, da hast Du dir was vorgenommen.
Hab gerade mal das Datenblatt überflogen.
Da gibt es ein wunderbares Kapitel über das
"1- Wire Bus System". Wahrscheinlich ist das sowas wie der SMBus
in neueren Rechnern.
Das ist schon recht komplex für eine Ansteuerung/ Auswertung
mit dem sperrigen Basic der C-Control. Die Daten
müßten erst mal vom Port "abgepollt" und dann
in Variable eingelesen werden. Umgekehrt, um den kleinen
2-Draht-Wunderchip anzusprechen, mußt Du sie wieder Serialisieren.
Im Prinzip bräuchtest Du hierfür 'ne zweite UART
Denke, die Serielle der CC wird sich hierfür nicht
mißbrauchen lassen.
Falls Du jedenfalls noch nicht so viel Erfahrung hast,
würde ich Dir eher empfehlen 'nen guten alten NTC oder PTC
zu besorgen und das Ganze mit 'nem Spannungsteiler an den
analogen Eingängen auszuprobieren.
Dazu braucht's nicht so viel Code bzw. zusätzliche
Komponenten, da die C-Control eigene A/D-Wandler hat.
Viel Glück noch,
tholan
Hmm. Naja ich muss es erstmal mit nem DS1820 versuchen, da ich diese Dinger nun mal habe, bzw neu gekauft habe.
Also ich fänds Klasse, wenn mir einer den Code (am besten ein Beispielprogramm) einfach mal geben könnte. (Vielleicht gibts den ja wirklich auf der Seite den Sugarman vorgeschlagen hat). Das Datenblatt vom DS1820 habe ich mir auch schon durchgelesen doch da verstehe ich (noch) nicht allzuviel von.
Grüße
Bernie
Die Sensoren kannst du dank dem 1-Wire Bus alle an den gleichen Port anschliesen.
Dieser Assemblercode könnte ein Ansatz sein.
Quelle: http://www.b-kainka.de/ccbsp.htmCode:port .equ $02 ; Port C portdir .equ $06 ; Datenrichtungsregister ds18s .equ 7 ; bit 7 ds18smask .equ $80 bas_1 .equ $b7 ; erste Basic Variable => Fehlerrückgabe bas_2 .equ $b8 ; zweite Basic Variable => Daten Rein&Raus .ORG $101 reset sei ;mask any intr, as they inject heavy jitter bclr ds18s,port ; port low bset ds18s,portdir; Port als Ausgang lda #$4b ; 4b 75 * 10 5sec => ~750 5sec jsr delay ; in Warteschleife springen bclr ds18s,portdir; Port high Z lda #$08 ; 8 * 10 5sec => ~80 5sec jsr delay ; warten auf PRESENCE-PULSE-DS1820 lda port and #ds18smask ; nur bit1, alle anderen maskieren bne error ; Fehler-Flag setzen lda #$2d ; erneut 45 * ~10 5sec => ~450 5sec jsr delay byte_send lda #$08 ; 08 Bits sta bas_1 bset ds18s,port bset ds18s,portdir byte_send_b bclr ds18s,port; Write 1 Slot ~5 5sec Port 1 Low clc ; clear Carry bit ror bas_2 ; in Carry schieben bcc write0 bcs write1 write0 bclr ds18s,port bra weiter write1 bset ds18s,port weiter lda #$07 ; 7 * ~10 => 70 5sec delay jsr delay bset ds18s,port dec bas_1 bne byte_send_b cli ;vor jedem rts ein cli nicht vergessen rts byte_read lda #$08 ; 08 Bits sta bas_1 lda #$00 sta bas_2 byte_read_b bset ds18s,port; first set value, then drive, not vice versa bset ds18s,portdir bclr ds18s,port bclr ds18s,portdir nop ; 14 5sec abwarten nop ; wenn ein hochkapazitives oder langes Kabel verwendet wird, haben die Dallas Probleme nop ; von 0 auf highZ in 14us zu kommen. Event muessesn dann mehr nops eingebaut werden. nop nop nop nop nop brset ds18s,port,rot ; Bit in C lesen rot ror bas_2 lda #$07 ; Gesamtzykluszeit abwarten (~60 5sec) jsr delay dec bas_1 bne byte_read_b bset ds18s,port bset ds18s,portdir cli rts delay ldx #$02 ; ca. 10 5sec delay inloop decx bne inloop deca bne delay rts error lda #$ff ; Ein Fehler => 255 speichern sta bas_1 cli rts .end
Jep auf diesen Code bin ich auch schon gestoßen. Ich werd mich mal intensiver damit auseinander setzen. (Muss auch erstmal lernen wie man mit Assemblercode umgeht). Falls noch einer mehr Code/Informationen zum Auslesen des DS1820 hat, bitte melden ja?!
Schonmal herzlichen Dank,
Bernie
Hi, hier bin ich nochmal.
Also so richtig weitergekommen bin ich nicht. Deshalb werde ich jetzt wohl oder übel auf NTC/PTC umsteigen und meine 4 DS1820-Sensoren bei Ebay verticken.
Trotzdem vielen Dank für die Tipps,
Gruß Bernie
Hallo.....
Für die M 2.0 gibt es einen IICBUS-1Wire-Bus
converter. Auf c-control-support sind Demos
zum Converter und DS1820.
ciao....
Lesezeichen