Jak funguje ADC převodník - ADC0804

Ahoj! potřeboval bych poradit jak funguje tento obvod. Je to AD převodník. Z datašítu jsem v pohodě pochopil jak funguje komunikace s MCU, nechápu ale jak pracuje (a jak to zapojit) tu analogovou část. Má to vstupy + a -, a Vref - V ref slouží na co? D8le na co je vstup CLK IN a CLK R ?? To bude asi hodinový signál, kam a jak to ale zapojit? Kolik vzorků za sekundu tenhle převodník zvládne?
S AD převodníky jsem nikdy nedělal, proto tak blbé dotazy.
datasheet zde
Moc díky moc všem. Honza
PS:do pátku to musím chápat jinak mám po krku :slight_smile: ale snad to pochopim.

Vref je referencni napeti a urcuje rozsah prevodniku, v tomhle pripade je rozsah 2*Vref. Bude-li na vstupu rozdilove napeti od 0 do 4V, Vref by melo byt 2V pro vyuziti rozsahu prevodniku.

dalsi info, az to doctu :slight_smile:

Edit: Clk in je vstup pro hodiny, ktere SAR prevodnik potrebuje, Clk R je vystup, muzes jim zivit dalsi prevodniky, nebo ho vyuzit pro self-clock (prevodnik se bude “taktovat” sam a nebude potrebovat jinej zdroj hodin). Zapojeni pro self-clock je na strane 12 (Figure 11.). Prevodnik ma garantovane parametry pro fmax=1MHz, to je u 8bit SAR prevodniku asi 100ksps (100k vzorku za sekundu).

Prevodnik ma diferencialni vstupy, takze bys mel spravne pouzit driver, ale melo by bejt mozny ho provozovat s uzemenym -Vin a merenou hodnotou na +Vin.

aha, takže pochopil-li jsem toto dobře, takže pokud chci převodník používat v rozsahu 0…4V, musím zvolit referenční napětí polovinu, tedy 2V. Otázkou je co se objeví na výstupu převodníku při 0V, 2V 4V??
Předpokládám-li správně, tak, pokud vstupní U=0…4V, Vref=2V tak platí:
0V na vstupu = 00h bude na výstupech
2V = 80h (128)
4V = FFh (255)
Je to tak správně??
Tušil jsem že to tak nějak bude, ale nejsem si tím jistý ani ted :slight_smile:
dík za rychlou reakci
Honza

melo by bejt, nejlip to poznas, az to zapojis :smiley:

hlavni je, ze chapu jak to priblizne funguje, to kdyztak otestujeme :wink:

Uz si vyzkoumal na co sou ty dva vstupy/výstupy CLK-IN a CLK-R ??
já akorát vim že sou to hodiny… jak to ale zapojt, atd, nemam paru… :slight_smile:

Na tenhle obvod jsem narazil zde:
elektronika.kvalitne.cz/RAM/RAMzvuk.html
Jiný, cenově přijatelný ADC jsem nenašel. (dostupný)
Jestli ti ot zapojení pomůže k odhalení těch zbývajících dvou signálů… :slight_smile:

tak jako vim jak to zapojit, ale nemám páru proč takle, proč zrovna tyhle hodnoty součástek, atd…

fakt dik za pomoc :slight_smile:
Honza

Já vůl, že sem si to nepřečet dřív. Sice to nevysvětluje to co chci, ale aspoň trocha informací.

Součástky R3 a C3 kolem převodníku slouží k nastavení frekvence jeho oscilátoru na asi 2MHz. Odpory R9 a R8 nastavují referenční napětí obvodu. Maximální vstupní napětí na V+ je rovno dvojnásobku napětí na Vref, takže na Vref pinu může být maximálně 2,5V

Z připojení toho R3 a C3 jsem poznal, že se jedná o “invertorový oscilátor”. Vstup invertoru je zapojen přes kondík na zem, výstup invertoru je přes odpor zaveden na vstup. Hmm. Kmitá to na cca 2MHz. Hezký. A jak spočítám hodnoty těch dvou součástek ??

CLK IN je vstup invertoru, CLK-R je výstup invertoru

Z datasheetu si pamatuju zmínku o tom, že max. hodinové freqence je 3MHz. Otázka je, kolik vzorků to při 2MHz dokáže udělat za sekundu?
Tedy potřebujeme vědět, kolik taktů je třeba na jeden vzorek. Našel jsem tam nějakou zmínku o 8mi cyklech - nepřekouk sem se náhodou? Zdá se mi to málo…

hmm jak můžu bejt takovej vůl. Do toho datasheetu sem se podíval znova, pořádně, a hle, já tam našel i vzorec pro spočítání tý Fclk. Je to:

