РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

Форум на ЭЛВО


РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ



Архив - только для чтения
Часы на AtMega8
Сообщение # 251        
ЛесникБелый
аватар
  Постов: 13   ОК 
Цитата msmmmm ()
Частоту ДИ замерил?

У меня на работающем варианте 58 герц. Как будет у Pentiumа сможет сказать только он. smile
Подскажите пожалуйста, где искать данные OSCCAL. В прошивке нигде запроса этого регистра нету.
Сообщение # 252        
msmmmm
аватар
  Постов: 891   Друзья 
ЛесникБелый, biggrin уже убрал вопрос (не глянул на автора поста), но может и не зря спросил. Протеус пишет, что частота ДИ должна быть 61,12Гц. На работающем МК видим -5% ухода частоты. Что на проблемном - узнаем, если Pentium измерит.
OSCCAL - регистр ввода/вывода (адрес 0x31 (0x51)).
Цитата ЛесникБелый ()
В прошивке нигде запроса этого регистра нету.
И я о том же. Но давай подождем измерений, может дело не в этом.
Сообщение # 253        
Pentium
аватар
  Постов: 25   ОК 
Всем огромнейшее спасибо за участие, дело было в исправных датчиках, исправных в прямом смысле слова, дома было 2 других термометра поменял местами датчики и...(барабанная дробь) работает всё, и этот проект и домашние...
Сообщение # 254        
ЛесникБелый
аватар
  Постов: 13   ОК 
Цитата Pentium ()
поменял местами датчики

Марка датчиков полностью одинаковая?
Сообщение # 255        
Pentium
аватар
  Постов: 25   ОК 
ЛесникБелый, абсолютно, покупал как то 3 датчика dallas18b20, 2 использовал а 1 остался вот и решил собрать термометр-часы по данной схеме, и вот такие грабли вышли с этим оставшимся датчиком...хотя в других термометрах работает. наверно такие вещи надо покупать в количестве не менее 5и штук...
Сообщение # 256        
Pentium
аватар
  Постов: 25   ОК 
Поправил прошивку под общий катод, сделал мигающую разделительную точку(не было индикатора с двумя точками) и изменил переключение часы->термометр->часы...вдруг кому понадобится
Файлы: _OK_pentium.hex (6.6 Kb)
Сообщение # 257        
msmmmm
аватар
  Постов: 891   Друзья 
Было время и желание, почитал о калибровке тактового генератора.
Цитата: "Поскольку интерфейс 1-Wire, используемый датчиками, критичен к тактовой частоте микроконтроллера, необходима точная настройка его внутреннего тактового генератора на 8 МГц. Для этого следует, подключив используемый экземпляр микроконтроллера к программатору, прочитать калибровочную константу, находящуюся в старшем байте слова, расположенного по адресу 0x0003 сигнатуры микроконтроллера". Эту константу записывают в любую ячейку EEPROM, а программа в самом начале должна считать это значение из EEPROM и записать в регистр OSCCAL. Проблема с совместимостью тактовых частот МК и датчика должна решиться.
Сообщение # 258        
ЛесникБелый
аватар
  Постов: 13   ОК 
Если судить по даташиту атмега8л, то калибровочная константа, записанная в контроллере справедлива для 1 МГц.
В процессе сброса калибровочный байт аппаратно записывается регистр OSCCAL, тем самым автоматически выполняя калибровку RC-генератора. При питании 5В, температуре 25C и выбранной частоте генератора 1.0 МГц данный метод калибровки обеспечивает погрешность
генерации частоты не хуже ± 3% от номинального значения

Для остальных частот нужна программная.


Добавлено (28.02.2018, 20:37)
---------------------------------------------
По-экспериментировал я с этим OSCCAL-ом, получилось следующее:
1 Если забить в него 0x00, то частота обновления индикатора падает до 30-31Гц, датчик выдает 999.
2 Если забить 0xFF, то частота становиться 100Гц, а при индикации температуры растет до 120Гц.
3 Забив своё значение (С0) получилась 61Гц, при инд-ции температуры растёт до 65-66Гц.
В моём контроллере калибровочные значения были BF,C1,BD,C0. Это соответственно для 1,2,4 и 8МГц.
В проекте просто добавил строку OSCCAL=0xC0;, перед инициацией программы.
Также добавлю, что при питании от аккумулятора, частота обновления индикатора падает до 59-60 Гц.
Файлы: 8503355.png (153.9 Kb)
Сообщение # 259        
msmmmm
аватар
  Постов: 891   Друзья 
Цитата ЛесникБелый ()
частота обновления индикатора падает до 59-60 Гц
RC генератор, что с него взять? smile Зависит и от напряжения, и от температуры.
Цитата ЛесникБелый ()
В проекте просто добавил строку OSCCAL=0xC0
Для себя так, конечно, пойдет, но если писать программу для общего пользования, лучше бы вычитывать предварительно записанную константу из EEPROM - не нужно под каждую микросхему компилировать исходник.
Диапазон подстройки получается как и по даташиту - очень широкий. Нужно учесть все это на будущее, хотя, если честно, я бы сам такую схему вряд ли нарисовал. Поставил высокочастотный кварц, а от него и часы и 1wire и ДИ. Все стабильно.
А Pentium так частоту ДИ и не измерил...
Сообщение # 260        
ЛесникБелый
аватар
  Постов: 13   ОК 
Цитата msmmmm ()
Для себя так, конечно, пойдет, но если писать программу для общего пользования, лучше бы вычитывать предварительно записанную константу из EEPROM - не нужно под каждую микросхему компилировать исходник.

Да записать константу не проблема ( при программировании записать в еепром по адресу 0x00 свою константу), Присвоить ей название :
eeprom unsigned char Calibr @0x00;// расположение байта калибра по адресу 0x00
а перед инициацией программы:
OSCCAL =Calibr;
Поиск:

Внимание! Форум переехал на Tehnodium.ru



© 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA