Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Генератор синусоиды на STM32F746

Непрочитано 19.09.2016, 18:18  
Jane9226
Прописка
 
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Jane9226 на пути к лучшему
По умолчанию Генератор синусоиды на STM32F746

Здравствуйте Всем. Нужен совет знающих людей. Плата STM32F746Discovery. Генерирую синусоиду на выходе DAC (PA4 подцепившись на разъем P1 Camera). Используется DMA и TIM6 Синусоида 512 точек. Контроллер на максимальной частоте 216Mhz. Шина APB1 (Где висит TIM6) 54Mhz
Необходимо генеривовать частоту вплоть до 5000Hz с шагом в 1 герц. Посчитаем минимальный шаг изменения частоты на верхнем диапазоне. Ставим период таймера 22 (prescaller не используем). Считаем 54000000/(512*22) = 4794Гц. Уменьшим период на единицу, тем самым увеличивая частоту. 54000000/(512*21) = 5022.
Шаг получается в 228 герц. Ужас! Можно конечно уменьшить количество точек синусоиды, скажем до 256, но это не решение проблемы.
Вот собственно и спрашиваю совета. Mожет ли DAC генерировать синусоиду шагом в один герц в диапазоне 50 - 5000Гц? Или нужен другой подход. Какой?
Реклама:
Jane9226 вне форума  
Непрочитано 19.09.2016, 18:25  
avp94
Почётный гражданин KAZUS.RUN
 
Аватар для avp94
 
Регистрация: 26.01.2007
Сообщений: 3,116
Сказал спасибо: 61
Сказали Спасибо 1,151 раз(а) в 623 сообщении(ях)
avp94 на пути к лучшему
По умолчанию Re: Генератор синусоиды на STM32F746

DDS читайте в Google, например здесь.
avp94 вне форума  
Непрочитано 19.09.2016, 18:48  
Jane9226
Прописка
 
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Jane9226 на пути к лучшему
По умолчанию Re: Генератор синусоиды на STM32F746

Да оно то понятно, что использование к примеру AD9833, решит все. Но на данном этапе меня интересует именно STM и его DAC
Jane9226 вне форума  
Непрочитано 19.09.2016, 19:06  
avp94
Почётный гражданин KAZUS.RUN
 
Аватар для avp94
 
Регистрация: 26.01.2007
Сообщений: 3,116
Сказал спасибо: 61
Сказали Спасибо 1,151 раз(а) в 623 сообщении(ях)
avp94 на пути к лучшему
По умолчанию Re: Генератор синусоиды на STM32F746

Сообщение от Jane9226 Посмотреть сообщение
что использование к примеру AD9833
А вы используйте алгоритм , а не стороннюю железяку.
avp94 вне форума  
Сказали "Спасибо" avp94
Jane9226 (19.09.2016)
Непрочитано 19.09.2016, 19:55  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,459
Сказал спасибо: 3,227
Сказали Спасибо 3,513 раз(а) в 2,394 сообщении(ях)
ForcePoint на пути к лучшему
Стрелка Re: Генератор синусоиды на STM32F746

Сообщение от avp94 Посмотреть сообщение
А вы используйте алгоритм , а не стороннюю железяку.
+1

Классика-же, притом на стареньком AT90S2313 с тактовой 10 МГц (от того-же автора):
"Низкочастотный синусоидальный генератор с шагом сетки 0,01 Гц (диапазон генерируемых частот — 1 ... 50000 Гц)" - http://530.ru/electronics/projects.php?do=p035
ForcePoint вне форума  
Непрочитано 19.09.2016, 20:19  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Генератор синусоиды на STM32F746

Ничего не получится все равно. Нет понимания основ формирования временной базы таймера. Делить частоту надо с умом, а не абы как.
Easyrider83 вне форума  
Непрочитано 19.09.2016, 21:16  
Jane9226
Прописка
 
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Jane9226 на пути к лучшему
По умолчанию Re: Генератор синусоиды на STM32F746

DDS - "мой выбор" Спасибо. Буду пытаться разобраться в принципах вычисления 12-ти битного числа для DAC, для каждого последующего шага. Если я правильно поняла, нужно использовать два таймера. По прерыванию первого дергать DMA, которое будет брать значение из таблицы синуса и передавать это значение второму таймеру, который по прерыванию(переполнению) обновляет DAC с фиксированной частотой, скажем в 100kHz. И менять частоту прерывания первого таймера (частоту взятия следующего значения из таблицы) Примерно так? Но чувствую что я чего то упустила и недопонимаю

Сообщение от Easyrider83 Посмотреть сообщение
Ничего не получится все равно. Нет понимания основ формирования временной базы таймера.
Вот умеете Вы подбодрить, объяснить и обнадежть. Я собственно зашла на форум и спрашиваю совета, что бы как раз это понимание и пришло в виде какойто формулы или понятного для меня объяснения, как это работает. Потому как мой мозг тяжело воспринимает сухой технический язык.
Jane9226 вне форума  
Непрочитано 19.09.2016, 21:22  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Генератор синусоиды на STM32F746

Не так. Все проще. Таймер пинает DMA, который берет значение из памяти и кладет в DAC. Прерывания не требуются, иначе зачем нам тогда DMA? Но основа таймера - делитель, он не в состоянии обеспечить плавную регулировку частоты. Вообще, мы управляем не частотой, а периодом таймера. Меняем число, после которого он обнуляется. К примеру, у нас есть период 10. Значит мы можем его разделить на 2 и 5. И других частот мы не получим потому, что делим на целое число.
Easyrider83 вне форума  
Непрочитано 19.09.2016, 22:22  
Jane9226
Прописка
 
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Jane9226 на пути к лучшему
По умолчанию Re: Генератор синусоиды на STM32F746

Сообщение от Easyrider83 Посмотреть сообщение
Не так. Все проще. Таймер пинает DMA, который берет значение из памяти и кладет в DAC. Прерывания не требуются, иначе зачем нам тогда DMA? Но основа таймера - делитель, он не в состоянии обеспечить плавную регулировку частоты. Вообще, мы управляем не частотой, а периодом таймера. Меняем число, после которого он обнуляется. К примеру, у нас есть период 10. Значит мы можем его разделить на 2 и 5. И других частот мы не получим потому, что делим на целое число.
Вот те раз. Так у меня сейчас так и сделано и работает в железе. Я и затеяла эту тему, что бы как то увеличить плавность регулировки частоты, потому как прыжки в 200 Гц в верхнем диапазоне не приемлимы. Народ тут посоветовал смотреть в сторону DDS Согласна на 100% Но не хотелось бы переделывать железяку и встраивать AD9833, поэтому и пытаюсь понять алгоритм вычисления числа для DAC в самом контроллере.Вот нагуглила что то похожее, но там все на немецком
Jane9226 вне форума  
Непрочитано 19.09.2016, 22:33  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Генератор синусоиды на STM32F746

Имеете в руках мощный контроллер. Можно частоту отправки в ЦАП брать примерно подходящую и считать каждое значение для необходимой частоты сигнала. Фазу ведь посчитаете?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги dosikus Электронная библиотека 11242 29.12.2015 23:45
Генератор синусоиды на микроконтроллере Atmega pavned AVR 26 13.01.2015 09:22
Генератор ВЧ Flash.#13 Электроника - это просто 1 13.07.2010 16:19
Генератор синусоиды на Atmega8 yot Микроконтроллеры, АЦП, память и т.д 8 13.06.2007 12:29


Часовой пояс GMT +4, время: 12:53.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.