Реле Tianbo - ресурс 10 млн переключений

Звуковой PCM генератор на микроконтроллере ATtiny861. Часть 2. Прошивка и режимы работы

Окончание.
Начало читайте здесь:

Часть 1. Схема

Программное обеспечение микроконтроллера написано на языке Си и скомпилировано в среде WinAVR GCC.

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Генератор поддерживает форматы звуковых файлов RIFF/WAVE в LPCM, 8/16 бит, моно/стерео, частота дискретизации 8 кГц – 48 кГц. Любые другие форматы, такие как ADPCM, MP3 и AAC должны быть переконвертированы в формат PCM. Звуковые фйалы на карте памяти должны иметь имена формата NNN.wav, где NNN – трехзначное число в диапазоне 001 – 255. Храниться они должны в корневой директории карты памяти.

Команды управления вводятся как бинарный код при помощи 8 контактов SW1 – SW8, при этом будет воспроизводиться соответствующий звуковой файл. К примеру, нажатие кнопки SW1 (что соответствует логическому 0 на выводе PB4 микроконтроллера) соответствует команде на воспроизведение файла 001.wav, нажатие SW4 – воспроизведение файла 008.wav, одновременное нажатие SW1 и SW5 – воспроизведение файла 017.wav.

Дополнительно имеется 4 режима работы генератора по команде управления. Информация о режиме работы должна содержаться в файле 000.txt, который также размещается в корневой директории.

Пользователи могут установить самостоятельно режим работы генератора, отредактировав текстовый файл в соответствии с описанием режимов.

Режимы работы генератора по принятию команды управления:

  • Mode 0 : Level trigger – Режим 0: Синхронизация по уровню. Воспроизведение звукового файла в соответствии с принятым кодом в режиме автоповтора. При поступлении измененного кода (команды управления), изменяется воспроизводимый звуковой файл. Если принятый код равен, 0 воспроизведение звука прекращается.
     
  • Mode 1 : Level trigger (sustained) – Режим 1: Синхронизация по уровню (длительный). Режим схожий с режимом 0, но звуковой файл, в соответствии с принятым кодом, воспроизводится полностью и прекращается при поступлении кода 0.
     
  • Mode 2 : Edge trigger – Режим 0: Синхронизация по фронту. Однократное воспроизведение звукового файла, полностью в соответствии с принятым кодом. Любое изменение кода во время воспроизведения текущего звукового файла игнорируется.
     
  • Mode 3 : Edge trigger (re-triggerable) – Режим 3: Синхронизация по фронту (перезапускаемый). Аналогичный режиму 2, но с разрешением изменения управляющего кода. Для перезапуска текущего звукового файла необходимо сначала ввести код 0, а затем код (команду) соответствующего файла.

Конфигурация Fuse-битов для установки при программировании микроконтроллера следующая: младший байт 0xC1, старший байт 0xDD, расширенный 0x01. Напомним, что информация о Fuse-битах находится в каждом .hex файле для прошивки, Если программатор не поддерживает такой формат файлов, следует удалить последние три строчки в .hex файле и запрограммировать Fuse-биты, самостоятельно используя значения, указанные выше.

Загрузки

