DeXteR
May 14 2007, 03:33
Добрый день
Стоит задача воспроизведения звука для уличной игрушки
8 кнопок - по нажатию каждой играет свой звуковой файл
Файлы в формате wav 8 бит 8 или 12 кгц
Господа
Кто решал подобные задачи
Оцените пожалуйста справится ли АВРка с этим ??
Почти всегда можно найти что-то подобное, например вот этот "полимузон":
http://pol-sem.narod.ru/polymuson/polymuson.htm
Sergio66
May 14 2007, 03:44
Цитата(DeXteR @ May 14 2007, 07:33)

Добрый день
Стоит задача воспроизведения звука для уличной игрушки
8 кнопок - по нажатию каждой играет свой звуковой файл
Файлы в формате wav 8 бит 8 или 12 кгц
Господа
Кто решал подобные задачи
Оцените пожалуйста справится ли АВРка с этим ??
Решал подобную задачу на М16 - 4 МГц. Для воспроизведения звука с частотой до 4 КГц частота семплирования д.б. не менее 8 КГц. Я делал 16 КГц. 8 бит вполне достаточно. Если использовать аппаратный ШИМ, все нормально работает. При этом у меня все это работало в фоновом режиме, т.е. параллельно выполнялась основная программа. Тут возможна только одна проблема, если в основной программе есть прерывания, важно, чтобы не было артефактов, чтобы приоритет ШИМ прерывания был максимальным. Т.е. во всех обработчиках прерывания должно быть разрешено прерывание ШИМ. А так - все получится. Вперед!
DeXteR
May 14 2007, 05:11
Ну а 12 кгц успеет мега с кварцем на 16мгц ??
А существенен ли выигрыш в качестве Кто пробывал ??
Александр Куличок
May 14 2007, 08:35
ПРобовал вариант с AT45DB161D+Цап AD5303 + фильтр Max7408. Контроллер - на 11.0592 МГц. Частота дискретизации - от 0 до 32 кГц, 8 бит, моно. Больую частоту не пробовал, так как фильтр все равно резал все, что больше 15кГц.
Кстати, wav - это формат файла, а не данных. Внутри wav звук может быть запакован как PCM, ADPCM и т.п. Я использовал только РСМ.
adnega
May 14 2007, 09:01
Собрано на Меге8 и i2c флешке 32кБ. (дверной звонок)
у AVR есть подходящий APP note
AVR335: Digital Sound Recorder with AVR and DataFlash
http://www.atmel.com/dyn/products/app_note...p?family_id=607
Александр Куличок
May 14 2007, 09:22
Цитата(Александр Куличок @ May 14 2007, 11:35)

ПРобовал вариант с AT45DB161D+Цап AD5303 + фильтр Max7408. Контроллер - на 11.0592 МГц. Частота дискретизации - от 0 до 32 кГц, 8 бит, моно. Больую частоту не пробовал, так как фильтр все равно резал все, что больше 15кГц.
Кстати, wav - это формат файла, а не данных. Внутри wav звук может быть запакован как PCM, ADPCM и т.п. Я использовал только РСМ.
Кстати, недоглядел насчет FAT16. У меня была своя файловая система. Писал и читал контроллером. Кстати, AT45DB161D удобна тем, что у нее размер странички 528 т.е можно организовать кластеры даных по 512 байт а остальное - на служебную информация (контрольная сумма кластера, адресследующего кластера, признак пустой/занят и т.п.). Также очень удобная система адресации.
А насчет 32кБит + ФАТ, да ещи и на С, то IMHO, контроллер не успеет. Хотя, может и ошибаюсь. С ФАТ не работал.
defunct
May 14 2007, 09:29
Делал связку Mega128 @14.7Mhz + AT45DB, частота дискретизации звука 8/11.025/16/22.5/32/44.1Khz, музыку играл прямо с ноги проца OC0 (Phase Correct PWM) без всяких внешних фильтров. Качество сносное начиная с 22.5khz. Проц еще успевал кроме проигрывания музыки, обслуживать консольку по 232-му, модбас и ethernet.
фотка
http://www.dca.narod.ru/images/K128-1.jpg
DeXteR
May 14 2007, 10:09
С АТ45 датафлеш я тоже делал
Но обем памяти очень маленький (из микросхем мне доступна была только на 2 мегабайта)
Тут ММС это совсем другое дело
Тут ФАТ Файлы с именами
Куча данных можно записать и частоту поднять до предела
Покачто пытаюсь разобратся с Этим
http://pol-sem.narod.ru/polymuson/polymuson.htmЧеловек обещает 16 кгц звук на 16 мгц меге
Запускаю в протеусе и переделать все под Атмегу8 пытаюсь
Виснит на инициализации датафлеши
Но в проэкте участвует mmc_fat.r90 и у нее нет исходных кодов (толька библиотека обектная)
А Автор пока не отвечает Может кто знает где брать этот mmc_fat ???
defunct
May 14 2007, 10:56
Цитата(DeXteR @ May 14 2007, 12:09)

