nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 09:00



Reply to topic  [ 80 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next
AVR+VS1002=mp3 
Author Message
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Решил потратить драгоценные ресурсы :D етого форума для ведения лога разработки своей конструкции - mp3 плеера.:kruto:
Главные цели, которых я собираюсь достичь:
-Удобное управление
-Хороший звук
-Низкое энергопотребление
-Компактные размеры

В данный момент работаю над основными блоками:
работа с SD/MMC карточкой, LCD дисплеем 84х48, микрухой-декодером VS1002D.
В перспективе добавлю контроль за зарядом батареи, энергосберегающие функции (например перевод отдельных узлов в спящий режим) :idea:

По мере возможности буду картинки выкладывать :roll:

_________________
Всё что ты видишь - лживый облик.


13 Feb 2009 17:59
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
давай - ждём! :dj:

_________________
:dj: https://mastodon.social/@Shaos


13 Feb 2009 19:39
Profile WWW
Doomed

Joined: 18 Feb 2007 11:40
Posts: 408
Reply with quote
Post 
Зря VS1002D взял. Совсем старьё и уже никому не повторить будет.


15 Feb 2009 08:30
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
Different wrote:
Зря VS1002D взял. Совсем старьё и уже никому не повторить будет.

Просто у меня их аж 2 штуки :)
Image
а вообще потом можно переделать под VS1033. тогда мидюки, wma можно будет играть...
1033 у меня тоже есть, я её к арму хотел подключать

_________________
Всё что ты видишь - лживый облик.


Last edited by FreemaN on 15 Feb 2009 18:21, edited 1 time in total.



