|
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.03.2012
Сообщений: 97
|
|
| 08.06.2012, 01:16 | |
|
0
|
|
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
||
| 08.06.2012, 01:58 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 97
|
|
| 08.06.2012, 10:15 | |
|
потому что я вчера вечером прошил 15кб прошивку в тини85) да и что то я не видел чтобы народ ,у кого получилась схема,жаловался на размер прошивки.однако ВСЕ версии прошивок что я видел для этого проекта больше 15 кб.а последние так вообще 18кб.
вот поэтому у меня,как у новичка и возник вопрос....каааак?) тут один человек ,в этом топике что то упоминал про hex и bin ,что hex большой,а бин меньше, в контроллера записывается двоичный файл при программировании, может поэтому и влезает?
0
|
|
|
SWK
|
||
| 08.06.2012, 10:36 | ||
В файле формата Intel HEX8 кроме самих данных (в текстовом виде!), содержится также длина каждой строчки данных, адрес, с которого она пишется, в конце каждой строки - ее контрольная сумма. Признак конца файла - строка с нулевой длиной. Сколько раз уже об этом везде писалось, а все равно, вместо того, чтобы почитать описание формата Intel HEX (применяемым еще со времен перфоленточных устройств), задают одни и те же вопросы... На крайняк, откройте зашиваемый файл в окне кода программатора, и посмотрите там реальное размещение кода в памяти контроллера. |
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 08.06.2012, 10:36 | |
|
>>тут один человек ,в этом топике что то упоминал про hex и bin ,что hex большой,а бин меньше, в контроллера записывается двоичный файл при программировании, может поэтому и влезает?
Именно поэтому. Hex, как минимум, в два раза больше А впрочем, вру, может быть и меньше, если есть разрывы в коде
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
|
|
| 08.06.2012, 10:40 | |
|
Да, Капитан, так и есть. Процессор может исполнять только двоичный код.
0
|
|
|
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 134
|
|
| 10.06.2012, 05:39 | |
|
Я почему-то даже фьюзы не смог прошить. странно: код шился, а фьюзы нет. Я поднимал тему на форуме где-то..
0
|
|
|
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 97
|
|
| 13.06.2012, 10:24 | |
|
подскажите еще пожалуйста по проекту.в папке с проектом есть три файла с расширением .с. хочу создать проект в авр студио ,чтобы вносить изменения в код. мне нужно все три сишника добавить в проект?и как они взаимодействуют,и почему нельзя сделать все в одном файле?
сори за "детский" вопрос)
0
|
|
|
0 / 0 / 0
Регистрация: 19.09.2011
Сообщений: 1,835
|
|
| 13.06.2012, 13:24 | |
|
А я купил десяток плееров http://www.otyexpress.som/product-fm/54 ... alers.html
55 рублей штука. Когда нужно - разбираю и использую. Очень удобно.
0
|
|
|
rostomomoff
|
|
| 16.02.2013, 23:38 | |
|
Я делал и mono и stereo варианты.На attiny85 все работает.HEX-файлы брал с сайта http://itm-chan.org/works/sd8p/report.html,потом програмой "Блокнот" удалял последние три строчки,сохранял и записывал уже такой HEX в микроконтролер.Подробнее http://rostomomoff.ucoz.ua/ind... chena/0-65
|
|
|
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 54
|
|
| 18.05.2013, 20:25 | |
|
Запилил имитатор звуков для своей модельки паровоза С.68 (OcCre)
http://www.youtube.som/watch?v=uzcKa7ufiLw Добавлен стабилизатор напряжения на 3.3В на LM317t, усилитель TDA7240A в типовой схеме включения и стабилизатор для него на 7812. Динамик 3W - кетайский FR-0012 (или FR-0018) будет вставлен в переднюю часть котла. [16.89 Кб]
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 219
|
|
| 19.05.2013, 13:53 | |
|
ОФФТОП: А генератор пара в модекльке паровоза тоже будет? А то не плохо бы синхронизировать это дело :)
0
|
|
|
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 54
|
|
| 19.05.2013, 14:50 | |
|
Нет. Планируется свет в фонарях (тупо светодиоды через драйвер), имитация пламени в топке на ATtiny13A (как здесь - http://www.youtube.som/watch?v=KQa5QBFJYk0) и имитация звука. Может привод какой на колеса будет, чтоб на месте крутились и дышловый механизм шевелился.
На одном паравозике два микроконтроллера достаточно. Имитация пара - уже перебор ))) Чисто коммерческий проект, сувенир. Генератор звука за тыщщу рублей прибавляет десять тыщщ к стоимости сувенира ))) (с) "На эти 3% и живем!"
0
|
|
|
dom_stovomi
|
|
| 21.11.2013, 15:38 | |
|
Добрый день! хотел узнать у автора, получилось ли впихнуть в attiny45 прошивку? можно глянуть исходник, что б самому доделать.?
|
|
|
otfyk777
|
||
| 12.02.2015, 00:01 | ||
То же так делаю, но хотелось бы полноценно управлять, т.е. запускать конкретный файл. Думал разберусь, но в каждом плеере разные чипы, продавцы понятия не имеют. Вы используете только в режиме плеера ( следующий трек/предыдущий/старт/стоп )? |
||
|
dymsoft
|
|
| 19.02.2016, 00:05 | |
|
Уважаемые, здравствуйте!Начну из далека. Для меня электроника - это, как конструктор. Что собрал и смог настроить, то и работает и даже очень исправно, чего не смог настроить, то значит и не смог....
Теперь о главном. Собрал я этот плеер на attiny85, ну вроде бы самая наипростейшая схема и плата, прошиваю контролеры хорошо, ну не заработала она, и не знаю, что с ней и делать, уже бесить начинает. Так вот, я очень прошу помощи, очень. Время поджимает, а мне это нужно вшить в игрушку. что бы она была музыкальной, в подарок моему другу музыканту - вокалисту. Игрушка - это, кот, нажимая на пузо проигрывает мелодию. Прошу, соберите мне этот девайс и что бы миниатюрно было. Очень прошу. Времени у меня осталось до 15 марта. Очень надеюсь на вашу помощь. Музыкальный файл я предоставлю. Очень надеюсь на вашу помощь, больше мне не на кого рассчитывать. На остальных сайтах болтатрепы сидят, а не спецы в электронике. |
|
|
dymsoft
|
|
| 19.02.2016, 23:11 | |
|
Уважаемый Oxford ! Так как я здесь новенький и у меня нет никакой еще активности, то мне не дано написать сообщения в личку. Огромнейшее спасибо, что откликнулись на мою просьбу о помощи. Напишите мне пожалуйста свой email , а мой [URL="mailto:dymsoft1@mail.ru">dymsoft1@m ail.ru[/URL] . Очень жду.
|
|
|
Oxford
|
|
| 19.02.2016, 23:56 | |
|
ответил на почту.
|
|
| 19.02.2016, 23:56 | |
|
Как сделать плеер 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 и то, что с ним. . .
|