Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Генератор прямоугольных импульсов
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Схемотехника
MCZ
Подскажите, пожалуйста,

на каком микроконтроллере проще всего собрать генератор прямоугольных импульсов, чтобы
иметь возможность генерировать частоты

30 / 24 / 18 / 12 мегагерц.

Нужно для замены обычному генератору, для запуска микроконтроллеров.

rezident
Гораздо проще поставить несколько кварцевых генераторов на требуемые частоты.
MCZ
Цитата(rezident @ Oct 13 2010, 00:13) *
Гораздо проще поставить несколько кварцевых генераторов на требуемые частоты.

Согласен, сейчас стоит как раз генератор на кварце, но хочется иметь возможность переключать частоты программно из софта для разных режимов. В связим с чем и вопрос smile.gif
rezident
Цитата(MCZ @ Oct 13 2010, 03:43) *
хочется иметь возможность переключать частоты программно из софта для разных режимов.
Дык, а м/с (де)мультиплексора aka clock distributer применить нельзя что ли? Какие у вас имеются требования к джиттеру и "плавности" переключения?
dimka76
Цитата(MCZ @ Oct 13 2010, 00:49) *
Подскажите, пожалуйста,

на каком микроконтроллере проще всего собрать генератор прямоугольных импульсов, чтобы
иметь возможность генерировать частоты

30 / 24 / 18 / 12 мегагерц.

Нужно для замены обычному генератору, для запуска микроконтроллеров.


На контроллере, у которого тактовая как минимум в два раза больше вашей верхней частоты. И для генерации использовать либо сигнал SCK шины SPI, либо выход совпадения таймера, работающего в режиме переключения вывода при совпадении.
Например вам должен подойти LPC13xx.
Herz
Цитата(dimka76 @ Oct 13 2010, 06:13) *
На контроллере, у которого тактовая как минимум в два раза больше вашей верхней частоты. И для генерации использовать либо сигнал SCK шины SPI, либо выход совпадения таймера, работающего в режиме переключения вывода при совпадении.
Например вам должен подойти LPC13xx.

Я не в курсе, а сколько тактовых периодов у них длится машинный цикл, один? Всё равно ведь целочисленного деления не получится. Выйдет не тактовая, а пародия. На контроллере делать такой генератор расточительно, имхо. Можно нагородить PLL с делителями, переключаемыми программно, но выйдет тоже громоздко и недёшево.... Логичнее, как советовал rezident, переключаемые генераторы применить. Или искать высокочастотную логику.
ledum
Цитата(Herz @ Oct 13 2010, 12:05) *
Или искать высокочастотную логику.

Да-а очень высокочастотную. 360 вроде наименьшее общее кратное. Лучше ИМХО все-таки оставить несколько генераторов.
Или Хотя бы генераторы на 30 и 72МГц(где ж такой найти?)
Alexashka
Цитата(MCZ @ Oct 13 2010, 00:49) *
Подскажите, пожалуйста,

на каком микроконтроллере проще всего собрать генератор прямоугольных импульсов, чтобы
иметь возможность генерировать частоты

30 / 24 / 18 / 12 мегагерц.

Нужно для замены обычному генератору, для запуска микроконтроллеров.

У AT91SAM7SExx (возможно есть и у других, не проверял) есть выходы "PCK", на них можно вывести частоту PLL генератора (после PLL имеется также делитель от 1 до 64 по степени двойки).
PLL работает в диапазоне от 80 до 220МГц с возможностью установки дробного коэффициента.
Так что можно получить все нужные частоты с одним кварцевым резонатором. И можно одновременно выводить сразу 3 тактовых сигнала, только отличаться они должны степенью 2ки.
dimka76
Цитата(Herz @ Oct 13 2010, 13:05) *
Я не в курсе, а сколько тактовых периодов у них длится машинный цикл, один?

Делается все аппаратно.
Цитата
Всё равно ведь целочисленного деления не получится.


Пример для LPC13xx.
У него имеется внутренняя PLL, диапазон входных частот 10-25МГц.
И максимальная частота ядра LPC13xx - 72 МГц.

24 / 18 / 12 мегагерц кратны 72 МГц
30 мегагерц кратно 60 МГц

для 60 и 72 МГц будет кратный кварц 12 МГц.

У LPC13xx имеется выходы
Код
Up to three (CT16B0) or two (CT16B1) external outputs corresponding to match
registers with the following capabilitie:
– Set LOW on match.
– Set HIGH on match.
– Toggle on match.
– Do nothing on match.


Так вот настраивает выходы совпадения таймера на переключение при совпадении и получаем необходимые значения выходной частоты, меняя содержимое регистра совпадения.

Для переключения частоты ядра между 60 и 72 МГц меняем настройку PLL.
Цитата
На контроллере делать такой генератор расточительно, имхо.

Стоимость такого решения не больше 2$.
MrYuran
Цитата(dimka76 @ Oct 13 2010, 16:45) *
Стоимость такого решения не больше 2$.

