реклама на сайте
подробности

 
 
> ЦАП на ШИМ Atmega, Реализация ЦАП с помощью ШИМ атмеги
_Ie0nid
сообщение Dec 2 2009, 10:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



Добрый день.
Использую ШИМ в качестве ЦАП, и в будущем, допустим RC фильтр. С помощью, также местного АЦП, выборками в 6.6 раз чаще частоты сигнала (допустим 1кГц) оцифровываю аналоговый сигнал, закидываю значение выборки в ОЗУ и тут же ШИМю. ВОпрос-Могу ли я быстро ШИМить данную выборку, потом отключать ШИМ и производить различные вычисления? У меня в таком случае будут получаться очень тонкие печки с длинными промежутками. Правильно ли это?
И еще, есть ли возможность, выдрать из ОЗУ накопленные значения выборок взятых с частотой 6.6345 кГц и отправить их на ШИМ. Мне кажется я должен их выпленуть их точно с такой же частотой. Но мне также кажется что я ошибаюсь, потому как кооффициент заполнения, на котором все основано, не меняется. Пожалуста поясните этот момент.
И еще, если есть какие-то принципиальные моменты для построения бюджетного ЦАП на ШИМ, пожалуйста поделитесь.
Заранее спасибо.

Сообщение отредактировал _Ie0nid - Dec 2 2009, 10:44
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Ie0nid
сообщение Dec 3 2009, 02:31
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



здраствуйте

1. "При этом прерывания по переполнению должны следовать, понятно, с частотой дискретизации" - то есть, лучше всего ,как только я получил значение от АЦП, быстро преобразовать и сразу его ШИМИТЬ, чтобы частота дискретизация АЦП не отличалась от частоты преобразования ШИМ.
2. Я еще упустил как-то момент, имеет ли значение как быстро можно посчитать таймером ШИМА, можно ли это делать максимально быстро, или лучше поделить тактовую частоту таймера. Есть ли какие-то рекомендации у вас на этот счет.
3. И все-таки, если я заполнил когда-то ОЗУ данными, чтобы их восстановить я должен буду это делать ШИМОМ с точной такой же частотой дискретизации? А если частота дискритизации, с которой я их получил имеет довольно дробное значение. МОжно ли как ни будь от нее отклонится. Или есть возможность по другому реализовать эту проблему.

Заранее спасибо.

Прошу прощения если чего-то не понял
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 3 2009, 15:38
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(_Ie0nid @ Dec 3 2009, 06:31) *
здраствуйте

1. "При этом прерывания по переполнению должны следовать, понятно, с частотой дискретизации" - то есть, лучше всего ,как только я получил значение от АЦП, быстро преобразовать и сразу его ШИМИТЬ, чтобы частота дискретизация АЦП не отличалась от частоты преобразования ШИМ.

1) Если вы будете "не сразу ШИМить", то получите сдвиг по фазе. В общём-то он появится практически в любом случае, и как правило, ничего страшного в этом нет.
2) Частота дискретизации при получении и выдаче сигнала может отличаться. Вообще немного непонятно из вашего сообщения. Если требуется просто повторить сигнал, то зачем вообще этот огород городить, а если требуется его изменить, то привязка к частоте дискретизации входного сигнала необязательна. Даже при повторении сигнала, вы можете апроксимировать сигнал в нужных вам точках и вывести с любой частотой дискретизации.

Надо учитывать, что обработка сигнала требует значительных вычислительных ресурсов. Сколь-нибудь сложная обработка "на лету" сигналов частоты выше 4кГц в рамках меги достаточно затруднительна. Для этой цели используются другие процессоры.
Цитата
2. Я еще упустил как-то момент, имеет ли значение как быстро можно посчитать таймером ШИМА, можно ли это делать максимально быстро, или лучше поделить тактовую частоту таймера. Есть ли какие-то рекомендации у вас на этот счет.

Таймер всё делает автоматически. Предварительное деление частоты - естественно предусмотрено.
Цитата
3. И все-таки, если я заполнил когда-то ОЗУ данными, чтобы их восстановить я должен буду это делать ШИМОМ с точной такой же частотой дискретизации? А если частота дискритизации, с которой я их получил имеет довольно дробное значение. МОжно ли как ни будь от нее отклонится. Или есть возможность по другому реализовать эту проблему.

Я уже писал - нет. Вы можете по известным точкам восстановить сигнал в точках выдачи и выдать с другой частотой дискретизации. Правда объём памяти достаточно мал.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 13:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016