Author |
Message |
FreemaN
Senior
Joined: 09 Jan 2009 20:30 Posts: 124 Location: Мурманск
|
Решил потратить драгоценные ресурсы етого форума для ведения лога разработки своей конструкции - mp3 плеера.
Главные цели, которых я собираюсь достичь:
-Удобное управление
-Хороший звук
-Низкое энергопотребление
-Компактные размеры
В данный момент работаю над основными блоками:
работа с SD/MMC карточкой, LCD дисплеем 84х48, микрухой-декодером VS1002D.
В перспективе добавлю контроль за зарядом батареи, энергосберегающие функции (например перевод отдельных узлов в спящий режим)
По мере возможности буду картинки выкладывать
_________________ Всё что ты видишь - лживый облик.
|
13 Feb 2009 17:59 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22821 Location: Silicon Valley
|
давай - ждём!
|
13 Feb 2009 19:39 |
|
|
Different
Doomed
Joined: 18 Feb 2007 11:40 Posts: 408
|
Зря VS1002D взял. Совсем старьё и уже никому не повторить будет.
|
15 Feb 2009 08:30 |
|
|
FreemaN
Senior
Joined: 09 Jan 2009 20:30 Posts: 124 Location: Мурманск
|
Просто у меня их аж 2 штуки
а вообще потом можно переделать под VS1033. тогда мидюки, wma можно будет играть...
1033 у меня тоже есть, я её к арму хотел подключать
_________________ Всё что ты видишь - лживый облик.
Last edited by FreemaN on 15 Feb 2009 18:21, edited 1 time in total.
|
15 Feb 2009 15:12 |
|
|
FreemaN
Senior
Joined: 09 Jan 2009 20:30 Posts: 124 Location: Мурманск
|
успехи к этому моменту:
все функции для работы с дисплеем (ну там было просто)
- Для того чтобы работать в текстовом режиме пришлось делать таблицу символов (контроллер в дисплее совсем простенький),
поддерживаются две кодировки WIN1251 и CP866(DOS) и для экономии памяти переключаются только верхние части (>127).
Освоил SD карточку (только для чтения),
пока что простая работа с файловой системой. Узнать содержимое корневого каталога и прочитать файл (фрагментированные файлы тоже должны читаться без проблем, не проверял пока).
ну и конечно же частичная работа с декодером.
а вот траблы:
По непонятным причинам включение BASS ENCHANT`ера приводит к заиканиям в работе - может надо кварц на 26МГц поставить...
при чтении с флешки ВСЕГДА читается один лишний кластер в конце, но это я думаю поборю:roll:
свободной памяти в меге совсем мало осталось (оператива на 60% занята) - если ставить внешнее ОЗУ на портативности можно ставить крест
Надо ещё клавиши подключить и сделать наконец менюшку
_________________ Всё что ты видишь - лживый облик.
|
15 Feb 2009 18:02 |
|
|
FreemaN
Senior
Joined: 09 Jan 2009 20:30 Posts: 124 Location: Мурманск
|
Кстати, интересное наблюдение:
при декодировании VBR, VS1002 в регистре HDAT0 пишет текущий битрейт, а не средний
_________________ Всё что ты видишь - лживый облик.
|
15 Feb 2009 18:07 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Попробуй писать не на ЯВУ, а на АСМе.
|
15 Feb 2009 20:05 |
|
|
FreemaN
Senior
Joined: 09 Jan 2009 20:30 Posts: 124 Location: Мурманск
|
может это конечно распространённое заблуждение, но мне кажется что на асме будет сложнее...
этот глюк исправлен
_________________ Всё что ты видишь - лживый облик.
|
16 Feb 2009 15:55 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Все мы начинали с Бэйсика. И это действительно язык для ленивых. Однако, если ты хочешь полностью контролировать ресурсы в этом мелком камне, к тому же твоя задача достаточно чувствительна к таймингам, то ты просто дожен писать на АСМе. Конечно, это дело вкуса и сложность во многом преувеличивают те, кому не хватило духу осилить АСМ. Например, я никогда не пишу весь проект который на АСМе за раз. Я делаю это шаг за шагом, от нижнего уровня к верхнему. От примитивов до комплексных функций. И никогда у меня не было ощущения сложности. Чего и вам желаю.
|
16 Feb 2009 21:00 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1388 Location: Abakan
|
Еще подскажу полезную функцию - функция заряда аккумуляторов. Если в AVR есть АЦП, то это не должно сильно усложнить конструкцию. Или по крайней мере приводить исходник на ЯВУ к простым конструкциям.
С остальным согласен полностью, бо сам пишу в основном на асме.
|
16 Feb 2009 22:56 |
|
|
FreemaN
Senior
Joined: 09 Jan 2009 20:30 Posts: 124 Location: Мурманск
|
нужная функция, я размышлял об этом... в каком то апноуте на авр было,. я вот решаю - использовать ресурсы меги (дёшево и сердито) либо применить что-нибудь навроде MAX713 (для NiCd и NiMn) хотя можно и комплексно подойти к этому вопросу... по АВР ассемблеру я почитаю, попробую изучить, но думаю напишу прошивку к плееру всё же на Си.
поясню, это из-за необходимости держать кучу всего в памяти - там буфер экрана (84 байт шесть строк = 504байта) - обоснование: дисплей мне достался странный, у него восемь строк вместо шести причём верхняя строка в высоту 5 пикселей, а нижняя 3 пикселя (как будто перепутали чипы контроллеров на заводе ) - поэтому нужно перед выводом сдвинуть данные, чтоб получилось шесть строк по 8 пикселей
нижняя часть таблицы символов (128*8=1024байта) - если переместить в память программ программа начинает себя вести странно, хотя кажется я понимаю как быть...
и два буфера чтения (один с данными кластера, а второй с частью таблицы ФАТ) - так работает быстрее
_________________ Всё что ты видишь - лживый облик.
|
17 Feb 2009 08:08 |
|
|
FreemaN
Senior
Joined: 09 Jan 2009 20:30 Posts: 124 Location: Мурманск
|
Это я тоже исправил - теперь все таблицы символов находятся в памяти программ меги.
Сразу стало много свободного места в ОЗУ
Сейчас:
-Делаю функцию чтения директорий
-думаю почему нельзя сбросить счётчк секунд в VS1002 (в ДШ написано, что надо туда два раза записать новое значение) - пробовал, почему то не работает, так же как и посылание 2048 нулей...
Вчера декодер неплохо шарахнуло помехой но он вроде жив. (в усилке коротнуло анодку ) лучше буду использовать наушники...
_________________ Всё что ты видишь - лживый облик.
|
18 Feb 2009 15:49 |
|
|
FreemaN
Senior
Joined: 09 Jan 2009 20:30 Posts: 124 Location: Мурманск
|
В ДШ ещё написано что счётчик секунд сбрасывается после ресета...
значит буду ресетить чип перед каждым новым треком. (Это работает - проверил)
_________________ Всё что ты видишь - лживый облик.
|
18 Feb 2009 19:43 |
|
|
FreemaN
Senior
Joined: 09 Jan 2009 20:30 Posts: 124 Location: Мурманск
|
Где можно отыскать нормальную доку по mp3? мне нужно узнать продолжительность (в секундах), но судя по всему её надо считать - а как нигде не пишут
_________________ Всё что ты видишь - лживый облик.
|
20 Feb 2009 10:28 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Пишут. ID3 TAG v1 и v2/3 тебе в гугль. Просто для CBR берешь первый фрейм, извлекаешь из него битрейт и делишь размер файла на размер фрейма (фиксирован для CBR и зависит от битрейта) - получаешь время. Для VBR сложнее, поэтому некоторые плеера врут. однако ID3v2 нам помогает - она создает первый фрейм МПЕГ но с фиктивными данными (точнее там стриминговый EXIF), в которам указан средний битрейт, который и соответствует размер трека поделенный на время. Ничего сложного как бы.
|
20 Feb 2009 11:17 |
|
|