| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Генератор синуса на микроконтроллере
09.04.2010, 21:28
|
#211
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
Сообщение от Easyrider83
|
|
МК математически высчитывает все значения точек в синусе и кладет их во внешнюю память
|
Зачем во внешнюю? В МК много дешёвой флеши.
Сообщение от Easyrider83
|
|
Чтобы мнгновенно увеличить частоту, надо просто увеличить частоту тактирования памяти. А упремся мы скорее всего в частоту работы ЦАП
|
Скорее мы упрёмся в тактовую частоту проца, но есть одно НО, которое всё перевешивает: изменяемая частота выборок требует фильтра с изменяемыми параметрами. В DDS наоборот, частота выборок Fs постоянна, в теории можно выдавать любую частоту до Fs/2. Всё что выше фильтр должен подавлять.
Последний раз редактировалось =GM=; 09.04.2010 в 21:38.
|
|
|
|
09.04.2010, 21:28
|
#212
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
Сообщение от Easyrider83
|
|
Чтобы мнгновенно увеличить частоту, надо просто увеличить частоту тактирования памяти. А упремся мы скорее всего в частоту работы ЦАП. Хотя мне кажется, что ради синуса замысливать функциональный генератор слишком круто. Синус можно и другим способом получить. На МК есть смысл более сложные сигналы генерировать. Или вводить программное изменение сигнала, например. Как считаете?
|
Если у нас есть генератор тактов который позволяет без ступенек менят частоту то все решаеться как раз таблицей как ты и говоришь,то половина задачи решена. Вторая проблема в том чтобы покрырыть достаточный диапазон частот нам нужен огромный обьем памяти.
Вообще если не принимать вов нимание цену тот генератор делаеться при помощи прямого FFT а потом обратного.
|
|
|
|
10.04.2010, 06:38
|
#213
|
|
Временная регистрация
Регистрация: 13.10.2009
Сообщений: 81
Сказал спасибо: 2
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
Уважаемый =GM=, проект MiniDDS с Jesper AVR Pages известен многим
Последний раз редактировалось Classic001; 10.04.2010 в 07:19.
|
|
|
|
11.04.2010, 18:16
|
#214
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
Сообщение от Classic001
|
|
Уважаемый =GM=, проект MiniDDS с Jesper AVR Pages известен многим
|
Ну и при чём здесь страница Джаспера? Я толкую не о DDS-генераторе, который выдает палку одной частоты, потом перестраивается на другую палку и т.д., а о генераторе, который с каждой выборкой пропорционально изменяет частоту, свипирует.
|
|
|
|
24.08.2010, 21:14
|
#215
|
|
Временная регистрация
Регистрация: 24.08.2010
Сообщений: 74
Сказал спасибо: 41
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
Всем привет!
Народ, помогите сделать генератор синуса в частотном диапазоне 20гц-20кгц, на микроконтроллере AVR ATmega8 с регулировкой частот. Генератор нужен для отстройки звуковой аппаратуры.
Для начало хотелось понять принцип работы генератора, точнее принцип генерации синуса.
|
|
|
|
24.08.2010, 21:22
|
#216
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 353
Сказал спасибо: 20
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
Изучайте принцип DDS
http://www.chip-news.ru/archive/chip...Article_05.pdf
http://analog.com.ru/Public/DDSSYNTH.pdf
У меня DDS-ка уже 2 года работает 0,1 Гц... 400 кГц. 2,1 Мегавыборок. 9 типов сигналов.
__________________
Делая дело нужно в него верить на все 100%, иначе неизбежно будут возникать ошибки подпитывающие подсознательное сомнение.
|
|
|
|
24.08.2010, 21:31
|
#217
|
|
Временная регистрация
Регистрация: 24.08.2010
Сообщений: 74
Сказал спасибо: 41
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
Спасибо за ссылки!
Скажите, это самый простой вариант с DDS или есть проще типа МК и ЦАП?
|
|
|
|
24.08.2010, 22:11
|
#218
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
Сообщение от Mr.Denis
|
|
Скажите, это самый простой вариант с DDS или есть проще типа МК и ЦАП?
|
Вот Вам готовый проект - http://telesys.ru/electronics/projects.php?do=p035
|
|
|
|
24.08.2010, 22:16
|
#219
|
|
Временная регистрация
Регистрация: 24.08.2010
Сообщений: 74
Сказал спасибо: 41
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
К сожалению он на асемблери, а его я вообще не знаю!((
|
|
|
|
24.08.2010, 22:35
|
#220
|
|
Временная регистрация
Регистрация: 24.08.2010
Сообщений: 74
Сказал спасибо: 41
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Генератор синуса на микроконтроллере
А в теории можно сделать генератор синуса через функцию delay_ms();?
Ну например 1 Гц= 1 с, следовательно чтобы получить частоту мы используем следующую формулу F=1/T. Чтобы получить частоту в 1 кГц надо сделать задержку delay_ms(1); T=1/F=T=1/1000=0.001 c.=1 мс.
while (1)
{
PORTD.0=1;
delay_ms(1);
PORTD.0=0;
delay_ms(1);
};
По идеи этот код должен выдовать синус в 1 кГц или 1000 Гц
Может быть такой вариант???
Я скорее всего ошибаюсь, так что осадите мой оптимизм.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:07.
|
|