Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 23:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 11 sie 2017, o 09:57 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 167
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sie 2017, o 14:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 wrz 2013
Posty: 74
Lokalizacja: Sierakowice/Gdańsk
Pomógł: 9

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sie 2017, o 22:26 
Offline
Użytkownik

Dołączył(a): 20 lut 2013
Posty: 167
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2017, o 13:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 wrz 2013
Posty: 74
Lokalizacja: Sierakowice/Gdańsk
Pomógł: 9

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. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO