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

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

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

А заставить контроллер формировать нужные интервалы не удается?
Нет, в том то и дело. Обрабатываются быстрые реал-тайм процессы (периодичность внешних событий ~ 4 ms). Алгоритм обработки достаточно сложен, время на обработку едва укладывается в период вн. событий. Применение более скоростного камня исключено техзаданием. И только изменение тактовой частоты позволит реализовать некоторые дополнительные опции.
Но это уже совсем другой вопрос.
Высокочастотные синтезаторы мне известны, но по ряду причин нежелательны для использования. Отсюда и возник вопрос о формировании достаточно стабильного внешнего CLK-генератора для работы в требуемом диапазоне (указан в первом сообщении). Дискретность изменения частоты не принципиальна, и может быть от 10 до 300 кГц. Общая перестройка частоты относительно реперных 8 МГц (эта частота должна присутствовать в сетке частот синтезатора обязательно!) желательна +/- 2-3 МГц (тоже не столь принципиально).
Persona
Nov 4 2006, 13:42
Не совсем ясное тех. задание..
А если просто OSCCAL изменять у АВР? Довольно широкий предел.. Да и стоимость решения = 0.
«А если просто OSCCAL изменять у АВР?»
Автору вопроса нужна кварцованность
Имел как-то дело с микросхемкой. Как зовут, не помню; если интересно – откопаю. Кварцованная. Выдает 8, 16, 20, 25, 33, 40, 50, 60, 80 МГц.
А что если взять АВРку с бОльшей памятью и наклонировать блоков с разным кол-вом NOP`ов, например (гадаю, ес-но, задачи не знаю)
Валентиныч
Nov 5 2006, 10:00
Цитата(Diusha @ Nov 5 2006, 09:41)

«А если просто OSCCAL изменять у АВР?»
Автору вопроса нужна кварцованность
Абсолютно правильно.
Цитата
Имел как-то дело с микросхемкой. Как зовут, не помню; если интересно – откопаю. Кварцованная. Выдает 8, 16, 20, 25, 33, 40, 50, 60, 80 МГц.
Высокочастотные синтезаторы знакомы, и есть в наличии.
Суть вопроса в том, чтобы получить "сетку" частот 6-12 МГц с шагом 100-300 кГц без использования дополнительных делителей. Исключительно на одном чипе.
Цитата
А что если взять АВРку с бОльшей памятью и наклонировать блоков с разным кол-вом NOP`ов, например (гадаю, ес-но, задачи не знаю)
.
В этом случае получим набор временнЫх интервалов, а не набор тактовых частот.

Требуется изменять именно CLK.
defunct
Nov 5 2006, 13:21
Цитата(Валентиныч @ Nov 3 2006, 13:08)

Требуется программно изменять тактовую частоту контроллера (Мега8-Мега64). Допустим - от 6.0 МГц до 12.0 МГц, дискретно, с шагом ~100-200 кГц. Стабилизация частоты, естественно, кварцем.
А можно поинтересоваться для какой цели могут потребоваться такие манипуляции с осциллятором?
Энергосбережения практически никакого..
Могу предположить, что AVRка применяется для генерации формы сигнала, а частота будет задаваться внешним генератором..
Цитата
Обрабатываются быстрые реал-тайм процессы (периодичность внешних событий ~ 4 ms). Алгоритм обработки достаточно сложен, время на обработку едва укладывается в период вн. событий.
Мне всегда казалось, что производительность AVR прямопропорциональна частоте. Какой резон в снижении тактовой частоты, если и так производительности едва хватает на обработку периода вн. события?
Валентиныч
Nov 6 2006, 16:02
Цитата(defunct @ Nov 5 2006, 18:21)