fclk = 1/1.7 * R * C

Akorát nevim (protože to už nezmínili) (PS: je to dole někde, figure 11) jestli je C v pF, F, nF, uF, mF, a R jestli je R, k, M,… ??

Ještě zbejvá jediná věc: kolik taktů hodin je třeba na jeden vzorek??
z datasheetu vim akorát to, že při 1MHz to stihne 13690 vzorků za sekundu.
Myslíte že by počet cyklů na vzorek se dal spočítat vydělením frekvence hodin počtem vzorků za sekundu??
1000000/13690 = 73.04601899
hmm tolik taktů na vzorek? To se mi nezdá…

Tak vzorec na spočítání fclk nějak nefunguje. V popisu tvrdí že je to asi 2MHz. Zkoušel jsem tam různě dosazovat 1k a 68pF, k výsledku 2MHz jsem se fakt nedostal. Zkoušel jsem i ten vzorec obměnit (trochu zpřeházet to dělení a násobení… a nic…
Vzorec je tam napsaný přesně takto: fclk = 1/1.7 R C
Takže stejně zbývají 2 věci :slight_smile: Počet taktů na vzorek, a jak spočítat ten oscilátor :imp:

Tady se ale urodilo :smiley:
Zkousel jsi do toho vzorce dosadit v zakladnich jednotkach? obvykle se to tak dela, pokud neni uvedeno jinak :wink:

Aproximacni prevodnik (SAR) potrebuje na prevod tolik taktu, kolik ma bitu, tedy 8bit -> 8 cyklu.
Rekneme, ze na reakci na preruseni a precteni dat budes potrebovat 2 cykly prevodniku (zalezi na rychlosti mcu, u x51 by to bylo vic, avr by to melo stihnout), takze uvazujme tedy 10 cyklu na prevod s obsluhou dohromady. Pri nastaveni oscilatoru na 1MHz priblizne vyjde 1MHz/10=100kHz - to je priblizne vzorkovaci rychlost toho prevodniku. Nekoukal jsem tam po maximalni frekvenci, ale garantovany parametry ma prevodnik do 1MHz, ale klidne zkus i vyssi, jak se bude chovat :wink:

EDIT: tenhle prevodnik je ale lemra… z nejakyho duvodu ma pri 1MHz psanou dobu konverze 66-73us a conversion rate 13690 prevodu/s

no z toho datasheetu jsem vykoumal jak se to dá zapojit aby to konverotovalo neustále (INTR se připojí na WR myslim) a timpadem to hned po dokoncenivzorku to zacne dalsi.
Takze 1MHz / 8 = 125000, znamená to tedy 125000 vzorků za sekundu??
Já jen že v datasheetu tvrdí že při 1MHz hodiny, INTR na WR, to udělá max 13690 vzorků za sekundu.
Něco tady nesedí. :question:
Zkus se taky porejpat v tom vzorci, třeba na to příjdeš. V základ. jedn. jem to zkoušel, ale nevyšlo, zkusim to znova :slight_smile:
Diky, Honza

jj, napsal sem to vejs, taky se divim, proc je tak pomalej :frowning: Rozesmal me ten pan na webu, na ktery jsi daval odkaz… psal tam: “zvládne vzorkovat až na 40kHz”… pri vzorkovacce 13,7kHz to navzorkuje signal maximalne neco pres 6,5kHz… :wink:
Nicmene netusim, proc je podle datasheetu tak pomalej, klasickej SAR na 1MHz by tech 40kHz opravdu navzorkoval…

EDIT:
Ten vzorec odpovida - 56pF a 10kOhm da priblizne 1MHz (pF ~ 1e-12)
taky je na strane 9 tabulka “Full Scale Error vs Conversion Time” a graf zacina v miste odpovidajici te “spravne” rychlosti a jde az pres 100us… nejak nechapu, co tim myslej…

Napsal jsem autorovi mejla, řek bych že on je na tyhle věci dost profík, vzhledem k tomu co dal dohromady za konstrukce. Takže podle mě bude mít pravdu asi on, i když je to pěkně divné…
uvidíme,… no asi nejdřív zítra (až odpoví), nepředpokládám že tedka sedí u kompu ačeká na mejly :smiley:
Honza

Vzdycky odepises, nez stacim upravit svou posledni hlasku… :slight_smile:
Ten vzorec je spravne, ale ta rychlost je nejaka divna… chtelo by to nejakou merici techniku a trochu se mu podivat na zoubek :wink: uz samotnej citac by udelal divy… nemas neco k dispozici? kdyby jo, tak si tu dobu konverze muzes zmerit :wink:

konkrétně: v sobotu jedu na matfyz tábor, bude se tam mimojiné dělat elektronika… blbla… popis zde co tam bude: tady odkaz a loni sem tam byl: tady odkaz
Na letosni projekt nas (ja, Zoran - kamos ze Slovenska) bude infra pasivni radar, proste budeme zechycovat infra, proste mereni teploty okoli, lokalizace predmetu podle teploty, a podobne -> potrebujeme nejaky ADC, tak jsem zvolil zrovna tohle ADC0804

Jako merici techniku tam budeme mit lepsi nez mam doma…
oscik, generátory, atd… pořádně to proměřim :wink:

jaktože ti ten vzorec vychází?
f = 1/1.7 * 10000 * 0.000000000056
f = 0.000000329 hmmm - ???

nebo jinak, neni nahodou to 1 / celym zbytkem??
f = 1 / (1.7 * 10000 * 0.000000000056)
f = 1 050 420.168Hz - a hele, že by trefa??

na tom webu ma odpor 1k, kondík 68pF a f má cca 2MHz, tak to zkusim:
f= 1 / (1.7 * 1000 * 0.000000000068)
f=8 650 519.031
té krawina… sakra přoč mi to furt DPC nevychází… nijak…
řekni mi jak to počítáš… Už sem z toho vážně jelen…

EDIT: Ten graf jsem pochopil! je to závislost chyby, na case konverze. Cim vetsi doba konvertovani (pomalejsi fclk) tim je to presnejsi).
Krivka konci na 100us, protoze: 100us / 8takty je frekvence hodin 125000kHz (na zacatku datashetu je napsano minimalni doporucena fclk 0.1MHz) - to by odpovidalo
a zacina to nekde na 10us , zase deleno 8 takty je 1.25uS, coz dava fclk priblizne 1MHz (do ktery je doporuceny ten prevodnik pouzivat)
a pri 3 MHz (max fclk) by tam mely byt krivka jeste do (3MHz, 333ns na takt , *8 = 2.664uS) - tedy melo by to zacinat na 2.6us.
takze skutecne, prevodnik asi zvlaada neco pres 375000 vzorků za sekundu - pokud jsem někde neudělal chybu.

