ATNEL tech-forum https://forum.atnel.pl/ |
|
Odczyt z ADC - ADS1234 https://forum.atnel.pl/topic18977.html |
Strona 1 z 1 |
Autor: | faber33 [ 11 sie 2017, o 09:57 ] |
Tytuł: | Odczyt z ADC - ADS1234 |
Witam. Mam takie pytanie do Was drodzy forumowicze Czy mółby mi ktoś potwierdzić czy dobrze mam napisaną funkcję służącą do odczytywania z zewnętrznego ADC - ADS1234 do którego mam podłączony tensometr. Niby jakieś wartości odczytuję i jest okej, ale co jakiś czas pojawia się jakby wartość po kalibracji i jest jednym słowem "kaput" ciągle wyświetla się ta sama wartość "16777215". Zapewne jest to spowodowane tym że w tej funkcji nie mam odczytu uzależnionego od tego impulsu "DATA READY" na wyjściu danych ADS1234 tylko odczytuje jest ciągle te 24 bity w pętli i pewnie z czasem to się rozjeżdża ... W jaki sposób wykrywać ten impuls "DATA READY" a właściwie zbocze opadające żeby dopiero wówczas następował odczyt tych 24 bitów danych ? Podłączenie ADS1234 SPEED = 0(GND) czyli mamy 10 pomiarów na sekundę. Wzmocnienie x128 PWDN -> programowo do 1, czyli cały czas działa Screen noty jak ten odczyt powinien wyglądać: Link do noty: http://www.ti.com/lit/ds/symlink/ads1232.pdf Funkcje do ADS1234: język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Plik main.c: |
Autor: | wojtekr51 [ 11 sie 2017, o 14:07 ] |
Tytuł: | Re: Odczyt z ADC - ADS1234 |
Witam Nie podciągaj pinu mikrokontrolera połączonego z DOUT, zostaw go w stanie wysokiej impedancji. (edit: podciągnięcie raczej też nie zaszkodzi) faber33 napisał(a): W jaki sposób wykrywać ten impuls "DATA READY" a właściwie zbocze opadające żeby dopiero wówczas następował odczyt tych 24 bitów danych ? Nie musisz wykrywać samego zbocza. Bezpośrednio po odczycie ustawiasz go w stan wysoki poprzez 25-ąty cykl SCK (tzn. ADS wystawi na nim stan wysoki). Potem wystarczy, że będziesz oczekiwał na stan niski sygnału, np. tak:język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Pętla główna może teraz wyglądać tak: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Podpowiem jeszcze, że odczyt z ADS można przedstawić w postaci liczby ze znakiem int32. I wyniki będą przedstawiały się tak jak w nocie Tabela 8. |
Autor: | wojtekr51 [ 18 sie 2017, o 13:04 ] |
Tytuł: | Re: Odczyt z ADC - ADS1234 |
Z ADS otrzymujemy wartość w kodzie U2 - 24bitową (kod uzupełnień do dwóch), chcemy ją zapisać w kodzie U2 - 32bitowym (typ int32). Najstarsze/nieużywane 8 bitów liczby int32 powinny mieć wartość taką samą jak najstarszy bit liczby 24bitowej. Czyli pierwszy odebrany bit powinien być zapisany na 9 najstarszych bitach int32. Pozostałe bity zapisujesz jak dotychczas. Z tego co widzę na terminalu, to mierzone napięcie było ujemne (te liczby zakodowane w U2 są ujemne). Jak prawidłowo powypełniasz wszystkie bity to wartość będzie ujemna dla ujemnego napięcia i dodatnia dla dodatniego napięcia. I nie przeszkadza nam że liczba zajmuje mniej bitów. Jeżeli tego nie zrobisz to przy ujemnym napięciu będziesz miał misz-masz a nie pomiar. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |