простые интересные РАДИОСХЕМЫ сделанные своими руками

» Гость

Мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизируйтесь!





» ДАТАШИТЫ
Например: TDA1562

» СХЕМЫ


Отметить прочитанными   -   Поиск   -   Правила   -   Новые сообщения

Модератор форума: Электродыч, Витинари, Sam  
Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Часы на AtMega8
Часы на AtMega8
Сб, 24.02.2018, 21:47 | Сообщение # 251        
ЛесникБелый
аватар
  Постов: 13  Offline
Цитата msmmmm ()
Частоту ДИ замерил?

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

Марка датчиков полностью одинаковая?
Вс, 25.02.2018, 10:07 | Сообщение # 255        
Pentium
аватар
  Постов: 12  Offline
ЛесникБелый, абсолютно, покупал как то 3 датчика dallas18b20, 2 использовал а 1 остался вот и решил собрать термометр-часы по данной схеме, и вот такие грабли вышли с этим оставшимся датчиком...хотя в других термометрах работает. наверно такие вещи надо покупать в количестве не менее 5и штук...
Вс, 25.02.2018, 15:16 | Сообщение # 256        
Pentium
аватар
  Постов: 12  Offline
Поправил прошивку под общий катод, сделал мигающую разделительную точку(не было индикатора с двумя точками) и изменил переключение часы->термометр->часы...вдруг кому понадобится
Пн, 26.02.2018, 15:23 | Сообщение # 257        
msmmmm
аватар
  Постов: 999  Offline Друзья 
Было время и желание, почитал о калибровке тактового генератора.
Цитата: "Поскольку интерфейс 1-Wire, используемый датчиками, критичен к тактовой частоте микроконтроллера, необходима точная настройка его внутреннего тактового генератора на 8 МГц. Для этого следует, подключив используемый экземпляр микроконтроллера к программатору, прочитать калибровочную константу, находящуюся в старшем байте слова, расположенного по адресу 0x0003 сигнатуры микроконтроллера". Эту константу записывают в любую ячейку EEPROM, а программа в самом начале должна считать это значение из EEPROM и записать в регистр OSCCAL. Проблема с совместимостью тактовых частот МК и датчика должна решиться.
Ср, 28.02.2018, 20:37 | Сообщение # 258        
ЛесникБелый
аватар
  Постов: 13  Offline
Если судить по даташиту атмега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 Гц.


Отредактировал ЛесникБелый - Ср, 28.02.2018, 20:42
Ср, 28.02.2018, 21:05 | Сообщение # 259        
msmmmm
аватар
  Постов: 999  Offline Друзья 
Цитата ЛесникБелый ()
частота обновления индикатора падает до 59-60 Гц
RC генератор, что с него взять? smile Зависит и от напряжения, и от температуры.
Цитата ЛесникБелый ()
В проекте просто добавил строку OSCCAL=0xC0
Для себя так, конечно, пойдет, но если писать программу для общего пользования, лучше бы вычитывать предварительно записанную константу из EEPROM - не нужно под каждую микросхему компилировать исходник.
Диапазон подстройки получается как и по даташиту - очень широкий. Нужно учесть все это на будущее, хотя, если честно, я бы сам такую схему вряд ли нарисовал. Поставил высокочастотный кварц, а от него и часы и 1wire и ДИ. Все стабильно.
А Pentium так частоту ДИ и не измерил...
Ср, 28.02.2018, 21:23 | Сообщение # 260        
ЛесникБелый
аватар
  Постов: 13  Offline
Цитата msmmmm ()
Для себя так, конечно, пойдет, но если писать программу для общего пользования, лучше бы вычитывать предварительно записанную константу из EEPROM - не нужно под каждую микросхему компилировать исходник.

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


Отредактировал ЛесникБелый - Ср, 28.02.2018, 21:23
Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Часы на AtMega8
Поиск:
Кто есть кто на форуме радиолюбителей: Администратор Модераторы Друзья Пользователи
Группа вконтакте Канал ютуб Группа в фэйсбук Мобильная версия © 2010-2018, "Радиосхемы". Все права защищены. Почта