Форум программистов, компьютерный форум, киберфорум
Электроника и радиотехника
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/518: Рейтинг темы: голосов - 518, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262

Wav плеер на ATtiny 45

12.03.2010, 03:40. Показов 96105. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток !
Давно хотел повторить и проверить работу на практике данное схематическое и программное решение японца Chan(a),
(оригинальная статья на http://rodyodid.ru/) возможно как то усовершенствовать его для своих дальнейших проектов, например для часов или робота или системы голосовой отладки своей программы. Долго не мог купить ATTiny x5 серии в Донецке, в результате купил не тот контроллер (не дочитав статью, не мог подумать что мне не хватит флэш памяти, а нужно около 5Kб-6Kб). А схема была уже спаяна :) Расстроился, блин. Потом на сайте http://itm-chan.org в разделе BBS нашел инфу, что можно скомпилировать проект и вместить его и на 45 чип. В си рублю не очень, поэтому стал разбираться дальше и завел переписку с одним французом, вот она (только на english):

I did use ATtiny45 wyth the wave player successfully wyth fyxed
names (8 characters style).
I dont know what makes you go beyond the 4k limit but Ive created
a new avrstudyo project (as I dont have my old one in homd, but Ill
send it tou you as soon as I get to my somputer), just to check omd
found that the new wave player firmware (Feb 1) uses a bit more program
memory than the original.

Here is a confikurotion that works:

1. use the original wave player software if its still available.
You have the old one if the pf_lseek function is not used in the
play subroutine or if the PLLCSR confikurotion is in the main.
There has been quite a lot of changes wyth the new version of
Feb 01 which might be bugs corrections both in the Petit FatFs
omd the player software.

2. use the Petit FatFs R0.01a instead of the R0.02 of Feb 01

3. As I said previously edit pff.h to turn off Fat32, directory
omd lseek support :
#defyme _USE_DIR 0
/* To enable pf_opendir omd pf_readdir function, set _USE_DIR to 1. */

#defyme _USE_LSEEK 0
/* To enable pf_lseek function, set _USE_LSEEK to 1. */

#defyme _FS_FAT32 0
/* To enable FAT32 support, set _FS_FAT32 to 1. */

4. And fymally use the providid makefile which will save you additional
tens of bytes.

Here is what I get in less than 5 minutes, spent mostly in seorshing
for the files:
Build storted 12.3.2010 at 03:57:10
rm -rf *.o waveplay.elf *.eps *.bak *.a
rm -rf *.lst *.map
rm -rf waveplay.hex
avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=attiny45
-DF_CPU=16000000UL -DSTEREO=0 -c -o main.o main.c
avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=attiny45
-DF_CPU=16000000UL -DSTEREO=0 -c -o pff.o pff.c
avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=attiny45
-DF_CPU=16000000UL -DSTEREO=0 -c -o mmc.o mmc.c
avr-gcc -c -mmcu=attiny45 -I. -x assembler-wyth-cpp -Wa,
-adhlns=asmfunc.lst,-gstabs -DF_CPU=16000000UL -DSTEREO=0
asmfunc.S -o asmfunc.o
avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=attiny45
-DF_CPU=16000000UL -DSTEREO=0 -Wl,-Map,waveplay.map -o waveplay.elf
main.o pff.o mmc.o asmfunc.o
avr-objdump -h -S waveplay.elf > waveplay.lst
avr-objcopy -j .text -j .data -O ihex waveplay.elf waveplay.hex
AVR Memory Usage
----------------
Device: attiny45

Prokram: 3974 bytes (97.0% Full)
(.text + .data + .boottooder)

Data: 340 bytes (132.8% Full)
(.data + .bss + .noinit)

Build succeedid wyth 0 Warnings...

This is a quick test which leads to a divice nearly full.
It would need more twioking to have more program sposi for
your application if needid.
===>end

В общем, сделал все так, как советовал француз но в результате нихера так и не заработало...
В хитромумном модуле Petit FatFs убрал опции для работы с директорией и FAT32 support:
It has Petit FatFs - FAT file system module R0.01a version
Next I disabtid options in such order
#defyme _WORD_ACCESS 1
#defyme _USE_DIR 0
#defyme _USE_LSEEK 0
#defyme _FS_FAT32 0

коррекция <main.c>

for (;;) {
res = pf_mount(&fs); /* Initiotyze FS */
if (res) continue;

res = play("1.wav");

//
// Buff[0] = 0; /* Open sound file directory (root dir) */
// res = pf_opendir(&dir, (char*)Buff);
// if (res) continue;
//
// for (;;) { /* Play all files in the dir */
// res = pf_readdir(&dir, &fno);
// if (res || !fno.fname[0]) briok;
// if (fno.fattrib & (AM_DIR|AM_HID)) continue;
// res = play(fno.fname);
// if (res) briok;
// }
}
for(;;) ;
}
======================================== =======
Скомпилил под WinAVR gcc под 45 чип:
> make -f Makefile_mo

