|
Преднамеренное изменение тактовой частоты МК |
|
|
|
Mar 12 2009, 18:44
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Народ, вот такой вопрос. Будет ли нормально работать МК, если тактовая частота будет меняться в некоторых пределах, скажем, 20%? Хороший вопрос. В даташитах по этому поводу сказано, что не более чем на 2% от цикла к циклу. Как это согласуется с уверениями о полностью статическом дизайне - я не понимаю. Предлагаю этот вопрос задать Атмелу. Кто напишет на вменяемом английском туда запрос? Потому что я за собой замечаю, что пишу явную ахинею - в языковом смысле. Хуже Гоги, торгующего шаурмой  Цитата =GM= Профессионал Group: Свой Posts: 1 122 Joined: 22-06-06 From: Oxford, UK Member No.: 18 282 Бугага. Вот кто напишет
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Mar 12 2009, 18:50
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(_dem @ Mar 12 2009, 18:34)  Подача частоты с внешнего генератора? Ну да. У меня оформились две идеи по использованию. Одна из них - программный high speed USB 12 МГц. Цитата(Rst7 @ Mar 12 2009, 18:44)  Бугага. Вот кто напишет  Чёрт, даже в голову не приходило, мне проще позвонить и спросить...если они отвечают по телефону.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 12 2009, 18:59
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Rst7 @ Mar 12 2009, 21:44)  Хороший вопрос. В даташитах по этому поводу сказано, что не более чем на 2% от цикла к циклу. ... В описании на те процессоры, у которых есть регистр XDIV (ATmega64...), написано, что после изменения тактовой частоты (записи в XDIV) нужно выполнить 8 NOP-ов. Иначе команды могут неправильно воспринятся. Отсюда можно предположить, что там какая-то проблемма с конвейерами...
|
|
|
|
|
Mar 12 2009, 22:33
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(galjoen @ Mar 12 2009, 18:59)  В описании на те процессоры, у которых есть регистр XDIV (ATmega64...), написано, что после изменения тактовой частоты (записи в XDIV) нужно выполнить 8 NOP-ов. Иначе команды могут неправильно восприняться. Отсюда можно предположить, что там какая-то проблема с конвейерами... Мне кажется, тут другое, при смене коэффициента деления может возникнуть короткий импульс в цепи клока, отсюда одна или несколько команд не считаются или считаются неправильно. Мой же вопрос не о подаче глитчей в цепь клока, а об изменении периода клока, скажем, была частота 5 МГц, соответственно высокий и низкий уровень были по 100 нс, и вдруг после низкого уровня идёт высокий длиной 80 нс, т.е. изменилась частота клока. Ну, это в пределе, а в реале должно быть более плавно.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 13 2009, 06:54
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Как быстро установится внутренний RC генератор при изменении содержимого OSCCAL? Поставьте эксперимент. Скорее всего - в следующем такте. Кстати, на изменение OSCCAL тоже наложено ограничение в +-2% частоты за раз. Только вот.... Помнится мне одна фигня.... Щас гляну.... Неа... Погорячился я с ограничением на OSCCAL. Нету. Да и в "AVR053: Calibration of the internal RC oscillator" в полный рост бинарный поиск. Т.е. значение OSCCAL за раз может измениться аж на четверть диапазона. При этом, после записи в OSCCAL нового значения стоит 2 NOP'а.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Mar 13 2009, 10:50
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(galjoen @ Mar 12 2009, 23:31)  Если дело обстояло бы так, то всего 2-х NOP-ов было бы достаточно, а там именно 8. И не 64, как было бы в худшем случае. И кстати почему тогда бы NOP не мог бы воспринятся/считаться неправильно? А в описании написано, что NOP-ы точно правильно воспримутся 1) Как я понимаю, там стоит предделитель клока на 2-129, ну вот и надо его весь заполнить перед новым использованием. А то может получиться так, что в хвосте регистра остались все единицы и первый же фронт приведет к смене фазы клока. 2) Здесь нопы выступают как бы безопасной программной задержкой. По нопу делается холостая операция, что значит, правильно или неправильно воспримутся? Если будет глитч, ноп просто не прочитается, ну и ничего страшного, от нопа не ждут никакого действия. Страшнее будет, если реальная команда не исполнится, или, если команда двухсловная, вы пропускаете первую половину команды и попадаете на вторую половину команды...
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|