Например TDA7294

Форум РадиоКот • Просмотр темы - Генератор из arduino
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт дек 12, 2025 02:02:36

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 174 ]  1, , , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 11:17:38 
Встал на лапы

Зарегистрирован: Пт авг 21, 2015 12:01:25
Сообщений: 123
Откуда: г. Орел
Рейтинг сообщения: 0
Добрый всем день, возникла потребность в генераторе меандра с частотой до 1МГц и регулируемой длинной паузы между пачкой импульсов.
Я вижу это примерно так : генератор из ардуинки нано (328р), управление головной ардуинкой Uno по одному пину(on/off им будет регулироваться пауза между пачками импульсов).
Частота генератора устанавливается при прошивке (один раз подберется по возможностям силовой части)
Идея дергать один пин туды/сюды, частоту регелировать пропуском такта(пустой строкой NOP или что-то типо того) при появлении внешнего сигнала выходить в прерывание и ждать пока не пропадет сигнал.
В програмирование ардуинки начинающий, подскажите это работоспособное решение или может есть более простой способ решения этой задачи(какие-нибудь спец. микрухи) ну и если поможете с кодом для генератора отдельная благодарность. Пока програмлю через ардуино IDE.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 11:23:15 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Не пробовали рассматривать задачу не с ракурса ардуино, а с ракурса контроллера, имеющего на борту таймеры?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 11:28:50 
Встал на лапы

Зарегистрирован: Пт авг 21, 2015 12:01:25
Сообщений: 123
Откуда: г. Орел
Рейтинг сообщения: 0
Таймеры обычно очень медленные и МГц не вытянут(на сколько я почитал) или я ошибаюсь? ну и хотелось бы готовое решение, чтобы не заморачиваться навеской на контролер а все решить одной платой или микросхемой.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 11:29:00 
Мудрый кот

Карма: 25
Рейтинг сообщений: 485
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1782
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Какое разрешение/шаг частоты хотите иметь? Если это 1000000/500000/... /72500/... Hz то есть некоторый шанс получить. Если это, например, 1 Hz/10 Hz, 3333 Hz ... 1 MHz ... , ХХХ Hz, то используйте внешний DDS. Предлагаю посмотреть на напр. AD9833. Делает чудеса за свою цену.

Дело не в том, что можно сделать програмной DDS, NCO на ATmega328, а то, что ресурса МК для выходного сигнала 1 MHz для малых (напр. случайно выбираемый) шаг изменения со стороны вых. частоты не хватает.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 11:36:23 
Встал на лапы

Зарегистрирован: Пт авг 21, 2015 12:01:25
Сообщений: 123
Откуда: г. Орел
Рейтинг сообщения: 0
Шаг частоты не принципиален, собственно частота будет подбираться, чтобы успевали срабатывать выходные полевики, значение имеет только регулировка длинны пачки и паузы между пачками, они будут соответствовать частотам до 100КГц, с этим контролер должен справиться. Ардуинку помниться простым дерганьем пинов раскачивал до 2МГц.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 11:39:24 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18889
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
если кварц 16 МГц, то таймером можно получить до 8 МГц.
режим СТС, переключение пина на каждом срабатывании. и если записать в регистр сравнения 0, то получим 16 / 2 = 8.
а если записать 4, то получим 16 / 8 = 1 МГц.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 11:40:13 
Нашел транзистор. Понюхал.

Карма: -8
Рейтинг сообщений: 17
Зарегистрирован: Сб апр 24, 2021 18:42:11
Сообщений: 155
Рейтинг сообщения: 1
...может есть более простой способ решения этой задачи(какие-нибудь спец. микрухи)..1.


Вложение:
AD9833.jpg [16.86 KiB]
Скачиваний: 69


https://aliexpress.ru/item/32837067609. ... 58d3j9LFZP


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 11:40:33 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Ардуино приобрела популярность со слогана "Ардуино - паять ничего не нужно"
Читаю ардуинщиков:
prizrack* писал(а):
Таймеры обычно очень медленные и МГц не вытянут(на сколько я почитал) или я ошибаюсь? ну и хотелось бы готовое решение, чтобы не заморачиваться навеской на контролер а все решить одной платой или микросхемой.
видимо "паять ничего не нужно" = "думать не нужно" :facepalm:

Что значит "Таймеры обычно очень медленные" ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 11:50:25 
Встал на лапы

Зарегистрирован: Пт авг 21, 2015 12:01:25
Сообщений: 123
Откуда: г. Орел
Рейтинг сообщения: 0
AD9833 вполне себе на первый взгляд, там есть пин (on/off)? извиняюсь за вопрос, просто сейчас некогда переводить даташит(

Добавлено after 2 minutes 25 seconds:
shonty, Думать всегда нужно и придеться) Вопрос в базе готовых изделий и поиске оптимальноко направления куда копать. Я немного отстал о современной базы, а сейчас возникла необходимость, вот и спрашиваю куда копать.
Про таймеры немного не корректно выразился, обработка таймеров с последующим выводом на порт занимает много тактов(на сколько я знаю, могу ошибаться). Но собственно этот вопрос отпал с появлением AD9833.

Добавлено after 4 minutes 49 seconds:
phalanx, Спасибо за наводку.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 12:00:35 
Мудрый кот

Карма: 25
Рейтинг сообщений: 485
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1782
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Нет. Есть программный способ.
No power-down, DAC powered down, Internal clock disabled, Both the DAC powered down and the internal clock disabled.
Но при необходимости установите аппаратный ключ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 12:06:19 
Встал на лапы