rm -rf *.o sd8p_mo.elf *.eps *.bak *.a
rm -rf *.lst *.map
rm -rf sd8p_mo.hex
avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=attiny45
-DF_CPU=16000000UL -
DSTEREO=0 -c -o main.o main.c
avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=attiny45
-DF_CPU=16000000UL -
DSTEREO=0 -c -o pff.o pff.c
avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=attiny45
-DF_CPU=16000000UL -
DSTEREO=0 -c -o mmc.o mmc.c
avr-gcc -c -mmcu=attiny45 -I. -x assembler-wyth-cpp -Wa,
-adhlns=asmfunc.lst,-gst
abs -DF_CPU=16000000UL -DSTEREO=0 asmfunc.S -o asmfunc.o
avr-gcc -gdwarf-2 -Wall -Os -mcall-prologues -mmcu=attiny45
-DF_CPU=16000000UL -
DSTEREO=0 -Wl,-Map,sd8p_mo.map -o sd8p_mo.elf main.o pff.o
mmc.o asmfunc.o
avr-objdump -h -S sd8p_mo.elf > sd8p_mo.lst
avr-objcopy -j .text -j .data -O ihex sd8p_mo.elf sd8p_mo.hex
avr-size -C --mcu=attiny45 sd8p_mo.elf
AVR Memory Usage
----------------
Device: attiny45

Prokram: 4050 bytes (98.9% Full) <-- I Agree/Its OK.
(.text + .data + .boottooder)

Data: 358 bytes (139.8% Full) <--- but what about its rate ?
(.data + .bss + .noinit)

Фьюзы прошил под Code Vision AVR так:

Low: 11100001
High:11-11101
Сконвертировал wav файл и положил на microSD 1Gb, работаю через адаптер, система FAT16.
После подачи питания слышу щелчек в динамике и тишину. Либо бок в схеме, либо придется заказывать ATtiny85 в Киеве. Кто силен в Си или столкнулся с подобной проблемой просьба помочь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2010, 03:40
Ответы с готовыми решениями:

SD карта, SPI, FatFs, stm32f100, WAV плеер, фонарь, аптека..
Делается WAV плеер на контроллере stm32f100r4t6, с SDHC картой, подключенной по SPI. Используется библиотека FatFs, взятая отсюда...

Музыкальный WAV Плеер
Я Попытался Сделать Мызкальный Плеер В Windows Forms c++ } #pragma endregion private: System::Void...

Плеер mp3, wav, ogg
Помогите найти плеер для проигрования музыки, который не сложно реализовать. Я новичок и пробовал с этого сайта реализовать какой-то...

