Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

senzor zracnega tlaka HP03MA ?
Pojdi na stran Prejšnja  1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
ivan
Mojster


Pridružen/-a: Pon Mar 2004 18:49
Prispevkov: 45
Kraj: Cerkno

PrispevekObjavljeno: Sre Dec 16, 2009 6:02 pm    Naslov sporočila: Odgovori s citatom

pozdravljeni,

Pred časom sem v virtualni trgovini nabavil senzor tlaka HP03MA, katerega sem preklopil z 10 cm dolgimi žicami na prototipno ploščo in mi je lepo deloval. Kasneje sem naredil tiskano vezje in senzor povezal z 5 m dolgim UTP kablom,
da bi senzor namestil zunaj prostora za potrebe vremenske postaje. Pred priključitvijo senzorja na vezje
sem temeljito preveril povezave. Napajanje je 3.5 V. Že po prvih odčitkih na PC sem videl, da nekaj ni vredu .
Senzor sem prestavil nazaj na prototipno ploščo, pa tudi tam vrednosti niso bile več pravilne. Po raznovrstnih preizkusih sem pač sprijaznil, da sem spet nekaj žrtvoval za znanost. Nabavil sem nov senzor in ga pazljivo
priključil na testno ploščo, kjer je takoj deloval. Potem sem ga ponovno prestavil na izdelano tiskano vezje,
(5 m dolg UTP rabelj) preveril vse povezave in preklopil na napajanje ... Katastrofa. Ponovilo se je isto kod
prvič. Po krajši slabi volji sem se odločil, da je potrebno ugotoviti, kaj je problem. Senzor sem priključil čisto na kratko na tiskano vezje in opazoval podatke, ki so prihajali na PC. Številke so bile nesmiselne vendar so se zvezno spreminjale
, če sem senzor prijel z roko. Meril je neko vrednost temperature izven območja, tudi vrednosti tlaka so bile nekako smiselne, samo ne točne. Vzporedno z senzorjem sem začel ponovno priključevati žice od UTP kablja, ki sem ga prej odstranil in opazoval, kaj se dogaja. Dokler nisem priklopil žic za SDA in SCK se je senzor "normalno" obnašal, takoj po tem pa so rezultati plesali, čeprav so bile samo žice UTP kabla. Po mnenju kolega elektronika je verjetno problem kapacitivnosti, ki se pojavlja med žicami UTP kabla.
Iz neznanih razlogov verjetno pride do izbrisa konstant v senzorju, tako da ni več uporaben. Kaj predlagate, da bi se senzor usposobil, oziroma ali je mogoče ponovno vpisati konstante v senzor, saj je podoben EEPROM-u 42C16, kod piše v opisu SE št.166.

LP ivan
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Gustav
Profesionalec


Pridružen/-a: Pon Jun 2005 17:19
Prispevkov: 768

PrispevekObjavljeno: Sre Dec 16, 2009 6:34 pm    Naslov sporočila: Odgovori s citatom

Teh senzorjev sicer ne poznam, a ce imas voljo peizkusiti enega (vseeno ali je "zmeden" ali ne) s pocasnejsim clockom, bos lahko hitro ugotovil ali je res kriv kabel ali ne. Clock upocasni v okviru specifikacij na minimum, oziroma ce ni nobene omejitve navzdol, na najvec 100 KHz.

Kapacitivnost kabla namrec negativno vpliva samo, dokler so signali prehitri, saj upocasni prehod iz enega stanja v drugo. Ce je clock dovolj pocasen, ti tista kapacitivnost samo pomaga, da je motenj manj, seveda ob razumni predpostavki, da obe komponenti zmoreta doticno kapacitivnost napolniti in pri tem nobena ne poskoduje svojega izhoda zaradi prevelikega toka - a ker so kapacitivnosti kvecjemu ranga nF (bolj verjetno pa par razredov manjse), to ne more biti ovira.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 555
Kraj: Ljubljana

PrispevekObjavljeno: Sre Dec 16, 2009 8:31 pm    Naslov sporočila: Odgovori s citatom

