Добавлено after 43 minutes 52 seconds:
[uquote="genri2000",url="/forum/viewtopic.php?p=3539534#p3539534"]Ребята, собрал тоже датчик на этой микросхкме. Только термопара S типа, соответственно и микруха MAX31855SASA для S термопар. Подключили по SPI и питание3,3в от STM32, работает вроде стабильно.
При чтении (раз в сек) принимаем длинный (32 бита ) код, в котором зашифрованы температура термопары и температура микрухи, а также бит обрыва термопары. Вопрос: как по температуре термопары и температуре вычислять температуру горячего конца, что с чем сложить, вычесть???[/uquote]
1. Читаем даташит;
2. считываем из чипа 32 битное число;
3. Маскируем 3 младших бита. Если они не равны нулю, то имеется ошибка, а именно -если значение равно 0x1, то имеем обрыв термопары, 0x2 - если термопара имеет замыкание на "корпус", 0x4 замыкание на питание.
4. сдвигаем считанное значение на 4 бита вправо;
5. Маскируем 11 младших бит. Умножаем полученное значение на 0,0625 и получаем температуру холодного конца термопары. (Точнее - температуру внутри чипа, которая из-за близкого размещения с холодным концом примерно одинаковая);
6. Маскируем 12-й бит. Если он равен 1, то значение внутричиповой температуры отрицательное;
7. Сдвигаем считанное значение на 12 бита вправо;
8. Маскируем 1-й бит. Если он равен 1, то имеется проблема с термопарой (Для уточнения смотрим пункт 3);
9. Сдвигаем считанное значение на 2 бита вправо;
10. Маскируем 13 младших бит. Умножаем полученное значение на 0,25 и получаем температуру горячего конца термопары.
11. Маскируем 14-й бит. Если он равен 1, то значение температуры отрицательное;
Успехов!


