ADS1115

Odpovědět
Luděk
Příspěvky: 82
Registrován: 22 úno 2016, 08:47

ADS1115

Příspěvek od Luděk »

Dobří lidé, máte někdo zkušenosti s AD převodníkem ADS1115? Je to super brouček a funguje na 100% Ale neumím jej obsluhovat,
když chci číst více vstupů. Pokud čtu jen jednu hodnotu - je jedno jestli vůči zemi, nebo diferenciálně, je vše OK.
Ale když chci do PICAXE číst např.
1. vstup A0 + A3 - diferenciálně - do registru w0
2. vstup A1 + A3 - diferenciálně - do registru w1
3. vstup A2 + GND - single - do registru w2

tak se nějak ovlivňují, nebo se čtou jinam než zadám příkaz. Jak se mají příkay oddělovat, aby se nepletly?
Když je zaremuju, tak každý samostatně funguje, ale dohromady né. Kde dělám chybu?
Luděk
Pirx
Příspěvky: 181
Registrován: 24 úno 2013, 16:29
Kontaktovat uživatele:

Re: ADS1115

Příspěvek od Pirx »

Vetsinou je potreba dat multiplexeru a vnitrni logice cipu cas na prepnuti a ustaleni.
Sice jsem v datasheetu ADS1115 narychlo nenasel nejakou specifikaci, ale dobra praxe je:

- Nastavim multiplexex a rezim (single end / differetial)
- POCKAM (bud podle specifikace v datasheetu nebo odexperimentovat, vetsinou nejaka milisekunda)
- Provedu A/D konverzi
- Prectu vysledek

- Nastavim multiplexex a rezim (single end / differetial)
- POCKAM (bud podle specifikace v datasheetu nebo odexperimentovat, vetsinou nejaka milisekunda)
- Provedu A/D konverzi
- Prectu vysledek

atd. stale dokola
Soldering fumes make you stronger!
Luděk
Příspěvky: 82
Registrován: 22 úno 2016, 08:47

Re: ADS1115

Příspěvek od Luděk »

Tak díky... pomohlo to. Při opakovaném čtení to není nutné, to jde okamžitě,
ale jakmile se mění typ vstupu, je třeba malé pauzy, anebo testovat bit15 OS v Config registru.
Už to šlape a zase jsem o něco chytřejší. Díky Pirxi.
DavidO
Příspěvky: 1136
Registrován: 01 kvě 2013, 21:27

Re: ADS1115

Příspěvek od DavidO »

Samozřejmě testovat, co o sobě ten převodník sám říká, je nejlepší :)
V datasheeteu nepíšou o změně nastavení multiplexeru ani startovacích časech nic, ale ono myslím nebude ani tím ustálením, jako přímo vlastní rychlostí převodníku. Default je 128 SPS, tj. 7.8 ms na jednu konverzi a to je pro kontrolér na 8 nebo 16 MHz hódně času i když se to ptá relativně pomalým i2c. A nemá smysl ptát se častěji, stejně by se přečtl předchozí výsledek.
(nevím samozřejmě, jak to je konkrétně nastavené, default je 128SPS ale má možnost 8-860 SPS, jenže i pro těch 860 je jedna konverze cca 1.2ms a to je pořád docela dlouho, teda pokud to i2c není nastavené na dostatečně pomalou komunikaci, že by přenos dotazu a odpovědi trval déle)
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: ADS1115

Příspěvek od jrt »

Luděk píše:Už to šlape a zase jsem o něco chytřejší.
Tak to jsme rádi, ale byli bychom ještě radši, kdyby ses s námi podělil o ten kousek kódu, kterým převodník ADS 1115 z PICAXE ovládáš. Díky předem!
jrt
Pirx
Příspěvky: 181
Registrován: 24 úno 2013, 16:29
Kontaktovat uživatele:

Re: ADS1115

Příspěvek od Pirx »

