forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
převod ADC0 na skutečnou hodnotu teploty

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052
 
fukac_listi
Nováček
Nováček


Založen: 14.11.2008
Příspěvky: 3

PříspěvekZaslal: 14 listopad 2008, 4:06    Předmět: převod ADC0 na skutečnou hodnotu teploty Citovat

Dobrý den, učím se programovat na Toolstick-u od silabsu. Je tam čip C8051F300. jako positivní vstup ADC multiplexoru jsem nastavil teplotní čidlo a jako negativní vstup GND, povolil ADC0 a nastavil zesílení gain=1. Měří to, ve sfr ADC0 se zobrazuje hodnota a mění se se změnou teploty. Chtěl bych požádat o radu, jak hodnotu z ADC0 převést na skutečnou teplotu ve stupních. Převodník je osmibitový (tzn 255 hodnot) a rozsah čidla je od -40 do +85(rozdíl 125 stupnu), tzn zvýšení o 1 při zahřátí o půl stpně. V ADC0 je hodnota 70 v decimální soustavě, to by znamenalo 35stupnu, ale ještě je nutno posunout na výchozí bod teplotního čidla, tzn -40 a dostávám hodnotu -5 stupnu...a tolik opravdu v pokoji nemám. Studoval jsem datasheet, ale tam z rovnice Vtemp = 3.35*(TEMPC) + 897 mV jsem taky nepochopil, jak vypočíst skutečnou hodnotu teploty.

Budu vděčný za každou radu....předem děkuji
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
jankop
moderátor
moderátor


Založen: 24.10.2007
Příspěvky: 336
Bydliště: Brno

PříspěvekZaslal: 14 listopad 2008, 13:00    Předmět: Citovat

Popisuješ to docela přesně. Jen maličkou poznámku. ADC 8 bit nemá 255 výstupních hodnot, ale 256. Zdánlivá maličkost, ale podstatná.
Teď k věci. Ten vztah pro Vtemp je jasný. 897mV je napětí senzoru při 0C a senzor má citlivost 3.35mV/C.
Jakou používáš referenci? Problém je, že převodníkem naměřený vzorek neudává napětí senzoru, musíš ho ještě přepočítat podle referenčního napětí.
Skutečné Vtemp vypočteš:
Vtemp = Vref / 256 * N kde N je hodnota z ADC
potom teplota:
Temp = (Vtemp - 897mV)/3.35
Pochopitelně i referenční napětí musíš dosadit v mV.
Pokud máš v pokoji 25 stupňů, tak tebou naměřené hodnoty odpovídají referenčnímu napětí cca 3,6V !? Pokud máš jako referenci Vdd a to je cca 3,6V, tak je to v pořádku a stačí zohlednit výše uvedené vztahy. Stabilita měření je ovšem v tomto případě přímo závislá na stabilitě napájecího napětí.

Vtemp = 3600mV / 256 * 70 = 984mV
Temp = (984mV - 897mV)/3.35 = 26 C
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
fukac_listi
Nováček
Nováček


Založen: 14.11.2008
Příspěvky: 3

PříspěvekZaslal: 14 listopad 2008, 15:05    Předmět: Citovat

No já referenční napětí nastavil v konfiguračnim wizardu na VDD...to je napájejí... a v popisu toho Toolstick-u je schema a podle něj je napájen 3.3V. Takže podle těch rovnic by to bylo

Vtemp = 3300mV / 256 * 70 = 902mV
Temp = (902mV - 897mV)/3.35 = 5/3,35 C...a to je zase nesmysl...

...připojuji TOOLSTICK USER’S GUIDE, kde na konci dokumentu je schema zapojeni čipu



ToolStick-EKrev0_2.pdf
 Komentář:

Stáhnout
 Soubor:  ToolStick-EKrev0_2.pdf
 Velikost:  375.39 kB
 Staženo:  290 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1495

PříspěvekZaslal: 14 listopad 2008, 15:54    Předmět: Citovat

Skus zobrat voltmeter a to napajacie napatie odmerat. Nameranu hodnotu dosat do vztahu a mas to presne. To ze niekto na papiery napise 3,3V a vo vyrobe osadia stabilizator na 3,6V sa moze kludne stat a nespoliehal by som sa na to co vidim na papiery ale na to co vidim na voltmetri.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
jankop
moderátor
moderátor


Založen: 24.10.2007
Příspěvky: 336
Bydliště: Brno

PříspěvekZaslal: 14 listopad 2008, 16:47    Předmět: Citovat

fukac_listi, fukac_listi.... ty jsi ale srandista!
Jak říká Martin, uvědom si, že rozdíl mezi 0 C a 25 C je pouhých 84mV !!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
fukac_listi
Nováček
Nováček


Založen: 14.11.2008
Příspěvky: 3

PříspěvekZaslal: 14 listopad 2008, 16:58    Předmět: Citovat

Tak jsem zebral voltmetr a naměřil 3380mV. A stále po dosazení do vzorečků vychází 8,125 C
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1495

PříspěvekZaslal: 14 listopad 2008, 17:10    Předmět: Citovat

A okrem voltmetra este zober datasheet a citaj na str.31:

"The uncalibrated temperature sensor output is extremely linear and suitable for relative temperature measurements
(see Table 5.1 for linearity specifications). For absolute temperature measurements, gain and/or offset calibration is
recommended. Typically a 1-point calibration includes the following steps:
Step 1. Control/measure the ambient temperature (this temperature must be known). ..."

volne prelozene:

teplotny senzor ma dobru linearitu. Pre absolutne meranie teploty je potrebna kalibracia posunu (offset) a zosilnenia (gain). typicka jednobodova kalibracia pozostava z nasledovnych krokov:

1. krok zmerajte okolitu teplotu. Teplota okolia musi byt znama Smile

takze to co si nameral (ale urcite si ako Uref daj tych 2.4V kvoli sumu z napajaniaprocesora), tomu prisud teplotu, ktoru namerias v miestnosti a nespoliehaj sa na jednoduchy vzorcek uvedeny v datasheete. Tych 897mV nemusi byt presne 897mV a konstatnta 3.35 nemusi byt presne 3.35. Pre jednobodovu kalibraciu postupuj podla dalsich krokov uvedenych vyrobcom.

Alebo je vsetko inak, tych 8,125C (tie stotiny a tisiciny pri merani teploty maju vyznam hausnumera Smile) je skutocnych a ty si kupil procesor s vnutornou klimatizaciou Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
jankop
moderátor
moderátor


Založen: 24.10.2007
Příspěvky: 336
Bydliště: Brno

PříspěvekZaslal: 14 listopad 2008, 17:12    Předmět: Citovat

No vidíš, to už není zas tak velká kosa, to už bys mohl v tý cimře pod dekou nebo s otužilou slečnou vydržet Very Happy
Teď se tě zeptám, jakým voltmetrem jsi to měřil?
1% z 20V rozsahu je 200mV, to je v tomto případě odchylka teploty 60 stupňů C. Nezapomeň 3,35 mV je 1 stupeň C.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052 Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2018 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)