С АТ45 датафлеш я тоже делал
Но обем памяти очень маленький (из микросхем мне доступна была только на 2 мегабайта)
Тут ММС это совсем другое дело
Тут ФАТ Файлы с именами
Куча данных можно записать и частоту поднять до предела
Не вижу принципиальной разницы между DB и MMC.
То что объем больше - ну будет таблица FAT больше, но какая разница если и для DBшки FAT не помещается в 1 сектор.
Цитата
А Автор пока не отвечает. Может кто знает где брать этот mmc_fat ?
Написать самому.
DeXteR
May 14 2007, 11:10
Цитата(defunct @ May 14 2007, 13:56)

Написать самому.
Зачем
Ведь уже написано и нераз
Интересно было бы разобратся именно с этим проэктом
Он под IAR
И практически все что мне нужно на нем реализовано уже
Цитата(adnega @ May 14 2007, 11:01)

Собрано на Меге8 и i2c флешке 32кБ. (дверной звонок)
А схему посмотреть можно?
adnega
May 15 2007, 02:14
- питание стандартно;
- i2c флешка (at24c256) к соответствующим ногам SCL(28), SDA(27);
- динамик к OC2(17-dip/15-tqfp);
- включается по RESET(1-dip/29-tqfp).
Цитата(afad @ May 14 2007, 07:44)

Почти всегда можно найти что-то подобное, например вот этот "полимузон":
http://pol-sem.narod.ru/polymuson/polymuson.htmПомогите пожалуйста, не компилируется проект полимусон, у меня IAR 4.21,
выдает такие ошибки...
Warning[Pe370]: variable "tw" has an uninitialized const field C:\Documents and Settings\a\My Documents\STK-Vah\polymuson\code\main.c 70
Warning[Pe167]: argument of type "unsigned char *" is incompatible with parameter of type C:\Documents and Settings\a\My Documents\STK-Vah\polymuson\code\main.c 78
"char const *"
Warning[Pe167]: argument of type "unsigned char *" is incompatible with parameter of type C:\Documents and Settings\a\My Documents\STK-Vah\polymuson\code\main.c 80
"char const *"
Warning[Pe167]: argument of type "unsigned char *" is incompatible with parameter of type C:\Documents and Settings\a\My Documents\STK-Vah\polymuson\code\main.c 86
"char const *"
Done. 0 error(s), 4 warning(s)
может из компилятора проблема? там версия IAR-а 4.12А
Компилятор тут не причем, но что не понятно? все же написано? надо привести указатели в соответствие char const * и unsigned char *- сами смотрите что к чему, ну и посмотреть почему константная переменная "tw" не проинициализирована.
defunct
May 18 2007, 19:54
Цитата(VAHOO @ May 17 2007, 14:46)

Помогите пожалуйста, не компилируется проект полимусон, у меня IAR 4.21,
выдает такие ошибки...
...
Done. 0 error(s), 4 warning(s)
Может хотя бы нижнюю строчку удосужились перевести?
Ошибок - нет (0 error(s)).
Программа у вас откомпилировалась без ошибок.
у меня следующая проблема:
[...skipped...]
Цитата(Batt @ Jan 2 2008, 00:03)

у меня следующая проблема:
[...skipped...]
Moderator:
Обширные куски исходников постите ввиде приложений. Исходники в теле письма оформляйте соответствующими тэгами, дабы придать им читабельный вид а не какой-то нечитабельной портянки. Это в Ваших-же интересах.
проблема в том, что mmc-карточка выдает данные, с адреса, на 0x4000 меньшего, чем задано в параметрах CMD17
hd44780
Jan 4 2008, 10:31
Я SD карты читал на меге32 - нормально.
С FAT пока траблы - времени нету разбираться.
dosmen
Feb 10 2009, 16:44
Цитата(DeXteR @ May 14 2007, 14:09)