Можно синтезатор частоты приспособить, однако стоить будет чуть больше 2$ и контроллер всё равно понадобится (зато любой подойдёт)
yakub_EZ
"БМГ плюс" торгуют программируемыми генераторами американской фирмы Cardinal Components. Есть одна модель с тремя частотами ГК-156П - http://www.bmgplus.ru/images/pdf/pdf156.pdf . Заказать на частоты 30 24 18 мегагерц и приделать к нему управляемый делитель на два, получим дополнительные 15 12 9 МГц.
Herz
Цитата(dimka76 @ Oct 13 2010, 14:45) *
Так вот настраивает выходы совпадения таймера на переключение при совпадении и получаем необходимые значения выходной частоты, меняя содержимое регистра совпадения.

Для переключения частоты ядра между 60 и 72 МГц меняем настройку PLL.

Стоимость такого решения не больше 2$.

Что ж, красиво. А он умеет менять настройку PLL изнутри?

Цитата(yakub_EZ @ Oct 13 2010, 15:11) *
"БМГ плюс" торгуют программируемыми генераторами американской фирмы Cardinal Components. Есть одна модель с тремя частотами ГК-156П - http://www.bmgplus.ru/images/pdf/pdf156.pdf . Заказать на частоты 30 24 18 мегагерц и приделать к нему управляемый делитель на два, получим дополнительные 15 12 9 МГц.

Так не получается. Внутренний делитель делит либо на 1, либо на 2, либо на 4.
НЕХ
LTC6903 LTC6904
ae_
Можно не делить, а умножать. 12, 18, 24, 30 это 6*(2, 3, 4, 5).
Если взять контроллер с PLL, работающей от 6 МГц, и имеющей выход тактовой частоты, то остаётся только менять множитель 2, 3, 4, 5.
yakub_EZ
Цитата(Herz @ Oct 13 2010, 18:14) *
Так не получается. Внутренний делитель делит либо на 1, либо на 2, либо на 4.

Точно, проглядел. А этот вроде подходит http://www.cardinalxtal.com/docs/series/CCE4C.pdf
ledum
Цитата(ae_ @ Oct 13 2010, 18:39) *
Можно не делить, а умножать. 12, 18, 24, 30 это 6*(2, 3, 4, 5).
Если взять контроллер с PLL, работающей от 6 МГц, и имеющей выход тактовой частоты, то остаётся только менять множитель 2, 3, 4, 5.

А, кстати вспомнились ICS501, ICS502, ICS512 и их клоны, уже наверное в качестве прикола (из-за цены). Если взять кварц на 12МГц, http://search.digikey.com/scripts/DkSearch...=NB3N502DGOS-ND или http://search.digikey.com/scripts/DkSearch...e=800-1035-5-ND , потом поставить одногейтовый триггер, чтобы поделить на 2 (все из-за того, что минимальные частоты у этих чипов по выходу 13-14МГц) - все бы могло работать. Да и для реализации управления от м/к (точнее ДСП) приходилось брать одногейтовые 4053, чтобы получить состояния 0,1,М. С джамперами все просто.
Herz
Цитата(yakub_EZ @ Oct 13 2010, 17:59) *
Точно, проглядел. А этот вроде подходит http://www.cardinalxtal.com/docs/series/CCE4C.pdf

Наверное. Но их же нужно заказывать на нужные частоты. А НЕХ нашёл, кажется, самое изящное решение.
MCZ
УФ! Сколько вариантов, спасибо.

Вдогонку еще вопрос, а если надо сделать генерацию вида:


___________| |________| |_| |_| |________| |________, т.е. программно задать форму и длительность ?

Наверно только синтезатором получится?
Ибо девайсы, которые так умеют стоят более 1.5 К евров...

Судя по даташиту:
http://gravitech.us/MicroResearch/I2C/I2C-OSC/LTC6904.pdf

Быстрое переключение частот можно реализовать, чтобы менять режим работы на лету.
Вот непнятно только, сколько всего длится переключение частоты.


Цитата(rezident @ Oct 13 2010, 01:05) *
Дык, а м/с (де)мультиплексора aka clock distributer применить нельзя что ли? Какие у вас имеются требования к джиттеру и "плавности" переключения?

Джиттер особо не важен, а вот плавность, хочу переключаться за время не более 50 наносекунд.


Может не мучаться, а попробовать взять вот это:
http://www.spincore.com/products/PulseBlas...erDDS-100.shtml
yakub_EZ
Тогда уж ознакомьтесь с ПЛИС. Купите отладку с ПЛИС у которой на борту PLL. Конфигурируете его на частоту наибольшего наикратного максимума - 360 МГЦ, делаете делители частоты и выводите в каком угодно порядке, или вобще выводить наружу через LVDS пару "Hello world" со скоростью несколько Гигабит.
=GM=
Цитата(MCZ @ Oct 18 2010, 10:24) *
Вдогонку еще вопрос, а если надо сделать генерацию вида:

___________| |________| |_| |_| |________| |________, т.е. программно задать форму и длительность ?

Джиттер особо не важен, а вот плавность, хочу переключаться за время не более 50 наносекунд.

Может не мучаться, а попробовать взять PulseBlasterDDS-100

Аппарат слишком наворочен для вас. Попробуйте взять микросхему DDS от аналоговых девиц и сделать собственный генератор. Возможно, для вас это будет проще и много дешевле. Единственное НО - нужен быстрый компаратор, работающий до 30 МГц. Зато можно установить любую частоту с точностью в доли герц и время переключения - практически мгновенно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.