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

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

|
Да не то, что забил... Полазил по описаниям, так и есть, как вы сказали, т.е. допускается плюс-минус 2% от такта к такту, далее там говорится "изменение частоты более чем на 2% может привести к непредсказуемому поведению, поэтому требуется держать МК в ресете во время смены клока".
Ну и в связи с этим, неохота мне задавать вопрос в атмеловской поддержке, чтобы нарваться на такой очевидный ответ, и прослыть ugly customer (жутким субъектом) (:-). Комизм ещё и в том, что они не поймут, что частоту качать на 20% нужно для создания ФАПЧ на самом микроконтроллере, это выходит за рамки их разумения.
Ну да ладно, я решил задачу по-другому, теперь могу принимать данные с USB аппаратно с помощью SPI, проц 50% времени свободен.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 23 2009, 07:00
|

За битами по регистрам гоняюсь
  
Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446

|
Цитата(Rst7 @ Mar 23 2009, 09:25)  А Вы его не так задайте. Вы спросите - "как согласуется утверждение о полностью статическом дизайне на первой странице и требование +-2%? Могу ли я, согласно первого утверждения тактировать МК от кнопки?"  Сдаётся мне, полностью согласуется. Беглый взгляд на временнЫе диаграммы в любом DS показывает, что для внутренней синхронизации используются не только основная частота CLKcpu, но и её "версии" с различной задержкой, т.е. выполнение команд по времени разбито на части, гораздо меньшие периода входного синхросигнала. Поэтому при резком изменении Fclk возможна ситуация, когда последовательность появления фронтов/спадов внутренних сигналов МК будет нарушена и, например, МК попытается прочитать данные до того, как устаканится адрес, "хвост" команды обгонит "голову". ИМХО, для создания этих задержек используются RC-цепи. Ну, а при медленном изменении тактовой частоты, границы между внутренними синхросигналами не расползаются, и все работает ОК.
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Mar 23 2009, 08:05
|

За битами по регистрам гоняюсь
  
Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446

|
Цитата(Rst7 @ Mar 23 2009, 10:04)  Да ну? Где-же Вы это "бегло увидели"? Ну да! Например в DS на Мегу128: Figure 7 Single Cycle ALU Operation, Figure10 On-chip Data Sram Access Cycles Figure13 External Data Memory Cycles Figure156 External Memory Timing У меня, конечно глаз - не осциллограф, но всё-же ...
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Mar 23 2009, 10:04
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(Nanobyte @ Mar 23 2009, 10:00)  Сдаётся мне, полностью согласуется. Беглый взгляд на временнЫе диаграммы в любом DS показывает, что для внутренней синхронизации используются не только основная частота CLKcpu, но и её "версии" с различной задержкой, т.е. выполнение команд по времени разбито на части, гораздо меньшие периода входного синхросигнала. Поэтому при резком изменении Fclk возможна ситуация, когда последовательность появления фронтов/спадов внутренних сигналов МК будет нарушена и, например, МК попытается прочитать данные до того, как устаканится адрес, "хвост" команды обгонит "голову". ИМХО, для создания этих задержек используются RC-цепи. Если так, то задержки фиксированны и "хвост" успевает закончится до начала "головы" при максимальной тактовой. А вот если дополнительные синхросигналы образуются за счёт умножения тактовой каким-нибудь PLL-ем, то да. Причём и в случае резкого понижения тактовой PLL может слетать. Хотя тогда вопрос "могу ли я тактировать кнопкой" особенно интересен. Аж руки зачесались попробовать минимальную тактовую... времени нету пока.
|
|
|
|
|
Mar 23 2009, 10:17
|

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

|
Цитата(Rst7 @ Mar 23 2009, 06:25)  Вы спросите - "как согласуется утверждение о полностью статическом дизайне на первой странице и требование +-2%? Могу ли я, согласно первого утверждения тактировать МК от кнопки?" В принципе это два разных вопроса, не совсем понятно, как вы их связываете друг с другом, но на оба вопроса есть ответ в дейташите. 1) Пмсм под полностью статическим дизайном у них, у атмельцев, подразумевается, что ВСЕ регистры проца не динамические, а статические. Отсюда следует, что теоретически тактовая частота начинается от нуля, что ОТРАЖЕНО в описании. И вы можете тактировать МК от кнопки, раз в год (31 июля) тактируя свой аппарат, правда, такое нафик никому не нужно, но теоретически допустимо. 2) На второй вопрос, какова допустимая скорость изменения периода клока, дан чёткий ответ: плюс-минус 2% от одного клока до другого, если больше, то будьте добры поставить проц в состояние ресет. Почему так - непонятно, но ответ есть.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 23 2009, 10:28
|

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

|
Особенно интересен момент старта из глубокой спячки всего за 6 тактов. PLL, говорите? Слишком уж частота среза фильтра в обратной связи должна быть высокая... Аж такая, что и фильтра не надо  А, значит, и PLL так себе получается... Цитата В принципе это два разных вопроса, не совсем понятно, как вы их связываете друг с другом Полностью статический дизайн подразумевает, что ограничивается только период CLK (мин. значение), время нахождения его в состоянии 0 и в состоянии 1 (тоже мин. значение). В сторону максимума - любое. Это и записано в Clock Characteristics/External Clock Drive. Но еще эти 2%... Вот тут уже совсем непонятно.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|