С АТ45 датафлеш я тоже делал
Но обем памяти очень маленький (из микросхем мне доступна была только на 2 мегабайта)
Тут ММС это совсем другое дело
Тут ФАТ Файлы с именами
Куча данных можно записать и частоту поднять до предела
Покачто пытаюсь разобратся с Этим
http://pol-sem.narod.ru/polymuson/polymuson.htmЧеловек обещает 16 кгц звук на 16 мгц меге
Запускаю в протеусе и переделать все под Атмегу8 пытаюсь
Виснит на инициализации датафлеши
Но в проэкте участвует mmc_fat.r90 и у нее нет исходных кодов (толька библиотека обектная)
А Автор пока не отвечает Может кто знает где брать этот mmc_fat ???
А есть ли .hex айл для atmega32 ?
На сайте выложен архив
в архиве в папке code\Debug\Exe есть файл 1.hex
Но я так понимаю это не то что нужно для прошивки.
Есть исходники, но не ясно в чем их компилировать.
Пните носом в нужном направлении
defunct
Feb 11 2009, 00:10
Цитата(dosmen @ Feb 10 2009, 18:44)

Но я так понимаю это не то что нужно для прошивки.
Это как раз и есть уже готовая прошивка, залейте ее в чип.
dosmen
Feb 11 2009, 05:18
Цитата(defunct @ Feb 11 2009, 04:10)

Это как раз и есть уже готовая прошивка, залейте ее в чип.
Залил
Фюзы прописал для работы с кварцевым резонатором.
И тд
Но не работает
Как разобраться не знаю
Моделировать в VMLAB ? Но КАК???
Paulina
Feb 11 2009, 15:03
Цитата(dosmen @ Feb 11 2009, 08:18)

Залил
Фюзы прописал для работы с кварцевым резонатором.
И тд
Но не работает
Как разобраться не знаю
Моделировать в VMLAB ? Но КАК???
в этом проекте не очень эффективное считывание данных - прочитал 1 байт (при этом раз в тридцать больше служебной информации), записал в регистр, подожал, снова считал 1 байт... проще организовать буфер в ОЗУ и сразу секторами туда
Вот, может поможет.
Сделано на основе полимузона, но прикручена другая FAT. Понимает FAT12, FAT16, FAT32. Камень - Mega8, 16Мгц. Играет WAV моно, 8бит, до 24кб/с (автоматически).
Схема и плата - PCAD, расчет фильтра - Microcap, компилятор - IAR 2.27.
На плате: надо реализовать стабилизатор +3в; разведен УНЧ 174ун14, которого нет на схеме.
Проект очень сырой (впрочем, работоспособный), поэтому не пинайте. Делался давно в ознакомительных целях. Привожу "как есть".
Тоже озадачился вопросом создания звонка на MMC-карте с поддержкой FAT16 и в голову пришло одно простое решение: вовсе не обязательно анализировать всю FAT, достаточно записать на флешку один файл. Тогда от МК потребуется только спозиционироваться на его начало и прочитать нужные двоичные данные.
И вот что из этого получилось:
http://trol.nm.ru/sch/zvonokmmc/. Девайс на atmega8, исходник для avr-gcc. Умеет проигрывать wav-файлы и нотные мелодии. Мелодий может быть неограниченное количество (сколько влезет на флешку), каждая мелодия может состоять из любого количества нотных и wav-фрагментов. На карту памяти записывается один файл, который компилируется специальной утилитой.
Oleg_DI
May 26 2009, 11:20
Добрый день .У меня есть проект mega 128 + шим + mmc .Воспроизводит wav файлы 32 кгц.Читает имена всех файлов wav на карте ,Применяю внешнее ОЗУ 521к т.к не успеваю обновлять
буфер 512 байт .Качество воспроизведения даже без фильтров ,приличное .
Oleg_DI
May 26 2009, 12:47
По поводу проекта "полимузон" в проекте нет си файла для работы с mmc картой.
kernel
May 26 2009, 16:03
Цитата(Oleg_DI @ May 26 2009, 19:20)

