mp3 grotuvas

2008 05 25 22:51

Kažkurią 2007 birželio dieną draugas parodė nusipirktą žaislą. Pasakė, kad jam nebereikia ir kad gali atiduot už 40 lt. Pavartęs internetą, pamačiau, kad iš šito žaislo galima kažką padaryti - jau anksčiau galvojau apie muzikos grotuvą, juolab kad pats normalaus neturėjau.
Juicebox žaisliukas

Specfikacijos:
- 66 MHz ARM7TDMI procesorius
- 2 MB SDRAM
- 8 MB NAND flash (iš pradžių buvo ne tik kad neperrašomas flashas, bet dar ir be korpuso - apipiltas plastmase - daug vargo gramdant ir kuriant platformą kitam chipui)
- Audio DAC
- Portas į pasaulį: labai geras daiktas, nes išeina atminties magistralė (be adreso šynos, bet yra chip select laidas), atvestas SPI ir dar keli IO pin’ai. Labai gerai daryt kažkokį praplėtimą baigus sistemą.

Projekto eiga:
2007-05-30 Pirkau juicebox už 40lt. Pirmas įspūdis - labai geras. Lygiai toks pat ir galimybių vertinimas.
2007-06-05 Užkūriau JTAG. Pamačiau, kad vis dėl to gamyklinis flash niekam tikęs (vieną kartą programuojamas, OTP), tai nieko su juo nepadarysiu.
2007-06-06 Nulitavau ir nubrūžinau flash mikrę. Juicebox nebeveikia. Neveikia ir visas ’softas’, nes, tik kaip vėliau supratau, neinitializuojamas procas ir periferija.
2007-07-09 Užsisakiau normalų flash’ą - SST39VF6401B
2007-07-13 Gavau flash’ą, pradėjau daryt ‘platformą’ jam.
2007-07-15 Platforma pagaminta. Tiesa, geras tik vienas egzempliorius iš 4.
2007-07-20 Į platformą įlitavau flash’ą. Tikrinu ar nėra kontaktų, kur nereikia.
2007-07-22 Tikrinimas baigtas..
2007-08-30 Pradėjau lituot platformą ant juicebox. Daug daug mažų laidukų.
2007-09-02 Litavimas baigtas. OCD Commander’is rodo, kad į flash’ą įsirašo. Procesoriaus initializuoti vis dar nemoku
2007-09-04 Pradėjau naudoti normalų kompiliatorių - Rowley CrossStudio.Į ramus programą įrašo, tačiau paleidus jį po kelių sekundžių kažkodėl lūžta.. LCD neveikia. Tačiau jau moku initializuot SDRAM’us. Ilgos gedimo paieškos..
2007-12-22 Pagaliau išsiaiškinau, kame problema. Pagal defaulta buvo įjungiamas watchdog’as, kuris ir resetindavo viską. LCD vistiek neveikia.
2007-12-27 LCD jau užsikuria pusei sekundės. Vienam porte buvo įkištas laidukas į LCD, kuris jį išjungdavo (to aš nežinojau initializuodamas portą ir visus pin’us numušdamas į 0)
2007-12-28 LCD trumpo veikimo priežastis - išsijungiantis matricos maitinimas.
2007-12-29 Pasirodo buvo dar vienas pin’as, valdantis LCD matricos maitinimą. LCD veikia!
2007-12-30 Periferijos bandymai: DAC veikia, taimeriai veikia, DMA veikia. Žodžiu viskas veikia
2007-12-31 Pradėjau žaist su SD/MMC. Iškart darau SPI per DMA.
2008-01-02 Neveikia
2008-01-03 Neveikia, nes su DMA neskaito. Padarius ‘paprastą’ SPI (bitbang būdu), viskas veikia.
2008-01-04 Programa, nuskaitanti SD/MMC kortelę sektorius po sektoriaus veikia. Taip pat moka ir viską trinti. Šios funkcijos nenaudojau.
2008-01-05 Pradėjau galvot apie operacinę sistemą. Išsirinkau FreeRTOS. Nagrinėjamės kodą..
2008-01-13 Operacinės nebus, kol negalėsiu įrašyt normaliai į flash. Crossstudio kažkokia sistema su loaderiais neveikia. Vėl ilgos gedimo paieškos.
2008-03-07 Pagaliau pasidariau loaderį, kuris sugeba įrašyt į flash. Tačiau normaliai įsirašo gal tik kas penktas kartas (CrossStudio kad blogai įsirašė, rodo visada)
2008-03-09 Rašom savo malloc funkciją. Veikia, nors ir ne per greitai. Atmintis labai greitai fragmentuojasi.
2008-03-10 Bandom FAT’us. FAT veikia. Nors iš pradžių kodas nemokėjo dirbti su LFN, tai pavyko ištaisyti, bet tik failo vardo rodymui. Sukurti normalaus failo kol kas nepavyks.
2008-03-16 Sistemą pavyko paleisti iš flash. FreeRTOS paleidimui kliūčiū nebėra.
2008-03-17 Pasirodo mano kurta malloc() f-ja yra beveik tokia pat, kaip ir standartinė
2008-03-19 Pradėjau dirbt su FreeRTOS source’u.
2008-03-20 Sutvarkiau FreeRTOS kodo dalį, susijusią su technine įranga. FreeRTOS veikia.
2008-03-21 Supratau, kad galima priverst LCD kontrolerį į LCD perduot ne 256 spalvas, kaip yra dabar, bet visas 4096 (reikia naudoti ne Color, o Monochrome (16 color) rėžimą). Nesiseka tinkamai išdėlioti pikselių.
2008-03-23 Išsiaiškinau, kad viską gadina kažkoks swap bitas nustatymuose.
2008-03-24 LCD pagaliau rodo normalias spalvas.
2008-03-29 Pradedu bandymus su MP3 kodu
2008-04-01 Negroja
2008-04-02 Negrojo, nes neveikė DMA. Dabar groja triukšmą.
2008-04-05 Padidinus buferį groja dainos fragmentus, kas kelias sekundes peršokdamas į priekį. Kažkas negerai su sinchronizacija.
2008-04-06 Gal penkis kartus perrašiau grojimo funkciją, bet nepadeda.
2008-04-12 Pasirodo programoj reikėjo vienoj vietoj minusą su pliusu sukeist :) . Groja!
2008-05-30 Pradedu daryti korpusą ir taisyti PCB netobulumus
2008-06-06 Sutvarkytas malloc
2008-06-17 Pagaliau normaliai įrašo į FLASH
Kas daroma dabar:
- Korpusas
- MP3 grotuvo sistema - playlist’ai ir kitokie sh.

….
Ką reikia padaryti:
- Normalus vartotojo interfeisas
- Pritaikyti FreeRTOS, kad norint pridėti galimybių, nereiktų perkompiliuot sistemos = konfiguraciją sukišti į atskirus failus flashe.
- Korpusas

– Keletas nuotraukų:

Į viršų | Skyrius: ~ Elektronika | Autorius: exec | del.icio.us | RSS 2.0 sąsaja |

Vienas komentaras to “mp3 grotuvas”

  1. svecias rašo:

    gal galetum imest jau padaryto foto?

Jūsų komentaras