Ivan,
ali imaš pll up upore na linijah SCL in SDA?
Poskusi zmanjšati vrednost teh uporov mogoče bo pomagalo.
Ne vem kako na delovanje na daljšem kablu vpliva MCLK (takt), poskusi njega poslati po drugem kablu.
Kot je napisal Gustav, tudi zmanjšanje hitrosti I2C protokola bi lahko pomagalo.
Ne spomnim pa se kakšne so omejitve za I2C protokol kar se dolžine kabla tiče.
Na tvojem mestu bi vzel kak eeprom in ga dal zraven ter preverjal ali on deluje na podaljšanem kablu (saj je cenejši kot HP03).
V prilogi je en dokument, mislim da v njmu piše omejitev dolžine kabla za I2C.
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
ivan
Mojster


Pridružen/-a: Pon Mar 2004 18:49
Prispevkov: 45
Kraj: Cerkno

PrispevekObjavljeno: Čet Dec 17, 2009 6:29 pm    Naslov sporočila: Odgovori s citatom

Hvala za predloge. Bom poskušal zmajšati takt. Upore imam 10 K, na naćrtu objavljenem v SE so 5.6K na vseh linijah. Bom še te dal manjše.

Bom poročal od morebitnem uspešno rešenem problemu.

LP ivan
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 555
Kraj: Ljubljana

PrispevekObjavljeno: Čet Dec 17, 2009 7:02 pm    Naslov sporočila: Odgovori s citatom

Ivan,
svetoval sem da daš gor kak eeprom da vidiš ali je stvar v komunikaciji ali pa do senzorja.
Če boš zraven dal eeprom, ne pozabi dodati serijskie upore (upor 390OHM proti SCL in SDA na oba čipa) ker se kar hitro zgodi da bosta oba čipa uničena ker 24C02 in HP03 imate iste I2C naslove.
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
arthurdent
Mojster


Pridružen/-a: Sob Mar 2005 21:49
Prispevkov: 29
Kraj: Ig

PrispevekObjavljeno: Sob Feb 12, 2011 8:29 pm    Naslov sporočila: Odgovori s citatom

Da malo potegnem temo iz prahu. Pred kakim mesecem sem iz AX elektronike naročil tlačni senzor HP03, ki pa sem ga komaj včeraj oživel. Ker sem bil na kratkem s časom, in sem še prej spajkal po plati, se niti nisem kaj dosti oziral na temperaturo, čeprav je kazala okoli 30°C. Danes pa sem na suho vklopil plato, in glej ga zlomka. V sobi kjer dela, je okoli 22°C, zato me tile rezultati čudijo:

T=21.2'C P=983.40hPa Prel=1015.1hPa H=252.75m
T=22.4'C P=983.08hPa Prel=1014.6hPa H=255.44m
T=23.1'C P=983.06hPa Prel=1014.5hPa H=255.64m
T=23.7'C P=982.98hPa Prel=1014.4hPa H=256.28m
T=24.1'C P=983.11hPa Prel=1014.4hPa H=255.22m
T=24.4'C P=982.97hPa Prel=1014.3hPa H=256.39m
T=24.7'C P=982.99hPa Prel=1014.2hPa H=256.27m
T=24.9'C P=983.01hPa Prel=1014.2hPa H=256.11m
T=25.1'C P=982.99hPa Prel=1014.2hPa H=256.23m
T=25.3'C P=982.85hPa Prel=1014.0hPa H=257.45m
T=25.5'C P=982.89hPa Prel=1014.1hPa H=257.06m
T=25.6'C P=982.90hPa Prel=1014.1hPa H=257.04m
T=25.7'C P=982.96hPa Prel=1014.1hPa H=256.54m
T=25.9'C P=982.91hPa Prel=1014.0hPa H=256.93m
T=26.0'C P=983.12hPa Prel=1014.2hPa H=255.14m
T=26.0'C P=983.09hPa Prel=1014.2hPa H=255.42m
T=25.9'C P=982.93hPa Prel=1014.1hPa H=256.73m
T=26.2'C P=982.91hPa Prel=1014.0hPa H=256.97m
T=26.4'C P=982.87hPa Prel=1013.9hPa H=257.30m
T=26.4'C P=982.79hPa Prel=1013.8hPa H=257.95m

meritev se izvaja na 10s.

Napajanje je 3.35V stabilno. Res pa je, da SDA in SCL preko 10K pull up upora komunicirata z Mega128 in sta vezana na 5V, zanima me, če je to vzrok za pregrevanje?

Ugotovil sem, da se temperatura vedno povzpne na okoli 30 stopinj in tam potem niha med 29 -31 stopinj (vsaka naslednja meritev je tam nekje vmes. )

