Программирование BASCOM
Меню сайта
Категории каталога
Мои статьи [113]
Наш опрос
Оцените мой сайт
Всего ответов: 1158
Главная » Статьи » Мои статьи

Реплика на тему "Экономный USB-термометр"
Попробовал сэкономить на кварце и термодатчике при помощи AtTiny85. PLL настроил на 15МГц - в диапазоне от 0 до 60 градусов связь без сбоев. 



А вот внутренний датчик температуры в чипе меня поразил. Мало того, что допуск у него +-10 градусов, так еще и характеристика имеет вид больших ступенек. Делал усреднение по 16 замерам - не помогло.
Вот исходники. Образцовый датчик DS18B20 подключается к 5 ноге.
 


На 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.

Категория: Мои статьи | Добавил: bascom (29.03.2011)
Просмотров: 4364 | Комментарии: 3
Всего комментариев: 2
2  
Да Вы правы, строчку "$crystal = 16000000" можно удалить.

1  
В программном коде устанавливаете частоту RC-генератора 16Vuw ($crystal = 16000000 ), а пишите вычисления от 15Мгц (15000000/32/256/2=915,5Гц). Как то нескладно получается, не порядочек!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright Radan Studio © 2017