Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: WAV плеер на ATmega85
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
LepihinMS
Здравсвуйте товарищи. (:

Возникла у меня острая необходимость возыметь (или собрать) несколько десятков WAV (или MP3) плееров способных вытаскивать необходимый файл с флешки (SD, MicroSD) и воспроизводить их с качеством достаточным для понимания человеком речи на записи (не нужен нам теплый ламповый звук). Подразумевается, что плеера будут частью бОльшей схемы.

Требования к плееру:
– минимально возможная стоимость компонентов
– минимальное количество и габариты компонентов
– минимальное энергопотребление
– готовность к работе сразу после подачи питания

Китайские mp3 плееры были отвергнуты за избыточность (лишние компоненты - тысячи их), непредсказуемость (виснут, тормозят), закрытость архитектуры (схемы нет) и т.д.

Решено было собрать плеер на базе AVR контроллера… на этом мысль остановилась уперевшись в нехватку… мозгов.

В этих наших интернетах был найден проект некого Китайца Chan'а (WAV плеер на ATtiny85) – Вот этот (оригинал, по английски) и Тут (по-русски). Проект подкупает простотой, дешевизной и габаритами. НО при попытке воссоздать плеер... ничего не получилось! :D Отчаявшись выкарабкаться из ситуации самостоятельно обращаюсь к вам за помощью. (:

Что у меня есть:

1) Компьютер-зомби с LPT портом
2) AVRStudio 4 и 5, PonyProg
3) LPT программатор "5 проводков" (собран по Вот Этой статье)
4) 5шт ATtiny85 (DataSheet в PDF)
5) Arduino UNO с ATmega328 (используется как стабилизатор напряжения на 5 и 3.3V)

Что я смог сделать:

Используя метод научного тыка я, применив AVRStudio5, написал на C и скомпилировал в HEX файл программу Blink! Применив PonyProg и LPT программатор затолкал HEX в ATtiny85 и оно даже заработало. На этом мои знания в программировании контроллеров заканчиваются.

В чем проблема:

1) Скачав файлы проекта Китайца Chan'а (ТУТ или ТУТ) я обнаружил в них готовые HEX файлы, НО они 16КБ объемом! В ATtiny85 всего 8КБ flash памяти. PonyProg не моргнув глазом заталкивает в ATtiny85 половину кода и... это нормально? (:

2) Скомпилировать файлы проекта самостоятельно и осмысленно не позволяют кривые руки и прямые извилины.

3)
(оригинал монофонической схемы ТУТ или ТУТ)
- 1) Это конденсатор? Какой емкости?
- 2) Почему нога Reset висит в воздухе?
- 3) А этот какой ёмкости?

4)
(слева - распиновка MicroSD карточки; справа - контакты переходника MicroSD to SD)
Верна ли распиновка? Или на SD распиновка совсем иная нежели на MicroSD?

Чего хочу от вас:

1) Собирал ли кто-нибудь из форумчан плеер по проекту Китайца Chan'а Ссылка1, Ссылка2? Оно вообще работает? Что за таинственные 16килобайтные HEX файлы для 8КБ контроллера?

2) Знающие и умеющие, скомпилируйте, пожалуйста, проект в пригодный для записи на ATtiny85 HEX файл. rolleyes.gif Интересует только монофонический вариант (не Hi-Res).

3) Всё ли впорядке со схемой? Интересует mono не Hi-Res вариант.

4) Что вы ещё можете добавить к этой теме: скандалы, интриги, расследования? (:
blackfin
Цитата(LepihinMS @ Jul 16 2011, 01:52) *
1) Собирал ли кто-нибудь из форумчан плеер по проекту Китайца Chan'а Ссылка1,

4) Что вы ещё можете добавить к этой теме: скандалы, интриги, расследования? (:

Добавлю: он, вероятнее всего, Японец..
lev42
Цитата(LepihinMS @ Jul 16 2011, 00:52) *
Что за таинственные 16килобайтные HEX файлы для 8КБ контроллера?


я в общем то тоже не сильно большой спец, но в двух словах это выглядит так, hex-файл это текстовый файл, в нём каждый байт памяти контроллера выглядит как-то так - 4F - к примеру, а каждая буковка это один байт, плюс переводы строк, это два байта (0D 0A), плюс пробелы (байт), в результате 16 килобайтные текстовые файлы вполне себе превращаются в 8 килобайт памяти микропроцессора. Надеюсь понятно объяснил biggrin.gif
LepihinMS
Цитата(lev42 @ Jul 16 2011, 11:42) *
hex-файл это текстовый файл


Вы не большой спец. HEX-файл не текстовый и содержит только программу. Смотрите внутрь HEX-редакторами или тем же PonyProg.
lev42
Цитата(LepihinMS @ Jul 16 2011, 11:53) *
Вы не большой спец. HEX-файл не текстовый и содержит только программу.

судя по ответу, вы ещё меньше, не буду говорить за все HEX-файлы, но уж в архивы по ссылке топикстартера могли бы и глянуть
follow_me
Думаю вам стоит глянуть и поспрашивать Тут
GYUR22
в хексе один байт кодируется 2-мя символами+адресация +контрольная сумма+тип данных - поэтому он получается как минимум в два раза больше программы.
если совсем интересно найдите утилиту hex2bin и обработайте ей файл - увидите как он "сжимается" в бинарном виде
vvs157
Цитата(LepihinMS @ Jul 16 2011, 12:53) *
HEX-файл не текстовый и содержит только программу.
http://ru.wikipedia.org/wiki/Intel_HEX

Цитата(LepihinMS @ Jul 16 2011, 01:52) *
- 1) Это конденсатор? Какой емкости?
- 2) Почему нога Reset висит в воздухе?
- 3) А этот какой ёмкости?
1- электролит на 100 мкФ
2 - потому как используется внутренний сброс в контроллере. Можно соединить через 10К с питанием. Скорее всего не подключен, так как для отладки использовался режим debugWIRE.
3 - обчно ставят 0.1 мкФ керамику

PS
Для сборки проекта необходим AVR Toolchain.
haker_fox
QUOTE (LepihinMS @ Jul 16 2011, 17:53) *
Вы не большой спец. HEX-файл не текстовый и содержит только программу. Смотрите внутрь HEX-редакторами или тем же PonyProg.

Как раз он текстовый, а кроме программы может содержать еще и данные (константы). Если открыть hex-файл в hex-редакторе, конечно Вы увидите данные. Но это уже будет ерунда. В таких редакторах смотрят бинарные данные (bin).
Еще пример текстового файла: SREC (Motorola).
LepihinMS
Вот ТУТ ВОТ есть подробная статья по теме.

Всем спасибо. (:
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.