logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATMEGA8] [ATMEGA8][BASCOM] - Błędny odczyt temperatury z MAX31855, zawsze 35°C

aragog 12 Sie 2012 15:00 4914 11
REKLAMA
  • #1 11200947
    aragog
    Poziom 11  
    Witam, jestem w trakcie pisania programu do własnej stacji lutowniczej. Temperaturę chciałbym czytać poprzez MAX31855 ponieważ mam dwa takie scalaki (sample). Jednak nie potrafię odczytać z niego danych. Nie wiem co robię źle ale na wyświetlaczu pokazuje cały czas 35 niezależnie od zmian temperatury.

    Oto moje wypociny:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Schemat:

    [ATMEGA8] [ATMEGA8][BASCOM] - Błędny odczyt temperatury z MAX31855, zawsze 35°C

    Na schemacie jest max6675 ale oba scalaki mają takie same obudowy i rozkład pinów.Diody D1-D4 to diody Zenera 3V3.

    Link do DataSheet: TUTAJ

    Myślę że przedstawiłem sprawę jasno liczę na waszą pomoc.

    Pozdrawiam Łukasz
  • REKLAMA
  • #2 11201046
    opamp
    Użytkownik obserwowany
    Konfiguracja?
  • #3 11201147
    aragog
    Poziom 11  
    co z nią nie tak??
  • #4 11203066
    Fredy
    Poziom 27  
    Napewno masz jeden blad na schemacie. Nie mozna dawac tak jak u ciebie diody Led rownolegle do diody w transoptorze.Napewno maja one rozne napiecia przewodzenia wiec bedzie swiecic zapewna tylko jedna z nich. Przerob schemat tak aby kazda miala swoj rezystor.
  • REKLAMA
  • #5 11203163
    aragog
    Poziom 11  
    Ok dzieki za uwage z dioda ale nie tu tkwi moj problem wie ktos co jest nie tak z kodem
  • #6 11203848
    Mundi1970
    Poziom 24  
    Cytat:
    Jednak nie potrafię odczytać z niego danych. Nie wiem co robię źle ale na wyświetlaczu pokazuje cały czas 35 niezależnie od zmian temperatury.

    To może na początek zdiagnozuj czy odbiór danych po SPI z układu jest poprawny. Według datasheet (strona 10, tabela 3), masz odczytać 32 bity. Bity nr 3 i 17 mają być zawsze odczytane jako "0", bit nr 0 zmienia stan jeżeli czujnik podłączony "0", jeżeli odłączony (przerwa) "1". Bity nr 0, 1, 2 i 16 wskazują czy czujnik jest prawidłowo podłączony ("0"). Odczytaj do zmiennej wyślij na konsole, lub podepnij jakąś diodę i mrugaj :).
  • #7 11214990
    roll99
    Poziom 12  
    Witam

    Wykorzystywałem MAX6675 i działał bez zarzutu mam małą bibliotekę ale w C, jeśli byś chciał. W 6675 wystawiam CS=0 - przerywa trwającą ewentualnie konwersję, następnie daje CS=1 aby rozpocząć nowy odczyt czekam około 200-220 ms i odczytuje wynik. W 31855 z datasheet wychodzi że konwersja odbywa się w tle. Jest jeszcze pytanie czy procedura obsługująca SPI w BASCOM odczyta Ci 32 bity, może tu tkwi błąd.

    Pozdrawiam J
  • #8 11218930
    aragog
    Poziom 11  
    Właśnie w tym problem że nie mogę sprawdzić czy poprawnie odbiera dane ponieważ mam w tej chwili jedynie wyświetlacz led 3 cyfry i nawet nie mam jak wysłać danych na PC bo czekam na bufor (max232)
  • REKLAMA
  • #9 11219232
    roll99
    Poziom 12  
    Wyświetlasz przecież 35 więc kontrola jakaś jest ;) ja stawiam ze zle czytasz SPI napisz sam procedurę komunikacji z MAXem to dość proste CS w dół tik-tak i odczyt z linii danych

    Pozdr J
  • REKLAMA
  • #10 12079092
    FastProject
    Poziom 28  
    Czy udało się koledze odczytać prawidłowo dane z MAX31855 w Bascom? Sam niedługo zabieram się za jego obsługę wiec jakaś przykładowa działająca procedura będzie pomocna.
  • #11 12079127
    aragog
    Poziom 11  
    Niestety nie, jakieś tam odczyty były ale nigdy poprawne przerzuciłem się na C i koledze radze to samo.
  • #12 12079871
    FastProject
    Poziom 28  
    aragog napisał:
    ...przerzuciłem się na C i koledze radze to samo.


    Od jakiegoś czasu zbieram się z takim zamiarem, ale narazie z powodu braku czasu i pośpiechu zostanę przy Bascom :]
REKLAMA