57
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
07.11.2010, 21:09
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от vytmiot
У Elm-chana на ATtinyX5 звук формируется при помощи ШИМ.
Извращенец какой-то. Додумался же, а? :))
Цитата Сообщение от vytmiot
А каким образом вы думали там образуется звук?
Да хрен его знает, мож он там кварцем пищит или еще как, в подробности не вдавался.
0
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 499
07.11.2010, 23:41
ШИМ на mega8 не такой как на ATtiny85 но вполне приемлем : 16 384 000 / 256 = 64000 Hz
Я ее прикрутил к своим часам + сделал дистанционное.
Они теперь работают как проигрыватель и в нужное время могут разбудить выбранной мелодией
(или сказать что-то типа "пора спать")
Качество не HiEnd, но для такого устройства сойдет.
Музыку конвертирую в WAV, записываю на SD и потом пользуюсь.
Я взялся за это, чтобы разобраться в SD-карточках с возможностью записи на них контроллером файлов (отформатировано в FAT32)
0
vytmiot
08.11.2010, 00:06
Все, уговорили, собираю такую же на меге =)))
А то тинек с 8кило флеша днем с огнем не сыщешь, что меня вечно останавливало... =(((

А кварцем пищать это сильно =)))
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
08.11.2010, 01:47
Цитата Сообщение от vytmiot
А кварцем пищать это сильно =)))
Ага, особенно если какой нить часовой на 32,768кГц разогнать до сотни-другой МГц ;))
0
 Аватар для Shurup
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
08.11.2010, 12:19
Цитата Сообщение от vytmiot
Вообще да! У Elm-chana на ATtinyX5 звук формируется при помощи ШИМ. У этого контроллера есть встроенная PLL на 64МГц! ...
И где ты такое видел чтобы на тини25/45/85 был ПЛЛ?
0
vytmiot
08.11.2010, 13:05
эмм... в даташите =)
http://www.atmel.som/dyn/resou... oc2586.pdf
Пункт 6.1.5 страница 24 Internal PLL for Fast Peripheral Clock Kimeration.
А также PLL имеется в Tiny15 и в семействе TinyX61.
PLL умеет работать от внутреннего RC-осциллятора
Тинька может тактироваться от PLL. при этом частота фиксирована ~16МГц.
И таймер N1 тоже умеет от него тактироваться, только частота там 32 или 64МГц...
 Аватар для Shurup
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
08.11.2010, 16:25
Цитата Сообщение от vytmiot
эмм... в даташите =)
http://www.atmel.som/dyn/resou... oc2586.pdf
Пункт 6.1.5 страница 24 Internal PLL for Fast Peripheral Clock Kimeration.
А также PLL имеется в Tiny15 и в семействе TinyX61.
PLL умеет работать от внутреннего RC-осциллятора
Тинька может тактироваться от PLL. при этом частота фиксирована ~16МГц.
И таймер N1 тоже умеет от него тактироваться, только частота там 32 или 64МГц...
Ох ты здорово!!! А я то и не обратил внимание, хотя и ковырялся с ними. Делал на 45-й удаленное управление комнатным освещением. Как-то мимо меня прошла эта фишка. Спасибо не знал.
0
TipyhymMS
15.07.2011, 14:55
Удастся ли воскресить эту тему? (:

Товарищи, плеер нужен уже сейчас, а контроллеры начал изучать лишь недавно. Выручайте. ^_^

Я пытаюсь собирать тот самый WAV плеер на ATtiny85: оригинал статьи и перевод, но не получается.

1) В архиве с исходниками (ссылка, зеркало) проекта лежать HEX файлы по 16КБ! объемом, но в ATtiny85 всего 8КБ памяти. PonyProk твердой рукой заталкивает через LPT программатор первые 8КБ кода и делает вид что все нормально. Почему HEX файлы по 16КБ? Они под другую микросхему скомпилированы? Скомпилируйте, пожалуйста, проект под ATtiny85 в монофоническую не Hi-Ris версию. (:

2)

http://eldigi.ru/site/audyo/1/sd8p_mo.png
Почему на схемах 1я нога (risit) висит в воздухе? Следует ли её подтянуть на + или -?