Добрый день .У меня есть проект mega 128 + шим + mmc .Воспроизводит wav файлы 32 кгц.Читает имена всех файлов wav на карте ,Применяю внешнее ОЗУ 521к т.к не успеваю обновлять
буфер 512 байт .Качество воспроизведения даже без фильтров ,приличное .
А чем вызвано использование ATMEGA128? Флэша 16КБ хватит (я намекаю на применение ATMEGA16)?
И еще про внешнее ОЗУ я не понял: оно применяется для хранения имен файлов?
PS: а на Ваш проектик как-нибудь глянуть можно?
Oleg_DI
May 26 2009, 17:41
использование 128 вызвано 4к ОЗУ,буфер сектора только 512 байт + стек +мелочь всякая(массив имен файлов) и в 1к у 16 меге не влезаем.
проект основан на функции fat я брал ее у Канцлера первоисточник MP3stick - MP3 Player с
http://www.radiolocman.com/shem/schematics.html?di=33468только менял расширение на wav. тактовая 16.384 мГц 8 бит фазово корректный шим 1 таймер , в прерывании по переполнению этого же таймера пихаем данные
16.384/256/2 (счёт прямой обратный -прерывание) получае 32 кГц во внешнем ОЗУ только заранее записанный (до play) выбранный файл целиком (у меня файлы небольшие)
Для повышения скорости доступа к ОЗУ я использую синхронные счётчики с предустановкой для выбора адреса ram , пихаю в них начальный адрес затем даю счетный такт
и читаю порт или наоборот вывожу на порт.
Добавлю что высокая частота выборки 32 кГц вполне компенсирует по качеству 8 бит.
Эх... жаль нет реализации для воспроизведения модулей... многие MOD / STM / S3M прилично звучат, а весят мало 8)
Или Atari SAP Music - весят ваще копейки, единицы килобайт - а многие мелодии узнаваемы 8)
Можно было бы малой кровью сделать пасхалку на практически любом устройстве (если ресурсы остались) 8)
Oleg_DI
May 27 2009, 03:27
У меня была задача чтобы любой чел мог записать любые новые мелодии.
Если от этого уходить то можно ,убираем fat и используем mmc как обычную микросхему памяти
с spi доступом.когда делал проект находил такое.
По uart пишем туда данные и навечно они там.
Цитата(Dx! @ May 27 2009, 00:53)

Эх... жаль нет реализации для воспроизведения модулей... многие MOD / STM / S3M прилично звучат, а весят мало 8)
есть реализации на PIC32 (там есть и на LPC2103):
http://www.k9spud.com/traxmod/на AVR:
http://www.madwizard.org/electronics/projects/modplayer
Цитата(Oleg_DI @ May 27 2009, 07:27)

У меня была задача чтобы любой чел мог записать любые новые мелодии.
Если от этого уходить то можно ,убираем fat и используем mmc как обычную микросхему памяти
с spi доступом.когда делал проект находил такое.
По uart пишем туда данные и навечно они там.
А зачем убирать fat и использовать uart для записи, это же неудобно? Когда можно оставить fat с одним единственным файлом и писать картридером и при этом обойтись атмегой8 без использования громозких библиотек поддержки fat.
KolyanV
May 28 2009, 17:40
Можете глянуть еще тут:
http://electronix.ru/forum/index.php?showtopic=43180Устройство для воспроизведения звука: 4 канала - 48 кГц, 8 каналов - 12 кГц. Работа с MMC без FAT
А какой можно использовать внешний ЦАП для воспроизведения 8 бит WAV, да чтоб имел SPI?
Дело в том что беглый взгляд на микрочип не увидел контроллер со встроенным ЦАПом приемлемой стоимости, а переходить на ATMEGA ради одной игрушки нет желания.
Предполагаю следующее: Микрочип+ АТ45 датафлеш+ЦАП(SPI)+усилитель звука.
Цитата(DeXteR @ May 14 2007, 07:33)

...
Стоит задача воспроизведения звука для уличной игрушки
...
«Радио» >> 2009 >> Сентябрь
Ю. Терехин. Музыкальный звонок с картой MMC.
Для хранения мелодий в этом микроконтроллерном звонке автор применил распространенные сменные носители информации — карты MMC (MultiMedia Card). Но для этого ему пришлось разобраться в файловой системе FAT16, которую организует компьютер на такой карте, и «научить» микроконтроллер разыскивать на ней и читать звуковые файлы. Большой объем памяти карты MMC позволил разнообразить набор воспроизводимых звонков и легко их заменять, подготовив другую карту или изменив содержимое имеющейся с помощью компьютера. Устройство для воспроизведения записанных на карту MMC файлов формата WAV выполнено всего на двух микросхемах (Atmega8-16PU, LM386N) и транзисторе КТ972Б. Программа микроконтроллера будет размещена на нашем FTP-сервере по адресу...- зайдите на сайт журнала "Радио"
blackfin
Sep 3 2009, 09:00
Цитата(RomeoB @ Sep 3 2009, 12:34)

