Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Crystal Oscillator - Ceramic Resonator
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
zombi
В документе AVR134 на стр.3 figure 2-2/2-3 показаны графики потребления проца во времени.
И сразу видно что чем больше "Startup Time" тем больше жрет проц итого!
Кто может объяснить почему с "Crystal Oscillator" Startup Time = 35 ms,
a c "Ceramic Resonator" Startup Time = 1 ms.
AVR134
rx3apf
Цитата(zombi @ Jan 31 2011, 19:52) *
Кто может объяснить почему с "Crystal Oscillator" Startup Time = 35 ms,
a c "Ceramic Resonator" Startup Time = 1 ms.

Время запуска зависит от добротности резонатора. У пьезорезонаторов добротность меньше.
zombi
Цитата(rx3apf @ Jan 31 2011, 19:58) *
Время запуска зависит от добротности резонатора. У пьезорезонаторов добротность меньше.

А как процессор должен узнать с какой добротностью железяку ему на вход подцепили?
proxi

Цитата
А как процессор должен узнать

он то никак, а так надо самому выбрать установки
rx3apf
Цитата(zombi @ Jan 31 2011, 20:05) *
А как процессор должен узнать с какой добротностью железяку ему на вход подцепили?

А как генератор заработает, так, согласно выставленным фьюзам SUT и CKSEL0, после отсчета нужного числа тактов, и запустится...
zombi
Цитата(rx3apf @ Jan 31 2011, 20:12) *
А как генератор заработает, так, согласно выставленным фьюзам SUT и CKSEL0, после отсчета нужного числа тактов, и запустится...

Bот к примеру если мне нужно проц тактировать внешним кавцевым резонатором 16MHz то чтобы я в SUT и CKSEL0 не писал все равно "Start-up Time from Power-save" будет 16K CK т.е. 1/16.000.000+16*1024=0.001024 cек (~1ms).
Или я чето напутал?
rx3apf
Цитата(zombi @ Jan 31 2011, 20:21) *
Bот к примеру если мне нужно проц тактировать внешним кавцевым резонатором 16MHz то чтобы я в SUT и CKSEL0 не писал все равно "Start-up Time from Power-save" будет 16K CK т.е. 1/16.000.000+16*1024=0.001024 cек (~1ms).
Или я чето напутал?

Раз все варианты для "кварца" дают 16К тактов задержки - так и будет (плюс еще время на то, чтобы уровень сигнала на выходе генератора достиг минимального размаха для начала отсчета). Если нужен быстрый старт - то нужно или внешний генератор, или встроенный RC.
zombi
Цитата(rx3apf @ Jan 31 2011, 20:25) *
Раз все варианты для "кварца" дают 16К тактов задержки - так и будет

Вот это и хотелось бы у Вас уточнить.

Цитата(rx3apf @ Jan 31 2011, 20:25) *
(плюс еще время на то, чтобы уровень сигнала на выходе генератора достиг минимального размаха для начала отсчета)

А как узнать это время?

Цитата(rx3apf @ Jan 31 2011, 20:25) *
Если нужен быстрый старт - то нужно или внешний генератор, или встроенный RC.

Внешний генератор не подходит из-за большого потребления.
А встроеннвй RC из-за малой частоты.
rx3apf
Цитата(zombi @ Jan 31 2011, 20:32) *
А как узнать это время?


Только экспериментально. Кстати, оно еще и не особо стабильно.
Цитата
А встроеннвй RC из-за малой частоты.

Если 8 MHz мало - то облом....
zombi
Цитата(rx3apf @ Jan 31 2011, 20:34) *
Только экспериментально. Кстати, оно еще и не особо стабильно.

А какое это может быть время хоть примерно?
Можно ли им пренебречь при обязательной 1ms задержке?

Цитата(rx3apf @ Jan 31 2011, 20:34) *
Если 8 MHz мало - то облом....

В принципе может хватило бы и 8-ми но только требутся еще и работа USART.
rx3apf
Цитата(zombi @ Jan 31 2011, 20:43) *
А какое это может быть время хоть примерно?
Можно ли им пренебречь при обязательной 1ms задержке?

Полагаю., что может быть сопоставимым с этой задержкой (ну, по крайней мере, это доли mS).

Цитата
В принципе может хватило бы и 8-ми но только требутся еще и работа USART.

Откалиброваться по часовому и работать. Для надежности можно это делать регулярно.
zombi
Цитата(rx3apf @ Jan 31 2011, 21:05) *
Откалиброваться по часовому и работать. Для надежности можно это делать регулярно.

Все дело в том что USART работает на скорости 115.2K, и при Fosc=16MHz и U2x=1 уже погрешность 2.1%.
Страшно представить какая будет погрешность при Fosc ~8MHz +/- пол вареника biggrin.gif
rx3apf
Цитата(zombi @ Jan 31 2011, 21:35) *
Все дело в том что USART работает на скорости 115.2K, и при Fosc=16MHz и U2x=1 уже погрешность 2.1%.
Страшно представить какая будет погрешность при Fosc ~8MHz +/- пол вареника biggrin.gif

В современных кристаллах есть подстройка RC-генератора (регистр OSCCAL). Однопроцентной точности можно добиться. Но да, если нужна 115.200, то придется настраивать на 7.3728 MHz. Можно попробовать и на следующий кратный номинал, но это уже будет выход за спецификации RC-генератора.
zombi
Цитата(rx3apf @ Jan 31 2011, 23:10) *
В современных кристаллах есть подстройка RC-генератора (регистр OSCCAL). Однопроцентной точности можно добиться. Но да, если нужна 115.200, то придется настраивать на 7.3728 MHz. Можно попробовать и на следующий кратный номинал, но это уже будет выход за спецификации RC-генератора.

Под "выходом за пределы спецификации RC-генератора" вы имеете ввиду допустимую 10% калибровку?
Кстати хочу уточнить в случае изменения OSCCAL более чем на 10% от номинала атмел не гарантирует только запись в EEPROM и FLASH или чтото еще может глючить?
rx3apf
Цитата(zombi @ Jan 31 2011, 23:52) *
Под "выходом за пределы спецификации RC-генератора" вы имеете ввиду допустимую 10% калибровку?

Что-то мне помнилось, что не выше 8 MHz. Похоже, я спутал с прямым углом (с ограничением для низковольтного питания). В конце концов, генератор можно с равным успехом сдвигать вверх, и иметь бОльшую тактовую, и целый делитель для 115200 UART (а вот для 230400 и дальше - так не получится).
Цитата
Кстати хочу уточнить в случае изменения OSCCAL более чем на 10% от номинала атмел не гарантирует только запись в EEPROM и FLASH или чтото еще может глючить?

Никогда не пробовал. Даже особого внимания на этот момент не обращал (а зря) - впрочем, мне было нужно 7.3728, это в пределах требований.
zombi
У меня мега 162 питание 5V.
Куря DS вроде понял так что внутренний RC откалиброван на 8MHz для 3V. А сколько ж будет при 5V???

Вроде с помощью OSCCAL частоту можно поднять аж в два раза. И 14.7456 мне бы очень кстати было.
FLASH мне вообще писать не нужно а EEPROM к счастью не часто и я вот думаю попробывать таким образом:

Перед записью запретить все нафиг.
Записать в OSCCAL default.
Дождаться окончания записи в EEPROM.
Восстановить OSCCAL.

Как думаете прокатит?

З.Ы. Кстати а где процессор может прочитать этот самый default байт калибровки?
rx3apf
Цитата(zombi @ Feb 1 2011, 00:24) *
У меня мега 162 питание 5V.
Куря DS вроде понял так что внутренний RC откалиброван на 8MHz для 3V. А сколько ж будет при 5V???

Вроде при 5V.

Цитата
Вроде с помощью OSCCAL частоту можно поднять аж в два раза.

Гарантии нет. Может не оказаться запаса.
Цитата
Перед записью запретить все нафиг.
Записать в OSCCAL default.
Дождаться окончания записи в EEPROM.
Восстановить OSCCAL.

Как думаете прокатит?

Вроде нет противопоказаний...
Цитата
З.Ы. Кстати а где процессор может прочитать этот самый default байт калибровки?

А он уже в OSCCAL загружен после сброса.
zombi
Цитата(rx3apf @ Feb 1 2011, 01:13) *
Вроде при 5V.

Нет. Вот цитата из DS:
Цитата
Calibrated Internal RC Oscillator
The calibrated internal RC Oscillator provides a fixed 8.0 MHz clock. The frequency is nominal value at 3V and 25°C.


Цитата(rx3apf @ Feb 1 2011, 01:13) *
А он уже в OSCCAL загружен после сброса.

Т.е. после сброса его нужно прочитать из OSCCAL и запомнить?
Или всетаки процессор може гдето прочитать значение заводской калибровки?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.