Попробовал сэкономить на кварце и термодатчике при помощи AtTiny85. PLL настроил на 15МГц - в диапазоне от 0 до 60 градусов связь без сбоев.
А вот внутренний датчик температуры в чипе меня поразил. Мало того, что допуск у него +-10 градусов, так еще и характеристика имеет вид больших ступенек. Делал усреднение по 16 замерам - не помогло.
На 15МГц настраиваем регистром Osccal, у меня получилось 94. Показания датчика под образцовый подстраиваем переменными К (изначально 1) и T_os - сдвиг температуры (16*градус). DS18B20 через теплопроводящую пасту прикрепляем к корпусу тиньки. Для просмотра показаний используем программку Петра от термометра с двумя датчиками. Верхний - DS18B20, нижний - AtTiny85. Нагреваем этот бутерброд и смотрим как остывает - ужас... Впрочем, если не отказываться от DS18B20, то получится очень компактное устройство без кварца - противоударное.
С одним датчиком код влезет и в AtTiny45. Исследование еще не закончено, посему - продолжение следует!
P.S. - продолжение.
А по какой методике настраивать PLL ?
Я использовал простой код:
$regfile = "ATtiny85.DAT" $crystal = 16000000 Osccal = 94 Config Portb.4 = Output Config Timer1 = Timer , Prescale = 32 , Compare B = Toggle End
Из фьюзов убираем деление частоты на 8 (изначально установлено на чистой тиньке), выбираем PLL в качестве источника частоты. В результате получаем частоту 16МГц. Настраивая регистр Osccal на выходе Portb.4 (3 ножка) имеем частоту 15000000/32/256/2=915,5Гц. Абсолютно точно установить все равно не удастся, поэтому выбираем ближайшую бОльшую частоту. У меня получилось около 919Гц, при выборе Osccal = 93 частота была 912Гц, вроде бы ближе, но связь с USB при ней была уже неустойчивой. Полученное значение Osccal используем в программе термометра. Диапазон температур 0-60 градусов, который я указывал в качестве стабильного - это исследованный диапазон. Это не значит, что за его пределами связь срывается. Просто меньше нуля охладить физически пока не удалось, а выше 60 - боялся, что провода от программатора поплавятся. В любом случае PLL для комнатного USB-устройства вполне годится. Кристалл тиньки в активной работе нагревается градуса на 2. Еще один довод против использования ее термодатчика.
Автор - Mrshilov.
|