А какой можно использовать внешний ЦАП для воспроизведения 8 бит WAV, да чтоб имел SPI?
Ради 8-битного звука вряд ли стоит ставить ADC, PWM-вариант будет не хуже. Но если очень хочется - MCP4921, стоит недорого, 12-битный.
SINtheTHICK
Sep 14 2009, 07:13
Здрасьте, народ!
А вот подскажите мне дураку, как сабж при трёхвольтовом питании громко сделать?
Баловался тут на днях с 8535-й мегой, звук напрямую на пьезоизлучатель подавал от ног ОС1А и ОС1В. Да вот уж больно тихо получается...
Пробовал ВП-2 и ЗП-3. Контроллер на 8МГц RC, ШИМ 8 бит (fast), частотой 31250Гц. Звук 8 кГц 8 бит. Пробовал и 16 кГц - качество получше, но только если излучатель близко к уху поднести.
blackfin
Sep 14 2009, 07:22
Цитата(SINtheTHICK @ Sep 14 2009, 11:13)

...как сабж при трёхвольтовом питании громко сделать?
SSM2335
SINtheTHICK
Sep 14 2009, 07:50
Цитата(blackfin @ Sep 14 2009, 10:22)


"Нет такой буквы в этом слове!" (цэ) Не возят к нам...
Блин, помучал Гугл на предмет поиска "low voltage class D amplifier", дык ничего такого к нам вообще и не возят!..
SINtheTHICK
Sep 14 2009, 08:54
Нашел вот...
Есть ТРА2001, но схемка уж больно громоздкая... и SSM2211, но это не класс D - обычный мостовой. И в том и в другом обещают больше 1Вт на 8Ом при пяти вольтах...
valera_o
Dec 2 2009, 23:09
Собрал ли кто схему из сентябрьского "радио"?
Спаял, залил. Не работает, причем вообще что-то левое.
По вкл. светодиод горит сразу, хотя не должен, по нажатию кнопки диод тухнет и всё... Сразу после первого нажатия на кнопку происходит какой-то обмен и из карточки какая-то инфа передается, но быстренько всё замирает. И не понятно как можно хоть что-то отследить? Думал хоть в "радио" проверяют, но и там... В общем "включается" светодиод, так написано в коментарии и он там реально должен включиться, подачей "1" на ногу порта, "выключается" "0"...
Что за невезуха такая, ну никак не получается подружить контроллер с карточкой... Полимузон тоже не работает... Вот еще более ранние ссылки из этой ветки попробую разве что...
valera_o
Dec 3 2009, 06:53
Прошил хексом Doorbell. Работает, немного медленнее, чем надо, но работает. странно что включается сразу при подаче питания, может так и надо? Что тогда происходит по нажатию кнопки?
В иар 5.11 файл проекта не открывается, и расширение больше похоже на расширение для кодевижн... Уже немного лучше, но покопаться в проге возможности нет. Как открыть файл проекта из иар 2.27 в иар 5.11?
valera_o
Dec 3 2009, 09:21
Как-то перешел со старой версии на 5.11, но параметры проекта...
Автору "Doorbell", параметры компилера есть? Размер датастека, модель памяти, "кучи" и т.д.? Если есть конечно

Объясню, нет поверхности коры мосха и времени разобраться с фат, беру "готовые" проекты, работающие с карточкой, прошу помочь добраться до редактирования проги, собственно нужно редактировать время сэмлирования.
AndreiVV
Dec 3 2009, 19:07
Цитата(valera_o @ Dec 3 2009, 01:09)

Собрал ли кто схему из сентябрьского "радио"?
собрал, работает, правда не всегда воспроизводит до конца мелодии идущие после первой
забыл сказать что мега у меня питается от 5в, а MMC подключена через резистивный делитель
valera_o
Dec 4 2009, 05:54
А чтож у меня не работает?
Фюзы выставили как дал автор? У меня с такими фюзами не работает, т.е. перестаёт программироваться, только с внешним генератором видится программатором.
Какой контроллер? У меня мега8а, может что-то в этой самой букве "а"?
И почему светодиод включается сразу после подачи питания? Как у Вас?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.