Мне всегда казалось, что производительность AVR прямопропорциональна частоте. Какой резон в снижении тактовой частоты, если и так производительности едва хватает на обработку периода вн. события?
Резон есть, но "на пальцах" рассказать сложно, да это и не тема топика.
Если в двух словах: алгоритм обработки использует большой табличный массив, адресация которого прямопропорциональна значению, накопленному в таймере обнуляемому и запускаемому по внешнему событию. Изменение CLK позволит "триммировать" адреса, читай - изменять табличные данные.
Вижу 2 варианта:
1. В PLIS делитель с переменным коэфициентом деления.
2. ГУН + микросхема синтезатора с ФАПЧ, но в 1 чип это не очень лезет, да и рассыпухи много.
_artem_
Nov 6 2006, 17:52
Наверно на cpld можно будет сделать программируемый делитель на фиксированное количество частот.
опередили )
_artem_
Nov 6 2006, 18:03
Аааа а вот и более интересная идея - таймер авр можно использовать как переменный делитель для синтезатора.Отдельным будет низкочастотный опорный кварцованный генератор . Выход output capture таймера на xor (на второй вход xor'а - низкочастотный кварцованный генератор), rc цепочка и фазорастный сигнал на гун запитываюший тактовой саму авр.
Вам понадобится одна микруха ГУН , XOR и пассивы few RC. Частоту будете менять посредством делителя таймера програмно. Я такой реализации еще в инете не видел (хотя я мало что видел) ). Так что если напишете авторское свидетельство не забудьте вписать меня туда ))
singlskv
Nov 6 2006, 18:42
Цитата(_artem_ @ Nov 6 2006, 21:03)

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

А что будет в этой схеме при включении контроллера, когда таймер еще не настроен ?
Резонный вопрос, но, как мне кажется, решаемый.
Хотя идея в целом интересная, по количеству корпусов не самая оптимальная - ГУН, XOR и (Артем, видимо, забыл) сам кварцевый генератор.
Неужели в природе нет готовых низкочастотных синтезаторов?
_artem_
Nov 6 2006, 19:43
если у Вас есть XOR то их должно быть целых четыре - как раз то что нужно для 32 кГц часового генератора.
and VCO with PLL :
http://focus.ti.com/docs/prod/folders/print/tlc2932a.html"А что будет в этой схеме при включении контроллера, когда таймер еще не настроен ?"
Начальную частоту ГУНа можно подобрать в определенных пределах достаточных для срабатывания петли фапч. В диапазон 6-12 МГц не так уж и трудно попасть. А дальше перебором таймера пока не захватит (если полоса фапч узкая).
Nanobyte
Nov 6 2006, 19:58
Цитата(Валентиныч @ Nov 6 2006, 23:04)

... Неужели в природе нет готовых низкочастотных синтезаторов?

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

Цитата(singlskv @ Nov 6 2006, 23:42)

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

Синтезаторов полно, в 1-ом корпусе, + кварц, но так чтобы сразу и вместе с ГУНом, я не видел.
Цитата(Валентиныч @ Nov 3 2006, 13:08)

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

To All: спасибо всем за желание помочь!
К сожалению, так и не получил ответ на заданный вопрос: нет ли готового однокорпусного синтезатора с требуемыми параметрами?
Варианты решения задачи с внешней объвязкой (ГУНы, ФАПЧ, счетчики и прочее) мне давно и хорошо известны, но не применимы в данном конкретном случае.
Нужен именно однокорпусной девайс. Если кто знает - буду признателен подсказке. Все остальное можно не обсуждать.
Вам же уже предложили использовать DDS! Если задаёте вопрос, то читайте пожалуйста ответы внимательно.
Diusha
Nov 10 2006, 03:23
Cкажете, извращенец… А что если в качестве генера использовать МК Сценикс SX18? Тактовая до 75 МГц, 1команда/такт, 18 ножек, примерно $4.
Посмотрите в сторону DS1075
Diusha
Nov 11 2006, 04:01
«Cкажете, извращенец…»
Извините, если кто не так понял. Это я о себе. Что предлагаю в качестве генера использ. другой МК.
Я тут еще подумал. По-моему все-таки не плохой вариант. Коэф. деления можно получить практически любой, хоть дробный (подсказка: кто сказал, что все периоды CLK д.б. одинаковыми?)
Валентиныч
Nov 11 2006, 05:00
Всем спасибо!
Вопрос "отпал" сам по себе. Заказчик изменил ТЗ.
Но высказанные выше мнения были учтены.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.