Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программное изменение CLK AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Валентиныч
Требуется программно изменять тактовую частоту контроллера (Мега8-Мега64). Допустим - от 6.0 МГц до 12.0 МГц, дискретно, с шагом ~100-200 кГц. Стабилизация частоты, естественно, кварцем.
Может быть кто-то уже решал подобную задачу?
Есть ли специализированные МС типа синтезаторов на эти частоты? Важно, чтобы можно было задавать частоту (коэффициенты предделителя синтезатора) именно тем контроллером, который и будет тактироваться синтезатором.
klop
Цитата(Валентиныч @ Nov 3 2006, 13:08) *
Требуется программно изменять тактовую частоту контроллера (Мега8-Мега64). Допустим - от 6.0 МГц до 12.0 МГц, дискретно, с шагом ~100-200 кГц. Стабилизация частоты, естественно, кварцем.
Может быть кто-то уже решал подобную задачу?
Есть ли специализированные МС типа синтезаторов на эти частоты? Важно, чтобы можно было задавать частоту (коэффициенты предделителя синтезатора) именно тем контроллером, который и будет тактироваться синтезатором.


ICS307 по моеу. Делитель видимо понадобится. Делалось давно для ASIC на основе ядра AVR.
singlskv
Посмотрите вот это FS6377
Может быть оно Вам подойдет
CDT
Цитата(Валентиныч @ Nov 3 2006, 13:08) *
Требуется программно изменять тактовую частоту контроллера (Мега8-Мега64). Допустим - от 6.0 МГц до 12.0 МГц, дискретно, с шагом ~100-200 кГц. Стабилизация частоты, естественно, кварцем.
Может быть кто-то уже решал подобную задачу?
Есть ли специализированные МС типа синтезаторов на эти частоты? Важно, чтобы можно было задавать частоту (коэффициенты предделителя синтезатора) именно тем контроллером, который и будет тактироваться синтезатором.

А заставить контроллер формировать нужные интервалы не удается?
Валентиныч
Цитата(CDT @ Nov 3 2006, 16:45) *
А заставить контроллер формировать нужные интервалы не удается?

Нет, в том то и дело. Обрабатываются быстрые реал-тайм процессы (периодичность внешних событий ~ 4 ms). Алгоритм обработки достаточно сложен, время на обработку едва укладывается в период вн. событий. Применение более скоростного камня исключено техзаданием. И только изменение тактовой частоты позволит реализовать некоторые дополнительные опции.
Но это уже совсем другой вопрос.
Высокочастотные синтезаторы мне известны, но по ряду причин нежелательны для использования. Отсюда и возник вопрос о формировании достаточно стабильного внешнего CLK-генератора для работы в требуемом диапазоне (указан в первом сообщении). Дискретность изменения частоты не принципиальна, и может быть от 10 до 300 кГц. Общая перестройка частоты относительно реперных 8 МГц (эта частота должна присутствовать в сетке частот синтезатора обязательно!) желательна +/- 2-3 МГц (тоже не столь принципиально).
Persona
Не совсем ясное тех. задание..
А если просто OSCCAL изменять у АВР? Довольно широкий предел.. Да и стоимость решения = 0.
Diusha
«А если просто OSCCAL изменять у АВР?»
Автору вопроса нужна кварцованность

Имел как-то дело с микросхемкой. Как зовут, не помню; если интересно – откопаю. Кварцованная. Выдает 8, 16, 20, 25, 33, 40, 50, 60, 80 МГц.

А что если взять АВРку с бОльшей памятью и наклонировать блоков с разным кол-вом NOP`ов, например (гадаю, ес-но, задачи не знаю)
Валентиныч
Цитата(Diusha @ Nov 5 2006, 09:41) *
«А если просто OSCCAL изменять у АВР?»
Автору вопроса нужна кварцованность

Абсолютно правильно.

Цитата
Имел как-то дело с микросхемкой. Как зовут, не помню; если интересно – откопаю. Кварцованная. Выдает 8, 16, 20, 25, 33, 40, 50, 60, 80 МГц.

Высокочастотные синтезаторы знакомы, и есть в наличии.
Суть вопроса в том, чтобы получить "сетку" частот 6-12 МГц с шагом 100-300 кГц без использования дополнительных делителей. Исключительно на одном чипе.

Цитата
А что если взять АВРку с бОльшей памятью и наклонировать блоков с разным кол-вом NOP`ов, например (гадаю, ес-но, задачи не знаю)
.
В этом случае получим набор временнЫх интервалов, а не набор тактовых частот. sad.gif
Требуется изменять именно CLK.
defunct
Цитата(Валентиныч @ Nov 3 2006, 13:08) *
Требуется программно изменять тактовую частоту контроллера (Мега8-Мега64). Допустим - от 6.0 МГц до 12.0 МГц, дискретно, с шагом ~100-200 кГц. Стабилизация частоты, естественно, кварцем.

