PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kabellänge DS1621?



Haveaniceday
07.03.2008, 18:26
Nabend zusammen,
nach langem rumprobieren denke ich, habe ich die "Lösung" meines problems gefunden.
Undzwar zeigt der DS1621 nurnoch 253°C an, wenn ich ihn über ein Telefonkabel (ca. 3m) länge anschließe.
Wenn ich ihn allerdings mit kurzen Leitungen (5cm) anschließe, misst er richtig, bzw. ich bekomme einen Messwert der hinkommt und sich auch ändert wenn man draufpustet...

Kann ich diesem problem ihrgendwie gegenlenken? Oder liegt es doch nich an dem langen Telefonkabel?

LG Hannes

wawa
08.03.2008, 18:01
hi, du betreibst ihn doch mit dem I2C bus oder nicht? die pull-up widerstaende sind da von immenser bedeutung je nach der geschwindigkeit wie du ihn taktest. bei zu langen leitungen, schlechtem kabel und zu hoher geschwindigkeit - bekommst du das signal nicht auf GND gezogen. ich nehme an - daher geht es bei kurzen abstaenden. also die geschwindigkeit langsamer machen ( kleiner 10kHz ) und die PU's auf 2k2 erniedrigen.
Bist du dir sicher dass dein timing stimmt? kommt sehr haeufig beim I2C vor.

Haveaniceday
09.03.2008, 17:14
Also ich benutze die Lib von Peter Fleury... So wie ich das sehe, ist er auf 100KHz eingestellt.
Code aus der i2cmaster.s



.section .text

;************************************************* ************************
; delay half period
; For I2C in normal mode (100kHz), use T/2 > 5us
; For I2C in fast mode (400kHz), use T/2 > 1.3us
;************************************************* ************************
.stabs "",100,0,0,i2c_delay_T2
.stabs "i2cmaster.S",100,0,0,i2c_delay_T2
.func i2c_delay_T2 ; delay 5.0 microsec with 4 Mhz crystal
i2c_delay_T2: ; 4 cycles
rjmp 1f ; 2 "
1: rjmp 2f ; 2 "
2: rjmp 3f ; 2 "
3: rjmp 4f ; 2 "
4: rjmp 5f ; 2 "
5: rjmp 6f ; 2 "
6: nop ; 1 "
ret ; 3 "
.endfunc ; total 20 cyles = 5.0 microsec with 4 Mhz crystal

Sehe ich das richtig, das ich nur folgende Zeilen ändern muss:


.stabs "",100,0,0,i2c_delay_T2
.stabs "i2cmaster.S",100,0,0,i2c_delay_T2


um auf 10KHz umzustellen?

Nutze im mom 4,7KOhm Widerstände, meinste die sind zu groß?

LG Hannes

//edit:

Habs jetzt mal folgendermaßen probiert:



.stabs "",10,0,0,i2c_delay_T2
.stabs "i2cmaster.S",10,0,0,i2c_delay_T2


Trozdem das selbe

Haveaniceday
10.03.2008, 18:36
Wie ich die Hz in der Lib von PEter Fleury ändere hab ich leider immer noch nich rausgefunden.
Aber habe mal folgendes in google gefunden:

http://www.cc2net.de/Tips/body_tips.html#i2cfeldbus

Aber weiß nicht so recht was ich davon halten soll...

Hat jemand damit erfahrung gemacht?

LG Hannes