DavidO píše:... jako přímo vlastní rychlostí převodníku ...
Jasne, netestovani konce prevodu je dalsi z klasickych opomenuti (z vlastni zkusenosti), takze misto tupeho cekani je tam potreba dat dotaz na ukonceni prevodu a teprve potom manipulovat s nastavenim.
Ale stejne bych po prepnuti kanalu / rezimu "par" milisekund (tedy 2) pockal na odezneni prechodovych deju. Pri 128 sps se to uz ztrati.
Soldering fumes make you stronger!
Luděk
Příspěvky: 82
Registrován: 22 úno 2016, 08:47

Re: ADS1115

Příspěvek od Luděk »

Tak tedy posílám, co jsem vypotil :-)

Kód: Vybrat vše

TEST- ADS1115 - 20X2
;
;
;Testovací program pro čtení dvou differenciálních vstupů - příklad napětí a proud
;1....vstup = IN0 + IN3 ..... Gain=4 --> 1,024V ..... hodnote je v reg w1
;2....vstup = IN1 + IN3 ..... Gani=8 --> 0,512V ..... hodnota je v reg w2
;
;				
#picaxe 20X2	;funguje to na všech typech PICAXE
#no_table
setfreq M16				


INIT:		pause 2000
		hi2csetup i2cmaster, %10010000, i2cfast_16, i2cbyte
		
START:	pause 1000	
		call RDUI
		goto START
;--------------------------------------------------------------------------------------------------
RDUI:		hi2cout (%00000001,%10010111,%10000011)	;Config reg
		
RU:		hi2cin (b1,b0)					;přečte stav Config registru
		if bit15=0 then RU				;pokud probíhá konverze - znovu
		hi2cout (%00000000,%00000000)			;point register=0
		hi2cin (b3,b2)					;přečte data
;..................................................................................................
		hi2cout (%00000001,%10101001,%10000011)	;Config reg - In1+In3=Diff + Gain8=0,512V
		
RI:		hi2cin (b1,b0)					;přečte stav Config registru
		if bit15=0 then RI				;pokud probíhá konverze - znovu
		hi2cout (%00000000,%00000000)			;point register=0
		hi2cin (b5,b4)					;přečte data
		return
;--------------------------------------------------------------------------------------------------
DavidO
Příspěvky: 1136
Registrován: 01 kvě 2013, 21:27

Re: ADS1115

Příspěvek od DavidO »

Pirx píše:Ale stejne bych po prepnuti kanalu / rezimu "par" milisekund (tedy 2) pockal na odezneni prechodovych deju.
Můžu se zeptat, proč? Mě se to zdá zbytečné - to by o tom snad něco napsali v datasheetu, myslím (zrovna tenhle je jinak dost podrobný).
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
DavidO
Příspěvky: 1136
Registrován: 01 kvě 2013, 21:27

Re: ADS1115

Příspěvek od DavidO »

Luděk píše:Tak tedy posílám, co jsem vypotil :-)
...
To vypadá docela dobře.
Ze zvědavosti by mě zajímalo, jakým způsobem to na začátku nefungovalo, takže se zeptám: prve se to lišilo jen v tom, že tam nebylo to čtení Config registru a test OS, nebo ještě v něčem jiném?
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Luděk
Příspěvky: 82
Registrován: 22 úno 2016, 08:47

Re: ADS1115

Příspěvek od Luděk »

Pro Davida,
časová prodleva a ani testování bitu Ready není třeba, funguje to šíleně rychle, dle DataSheetu asi 10x rychleji než instrukce Picaxe na 16MHz.
Takže vše OK. Ale po čase jsem potřeboval číst 1 vstup vůči GND a dva diferenciální vstupy. A tak jsem přečetl jeden vstup dal do třeba w10,
pak změnil parametry a dal do w11 a pak ještě jednou změna a do w12. A ono to strkalo výsledky úplně jinak, prostě to nesouhlasilo a já nechápal.
Teprve po radě, abych udělal pauzu to fungovalo, ale pauza to moc zpožďovala. Teprve testování toho bitu to vyřešilo.
Pauza navíc teď není třeba, ani při změně na 32Mhz, protože I2C si stejně samo řídí frekvenci.
Luděk
Odpovědět