А можно поинтересоваться для какой цели могут потребоваться такие манипуляции с осциллятором?
Энергосбережения практически никакого..
Могу предположить, что AVRка применяется для генерации формы сигнала, а частота будет задаваться внешним генератором..

Цитата
Обрабатываются быстрые реал-тайм процессы (периодичность внешних событий ~ 4 ms). Алгоритм обработки достаточно сложен, время на обработку едва укладывается в период вн. событий.

Мне всегда казалось, что производительность AVR прямопропорциональна частоте. Какой резон в снижении тактовой частоты, если и так производительности едва хватает на обработку периода вн. события?
Валентиныч
Цитата(defunct @ Nov 5 2006, 18:21) *
Мне всегда казалось, что производительность AVR прямопропорциональна частоте. Какой резон в снижении тактовой частоты, если и так производительности едва хватает на обработку периода вн. события?

Резон есть, но "на пальцах" рассказать сложно, да это и не тема топика.
Если в двух словах: алгоритм обработки использует большой табличный массив, адресация которого прямопропорциональна значению, накопленному в таймере обнуляемому и запускаемому по внешнему событию. Изменение CLK позволит "триммировать" адреса, читай - изменять табличные данные.
slog
Вижу 2 варианта:
1. В PLIS делитель с переменным коэфициентом деления.
2. ГУН + микросхема синтезатора с ФАПЧ, но в 1 чип это не очень лезет, да и рассыпухи много.
_artem_
Наверно на cpld можно будет сделать программируемый делитель на фиксированное количество частот.

опередили )
_artem_
Аааа а вот и более интересная идея - таймер авр можно использовать как переменный делитель для синтезатора.Отдельным будет низкочастотный опорный кварцованный генератор . Выход output capture таймера на xor (на второй вход xor'а - низкочастотный кварцованный генератор), rc цепочка и фазорастный сигнал на гун запитываюший тактовой саму авр.
Вам понадобится одна микруха ГУН , XOR и пассивы few RC. Частоту будете менять посредством делителя таймера програмно. Я такой реализации еще в инете не видел (хотя я мало что видел) ). Так что если напишете авторское свидетельство не забудьте вписать меня туда ))
singlskv
Цитата(_artem_ @ Nov 6 2006, 21:03) *
Аааа а вот и более интересная идея - таймер авр можно использовать как переменный делитель для синтезатора.Отдельным будет низкочастотный опорный кварцованный генератор . Выход output capture таймера на xor (на второй вход xor'а - низкочастотный кварцованный генератор), rc цепочка и фазорастный сигнал на гун запитываюший тактовой саму авр.
Вам понадобится одна микруха ГУН , XOR и пассивы few RC. Частоту будете менять посредством делителя таймера програмно. Я такой реализации еще в инете не видел (хотя я мало что видел) ). Так что если напишете авторское свидетельство не забудьте вписать меня туда ))

А что будет в этой схеме при включении контроллера, когда таймер еще не настроен ?
Валентиныч
Цитата(singlskv @ Nov 6 2006, 23:42) *
А что будет в этой схеме при включении контроллера, когда таймер еще не настроен ?

Резонный вопрос, но, как мне кажется, решаемый.
Хотя идея в целом интересная, по количеству корпусов не самая оптимальная - ГУН, XOR и (Артем, видимо, забыл) сам кварцевый генератор.
Неужели в природе нет готовых низкочастотных синтезаторов? sad.gif
_artem_
если у Вас есть XOR то их должно быть целых четыре - как раз то что нужно для 32 кГц часового генератора.

and VCO with PLL :
http://focus.ti.com/docs/prod/folders/print/tlc2932a.html

"А что будет в этой схеме при включении контроллера, когда таймер еще не настроен ?"