T=23.7'C P=986.33hPa Prel=1018.8hPa H=227.52m
D1=40294 D2=29090
T=25.2'C P=983.99hPa Prel=1016.2hPa H=247.64m
D1=40356 D2=29092
T=25.2'C P=986.18hPa Prel=1018.5hPa H=228.76m
D1=40390 D2=29039
T=24.7'C P=986.18hPa Prel=1018.6hPa H=228.82m
D1=40243 D2=29165
T=26.0'C P=983.89hPa Prel=1016.0hPa H=248.48m
D1=40147 D2=29309
T=27.6'C P=983.75hPa Prel=1015.7hPa H=249.67m
D1=40256 D2=29246
T=26.9'C P=986.15hPa Prel=1018.3hPa H=229.08m
D1=40146 D2=29311
T=27.6'C P=983.76hPa Prel=1015.7hPa H=249.59m
D1=40071 D2=29419
T=28.7'C P=983.54hPa Prel=1015.4hPa H=251.51m
D1=40026 D2=29491
T=29.5'C P=983.56hPa Prel=1015.3hPa H=251.35m
D1=39989 D2=29545
T=30.1'C P=983.46hPa Prel=1015.1hPa H=252.24m
D1=39966 D2=29585
T=30.5'C P=983.53hPa Prel=1015.1hPa H=251.58m
D1=39945 D2=29616
T=30.8'C P=983.48hPa Prel=1015.1hPa H=252.04m
D1=39927 D2=29641
T=31.1'C P=983.40hPa Prel=1014.9hPa H=252.74m
D1=40083 D2=29507
T=29.7'C P=985.90hPa Prel=1017.7hPa H=231.18m
D1=40171 D2=29369
T=28.2'C P=985.92hPa Prel=1017.9hPa H=231.04m
D1=40056 D2=29440
T=29.0'C P=983.48hPa Prel=1015.3hPa H=252.02m
D1=40161 D2=29386
T=28.4'C P=985.95hPa Prel=1017.9hPa H=230.79m
D1=40058 D2=29442
T=29.0'C P=983.59hPa Prel=1015.4hPa H=251.04m
D1=40159 D2=29387
T=28.4'C P=985.90hPa Prel=1017.8hPa H=231.20m


Tudi takt 32kHz izklapljam vmes. Vklopim ga, ko grem izvajat meritev in ga po izvedeni meritvi izklopim. Nevem, kaj bi bilo lahko narobe. Senzor?

Prilopljen je po shemi v datasheetu.

LP G

LP G

_________________
Nisem še videl naprave, ki ni na koncu crknila.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
arthurdent
Mojster


Pridružen/-a: Sob Mar 2005 21:49
Prispevkov: 29
Kraj: Ig

PrispevekObjavljeno: Ned Feb 13, 2011 11:32 am    Naslov sporočila: Odgovori s citatom

Če povečam frekvenco branja z 1x10s na 2 meritve na sekundo, se segreje na okoli 37°C. Če berem senzor vsako minuto, dobivam čudne rezultate med 23°C in 30°C.

LP G

_________________
Nisem še videl naprave, ki ni na koncu crknila.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
arthurdent
Mojster


Pridružen/-a: Sob Mar 2005 21:49
Prispevkov: 29
Kraj: Ig

PrispevekObjavljeno: Ned Feb 20, 2011 3:58 pm    Naslov sporočila: Odgovori s citatom

Po zamenjavi senzorja, je meritev sicer stabilna. Tlak bi celo nekako sovpadal z dejanskim tlakom, ampak temperatura je pa še vedno previsoka. SHT11 na sosednjem PCBju meri 23.6°C, MP03 pa 34.5°C. Sicer meritev ne niha več tako kot je prej, vseeno mi pa ni jasno, od kje mu ta podatek. Prilagam še kodo.

LP G
Koda:


$regfile = "m128def.dat"                                    ' specify the used micro
$crystal = 11059200                                         ' used crystal frequency
$baud = 9600                                                ' use baud rate

$lib "glcdKS108.lib"
$include "font8x8tt.font"
$lib "i2c_twi.lbx"

Config Graphlcd = 128 * 64sed , Dataport = Portf , Controlport = Portc , Ce = 0 , Ce2 = 1 , Cd = 4 , Rd = 3 , Reset = 2 , Enable = 5



Config Timer1 = Timer , Prescale = 1 , Compare B = Toggle , Clear Timer = 1
Start Timer1

