Сегодня у меня, наконец-то, получилось «скрестить ужа с ежом»: использовать «вольтметр» на STM8S003 для измерения температуры по протоколу ZacWire с термометров TSic-506.
Видео раз,
видео два.
Click to view
Действие происходит все на той же макетке. Красненькая платка используется для питания "вольтметра" (все никак не припаяю к гнезду mini-USB проводки, чтобы напрямую питать). У чипа "вольтметра" было две неиспользуемые ноги, чем я и воспользовался: одна нога включает питание датчика, вторая снимает показания. К сожалению, сколько я ни бился с таймерами, сделать ШИМ-захват (как я делал на STM32) не получилось, поэтому пришлось тупо вешать прерывание EXTI на спадающий фронт сигнала и в цикле инкрементировать счетчик, пока на ноге уровень логического нуля. Длительности каждого низкоуровневого импульса заносятся в массив, а после получения всех двадцати бит этот массив обрабатывается: каждая длительность сравнивается с длительностью строба; если она меньше строба, то это - логическая единица. В конце проверяется четность.
А вот что показывают неоткалиброванные нетермостабилизированные датчики:
Click to view
Я пытался на балконе охладить (как раз у нас где-то -10°C на улице), но, померзнув минут 5, плюнул: макетка сильно греет датчик, поэтому охлаждался он очень медленно (я всего-то до +6°C температуру догнал).