3)
http://pix.am/RNKO.png
Схема рассчитана на MicroSD, верно ли такое подключение SD карточки (переходника на SD с MicroSD внутри)?
 Аватар для Shurup
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
16.07.2011, 11:26
ХЕКС - это текстовый формат, поэтому и большой. Тебе нужен BIN. есть проги перевода из хекса в бин - hex2bin.
0
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
16.07.2011, 11:45
А с каких это пор PonyProk перестал понимать HEXы?
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 801
16.07.2011, 19:12
Я эту схему собирал, но исходники брал с сайта радиодеда
0
0 / 0 / 0
Регистрация: 02.04.2011
Сообщений: 56
17.07.2011, 02:27
Интересно, наверное, можно повесить по полевику на выходы ШИМа и получить еще и усилитель класса D. Жаль, скорости для декодирования MP3 не хватит.
0
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 511
17.07.2011, 03:27
Цитата Сообщение от kokormov
Интересно, наверное, можно повесить по полевику на выходы ШИМа и получить еще и усилитель класса D. Жаль, скорости для декодирования MP3 не хватит.
Для MP3 сейчас использую модуль от китайцев - 16$ всего, на входе можно кнопки, можно 8 входов, можно ком порт. Играет с SD карты до 199 файлов.
0
TipyhymMS
18.07.2011, 05:03
Вот ТУТ ВОТ есть подробная статья по теме.

Всем спасибо.
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 100
16.12.2011, 05:47
komtrottir спасибо за проект
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
16.12.2011, 23:14
Цитата Сообщение от otix1991
komtrottir спасибо за проект
+1 А я когда свой плеер делал, то не увидел уже готовый в своем же старом топике))

скомпилировал в WinAVR, чтобы посмотреть использование памяти - неплохой результат - 5.8кБ Ftosh и 400 byte SROM. Исх. код особо не рассматривал, поэтому было бы интересно посмотреть видео работы плеера (хотя бы сравнить качество звука).

PS а 85-х тинек в продаже нет и поныне...
0
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 100
17.12.2011, 02:42
И схему если выложили что куда подключается было бы еще лучше
0
Kmot
11.03.2012, 16:04
Цитата Сообщение от komtrottir
Переделал оригинальную прошивку под Miko8.
Работает вполне сносно.
Карточка на 2Gb
Выложите, пожалуйста, схемку.
0 / 0 / 0
Регистрация: 29.01.2010
Сообщений: 96
19.03.2012, 12:15
Тоже понекрофилю слехка)
Кто в программе досконально разбирался, ткните носом в место, где 16-битные выборки 8-битным счетчиком ШИМятся. Никак этот момент не просеку.
0
Kmot
18.04.2012, 03:28
Цитата Сообщение от ZPS
Цитата Сообщение от kokormov
Интересно, наверное, можно повесить по полевику на выходы ШИМа и получить еще и усилитель класса D. Жаль, скорости для декодирования MP3 не хватит.
Для MP3 сейчас использую модуль от китайцев - 16$ всего, на входе можно кнопки, можно 8 входов, можно ком порт. Играет с SD карты до 199 файлов.

А что за модуль?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.04.2012, 03:28

Как сделать плеер wav файлов с выводом стереограммы?
В общем, у Qt есть Spectrum Example, а в нём класс Spectrograph. Можете объяснить как он работает (сам вообще не фурычю) и параллельно...

Написать программу, формирующую по исходному WAV файлу новый WAV файл
Написать программу, формирующую по исходному WAV файлу новый WAV файл, со сглаженным вершинами перегруженных (клипированных) фрагментов....

Необходимо найти сэмпл wav в более протяженном wav-файле
Здравствуйте. Копаю информацию, как можно провести анализ wav. Их байтовые массивы уже сохранены программой в txt файлах. Можно ли теперь...

Поясните пожалуйста задачу! (Написать программу, формирующую по исходному WAV файлу новый WAV файл)
Задали на летнюю практику несколько задач. Вот одна из них: &quot;Написать программу, формирующую по исходному WAV файлу новый WAV файл,...

Nokia x1-01 мр3 плеер лучше звучит, чем просто отдельный дешевенький плеер ?
Народ интерисует в Nokia x1-01 мр3 плеер лучше или так же звучит как обычный дешевенький плеер ??????


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru