AD omvandlare värde!
AD omvandlare värde!
Har haft en hetsig diskusion nu om AD omvandlar värden och behöver lite hjälp att överbevisa vad som är rätt eller fel.
Vi håller på mäter en 0-5V signal med en 10 bitars AD och en av oss påstår att om spänning 2.5V mäts så kommer bit värde 511 och 512 vara lika medans den andra påstår att värde 511 representerar 2.5V. Vilket påstående är rätt och hur bevisas det?
//Olssoninc
Vi håller på mäter en 0-5V signal med en 10 bitars AD och en av oss påstår att om spänning 2.5V mäts så kommer bit värde 511 och 512 vara lika medans den andra påstår att värde 511 representerar 2.5V. Vilket påstående är rätt och hur bevisas det?
//Olssoninc
strombom har relativt rätt
Om förutsättningarna är som strombom beskriver gäller samt att AD-omvandlaren är helt linjär (alltså perfekt):
Varje steg är värd 5/1024V = 4,8828125mV. Detta ger att man kan säga såhär:
0x000 = 0,0000000 - 4,8828124mV
0x001 = 4,8828125 - 9,7656249mV
0x002 = 9,7656250 - 14,6484374mV
osv.
Alltså representerar 511 och 512 olika värden men då 2,5V är så pass grovt värde kommer de nog att fladdra precis som strombom skrivar.
Hade det varit 2,500000V och en total felfri AD kan man säga vad den skulle ge av värde ut men läs datablad och förstå att man kan höfta ganska bra men inte exakt.
Om förutsättningarna är som strombom beskriver gäller samt att AD-omvandlaren är helt linjär (alltså perfekt):
Varje steg är värd 5/1024V = 4,8828125mV. Detta ger att man kan säga såhär:
0x000 = 0,0000000 - 4,8828124mV
0x001 = 4,8828125 - 9,7656249mV
0x002 = 9,7656250 - 14,6484374mV
osv.
Alltså representerar 511 och 512 olika värden men då 2,5V är så pass grovt värde kommer de nog att fladdra precis som strombom skrivar.
Hade det varit 2,500000V och en total felfri AD kan man säga vad den skulle ge av värde ut men läs datablad och förstå att man kan höfta ganska bra men inte exakt.
Vad är *igentligen* problemet ?
Hela diskussionen är oerhört teoretisk och frågan om 2.5 V motsvarar
511 eller 512 (eller 511.5) är i praktiken oftast ganska ointressant...
Dessutom så brukar databladet ha en tydlig beskrivning över hur
"stegen" fördelas samt hur brytpunkterna mellan de olika stegen beräknas.
I princip alla ADC'er i dag är monotona (d.v.s att de aldrig stegar "bakåt"),
men stegen i sig kan vara olika långa/höga.
Strombon> Jag hävdar att AD:n kommer fladdra mellan 511 och 512 om man har "exakt" 2.5V......
I *praktiken* (om man inte har en väldigt "bra" analog koppling) så kommer
värdet att fladdra över kanske 3-4 steg...
Men som sagt, om man vill ha ett rent teoretiskt svar, så har databladet det !
Hela diskussionen är oerhört teoretisk och frågan om 2.5 V motsvarar
511 eller 512 (eller 511.5) är i praktiken oftast ganska ointressant...
Dessutom så brukar databladet ha en tydlig beskrivning över hur
"stegen" fördelas samt hur brytpunkterna mellan de olika stegen beräknas.
I princip alla ADC'er i dag är monotona (d.v.s att de aldrig stegar "bakåt"),
men stegen i sig kan vara olika långa/höga.
Strombon> Jag hävdar att AD:n kommer fladdra mellan 511 och 512 om man har "exakt" 2.5V......
I *praktiken* (om man inte har en väldigt "bra" analog koppling) så kommer
värdet att fladdra över kanske 3-4 steg...
Men som sagt, om man vill ha ett rent teoretiskt svar, så har databladet det !
Eftersom det var en teoretisk diskussion om funktionsprinciper från början så är det väl helt ok att den faktiskt är teoretisk, tycker jag.
De AD-omvandlare som jag jobbat praktiskt med har haft att fullt skalutslag = VH - 1LSB. D.v.s i det här fallet skulle VH motsvara värdet 1024 som inte går att representera utan det högsta möjliga värdet blir då 1023 som är VH - 1LSB. Svaret på frågan blir då exakt 512 för 2,5V.
Så fungerar t.ex. AD-omvandlaren i HC11-processorn som var den jag hade närmast till hands att titta på just nu. Därmed inte sagt att alla omvandlare måste fungera på det sättet även om jag har för mig att det var så det lärdes ut när man pluggade en gång i tiden. Skall man ha ett bättre svar än det så får man nog välja en eller flera faktiska omvandlare och, som Sodjan säger, kolla i databladen.
De AD-omvandlare som jag jobbat praktiskt med har haft att fullt skalutslag = VH - 1LSB. D.v.s i det här fallet skulle VH motsvara värdet 1024 som inte går att representera utan det högsta möjliga värdet blir då 1023 som är VH - 1LSB. Svaret på frågan blir då exakt 512 för 2,5V.
Så fungerar t.ex. AD-omvandlaren i HC11-processorn som var den jag hade närmast till hands att titta på just nu. Därmed inte sagt att alla omvandlare måste fungera på det sättet även om jag har för mig att det var så det lärdes ut när man pluggade en gång i tiden. Skall man ha ett bättre svar än det så får man nog välja en eller flera faktiska omvandlare och, som Sodjan säger, kolla i databladen.
Se även :
http://www.freescale.com/files/microcon ... AN2438.pdf
("ADC Definitions and Specifications")
http://www.freescale.com/files/microcon ... AN2438.pdf
("ADC Definitions and Specifications")
Re: AD omvandlare värde!
Ville du avvakta svaren här innan du avslöjar vad DU trodde? Kunde inte hålla mig!olssoninc skrev:Har haft en hetsig diskusion nu om AD omvandlar värden och behöver lite hjälp att överbevisa vad som är rätt eller fel.
...och en av oss påstår...
> Den processor som jag arbetar med är en HC12D64 vilket jag då borde anta
> att AD:ns värde 512 motsvarar 2.5 Volt.
Kanske rent teoretiskt så som diskussionen i tråden började.
Men om man tittar på en specifik processor/ADC, så gäller naturligtsvis
de praktiska begränsningar och felnivåer som databladet specificerar.
Bl.a ett upp till +/- 2.5 bitars fel i alla ADC mätningar. Mer *garanterar*
inte Freescale (men sannolikt är felet normalt lite lägre).
Vilket är det du vill veta ?
Att bygga en applikation som förutsätter ett visst *exakt* förhållande
mellan en viss inspänning och ett visst digitaliserat värde är lite farligt...
PS: Jag hittade inte HC12D64, utan kollade HC12D60 istället. Jag tror
dock inte att det är någon avgörande skillnad...
> att AD:ns värde 512 motsvarar 2.5 Volt.
Kanske rent teoretiskt så som diskussionen i tråden började.
Men om man tittar på en specifik processor/ADC, så gäller naturligtsvis
de praktiska begränsningar och felnivåer som databladet specificerar.
Bl.a ett upp till +/- 2.5 bitars fel i alla ADC mätningar. Mer *garanterar*
inte Freescale (men sannolikt är felet normalt lite lägre).
Vilket är det du vill veta ?
Att bygga en applikation som förutsätter ett visst *exakt* förhållande
mellan en viss inspänning och ett visst digitaliserat värde är lite farligt...
PS: Jag hittade inte HC12D64, utan kollade HC12D60 istället. Jag tror
dock inte att det är någon avgörande skillnad...