Honza

f = 1 / (1.7 * 10000 * 0.000000000056) je spravne :wink:

Nevim, sice jaky mas pozadavky ohledne rychlosti, ale treba MCP 3001 by mel zvladnout 200ksps, akorat je na spi…

Nicmene pro mereni teploty asi zadna zavratna rychlost potreba neni :wink:

btw: jednoduchej AD se da udelat za pomoci kondiku, odporu, komparatoru a citace (posledni 2 veci bejvaj v mcu, takze potrebujes jen ten kondik a odpor v cene 2Kc :smiley:) Presnost sice neni zavratna, ale pro ucely mereni typu teplo/zima neni problem :wink:

udělal sem upravu posledního hlodu, si to přečti :slight_smile:
do toho vzorce dosaď 1k a 68pF, a 2MHz ti rozhodně nevyjdou
a těch 10k a 56pF si vzal z datasheetu vedle z obrazku, kdo rika ze takle to je 1MHz - to se muzeme jen domnivat… Nahoda ze to priblizne vychazi…

HOHO!!, mereni teploty, ale ne termistorem ale pres infrapasivní detektory a PIR čidla a podobné věci… a o rychlost půjde taky :wink:
MCP3001 - to je zase co za vynález? Kolik to stojí? Vadí m ito, že je to na SPI. SPI neumim, neznám protokol. a do soboty se to stejně nenaučim…
89S51 SPI rozhraní nemá, musel bych softwarově.
s AVRkama začínám, ale sem rád, že se mi vůbec podaří rozběhnout nějakej časovač/čítač, natož hrát si s SPI…
<<a taky jsem to pak zamýšlel použít na digitální echo, kde je třeba vzorkovat aspoň trochu rychle :slight_smile:

Nasel jsem jeste jinej datasheet od jiny firmy, tam byly parametry jeste horsi a vzorec jinej… Zkratka ho budes muset vyzkouset.

Tady u nas neco sehnat… na webu TI nebo AD jsou prevodniku mraky a cena 2$ je slusna, jenze unas to neni :angry: Jedine si jich vytisknout seznam na A4 a doufat, ze v nekterym obchode dokazou nekterej sehnat (za nizsi nez desetinasobnou cenu…)
AD
TI

Tak stejnak díky všem za pomoc, převodníky stejně nebudou, v gme je neměli. Našlo se prý ale nějaký starý teslácký MHBčko či co. TO prý funguje spolehlivěji.
Nepokládejte to ale za ukončené téma, jeden si domů stejnak asi pořídím až je budou mít :slight_smile:
Zatím všem moc díky.