Witam serdecznie kolegów.
Mam problem z odczytem danych z MAX31865.
Tu jest nota katalogowe:
https://datasheets.maximintegrated.com/en/ds/MAX31865.pdf
Jest to przetwornik A/D dedykowany do pomiaru temperatury za pomocą czujników rezystencyjnych (Pt100, Pt1000)
Zachowanie programu jest bardzo dziwne ponieważ odczytywane dane (zarówno LSB jak i MSB) są 2x mniejsze niż te które powinny być odczytane. Odczyt za pomocą oscyloskopy i dekodowania magistrali jest ok.
Natomiast jeśli wyrzucę LSB bądź MSB na ekran to wynik jest 2x mniejszy.
Kod zamieszczam poniżej. Proszę nie krytykować użycia floatów, one będą potrzebne później do przeliczania temperatury. Możliwe jest ich ominięcie jednakże wydłuża i zwiększa to program.
A dodam jeszcze ze jeśli "na sztywno" przypiszę wartość MSB lub LSB to zwracana jest poprawnie. Na początku myślałem że to problem z rzutowaniem zmiennych ale jednak tak nie jest.
Dodatkowo kawałek kodu związany z konfiguracją SPI i samej komunikacji:
Oraz kawałek pliku z definicjami:
Czy ktoś ma pomysł co tu może nie grać? Może jest to jakiś prostu błąd któego nie zauważyłem (z przegrzania??)
Pozdrawiam
Mam problem z odczytem danych z MAX31865.
Tu jest nota katalogowe:
https://datasheets.maximintegrated.com/en/ds/MAX31865.pdf
Jest to przetwornik A/D dedykowany do pomiaru temperatury za pomocą czujników rezystencyjnych (Pt100, Pt1000)
Zachowanie programu jest bardzo dziwne ponieważ odczytywane dane (zarówno LSB jak i MSB) są 2x mniejsze niż te które powinny być odczytane. Odczyt za pomocą oscyloskopy i dekodowania magistrali jest ok.
Natomiast jeśli wyrzucę LSB bądź MSB na ekran to wynik jest 2x mniejszy.
Kod zamieszczam poniżej. Proszę nie krytykować użycia floatów, one będą potrzebne później do przeliczania temperatury. Możliwe jest ich ominięcie jednakże wydłuża i zwiększa to program.
A dodam jeszcze ze jeśli "na sztywno" przypiszę wartość MSB lub LSB to zwracana jest poprawnie. Na początku myślałem że to problem z rzutowaniem zmiennych ale jednak tak nie jest.
Kod: C / C++
Dodatkowo kawałek kodu związany z konfiguracją SPI i samej komunikacji:
Kod: C / C++
Oraz kawałek pliku z definicjami:
Kod: C / C++
Czy ktoś ma pomysł co tu może nie grać? Może jest to jakiś prostu błąd któego nie zauważyłem (z przegrzania??)
Pozdrawiam