Robię mikro-terometro-termostacik (wyświetlacz 88 dla temperatur
+99/-9'C i wystarczy, ustawianie progu włącz/wyłącz przekaźnik), który będzie miał podłączane czujniki dallasa DS18_20. Problem w tym, że układ ma być maksymalnie prosty, łatwy do naprawy, wymiany czujnika itp, więc:- ma działać z każdym czujnikiem (bez rozpoznawania jego nr seryjnego)
- ale ma działać też z każdym czujnikiem, tzn DS18B20, S20, i 20, a jednak różnią się one troszkę w zawartości rejestrów/odczycie.
Więc powstaje pytanie - czy jest jakaś (oficjalna? sprawdzona?) metoda rozpoznawania softwarowego, czy podłączony 1wire jest _S20, _B20 czy _20?
Można by teoretycznie sprawdzać domyślne wartości w "Scratchpad Memory": DS18S20 DS18B20 byte 0 Temperature LSB (AAh) Temperature LSB (50h) byte 1 Temperature MSB (00h) Temperature MSB (05h) byte 2 TH Register TH Register byte 3 TL Register TL Register byte 4 Reserved (FFh) Configuration Register byte 5 Reserved (FFh) Reserved (FFh) byte 6 Count Remain (0Ch) Reserved byte 7 Count Per °C (10h) Reserved (10h) byte 8 CRC CRC Np czy byte4=FFh czy coś innego, ale jeśli w 18b20 conf będzie =FFh ?
Może w numerze "mac" seryjnym jest jakoś zaszyta wersja czujnika? Przeglądając dokumentacje widzę zapisy:
Prawie że fajnie, ale jak rozpoznać między ds1820 a ds18s20, skoro mają family=10h?