[uquote="КРАМ",url="/forum/viewtopic.php?p=3979165#p3979165"]Нужно взять МК с NCO модулем.[/uquote]
Я на него и намекал
NCO может выдать как меандр, так и импульсы определенных длительностей.
Диапазон частот большой, шаг перестройки очень маленький, настройка и перенастройка - пара-тройка строк.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Что?
Специально написал // Timer Period: 6,25 us, время нахождения в прерывании при оптимизации -Os 3,375us
Грубо 6,25 - 3,375 = 2,875us 2,875us - это ваше время, делайте с ним что хотите, это грубо, я не считал такты и прочее.
Кроме всего прочего, при выходе из прерывания, даже если его зажать прерываниями, выполнится хотя бы одна команда основной программы - это закон.
// Timer Period: 6,25 us - это константная величина, она не зависит от генерируемой частоты в данном коде.
Грубо говоря у вас 40% свободного времени, мало, гоните частоту МК выше, эти чипы спокойно гонятся до 27МГц, а не которые экземпляры работают и на 32МГц.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3979196#p3979196"]точность установки 2Гц, от 0Гц до 80000Гц?[/uquote]Покажите реализацию 79998 Гц.
Что-то не очень понятен принцип генерации
Вот так сойдет, измерено на реальном железе прибором DM90AСпойлер
Процент заполнения при 79998 DM90A показывает 51,4%
При 112Гц показывает ровно 50,0%.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3979249#p3979249"]Что?
Timer Period: 6,25 us[/uquote]
этошуткатакой?
То есть вы всерьез полагаете, что при накачке такого DDS частотой 160 кГц можно получить вменяемый меандр с частотой в десятки килогерц?
Кроме тотального и лютого джиттера вы там больше ничего не увидите...
Кроме бездумного применения формул стоит хоть немного понимать их физический смысл.
Интегрирующие приборы тут ничего не покажут.
Добавлено after 7 minutes 32 seconds:
[uquote="Аlex",url="/forum/viewtopic.php?p=3979265#p3979265"]Что-то не очень понятен принцип генерации[/uquote]
Принцип генерации в DDS всегда одинаков, независимо от кода, который у конкретного персонажа может быть каким угодно смешным или серьезным.
С частотой клоков накачки аккумулятор фазы увеличивается на аргумент DDS и переполнение аккумулятора генерирует частоту выходного сигнала.
Проблема метода в том, что при близких значениях частоты накачки и частоты генерации В ПОРАЖЕННЫХ ТОЧКАХ возникает джиттер с уровнями соизмеримыми с периодом генерируемого сигнала. Поэтому работоспособность на небольшом количестве точек - это ни о чем.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3979500#p3979500"]чипы DDS, к примеру AD9833.[/uquote]
Тут обсуждались встроенные решения. Тем более, что речь идет даже не о меандре, а об импульсах, что сделает при внешнем ДДС необходимым дополнительный навес для формирования этого импульса.
Именно поэтому выбор МК с модулем NCO на борту решит все эти задачи и не потребует лишних ног в МК.
NCO против AD9833, одно есть в продаже, другого нет, да и то на пиках, ни знаю на авр есть или нет, не нашел.
Конечно можно и на PIC10F322, в общем я ту тему прочитал, спасибо.
Еще и про импульс надо подумать.
Когда то людей и цешка устраивала, а теперь подавай прибор стоимостью 1к даларосов.
Любой чип можно купить. Все зависит только от желания и финансов.
Платы с новыми чипами, ПИК или АВР, и встроенными программатором-дебаггером стоят 12-15 баксов. Это только для ознакомления конечно же. Сами МК естественно стоят меньше доллара.
NCO в Атмелах, насколько я знаю, нет.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
[uquote="linkov1959",url="/forum/viewtopic.php?p=3979590#p3979590"]и делайте, что хотите![/uquote]
Не думаю, что есть хоть малейший смысл ставить 7-долларовый огромный корпус для задачи, которая в самом крайнем случае решается на 10м пике в корпусе SOT23-6 за 0,5 доллара.
Это если опустить разбор с совсем не простой микросхемой для задачи, которая не решается библиотекой HAL непосредственно.
[uquote="linkov1959",url="/forum/viewtopic.php?p=3979693#p3979693"]и управляем внутренним генератором свободных колебаний?[/uquote]
Каким еще "генератором свободных колебаний"? Вы вообще о чем?
В PIC10F322 есть модуль NCO. Он позволяет реализовать DDS. То есть прямой цифровой синтез частоты с требуемыми автором топика характеристиками.
Задание частоты можно выполнить программным UART или SPI.
Так же можно взять 8-пиновый PIC16F15313, тогда UART, SPI и I2C будут хардварными.
Значит на AVR это не реализовать?
Или придется делать связку AVR+555?
Может AD9833 нельзя к AVR подключить? КРАМ, С AD9833 подаю меандр на ножку AVR с прерыванием (по нарастающему фронту) и формирую необходимую длительность импульса, этим же самым AVR управляю AD9833. Что не так?
Тема в разделе AVR, вот когда перейдет в раздел PIC, будете PIC рекламировать.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3979796#p3979796"]будете PIC рекламировать.[/uquote]
Комплекс неполноценности?
Мне фиолетово в каком разделе обсуждается проблема. ТС начал ее, исходя из AVR. Но если целесообразность подсказывает иные решения (совсем не обязательно ПИКи, есличо), то нужно эту целесообразность озвучить.
Отдельный DDS, естественно, тоже можно применить. И импульс необходимой длительности можно сформировать в МК, подав на него меандр с внешней DDS. Только наверное стоит подумать как хардварно запускать Output Compare от этого меандра, а не в прерываниях бездарно сидеть и дополнительный джиттер плодить...
Ну и денег внешний аналог-девайсовый DDS стоит изрядных...
Опять же PIC тут конкурировал не с AVR, а с внешним аппаратным DDS, если вы это сами не поняли...
[uquote="Dimon456",url="/forum/viewtopic.php?p=3979796#p3979796"]Значит на AVR это не реализовать?
Или придется делать связку AVR+555?[/uquote]
555-ый таймер вообще никак поставленную задачу не решает. Дело ведь не в регулировке частоты, а в ВЫСОКОМ РАЗРЕШЕНИИ этой регулировки. Задачу внутренними ресурсами AVR решить невозможно. Тупо не хватит скорости.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3979744#p3979744"]Каким еще "генератором свободных колебаний"? Вы вообще о чем?[/uquote]
Я про ГУН и ФД, а Вы о чем?
[uquote="linkov1959",url="/forum/viewtopic.php?p=3980152#p3980152"]Я про ГУН[/uquote]Какое отношение ГУН и ФД имеют к DDS и хотелкам автора темы? Тем более, какое отношение PLL в МК имеют к поставленной задаче? Вы хотя бы знакомились с ограничениями PLL в МК?
Ну ТС не обозначил что хочет только DDS. А например для связки 4046 и МК нужно 3 ноги: выход опорной частоты (10 Гц например),вход счетного таймера, выход OCR таймера. Таймер используется как управляемый счетчик-делитель. В таком случае даже прерывания не нужны. Цена вопроса - 0,6$ за 4046.