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



Teraz jest 25 lut 2026, o 05:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 4 lut 2016, o 19:39 
Offline
Użytkownik

Dołączył(a): 08 lut 2015
Posty: 132
Pomógł: 4

Witam. Chcę za pomocą termopary podłączonej do modułu MAX 6675 odczytywać wartość temperatury. Jednakże pojawia się problem, ponieważ chciałbym to zaimplementować w wersji programowej. Procesor jest taktowany z częstotliwością 11,0592 MHz, natomiast sygnał zegarowy, który mogę podawać na ten moduł może mieć maksymalną częstotliwość 4,3 MHz.
W jaki sposób mogę zaimplementować taki kod, aby udało mi się poprawnie odczytywać dane z tego modułu? Czy ktoś robił już taką programową implementację tego modułu?

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 19:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Programową implementację SPI z tego co pamiętam masz w BB, ale także masz w wideo poradnikach Mirka (chyba to było dla OLEDów - http://forum.atnel.pl/topic7982.html) i możesz z niej skorzystać.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 19:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

Np. stosując opóźnienia. Sposobów jest wiele. Jeśli szukasz gotowca to zajrzyj np. tu:http://www.tobias-schlegel.de/?page_id=295.
To pierwszy link jaki wypluł mi wujek G.

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 20:47 
Offline
Użytkownik

Dołączył(a): 08 lut 2015
Posty: 132
Pomógł: 4

Napisałem program do obsługi tego lecz jest pewien problem. Temperatura aktualizuje się dopiero po restarcie sterownika.
Tak wygląda inicjalizacja:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

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

I jej wyświetlanie w funkcji głównej:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Na prawdę nie mam pojęcia o co chodzi, zmniejszałem taktowanie procesora na mniejsze, z zakresu poniżej 4MHz jak mówi nota katalogowa, jednak wartość ustala się raz na LCD i dopiero restart sterownika powoduje jej aktualizację na wyższą, np po przyłożeniu końcówki termopary do gorącego elementu. Czy ktoś widzi jakiś błąd w moim kodzie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 21:39 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

Ale ta temperatura którą <jednorazowo> udaje Ci się odczytać jest prawidłowa?
Jeśli tak, to komunikacja z max6675 wygląda na poprawną.

Może coś nie tak z wysyłaniem danych na wyświetlacz ?

Edit - bez sensu piszę, przecież pętla główna taka łatwa :)



Ostatnio edytowano 4 lut 2016, o 21:46 przez krzysssztof, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 21:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Wydaje mi się, że trochę za często wywołujesz pomiar_temperatury() daj w pętli głównej jakiegoś delaya dla testów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 21:47 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

Wiem, o co chodzi:

"Conversion Time(Note 2) 0.17 0.22s"
Czyli jeśli odczytujesz częściej niż 0,22s to układ nie zdąży wykonać nowego pomiaru, więc wysyła stary :)


O, kolega wyżej już napisał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 21:56 
Offline
Użytkownik

Dołączył(a): 08 lut 2015
Posty: 132
Pomógł: 4

Rzeczywiście, nie zauważyłem tego w nocie katalogowej tego układu. Po dodaniu opóźnienia odczytuje temperaturę z częstszą aktualizacją. Dzięki wielkie ! Dodatkowo zastanawia mnie jeszcze jedna rzecz. W programie sprawdzam stan pinu :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W takiej formie nie ma on podciągnięcia do VCC i mogą pojawiać się stany nieustalone. Czy to może wpływać na sygnały odbierane od układu max6675 ?

Dodatkowo po wsadzeniu końcówki termopary do świeżo przegotowanej wody pokazuje mi temperaturę 108 st. Czy ktoś ma jakieś doświadczenia co do poprawności wskazań tego układu i ewentualnych eliminacji błędów ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 22:08 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

A jaką wodę gotujesz? Jeśli "kranówkę" to ona może zawierać jakieś składniki zmieniające temperaturę wrzenia.
Ale czy aż do tego stopnia? Warto by porównać do wyniku w wodzie destylowanej :)
Do tego zapewnij stabilną temperaturę drugiego końca termopary - czyli w sumie przy scalaku.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 22:39 
Offline
Użytkownik

Dołączył(a): 08 lut 2015
Posty: 132
Pomógł: 4

Problem rozwiązuje podłączenie ujemnego złącza termopary bezpośrednio do GND. Odczyt poprawił się. Jeszcze mam pytanie, czy wie ktoś w jaki sposób można odczytywać części dziesiętne temperatury, skoro dokładność przetwornika wynosi 0.25 st ?



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 21 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