ЦАП в AVR через ШИМ и вывод звука .WAV

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение sansher » 07 ноя 2008, 13:55

Хочу замутить "пищадку" вав файлов на АВРке. Собсна вавки будут лежать на флешке, а звук выводиться через ШИМ (качество не критично :o ).
Никто не видел подобных проектов. Как .wav выводить через ШИМ ?

АпНоут AVR335 ATMEL - цифровой диктофон - есть там http://avr123.nm.ru/07.htm - в низу странички.

Можно в PROTEUS выводить звук из симулируемого устройства на аудиокарту ПК !

Генерация ШИМ - http://avr123.nm.ru/z8.htm Фильтрация сигналов - http://avr123.nm.ru/z09b.htm
Аватара пользователя
sansher
 
Сообщения: 80
Зарегистрирован: 14 мар 2007, 12:55
Откуда: Липецк

Re: ВАВ через ШИМ

Сообщение =DeaD= » 07 ноя 2008, 14:02

А в чем проблема? Как выдать на ШИМ нужную скважность или что?

Добавлено спустя 1 минуту 48 секунд:
Допустим у вас дискретизация 8 бит, 44КГц, 44000 раз в секунду ставите прерывание и в нём берете очередной байт и выставляете в него скважность ШИМ. Готово.

Или как из ШИМа сделать аналоговый выход? RC-фильтр ставьте.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: ВАВ через ШИМ

Сообщение EdGull » 07 ноя 2008, 14:19

так уважаемый Blindman уже давано все сделал и выложил, а я спаял и проверил...
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение sansher » 07 ноя 2008, 15:29

:shock: А где? Я видел, но там через ковокс вроде... куча ног съедается...
Аватара пользователя
sansher
 
Сообщения: 80
Зарегистрирован: 14 мар 2007, 12:55
Откуда: Липецк

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение EdGull » 07 ноя 2008, 15:33

да, там на ковоксе. но тогда не надо фильтры активые строить.
всё равно ног немеряно.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение Duhas » 07 ноя 2008, 18:54

если качество не столь важно, то и после шима хватит РЦ цепочки..

а после этого ковокса тоге бы не помешала РЦ ....
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение blindman » 07 ноя 2008, 19:24

Duhas писал(а):если качество не столь важно

Я бы сказал, если качество не столь важно - юзаем covox, если совсем не важно - сойдет и ШИМ.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение sansher » 07 ноя 2008, 20:22

Ну я не знаю... Планирую пищать звуки R2D2... Просто хотелосьбы все на одном контроллере (ну дисплей там на тиньки... но это не то). Можно конечно Мегу8 вставить для этих целий, но чтото я не уверен, что у неё флеша хватит... с флехой ведь работать... :o
Аватара пользователя
sansher
 
Сообщения: 80
Зарегистрирован: 14 мар 2007, 12:55
Откуда: Липецк

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение blindman » 07 ноя 2008, 20:41

Флэша хватит, если постараться. У меня была проблема с ОЗУ - 1KiB было маловато для буферов. Но для воспроизведения с низким качеством (но все же лучше чем с ШИМ) думаю будет достаточно
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение sansher » 07 ноя 2008, 20:45

А вы делали на Меге8? Можно исходники?
Аватара пользователя
sansher
 
Сообщения: 80
Зарегистрирован: 14 мар 2007, 12:55
Откуда: Липецк

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение blindman » 07 ноя 2008, 20:46

Да, еще забыл - у меня программа написана в расчете на тактовую частоту 8 МГц. Если будет 16 МГц - читать с карты можно будет быстрее, соответственно и качество выше.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение sansher » 07 ноя 2008, 20:49

Будет 16. У меня от 5в питается все.
http://eldigi.ru/site/house/18.php Поразбираюсь с этим. Написано проша занимает 5,2кб памяти :good: Нужно прикрутить I2C и впуть!
Аватара пользователя
sansher
 
Сообщения: 80
Зарегистрирован: 14 мар 2007, 12:55
Откуда: Липецк

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение blindman » 07 ноя 2008, 20:53

Я тестировал на меге16, потом переписал на мегу32 - ЭдГулл запускал на ней. Но как я уже говорил, можно ужаться в мегу8. Исходники ищи в теме про звуковую карту для минибота. Возможности для оптимизации там есть - например использовать только моно, подключить ковокс к одному порту, а не раскидывать по нескольким, как у нас. И нужно будет удалить из библиотеки FAT неиспользуемые функции.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение Trol » 30 май 2009, 01:50

Можно уложиться и в мегу8, причем, для воспроизведение с флеш-карты, отформатированной под FAT16/FAT32 wav-фрагментов будет достаточно и половины flash-памяти меги8. Пример: http://trol.nm.ru/sch/zvonokmmc/
Trol
 
Сообщения: 1
Зарегистрирован: 30 май 2009, 01:41
Откуда: Simbirsk

Re: ЦАП в AVR через ШИМ и вывод звука .WAV

Сообщение MiBBiM » 30 май 2009, 07:35

бейсик:
Код: Выделить всё
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare B Pwm = Clear Down
Dim B As Byte
[...]

Open "1.wav" For Binary As #1

Do
   Do
      Waitus 50                                             'проигрывание 8кгц
      Get #1 , B
      Pwm1b = B
   Loop Until Eof(#1) <> 0
   Pwm1b = 1
   Wait 1
   Seek #1 , Pwm1b
Loop

это чтение вавки 8бит, 8кГц (для каждой частоты просто подбираем задержку)
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

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