Файл 000.txt (установка режима работы генератора) – скачать
Файл проекта (WinAVR GCC) и .hex файлы для прошивки - скачать

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: 255-Voice PCM Sound Generator. Part 2. Software

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • фьюзы правильно, образ карточки в Winimage создавал, потом еще в winhexe пробовал образ реальной флешки сделать. вот проект
  • По быстрому глянул проект... вроде все в норме. Не знаю точно, размер именно файла MMC.mmc должен быть таким, сколько занимают файлы в образе? Прожки для создания образов у меня нет. Завтра постараюсь на работе глянуть повнимательней. SPI интерфейс вроде работает. Не исключаю глюк протеуса.
  • =Vadzz;64088] Не знаю точно, размер именно файла MMC.mmc должен быть таким, сколько занимают файлы в образе? /QUOTE] mmc.mmc создавал в Winimage - образ=объему файлов не карте при создании в Winhex - образ=объему карты как правильно точно не знаю. первый раз с этим работаю.
  • По идее, должно быть, что образ=объему карты...
  • Доброго времени суток! Кто уже собирал сей девайс подскажите, как быстро могут переключаться треки?.Если устройство использовать по принципу синтезатор ,а треки длиной 0,5-1 сек (например разные звуки).Буду очень благодарен за ответ .:)
  • меня тоже эта схема интересует в таком качестве а вот моя разработтка под яву2 ме для сотового телефона тоже можно в файл вкладывать звуки как ноты всего 12 и играть на телефоне и ничего собирать не надо мой сайт [url]www.igor-tserfas.narod.ru[/url]
  • Доброго времени суток! Кто уже собирал сей девайс подскажите, как быстро могут переключаться треки?.Если устройство использовать по принципу синтезатор ,а треки длиной 0,5-1 сек (например разные звуки).Буду очень благодарен за ответ . Неужели тема закрыта?
  • Да нет, тема не закрыта, может никто и не собирал этот плеер. Примерно оценить насколько быстро можно переключать треки помог бы Proteus, но, как видите по сообщениям выше - не удается в нем запустить эту схему. Если будет время, то завтра попробую заняться этой задачей, но ничего обещать не могу...
  • Я собрал сей девайс. переключение довольно быстрое. но насколько точно не скажу. трек переключается моментально. В Протеусе я сэмулировать так и не смог.
  • Спасибо за ответ ,он утешительный :).Буду собирать железо,выложу результат по окончанию.Вопрос к Alex_dndz каким программатором пользовались?
  • таким [url]http://www.rlocman.ru/op/tovar.html?di=62814&/AVR-PG1B[/url] +PonyProg. Сразу предупрежу, что оригинальная прошивка не пошла. Скорее всего программатор не понял фузы(которые в прошивке). поэтому пришлось поправить программу и перекомпилировать.
  • Собрал в железе, все заработало с первого раза без исправлений в программе. В Протеусе ведет себя точно также как и у Alex_dndz: периодически мигает 2 раза. Протеус пишет: Attempted to load program outside of program memory:flash size = 8192, load address = 8519680, number of bites = 3. Кроме того, еще ругается на Watchdog setup sequence. У кого есть мысли?
  • Выложите сюда проект в протеусе. Посмотрим.
  • Вот, пожалуйста
  • Вроде все в норме. Ошибку указанную "Attempted to load program outside of program memory:flash size = 8192, load address = 8519680, number of bites = 3." - устранил. Со сторожевым таймером - не понятно. Fuse-битами он вообще отключен. Но все равно, мигает два раза - ошибка файловой системы или аппаратная ошибка. Мне кажется, что глюк симуляции карты памяти, а точнее образа ее. Буду разбираться еще по возможности.
  • Уважаемые дайте фьюзы для poni-prog или подскажите как или какими прогами вы работали прошили этот девайс заранее сп. У меня есть com програматор с ним работает poni-prog вот по этому интересуюсь про фьюзы к нему (или к другим прогроматорам и прогам)
  • Читайте ветку с начала [url]http://www.rlocman.ru/forum/showthread.php?t=9186[/url], там указано как выставлять Fuse-биты. У PonyProg по умолчанию "галочка" напротив Fuse-бита означает запрограммирован, т.е. бит = 0.
  • Я собрал все работает - [URL="http://rastamanoff.ucoz.ua/index/zvukovoj_pcm_generator_na_mikrokontrollere_attiny861/0-92"]http://rastamanoff.ucoz.ua/index/zvukovoj_pcm_generator_na_mikrokontrollere_attiny861/0-92[/URL]
  • Я тоже собрал, работает отлично, только в паузах в мелодии слышны какие-то шорохи и всплески, пока не разобрался что и откуда это, высокочастотные шумы снизил RC фильтром. Я использовал эту схему как радиоманок для охотников, только добавил сюда приёмник и пульт (купил в мастерКите) дистанционного управления на 12 каналов, вообщем получилось не плохо, собрал всё в сирене от автомобиля с акумулятором, получился автономный радиоманок с дальностью 100м. Пробовал переконвертировать по разному файлы, но неприятные шелчки и всплески в паузах остаются, если кто с этим поборолся напишите.:)
  • Шорохи и щелчки именно в паузах в песне между слов (в песнях этого не заметно, а вот в манке это сильно слышно, так как там птицы кричат через промежуток, а когда мелодия проиграла то всё тихо.
Полный вариант обсуждения »