|
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
|
|
Wav плеер на ATtiny 4512.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
|
|
| 12.03.2010, 03:40 | |
|
Ответы с готовыми решениями:
57
SD карта, SPI, FatFs, stm32f100, WAV плеер, фонарь, аптека.. Музыкальный WAV Плеер
|
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
|||
| 07.11.2010, 21:09 | |||
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 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
||
| 08.11.2010, 12:19 | ||
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МГц... |
|
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
||
| 08.11.2010, 16:25 | ||
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 внутри)? |
|
|
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 | ||
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 | ||
скомпилировал в 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 | ||
|
||
|
0 / 0 / 0
Регистрация: 29.01.2010
Сообщений: 96
|
|
| 19.03.2012, 12:15 | |
|
Тоже понекрофилю слехка)
Кто в программе досконально разбирался, ткните носом в место, где 16-битные выборки 8-битным счетчиком ШИМятся. Никак этот момент не просеку.
0
|
|
|
Kmot
|
||
| 18.04.2012, 03:28 | ||
А что за модуль? |
||
| 18.04.2012, 03:28 | |
|
Как сделать плеер wav файлов с выводом стереограммы? Написать программу, формирующую по исходному WAV файлу новый WAV файл Необходимо найти сэмпл wav в более протяженном wav-файле Поясните пожалуйста задачу! (Написать программу, формирующую по исходному WAV файлу новый WAV файл) Nokia x1-01 мр3 плеер лучше звучит, чем просто отдельный дешевенький плеер ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
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 и то, что с ним. . .
|