www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

24b ADC AD7791

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Periferija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
LEDuser
Član
Član



Pridružen-a: Pon 31 Mar 2008 12:06
Prispevkov: 1104
Aktiv.: 5.67
Kraj: Ljubljana

PrispevekObjavljeno: Tor Apr 15, 2014 1:46 pm    Naslov sporočila:  24b ADC AD7791 Odgovori s citatom

Ž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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
SimonS
Član
Član



Pridružen-a: Čet 01 Jul 2004 11:18
Prispevkov: 4581
Aktiv.: 20.63
Kraj: Kobarid

PrispevekObjavljeno: Tor Apr 15, 2014 3:26 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 75550.22

PrispevekObjavljeno: Tor Apr 15, 2014 10:55 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
LEDuser
Član
Član



Pridružen-a: Pon 31 Mar 2008 12:06
Prispevkov: 1104
Aktiv.: 5.67
Kraj: Ljubljana

PrispevekObjavljeno: Sre Apr 16, 2014 7:19 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Ned 19 Sep 2004 22:04
Prispevkov: 16777193
Aktiv.: 75550.24

PrispevekObjavljeno: Sre Apr 16, 2014 8:04 am    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Periferija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group