Ocr1a = 163                                                 '168

Oc1b_pin Alias Portb.6
Config Oc1b_pin = Output

Config Porta.4 = Output
Xclr Alias Porta.4                                          'Vezemo na xclr pin HT03M
Config Scl = Portd.0
Config Sda = Portd.1
I2cinit
Xclr = 0
Config I2cdelay = 5
Dim C_msb As Byte , C_lsb As Byte                           'pomozne spremenljivke za branje eeproma
Dim C1 As Word                                              'vrednosti vpisane v eeprom
Dim C2 As Word                                              '  ***
Dim C3 As Word                                              '  ***
Dim C4 As Word                                              '  ***
Dim C5 As Word                                              '  ***
Dim C6 As Word                                              '  ***
Dim C7 As Word                                              '  ***
Dim Ax As Byte , Bx As Byte , Cx As Byte , Dx As Byte
Dim D1 As Word , D2 As Word , J As Word                     ' VREDNOSTI AD KI JIH PREBEREMO IZ SENZORJA
Dim Dut As Single
Dim T As Single , L As Single , Cc As Single
Dim T3 As Single
Dim P As Single , Prel As Single
Dim Of As Single
Dim Sens As Single
Dim X As Single
Dim Adres As Byte , I As Byte
Dim Pbar As Single
Dim H As Single , Hnm As Single , H0 As Single , Hbit As Bit , Habs As Single
Dim Aa As Single , Bb As Single
Dim Pomozna(3) As Single
Dim S(4) As String * 8
Dim Xlcd As Byte , Ylcd As Byte , Pgraph As Integer
'KONSTANTE KI JIH RABIMO PRI IZRACUNIH
Const K1 = 32                                               '2^5
Const K2 = 16384                                            '2^14
Const K3 = 65536                                            '2^16
Const K4 = 1024                                             '2^10
Const K5 = 67108864                                         '2^26
Const Adresw = &HA0                                         'EEPROM WRITE NASLOV
Const Adresr = &HA1



'Najprej preberemo vse spremenljivke, ki so shranjene v eepromu senzorja
Gosub Beri_senzor
'in jih izpišemo na LCD
Setfont Font8x8tt
'Goto Glavna_zanka
Cls
Lcdat 1 , 0 , "C1=" ; C1
Lcdat 2 , 0 , "C2=" ; C2
Lcdat 3 , 0 , "C3=" ; C3
Lcdat 4 , 0 , "C4=" ; C4
Lcdat 5 , 0 , "C5=" ; C5
Lcdat 6 , 0 , "C6=" ; C6
Lcdat 7 , 0 , "C7=" ; C7
Wait 10

Glavna_zanka:
Xlcd = 0
Hnm = 294
Cls                                                         'nadmorska visina Ig
Do
'Cls
Gosub Izracun_tp

   S(1) = Fusing(t3 , "#.&")
'   S(2) = Fusing(h , "#.&&")
   S(3) = Fusing(prel , "#.&")
'   S(4) = Fusing(habs , "#.&")
Lcdat 7 , 0 , "Temp:" ; S(1) ; Chr(248) ; "C"
Lcdat 8 , 0 , "Tlak:" ; S(3) ; "mbar "
Pgraph = Prel
Print Pbar
Print Pgraph
Pgraph = 1030 - Pgraph
Print Pgraph
Line(xlcd , 63) -(xlcd , Pgraph) , 1
Incr Xlcd
If Xlcd > 127 Then
   Xlcd = 0
   Cls
End If
Wait 1
Loop

Izracun_tp:
Gosub Beri_tlak
Gosub Beri_temperaturo

If D2 => C5 Then
   Aa = D2 - C5
   Bb = Aa * Aa
   Bb = Bb / 16384
   Bb = Bb * Ax
   L = 2 ^ Cx
   Bb = Bb / L
   Dut = Aa - Bb
   Print "Dut at D2> C5" ; Dut
End If

If D2 < C5 Then
   Aa = D2 - C5
   Bb = Aa * Aa
   Bb = Bb / 16384
   Bb = Bb * Bx
   L = 2 ^ Cx
   Bb = Bb / L
   Dut = Aa - Bb
   Print "Dut at D2<C5" ; Dut
