|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
LEDuser Član
Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.67 Kraj: Ljubljana
|
Objavljeno: Tor Apr 15, 2014 1:46 pm Naslov sporočila: 24b ADC AD7791 |
|
|
Že celo dopoldne se ukvarjam s komunikacijo z omenjenim čipom AD7791. Problem je ker uporablja neko kvazi SPI linijo in mi ne uspe komunicirati s tem čipom.
Ali je že kdo naredil kaj uporabnega s tem ali podobnim ADC-jem? _________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
|
SimonS Član
Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4582 Aktiv.: 20.63 Kraj: Kobarid
|
Objavljeno: Tor Apr 15, 2014 3:26 pm Naslov sporočila: |
|
|
Uporabljam AD7787 (verjetno zelo podoben SPI) pa nimam težav s komunikacijo.
Primer
Koda: |
void ad_7787(char naslov)
//----------------------------------------------------------------------------------
{
char i;
CS(0);
SCK(1);
for (i=0x80;i>0;i/=2)
{ if (i & naslov) MOSI(1);
else MOSI(0);
SCK(0);
SCK(1);
}
MOSI(1);
pauza();
}
void beri(void)
//----------------------------------------------------------------------------------
// beri rezultat ADC in preračunaj v miliV
{
long i,val;
float Vout;
val=0;
while(MISO); //počakaj na konec konverzije
for (i=0x00800000;i>0;i/=2) //preberemo 24 bitov
{ SCK(0);
if (MISO) val=(val | i); //beri bit
SCK(1);
}
Vout = 2.5*(((float)val/8388608)-1); //bipolar način (524288 za 20bit)(8388608 za polnih 24bit)
preracun(Vout); //preračun v st.C
CS(1);
} |
Seveda ga je potrebno predhodno inicializirati, drugače ne bo delal !!!
Koda: |
//inicializiramo AD7787
ad_7787(0x21); //filter register
ad_7787(0x07); // 9.5Hz
ad_7787(0x21); //filter register
ad_7787(0x07); // 9.5Hz
ad_7787(0x11); //mode register
ad_7787(0x00); // bipolar, unbuffed
|
branje
Koda: |
ad_7787(0x39); //nastavi ADC2
beri(); //beri ADC in preračun temperature
|
_________________ Lep dan
Simon |
|
Nazaj na vrh |
|
|
. Član
Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 75534.90
|
Objavljeno: Tor Apr 15, 2014 10:55 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
|
LEDuser Član
Pridružen-a: Pon 31 Mar 2008 12:06 Prispevkov: 1104 Aktiv.: 5.67 Kraj: Ljubljana
|
Objavljeno: Sre Apr 16, 2014 7:19 am Naslov sporočila: |
|
|
Vsak je drugačen. Po še nekaj urah mi je uspelo komunicirati. Verjetno sem imel problem zaradi previsoke frekvence in ker je ADC galvansko ločen od procesorja se mi pojavljajo nihanja in so signali zelo kosmati.
Še vedno imam nekaj velikih (?) a jih moram danes preveriti.
@SimonS: Zakaj 2x pošlješ enako nastavitev v filter register? Kako stabilna je zadeva? Meni kar nekaj zadnjih bitov skače. Verjetno je problem v HW. _________________ Razsvetljujemo od leta 1920! |
|
Nazaj na vrh |
|
|
. Član
Pridružen-a: Ned 19 Sep 2004 22:04 Prispevkov: 16777193 Aktiv.: 75534.91
|
Objavljeno: Sre Apr 16, 2014 8:04 am Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
|
|
|
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 Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 49 dni
Powered by phpBB © 2001, 2005 phpBB Group
|