|
Курс по ускорению работы Мозга на 100%
Часы на AtMega8
| |
| Сб, 24.02.2018, 20:47 | Сообщение # 251
|
ЛесникБелый
Постов: 13
ОК |
Цитата msmmmm ( ) Частоту ДИ замерил?
У меня на работающем варианте 58 герц. Как будет у Pentiumа сможет сказать только он. Подскажите пожалуйста, где искать данные OSCCAL. В прошивке нигде запроса этого регистра нету.
|
|
| Сб, 24.02.2018, 21:12 | Сообщение # 252
|
msmmmm
Постов: 891
Друзья |
ЛесникБелый, уже убрал вопрос (не глянул на автора поста), но может и не зря спросил. Протеус пишет, что частота ДИ должна быть 61,12Гц. На работающем МК видим -5% ухода частоты. Что на проблемном - узнаем, если Pentium измерит. OSCCAL - регистр ввода/вывода (адрес 0x31 (0x51)).
Цитата ЛесникБелый ( ) В прошивке нигде запроса этого регистра нету. И я о том же. Но давай подождем измерений, может дело не в этом.
|
|
| Сб, 24.02.2018, 22:40 | Сообщение # 253
|
Pentium
Постов: 25
ОК |
Всем огромнейшее спасибо за участие, дело было в исправных датчиках, исправных в прямом смысле слова, дома было 2 других термометра поменял местами датчики и...(барабанная дробь) работает всё, и этот проект и домашние...
|
|
| Сб, 24.02.2018, 22:54 | Сообщение # 254
|
ЛесникБелый
Постов: 13
ОК |
Цитата Pentium ( ) поменял местами датчики Марка датчиков полностью одинаковая?
|
|
| Вс, 25.02.2018, 09:07 | Сообщение # 255
|
Pentium
Постов: 25
ОК |
ЛесникБелый, абсолютно, покупал как то 3 датчика dallas18b20, 2 использовал а 1 остался вот и решил собрать термометр-часы по данной схеме, и вот такие грабли вышли с этим оставшимся датчиком...хотя в других термометрах работает. наверно такие вещи надо покупать в количестве не менее 5и штук...
|
|
| Вс, 25.02.2018, 14:16 | Сообщение # 256
|
Pentium
Постов: 25
ОК |
Поправил прошивку под общий катод, сделал мигающую разделительную точку(не было индикатора с двумя точками) и изменил переключение часы->термометр->часы...вдруг кому понадобится
|
|
| Пн, 26.02.2018, 14:23 | Сообщение # 257
|
msmmmm
Постов: 891
Друзья |
Было время и желание, почитал о калибровке тактового генератора. Цитата: "Поскольку интерфейс 1-Wire, используемый датчиками, критичен к тактовой частоте микроконтроллера, необходима точная настройка его внутреннего тактового генератора на 8 МГц. Для этого следует, подключив используемый экземпляр микроконтроллера к программатору, прочитать калибровочную константу, находящуюся в старшем байте слова, расположенного по адресу 0x0003 сигнатуры микроконтроллера". Эту константу записывают в любую ячейку EEPROM, а программа в самом начале должна считать это значение из EEPROM и записать в регистр OSCCAL. Проблема с совместимостью тактовых частот МК и датчика должна решиться.
|
|
| Ср, 28.02.2018, 19:37 | Сообщение # 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 Гц.
|
|
| Ср, 28.02.2018, 20:05 | Сообщение # 259
|
msmmmm
Постов: 891
Друзья |
Цитата ЛесникБелый ( ) частота обновления индикатора падает до 59-60 Гц RC генератор, что с него взять? Зависит и от напряжения, и от температуры.
Цитата ЛесникБелый ( ) В проекте просто добавил строку OSCCAL=0xC0 Для себя так, конечно, пойдет, но если писать программу для общего пользования, лучше бы вычитывать предварительно записанную константу из EEPROM - не нужно под каждую микросхему компилировать исходник. Диапазон подстройки получается как и по даташиту - очень широкий. Нужно учесть все это на будущее, хотя, если честно, я бы сам такую схему вряд ли нарисовал. Поставил высокочастотный кварц, а от него и часы и 1wire и ДИ. Все стабильно. А Pentium так частоту ДИ и не измерил...
|
|
| Ср, 28.02.2018, 20:23 | Сообщение # 260
|
ЛесникБелый
Постов: 13
ОК |
Цитата msmmmm ( ) Для себя так, конечно, пойдет, но если писать программу для общего пользования, лучше бы вычитывать предварительно записанную константу из EEPROM - не нужно под каждую микросхему компилировать исходник. Да записать константу не проблема ( при программировании записать в еепром по адресу 0x00 свою константу), Присвоить ей название : eeprom unsigned char Calibr @0x00;// расположение байта калибра по адресу 0x00 а перед инициацией программы: OSCCAL =Calibr;
|
|
Внимание! Форум переехал на Tehnodium.ru
|
|