15 Feb 2009 15:12
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
успехи к этому моменту:
все функции для работы с дисплеем (ну там было просто) 8)
- Для того чтобы работать в текстовом режиме пришлось делать таблицу символов (контроллер в дисплее совсем простенький),
поддерживаются две кодировки WIN1251 и CP866(DOS) и для экономии памяти переключаются только верхние части (>127).
Освоил SD карточку (только для чтения),
пока что простая работа с файловой системой. Узнать содержимое корневого каталога и прочитать файл (фрагментированные файлы тоже должны читаться без проблем, не проверял пока).
ну и конечно же частичная работа с декодером.
а вот траблы:
По непонятным причинам включение BASS ENCHANT`ера приводит к заиканиям в работе - может надо кварц на 26МГц поставить...
при чтении с флешки ВСЕГДА читается один лишний кластер в конце, но это я думаю поборю:roll:
свободной памяти в меге совсем мало осталось (оператива на 60% занята) - если ставить внешнее ОЗУ на портативности можно ставить крест :(
Надо ещё клавиши подключить и сделать наконец менюшку :wink:

_________________
Всё что ты видишь - лживый облик.


15 Feb 2009 18:02
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
Кстати, интересное наблюдение:
при декодировании VBR, VS1002 в регистре HDAT0 пишет текущий битрейт, а не средний :wink:

_________________
Всё что ты видишь - лживый облик.


15 Feb 2009 18:07
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
FreemaN wrote:
свободной памяти в меге совсем мало осталось (оператива на 60% занята) - если ставить внешнее ОЗУ на портативности можно ставить крест :(

Попробуй писать не на ЯВУ, а на АСМе.


15 Feb 2009 20:05
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
HardWareMan wrote:
FreemaN wrote:
свободной памяти в меге совсем мало осталось (оператива на 60% занята) - если ставить внешнее ОЗУ на портативности можно ставить крест :(

Попробуй писать не на ЯВУ, а на АСМе.

может это конечно распространённое заблуждение, но мне кажется что на асме будет сложнее... :wink:
FreemaN wrote:
при чтении с флешки ВСЕГДА читается один лишний кластер в конце, но это я думаю поборю

этот глюк исправлен :rotate:

_________________
Всё что ты видишь - лживый облик.


16 Feb 2009 15:55
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
FreemaN wrote:
HardWareMan wrote:
Попробуй писать не на ЯВУ, а на АСМе.

может это конечно распространённое заблуждение, но мне кажется что на асме будет сложнее... :wink:

Все мы начинали с Бэйсика. И это действительно язык для ленивых. Однако, если ты хочешь полностью контролировать ресурсы в этом мелком камне, к тому же твоя задача достаточно чувствительна к таймингам, то ты просто дожен писать на АСМе. Конечно, это дело вкуса и сложность во многом преувеличивают те, кому не хватило духу осилить АСМ. Например, я никогда не пишу весь проект который на АСМе за раз. Я делаю это шаг за шагом, от нижнего уровня к верхнему. От примитивов до комплексных функций. И никогда у меня не было ощущения сложности. Чего и вам желаю. ;)


16 Feb 2009 21:00
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
FreemaN wrote:
В перспективе добавлю контроль за зарядом батареи, энергосберегающие функции (например перевод отдельных узлов в спящий режим)
Еще подскажу полезную функцию - функция заряда аккумуляторов. Если в AVR есть АЦП, то это не должно сильно усложнить конструкцию.

HardWareMan wrote:
Попробуй писать не на ЯВУ, а на АСМе.
Или по крайней мере приводить исходник на ЯВУ к простым конструкциям.
С остальным согласен полностью, бо сам пишу в основном на асме.


16 Feb 2009 22:56
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
jdigreze wrote:
Еще подскажу полезную функцию - функция заряда аккумуляторов. Если в AVR есть АЦП, то это не должно сильно усложнить конструкцию.

нужная функция, я размышлял об этом... в каком то апноуте на авр было,.
я вот решаю - использовать ресурсы меги (дёшево и сердито) либо применить что-нибудь навроде MAX713 (для NiCd и NiMn)
хотя можно и комплексно подойти к этому вопросу...
HardWareMan wrote:
Однако, если ты хочешь полностью контролировать ресурсы в этом мелком камне, к тому же твоя задача достаточно чувствительна к таймингам, то ты просто дожен писать на АСМе. Конечно, это дело вкуса и сложность во многом преувеличивают те, кому не хватило духу осилить АСМ.

по АВР ассемблеру я почитаю, попробую изучить, но думаю напишу прошивку к плееру всё же на Си.

FreemaN wrote:
свободной памяти в меге совсем мало осталось (оператива на 60% занята) - если ставить внешнее ОЗУ на портативности можно ставить крест

поясню, это из-за необходимости держать кучу всего в памяти - там буфер экрана (84 байт шесть строк = 504байта) - обоснование: дисплей мне достался странный, у него восемь строк вместо шести причём верхняя строка в высоту 5 пикселей, а нижняя 3 пикселя (как будто перепутали чипы контроллеров на заводе :idea: ) - поэтому нужно перед выводом сдвинуть данные, чтоб получилось шесть строк по 8 пикселей
нижняя часть таблицы символов (128*8=1024байта) - если переместить в память программ программа начинает себя вести странно, хотя кажется я понимаю как быть...
и два буфера чтения (один с данными кластера, а второй с частью таблицы ФАТ) - так работает быстрее

_________________
Всё что ты видишь - лживый облик.


17 Feb 2009 08:08
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
FreemaN wrote:
нижняя часть таблицы символов (128*8=1024байта) - если переместить в память программ программа начинает себя вести странно, хотя кажется я понимаю как быть...

Это я тоже исправил - теперь все таблицы символов находятся в памяти программ меги.
Сразу стало много свободного места в ОЗУ :)

Сейчас:
-Делаю функцию чтения директорий
-думаю почему нельзя сбросить счётчк секунд в VS1002 (в ДШ написано, что надо туда два раза записать новое значение) - пробовал, почему то не работает, так же как и посылание 2048 нулей...

Вчера декодер неплохо шарахнуло помехой :rotate: но он вроде жив. (в усилке коротнуло анодку :-? ) лучше буду использовать наушники...

_________________
Всё что ты видишь - лживый облик.


18 Feb 2009 15:49
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
FreemaN wrote:
-думаю почему нельзя сбросить счётчк секунд в VS1002 (в ДШ написано, что надо туда два раза записать новое значение) - пробовал, почему то не работает, так же как и посылание 2048 нулей...

В ДШ ещё написано что счётчик секунд сбрасывается после ресета...
значит буду ресетить чип перед каждым новым треком. (Это работает - проверил)

_________________
Всё что ты видишь - лживый облик.


18 Feb 2009 19:43
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
Где можно отыскать нормальную доку по mp3? мне нужно узнать продолжительность (в секундах), но судя по всему её надо считать - а как нигде не пишут :no:

_________________
Всё что ты видишь - лживый облик.


20 Feb 2009 10:28
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Пишут. ID3 TAG v1 и v2/3 тебе в гугль. Просто для CBR берешь первый фрейм, извлекаешь из него битрейт и делишь размер файла на размер фрейма (фиксирован для CBR и зависит от битрейта) - получаешь время. Для VBR сложнее, поэтому некоторые плеера врут. однако ID3v2 нам помогает - она создает первый фрейм МПЕГ но с фиктивными данными (точнее там стриминговый EXIF), в которам указан средний битрейт, который и соответствует размер трека поделенный на время. Ничего сложного как бы.


20 Feb 2009 11:17
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 80 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.