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ć:
Obrazek

Link do noty:
http://www.ti.com/lit/ds/symlink/ads1232.pdf

Funkcje do ADS1234:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Plik main.c:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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:
Składnia: [ Pobierz ] [ Ukryj ]
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:

Składnia: [ Pobierz ] [ Ukryj ]
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:  faber33 [ 11 sie 2017, o 22:26 ]
Tytuł:  Re: Odczyt z ADC - ADS1234

Dziękuje za odpowiedź i pomoc ;) Teraz już niema takich cudów z tymi pomiarami. Mam pytanie jeszcze do co do tego przedstawianie liczby w postaci int32 tutaj nic nie zmienia bo liczba jest "za mała" chyba że sie mylę. W putty to wygląda teraz tak zmieniłem wyświetlanie uart_putilonglit na 16 czyli hex przy braku obciążenia czujnika ...

Obrazek

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/