End If

     T = Dut * C6
     T = T / K3
     T = 250 + T
     Bb = 2 ^ Dx
     Bb = Dut / Bb
     T = T - Bb

     Of = C4 - 1024
     Of = Of * Dut
     Of = Of / K2
     Of = C2 + Of
     Of = Of * 4

     Sens = C3 * Dut
     Sens = Sens / K4
     Sens = C1 + Sens

     X = D1 - 7168
     X = Sens * X
     X = X / K2
     X = X - Of

     P = X * 10
     P = P / K1
     P = P + C7

     Pbar = P / 10

     T3 = T / 10

Select Case Pbar
Case Is < 349 : I = 210
      J = 15464
Case Is < 400.5 : I = 186
      J = 14626
Case Is < 450 : I = 154
      J = 13275
Case Is < 549 : I = 142
      J = 12676
Case Is < 600 : I = 132
      J = 12127
Case Is < 650 : I = 123
      J = 11587
Case Is < 700 : I = 116
      J = 11132
Case Is < 748 : I = 109
      J = 10642
Case Is < 800 : I = 104
      J = 10268
Case Is < 850 : I = 98
      J = 9788
Case Is < 897.5 : I = 94
      J = 9448
Case Is < 947.5 : I = 90
      J = 9089
Case Is < 1006 : I = 86
      J = 8710
Case Is < 1100 : I = 81
      J = 8207
End Select
 '
    Pomozna(1) = 10 * J
    Pomozna(2) = Pbar * I

    H = Pomozna(1) - Pomozna(2)
    H = H / 10
   '*********************
    Aa = 8000 / Pbar
    Bb = 0.004 * T3
    Bb = Bb + 1
    Pomozna(1) = Aa * Bb

    Prel = Hnm / Pomozna(1)
    Prel = Pbar + Prel

    If Hbit = 0 Then
    H0 = H
    Hbit = 1
    End If
    Habs = H - H0
Return


Beri_senzor:
   Xclr = 0
   Adres = 16
   Gosub Beri_eeprom
   C1 = Makeint(c_lsb , C_msb)                              'OD DVEH BAJTOV NAREDIMO SPREM. TIPA WORD

   Adres = 18
   Gosub Beri_eeprom
   C2 = Makeint(c_lsb , C_msb)

   Adres = 20
   Gosub Beri_eeprom
   C3 = Makeint(c_lsb , C_msb)

   Adres = 22
   Gosub Beri_eeprom
   C4 = Makeint(c_lsb , C_msb)

   Adres = 24
   Gosub Beri_eeprom
   C5 = Makeint(c_lsb , C_msb)

   Adres = 26
   Gosub Beri_eeprom
   C6 = Makeint(c_lsb , C_msb)

   Adres = 28
   Gosub Beri_eeprom
   C7 = Makeint(c_lsb , C_msb)

   Adres = 30
   Gosub Beri_eeprom
   Ax = C_msb : Bx = C_lsb

   Adres = 32
   Gosub Beri_eeprom
   Cx = C_msb : Dx = C_lsb
Return



'===============================================================================
Beri_eeprom:

  I2cstart                                                  'generate start
  I2cwbyte Adresw                                           'slave adsress
  I2cwbyte Adres                                            'address of EEPROM
  I2cstart                                                  'repeated start
  I2cwbyte Adresr                                           'slave address (read)

  I2crbyte C_msb , Ack                                      'read byte
  I2crbyte C_lsb , Nack                                     'read byte
  I2cstop                                                   'generate stop

  I2cstop                                                   'generate stop
  Waitms 20
Return

'===============================================================================
Beri_temperaturo:
 Xclr = 1
 Waitms 4                                                   'reset senzorja
 'Start Timer1
 Waitms 5
 I2cstart
 I2cwbyte &HEE
 I2cwbyte &HFF
 I2cwbyte &HE8
 I2cstop
 Waitms 40
 I2cstart
 I2cwbyte &HEE
 I2cwbyte &HFD
 I2cstart
 I2cwbyte &HEF
 I2crbyte C_msb , Ack
 I2crbyte C_lsb , Nack
 I2cstop

 Waitms 1
 I2cstart                                                   'Ponovimo branje ker upostevamo drugo prebrano vrednost
 I2cwbyte &HEE
 I2cwbyte &HFF
 I2cwbyte &HE8
 I2cstop
 Waitms 40
 I2cstart
 I2cwbyte &HEE
 I2cwbyte &HFD
 I2cstart
 I2cwbyte &HEF
 I2crbyte C_msb , Ack
 I2crbyte C_lsb , Nack
 I2cstop
 D2 = Makeint(c_lsb , C_msb)
 'Print "D2 = " ; D2
 'Stop Timer1
 Xclr = 0
 Return

 '==============================================================================
Beri_tlak:
 Xclr = 1
 Waitms 4
 'Start Timer1
 I2cstart
 I2cwbyte &HEE
 I2cwbyte &HFF
 I2cwbyte &HF0
 I2cstop
 Waitms 40
 I2cstart
 I2cwbyte &HEE
 I2cwbyte &HFD
 I2cstart
 I2cwbyte &HEF
 I2crbyte C_msb , Ack
 I2crbyte C_lsb , Nack
 I2cstop

 Waitms 1
 I2cstart
 I2cwbyte &HEE
 I2cwbyte &HFF
 I2cwbyte &HF0
 I2cstop
 Waitms 40
 I2cstart
 I2cwbyte &HEE
 I2cwbyte &HFD
 I2cstart
 I2cwbyte &HEF
 I2crbyte C_msb , Ack
 I2crbyte C_lsb , Nack
 I2cstop
 D1 = Makeint(c_lsb , C_msb)
 'Print "D1 = " ; D1
 'Stop Timer1
 Xclr = 0
 Return


_________________
Nisem še videl naprave, ki ni na koncu crknila.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
arthurdent
Mojster


Pridružen/-a: Sob Mar 2005 21:49
Prispevkov: 29
Kraj: Ig

PrispevekObjavljeno: Ned Feb 20, 2011 4:47 pm    Naslov sporočila: Odgovori s citatom

Tudi v matematičnem delu (izračun) vse štima. Sem šel na roke računat in sem prišel do istega rezultata, tako da je samo problem v nevemčem. Mogoče se bom pač sprijaznil z napačno meritvijo temperature, uporabil za to en DS...Na nobenem forumu ne dobim nikakršnega namiga glede te napake.
Še enkrat sem pomeril napetosti, ki so stabilizirane na 3.376V, glajene s kondenzatorjem 250uF takoj za regulatorjem, ob senzorju imam 4.7uF tantal kondenzator, med Vdd in Vss imam 100n blokirni kondenzator. Na I2C vodilu imam pull-up upor 10k na +3.3V. Master CLK je 32.3 kHz stabilen, duty cycle 50%, tako da res ne vem več kaj naj.

LPG

_________________
Nisem še videl naprave, ki ni na koncu crknila.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
arthurdent
Mojster


Pridružen/-a: Sob Mar 2005 21:49
Prispevkov: 29
Kraj: Ig

PrispevekObjavljeno: Ned Feb 20, 2011 11:18 pm    Naslov sporočila: Odgovori s citatom

Na enem tujem forumu sem zasledil debato z isto težavo kot jaz. Nekje vmes je bilo govora o netolerantnosti SCL in SDA ter MCLK pinov na 5V. A je to res? V Datasheetu ni nikjer nič napisanega, tudi sheme so dvoumne. Vcc je 3.3V, SDA je preko 10k pull-up na 3.3V SCL in MCLK sta direkt na M128, ki je napajan s 5V, se pravi da sta tudi ta dva nivoja 5V. A je v tem težava? Žal nimam SE166 revije, da bi si ogledal shemo. Sem pa videl več shem, kjer je bil priklop senzorja narejen tako, kot imam jaz.

L PG

_________________
Nisem še videl naprave, ki ni na koncu crknila.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 555
Kraj: Ljubljana

PrispevekObjavljeno: Pon Feb 21, 2011 5:59 pm    Naslov sporočila: Odgovori s citatom

No pravkar sem našel en tak senzor (HDPM01 kompas in senzor pritiska/temperature) in ponovno preizkusil program.
Pri meni merjenje temperature deluje povsem v redu, prikaz je stabilen, če pa pihnem v senzor se takoj pozna.

Zelo težko rečem kaj bi lahko bilo narobe, lahko da je tip senzorja drugačen.
Prvi senzor ki sem ga preizkusil je bil HP03M, ta senzor se lahko napaja z 5V, tako je tudi narisano v reviji, HP03MA ali pa HP03 pa preneseta max 4V!
Tudi matematika se med senzorji malo razlikuje. Ker sem preizkušal senzor HDPM01 (kompas in senzor pritiska/temperature) zaradi vezja kompasa senzor in procesor napajam z 3.3V (nebi ga rad uničil).
LP
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
arthurdent
Mojster


Pridružen/-a: Sob Mar 2005 21:49
Prispevkov: 29
Kraj: Ig

PrispevekObjavljeno: Pon Feb 21, 2011 11:02 pm    Naslov sporočila: Odgovori s citatom

No, to že da se napaja s 3.3V, kaj pa SDA, SCL in MCLK linije? So lahko 5V? Tega nisem v nobenem datasheetu zasledil, da bi bilo eksplicitno razloženo. Vse sheme so dvoumno narejene, v absolute rating tabeli je samo napajalna napetost omenjena, kar pa se podatkovnih linih tiče, so pa samo napisane v tabeli vhodov/izhodov in na pošteno oklesteni shemi.

Preden kontaktiram proizvajalca, bi se rad prepričal, da je z moje strani vse OK.

LP G

_________________
Nisem še videl naprave, ki ni na koncu crknila.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 555
Kraj: Ljubljana

PrispevekObjavljeno: Tor Feb 22, 2011 9:10 am    Naslov sporočila: Odgovori s citatom

Gorazd,
jaz napajam in procesor in HP z 3.3 V, tako da so vse linie na teh napetostnih nivojih.

Ker obstajata tri tipa teh senzorjev nikjer pa ni oznake možno je da je senzor drugega tipa, to pa pomeni da velja tudi druga formula.
Poskusi zamenjati formulo za izračun temperature.
Kot sem povedal senzor v prispevku SE sem napajal z 5V, prav tako tudi procesor.
Igral sem se malo z pull up upori, vendar to ne vpliva na meritev, kvečjemu procesor preneha brati podatke s senzorja.
Poskusi zmanjšati vrednost pull up uporov na 4K7, vendar dvomim da boš kaj dosegel. Pri meni je temperatura večja za +1.5'C, kar je v mejah za ta senzor (+/- 3'C).
LP
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
arthurdent
Mojster


Pridružen/-a: Sob Mar 2005 21:49
Prispevkov: 29
Kraj: Ig

PrispevekObjavljeno: Tor Feb 22, 2011 7:58 pm    Naslov sporočila: Odgovori s citatom

Stvar sem rešil. Očitno bi moral že od vsega začetka izhajat iz I2C standarda. Sedaj sem sicer rešil tako, da sem v komunikacijske linije ter MCLK porinil 1k upore in s tem omejil tok na 5mA. Sedaj mi kaže temperaturo stabilno, 0.3°C razlike med SHT11 in MP03 in tudi meritev tlaka je primerljiva z meritvijo ARSO.

LP G

_________________
Nisem še videl naprave, ki ni na koncu crknila.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Čet Avg 25, 2011 3:37 pm    Naslov sporočila: Odgovori s citatom

***nekaj časa kasneje***

Tudi sam sem uspešno zagnal tale senzor. Zanima pa me par stvari:

Imam občutek da kaže malce premalo. V programu sem sicer popravil nadmorsko višino, ki je bila 280m na mojo (325m), pa vseeno - npr. trenutno je v LJ in okolici nekje 1013 mbar, meni pa kaže 1010.

Če je mogoče bi rad kakšen link do Laplacove formule za izračun korekcije tlaka...rad razumem, kako stvari delajo, ne samo da jih prepišem in FD...je potem lažje iskati morebitne napake ali posodabljati zadeve.

Zanima me še kaj predstavljata H v gornji in H v spodnji vrstici? Če Je gornji H višiomer, potem je to čudno - ker mi ne kaže 325, kot imam vnešeno ampak malce več - 333., spodnji H pa je cca 1 do 1.5m.

BTW---kako veš ali je senzor M ali MA ? Na spodnji strani piše HP03M, na računu od SE pa MA... Cool

Kot zanimivost naj omenim še, da se mi je dogajalo da sem dobil iz senzorja vsak 3 do 5 podatek D1=0 ali D2=0 (ali celo oba nič). Ko sem na napajanje dodal 100n kondenzator (ki bi ga itak moral že takoj), je problem izginil...senzor napajam iz usmernika, ne iz razvojne plošče.

Hvala!

_________________
http://www.protoncek.com
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Pojdi na stran Prejšnja  1, 2, 3  Naslednja
Stran 2 od 3

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group