Начальную частоту ГУНа можно подобрать в определенных пределах достаточных для срабатывания петли фапч. В диапазон 6-12 МГц не так уж и трудно попасть. А дальше перебором таймера пока не захватит (если полоса фапч узкая).
Nanobyte
Цитата(Валентиныч @ Nov 6 2006, 23:04) *
... Неужели в природе нет готовых низкочастотных синтезаторов? sad.gif

Здесь уже обсуждались ПЛИС, внешние XOR и т.п. А гораздо удобнее и проще поставить изделие от AD - AD9850. Загнал по SPI несколько байтов в регистр и всё, голова отдыхает от пенталгина. Цена вопроса - ~10-12 уе. Шаг можно задавать хоть доли герца. Верхняя частота - 60 МГц, нижняя близка к 0. Правда, остаётся вопрос начального запуска AVR, пока генератор ещё не настроен.
slog
Цитата(Валентиныч @ Nov 6 2006, 22:04) *
Цитата(singlskv @ Nov 6 2006, 23:42) *
А что будет в этой схеме при включении контроллера, когда таймер еще не настроен ?

Резонный вопрос, но, как мне кажется, решаемый.
Хотя идея в целом интересная, по количеству корпусов не самая оптимальная - ГУН, XOR и (Артем, видимо, забыл) сам кварцевый генератор.
Неужели в природе нет готовых низкочастотных синтезаторов? sad.gif


Синтезаторов полно, в 1-ом корпусе, + кварц, но так чтобы сразу и вместе с ГУНом, я не видел.
ARIM
Цитата(Валентиныч @ Nov 3 2006, 13:08) *
Требуется программно изменять тактовую частоту контроллера (Мега8-Мега64). Допустим - от 6.0 МГц до 12.0 МГц, дискретно, с шагом ~100-200 кГц. Стабилизация частоты, естественно, кварцем.
Может быть кто-то уже решал подобную задачу?
Есть ли специализированные МС типа синтезаторов на эти частоты? Важно, чтобы можно было задавать частоту (коэффициенты предделителя синтезатора) именно тем контроллером, который и будет тактироваться синтезатором.

Внешний кварцованный генератор на счетчик с параллельной загрузкой типа ИЕ10, ИЕ18 . Контроллер тактировать с выхода переполнения(переноса). Управлять загрузкой счетчика с контроллера. Для обеспечения скважности 50% Fclk_avr можно выход переполнения завести через триггер. или еще как.
Валентиныч
To All: спасибо всем за желание помочь!
К сожалению, так и не получил ответ на заданный вопрос: нет ли готового однокорпусного синтезатора с требуемыми параметрами?
Варианты решения задачи с внешней объвязкой (ГУНы, ФАПЧ, счетчики и прочее) мне давно и хорошо известны, но не применимы в данном конкретном случае.
Нужен именно однокорпусной девайс. Если кто знает - буду признателен подсказке. Все остальное можно не обсуждать.
Petka
Цитата(Валентиныч @ Nov 8 2006, 16:02) *
To All: спасибо всем за желание помочь!
К сожалению, так и не получил ответ на заданный вопрос: нет ли готового однокорпусного синтезатора с требуемыми параметрами?
Варианты решения задачи с внешней объвязкой (ГУНы, ФАПЧ, счетчики и прочее) мне давно и хорошо известны, но не применимы в данном конкретном случае.
Нужен именно однокорпусной девайс. Если кто знает - буду признателен подсказке. Все остальное можно не обсуждать.

Вам же уже предложили использовать DDS! Если задаёте вопрос, то читайте пожалуйста ответы внимательно.
Diusha
Cкажете, извращенец… А что если в качестве генера использовать МК Сценикс SX18? Тактовая до 75 МГц, 1команда/такт, 18 ножек, примерно $4.
strr
Посмотрите в сторону DS1075
Diusha
«Cкажете, извращенец…»
Извините, если кто не так понял. Это я о себе. Что предлагаю в качестве генера использ. другой МК.

Я тут еще подумал. По-моему все-таки не плохой вариант. Коэф. деления можно получить практически любой, хоть дробный (подсказка: кто сказал, что все периоды CLK д.б. одинаковыми?)
Валентиныч
Всем спасибо!
Вопрос "отпал" сам по себе. Заказчик изменил ТЗ.
Но высказанные выше мнения были учтены.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.