MP3 přehrávač s pevným diskem
Na této stránce budou nové verze firmwaru pro tento přehávač. Program
je volně k dispozici pod GNU GPL licencí a v zipu je vždy přiložen i licenční soubor.
Pokud se rozhodnete SW upravovat nebo jakkoliv využívat, tak doporučuji licenci prostudovat. Dále bych uvítal,
kdyby případní konstruktéři poslali foto vlastních realizací apod. Výtah z "ReadMe.txt" aneb co to umí:
HDD/CF MP3 player založený na dekodéru VS1003 (www.vlsi.fi) MCU: ATmega64-16AI XTAL: 16MHz Překladač: AvrAsm32 v1.74 date dec-2003 Podporované formáty: MP3(CBR, VBR), WMA(CBR, MBR), WAV(IMA ADPCM, PCM), MID(format 0), MOD(4 channels, 15 or 31 samples) Podporované tagy: MP3 - ID3v1, ID3v2.3 (CP1250 or unicode) WMA - standard tag WAV - standard RIFF tag, ID3v2.3 (CP1250 nebo unicode) MID - standard RIFF tag (RMI), ID3v2.3 (CP1250 nebo unicode) MOD - název skladby (20 znaků z ofsetu 0x0000) Pro všechny soubory bez tagů se zobrazí dlouhý název souboru (s podporou UTF16) nebo krátký 8.3 DOS název Disk: parallel ATA do 128GB (LBA28) nastavený na MASTER nebo SINGLE Souborový systém: FAT32/16/12 ve kterékoliv partition (podpora fragmentace dat), libovolná velikost clusteru od 512B do 64kB, ideální je použít více než 8kB Maximální délka souboru: 98107 clusteru (383MB @ 4kB cluster) Maximum adresářů/souborů v každém adresáři: 254 Znakové sady: přehrávač podporuje všechny textové znaky z kódování CP1250 a jejich ekvivalnety v kódování Unicode/UTF16 USB: podpora Mass Storage protokolu, testováno ve Win 98, Win XP, Win Vista a Linuxu Mandriva 2006 přenosová rychlost se pohybuje v rozmezí 400-600kB/s Historie verzí:
1.6.2006 - První verze programu, mělo by to být plně funkční. Download v1.0.
Konstrukční návod
Původně jsem neměl v úmyslu žádný MP3 player stavět, ale během experimentování s
HDD a FAT systémy vznikly jako vedlejší produkty konstrukce jako
PCM wav player. Pak jsem se přeci jen
rozhodl připojit místo D/A převodníku nějaký MP3 dekodér. Jako nejlepší dekodéry
se mi jeví produkty firmy VLSI.
Tyto dekodéry jsou po několika málo instrukcích po resetu schopny dekódovat
MP3 bez jakéhokoliv dalšího nastavování. Navíc tato firma neustále pracuje
na vývoji nových typů, takže jsou to velmi perspektivní obvody.
V ČR je lze zakoupit u Snail instruments za
ceny srovnatelné s cenami výrobce (dnes už bohužel jen doprodej). Rozhodl jsem se zakoupit rovnou nejnovější model VS1003.
Ten mimo MP3 dokáže dekódovat také WMA, PCM WAV, ADPCM WAV a MIDI. Předevsím ale
disponuje mnohem vyšším výkonem, než obvyklý VS1001, takže nemá žádné problémy
ani s MP3 na 320kbps. Zároveň bez problému zvládá korektor basů a výšek a klidně i další
pluginy, které lze nahrát do RAM. Modul USB interface
Přibližně od začátku roku 2006 sleduji web podobného open source přehrávače Ikoras. Jeho autorovi se povedlo celkem uspokojive rozchodit USB Mass Storage protokol a ješte k tomu na dostupných a levných součástkách. K Mass Storage protokolu zrovna moc dokumentace není, takže jsem se konečně odhodlal prostudovat SW tohoto přehrávače a pokusit se pochopit princip. Po prostudování jsem tuto implementaci přepsal z C do ASM a zabudvoal do svého přehrávače.
Datasheet USB obvodu PDI USB D12 z nepochopitelných důvodů neobsahuje žádné schéma,
takže i zapojení, a hlavně hodnoty kondenzátorů okolo XTALu, jsem převzal z konstrukce Ikoras 2.
Deska USBinterface je připájena na desce přehrávače tam, kde měla být rozšiřující RAM.
Zároveň tento modul potřebuje 2 ze 3 volných pinů (PG1 a PC0). Další 2 řídící signály jsou
odebrány z ISP konektoru. Jde o nevyužité linky PDO a PDI. Desku je tedy třeba připájet jako rozšiřující
modul RAM, dále na konektoru zbývajících pinů a nakonec je ji ještě třeba externím káblem
propojit s ISP konektorem. Vlastní programátor se pak připojuje až do tohoto modulu.
Vlastní implementace protokolu má pouhých 1500 řádků a k programu přibyly jen 3kB.
Po odstranění pár překlepů a troše optimalizace to překvapivě začalo fungovat.
I když "fungovat" možná naní ten pravý výraz. Zařízení se sice zinicializuje a celekem
šlo i komunikovat, ale přenos byl neskutečně pomalý (asi 250kB/s) a často zcela "zatuhl".
Po kompletním přepracování rutin pro zápis/čtení sektorů a dalších úpravách pro
co nejvyšší optimalizaci jsem to konečne rozchodil. Chyby přenosu zmizely a
přenosová rychlost vzrostla na asi 400-600kB/sec.
K této úpravě jsem již nevymýšlel žádné další SW složitosti. Přítomnost tohoto modulu
detekuje firmware automaticky po zapnutí. USB kabel je možné připojit kdykoliv v menu adresáře.
Jindy kabel nepřipojujte a po odebrání zařízení v OS kabel vždy ODPOJTE. Rovněž nepřipojujte kabel
před zapnutím zařízení. Během komunikace s PC je na LCD patřičná
informace a žádné ovládací prvky nereagují. Po odpojení kabelu se přehrávač (snad)
vrátí do menu adresáře a ovládací prvky se odblokují. Někdy to může trvat dost dlouho.
Závěrem bych jen doporučil zálohovat data i jinde,
než v přehrávači. Přenos se sice zdá být zcela bezpečný, ale např. při výpadku proudu by mohlo dojít
k úplné ztrátě dat. Poslední aktualizace: 2.3.2007 (c) 2006, Stanislav Mašláň - využití konstrukce ke komečním účelům není povoleno!
|