Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak poprawnie odczytać rejestry przy przetwornikach ADC

Redrum93 26 Lis 2016 20:36 609 0
  • #1 26 Lis 2016 20:36
    Redrum93
    Poziom 5  

    Witam,

    Korzystając z poradnika na stronie
    http://www.hertaville.com/interfacing-an-spi-...mcp3008-chip-to-the-raspberry-pi-using-c.html

    chciałem zaprogramować sobie podobny układ jednak korzystając z przetwornika ADC0832CCN . Niestety nie wiem jak zakodzić odpowiednie rejestry. Jeśli dobrze zrozumiałem w tym fragmencie kodu znajdują się odwołania do odpowiednich rejestrów, w zależności od typu urządzenia:

    Code:
     while(i > 0)
    
        {
            data[0] = 1;  //  first byte transmitted -> start bit
            data[1] = 0b10000000 |( ((a2dChannel & 7) << 4)); // second byte transmitted -> (SGL/DIF = 1, D2=D1=D0=0)
            data[2] = 0; // third byte transmitted....don't care

            a2d.spiWriteRead(data, sizeof(data) );

            a2dVal = 0;
                    a2dVal = (data[1]<< 8) & 0b1100000000; //merge data[1] & data[2] to get result
                    a2dVal |=  (data[2] & 0xff);
            sleep(1);
            cout << "The Result is: " << a2dVal << endl;
            i--;
        }


    z tego co zrozumiałem z tego obrazka wiadomo jakie rejestry należy wpisać w dany bit:
    Jak poprawnie odczytać rejestry przy przetwornikach ADC

    W notce katalogowej dla mojego ADC nie znalazłem dokładnie czegoś takiego ale domyślam się, że to może być pod stroną z opisem Timing diagram
    http://www.jameco.com/Jameco/Products/ProdDS/831200.pdf

    Niestety jestem totalnie nowy w tym temacie (poza bawieniem się z bibliotekami typu writingPI) i nie wiem jakie rejestry mam wpisac do bitu drugiego tak, żeby odczyt działał. Byłoby bardzo pomocne gdyby ktoś mi to wytłumaczył lub wskazał gdzie się tego mogę nauczyć

    0 0