Зарегистрирован: Пт авг 21, 2015 12:01:25
Сообщений: 123
Откуда: г. Орел
Рейтинг сообщения: 0
Starichok51, Это в теории, в реальности у меня на 2МГц сигнал начинал сильно "искривляться" скорость порта уже не вытягивала, можно конечно было попробовать его поправить аппаратно, но это был всего-лишь экпиремент.

Добавлено after 1 minute 32 seconds:
veso74, Спасибо, буду разбираться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 12:06:22 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
prizrack* писал(а):
AD9833 вполне себе на первый взгляд, там есть пин (on/off)? извиняюсь за вопрос, просто сейчас некогда переводить даташит(

Нет там пина разрешения. Можно конечно это дело через дополнительную логику с разрешением выхода подключить.

А если тупо на меге, то запускаете таймер на нужной частоте, вывод в порт, дальше по вкусу: или таймер останавливаете, или вывод в порт отключаете.
Или: таймер отмеряет определённый период, по прерыванию переключаете пин.. ведёте подсчёт импульсов...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 12:10:56 
Встал на лапы

Зарегистрирован: Пт авг 21, 2015 12:01:25
Сообщений: 123
Откуда: г. Орел
Рейтинг сообщения: 0
shonty, Спасибо, поиграюсь с AD9833, думаю так будет правильнее и запас по частоте у нее хороший, а пока она приедет попробую через таймеры и через порты мегу помучать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 12:17:02 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18889
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
prizrack*, это ты говоришь, не зная и не понимая работу МК.
у меня с тактовой 8 МГц без проблем получается 4 МГц на выходом пине.
не нужна тебе AD9833. всё делается на одном МК. и уж тем более не нужно отдельно МК для генератора и отдельно МК для управления этим генератором.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 12:20:48 
Мудрый кот

Карма: 25
Рейтинг сообщений: 485
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1782
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
prizrack*, можно повторить любую конструкцию, "колесо" уже найдено. Есть идеи, которые можно взять.
Генератор с регулируемоей частотой на ардуино.


Последний раз редактировалось veso74 Вт окт 29, 2024 12:30:20, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 12:32:38 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Раз пошла такая пьянка :)
Вот так примандырил к китайской плате с AD9833 генератор на 16.777.216 :))
Изображение

Но топикстартеру свою задачу рациональнее на одном МК решить.

Добавлено after 10 minutes 43 seconds:
И кстати. На ардуиноресурсах пишут, что генерируют с китайских AD9833 модулей с дискретностью где 1Гц, где 0,1Гц.

Заведомо откровенное враньё. Без замены генератора такую дискретность не получить.
Но это лирика... :)

:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 12:35:13 
Мудрый кот

Карма: 25
Рейтинг сообщений: 485
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1782
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Из документации ИС: AD9833 Analog Devices: Low Power, 12.65 mW, 2.3 V to 5.5 V, Programmable Waveform Generator
Цитата:
The frequency registers are 28 bits wide: with a 25 MHz clock rate, resolution of 0.1 Hz can be achieved; with a 1 MHz clock rate, the AD9833 can be tuned to 0.004 Hz resolution.

Частотные регистры имеют ширину 28 бит: при тактовой частоте 25 МГц можно достичь разрешения 0,1 Гц; при тактовой частоте 1 МГц AD9833 можно настроить на разрешение 0,004 Гц.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 12:56:11 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
veso74 писал(а):
Частотные регистры имеют ширину 28 бит: при тактовой частоте 25 МГц можно достичь разрешения 0,1 Гц; при тактовой частоте 1 МГц AD9833 можно настроить на разрешение 0,004 Гц.

Частота выхода равна (Fтактирующая х FreqReg) / 2^28
Сможете получить из этой формулы 1 или 0,1 Гц при 25МГц тактирующей?

Добавлено after 2 minutes 21 second:
Если кодить на асме, то не получится, а на ардуино легко получают :))
Видимо многое от языка программирования зависит :)

Добавлено after 5 minutes 18 seconds:
Упрощаю задачу

25МГц/2^28 = 0,0931322574615479

На какое целое число нужно умножить 0,0931322574615479, что бы получить 1 или 0,1?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 13:02:37 
Мудрый кот

Карма: 25
Рейтинг сообщений: 485
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1782
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Смените язык писания кода :).
Код:
uint32_t d = (uint32_t)(((uint64_t)frequency << 28) / F_MCLK);
uint16_t data_1 = 0x4000 | (0x3FFF & (uint16_t)(d >> 14));
uint16_t data_0 = 0x4000 | (0x3FFF & (uint16_t)d);

write_reg(data_0);  // FREQ0, data_0
write_reg(data_1);  // FREQ0, data_1
write_reg(0xC000);  // PHASE0

1 Hz будет: d = 10, freq -> 0,931322574615478515625 Hz.
0,1 Hz будет: d = 1, freq -> 0,0931322574615478515625 Hz.


Последний раз редактировалось veso74 Ср окт 30, 2024 06:22:41, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Генератор из arduino
СообщениеДобавлено: Вт окт 29, 2024 13:07:45 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
veso74 писал(а):
Смените язык писания кода .

Да при чём тут язык)) По поводу языка это была ирония :))
И для чего мне ваши коды? Они ничего не объясняют и не исправляют, даже неточности в даташите. Ну если только не свято верить в могущество ардуины :))

Для наглядности:
16.777.216 Гц/ 2^28 = 0,0625


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 174 ]  1, , , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y