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



Teraz jest 10 gru 2019, o 19:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 16 wrz 2019, o 22:01 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 565
Lokalizacja: Jaworzno
Pomógł: 37

Witam,
Od dość długiego czasu próbuję odczytać dane z kontrolera termopary MAX31855 podłączonego do ATB. Chciałem sobie sam z tym poradzić, ale w końcu chciałbym prosić Was o pomoc. Scalaka odpytuję za pomocą Mirkowej biblioteki do komunikacji po SPI. Zaczytuję cały rejestr do zmiennej uint32_t, przesuwam starszy bajt, zawierający temperaturę na termoparze o 18 bitów w prawo. Czy coś jeszcze muszę z tymi bitami robić żeby uzyskać poprawny wynik? Na razie tym sposobem otrzymuję błędne wyniki pomiaru temperatury. Moduły z w/w układem mam dwa. Podłączone do Arduino oba działają poprawnie, odczyty temperatury z termopar typu K są prawidłowe. Jakiś czas temu spróbowałem przenieść funkcje z Arduino na AVR GCC i kod się nawet kompilował, ale odczyt temperatur się nie zgadzał z "rzeczywistością":-(


Poniżej zamieszczam kod i widok na terminal z Arduino i ATB
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Na terminalu z Arduino są temperatury z termopary oraz wewnętrzna scalaka
Odczyt z Arduino
Obrazek

Naterminalu z ATB jest temperatura z termopary
Odczyt z ATB
Obrazek

Rejestr MAX31855
Obrazek

_________________
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 wrz 2019, o 05:37 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 897
Lokalizacja: Kraków
Pomógł: 71

Hmmm, trochę dziwny pomiar wychodzi. Dokładnie nie pomogę, ale z tego, co widzę, część całkowita temperatury to bity od D30 do D20. Bit D31 to znak (0 to temperatury dodatnie, 1 to ujemne), natomiast bity D19 i D18 określają wartość po przecinku.
Możesz pokazać funkcję obliczającą temperaturę z arduino?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2019, o 23:24 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 565
Lokalizacja: Jaworzno
Pomógł: 37

Po kolejnych miesiącach walki z MAX31855 ponawiam prośbę o spojrzenie na kod który zaadaptowałem z Arduino do AVRGCC. Nadal odczyty z kontrolera termopary podłączonego do ATB są nieprawidłowe a pod Arduino pomiar temperatury jest poprawny.
W załączniku biblioteka od SpakFun z której korzystam pod Arduino.

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


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
Pozdrawiam



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: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO