logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Dziwny problem z odtwarzaczem mp3 [ATmega16]

maly_elektronik 23 Kwi 2009 18:21 1398 4
  • #1 6448618
    maly_elektronik
    Poziom 23  
    Witam :)
    Jak kiedys już opisywałem na łamach forum elektrody zbudowałem odtwarzacz mp3 na ukladzie sta015 :) Niestety powodem jego nie opublikowania był brak mozliwości wykonania odpowiedniej pcb (głównie z powodu układow SMD). Obecnie byłem w stanie wykonać płytkę pod takie elementy i tak się stało :) :arrow:
    Układ po zaprogramowaniu spełniał swoją role (był słyszalny utwór w słuchawkach itp). Po kilku testach odłączyłem go od zasilania i chwilowo na tym się skończyło. Gdy próbowałem jeszcze chwile się nim "nacieszyć" ku mojemu ździwnieniu on nie działał :( (Podkreślam iż połączenia jak zarazem sprawdzanie kodów błędów sta pracuje on poprawnie i dekoduje struniem mp3)
    Więc co może być przyczyną nie odpalenia układu (jakieś źle poprowadzone masy :?: Chyba ze macie inne sugestie :?: )
    Poniżej mój schemat
  • #2 6472847
    ePeter1234
    Poziom 18  
    Witam!!!

    Ja próbuję od jakiegoś czasu zbudować własny dekoder MP3 na tym samym układzie. Niestety nie znam odpowiedzi na twoje pytanie, ale widzę, że ty może mi pomóc:) mogę zobaczyć w jaki sposób ty inicjujesz swój dekoder, bo u mnie na moich procedurach pin DATA_REQ w ogóle nie reaguje na przesyłanie danych do zdekodowanie.

    Pozdrawiam

    ePeter1234
  • #3 6473079
    maniek1818
    Poziom 22  
    Witam :D
    Ja próbuję uruchomić układ z takimi wartościami rejestrów
    	i2c_write(0x10, 0x01);
    	i2c_write(0x10, 0x00);
    	
    	i2c_write(0x54, 0x05);
    	i2c_write(0x55, 0x26);
    	i2c_write(0x07, 0x00);	
    	//PLL
    	i2c_write(0x06, 0x0B);
    	i2c_write(0x0B, 0x03);
    	i2c_write(0x61, 0x06);
    	i2c_write(0x50, 0x07);
    	i2c_write(0x65, 0x03);
    	i2c_write(0x52, 0x9D);	
    	i2c_write(0x64, 0xD3);	
    	i2c_write(0x51, 0x9D);
    	i2c_write(0x05, 0xa1);
    	//PLL
    	i2c_write(0x0D, 0x00);//SPI_pol
    	i2c_write(0x18, 0x04);	
    	i2c_write(0x0C, 0x05);//REQ	
    	i2c_write(0x4D, 0x00);//chip mode
    	i2c_write(0x14, 0x00);//demute
    	i2c_write(0x72, 0x01);//Run
    	i2c_write(0x13, 0x01);//Play

    Jednak do końca brakuje mi odpowiedniego przetwornika D/A. A jaki posiadasz DAC :?:
  • #4 6473370
    maly_elektronik
    Poziom 23  
    Prawde mówiąć odtwarzacz już odpalil i nawet nieźle gra :) (Pojawiaja się lekkie szumy ale to najwyraźniej wina mojego PCB). Inicjuje dokladnie tak samo jak kolega maniek1818 :)
    Informacje do DAC wysyłam przy stanie nistkim na DATA_REQ i wygląda to mniej więcej tak: :arrow:
     
    void send_sta(char buffer[]) //bufor 512B
    {
     unsigned logn index;
     for(index=0;index<512;index++)
     {
      while(!(DATA_REQ_PIN & 0xXX); // w miejscu XX nr pinu 
      spi(buffer[index];
     }
    }
  • #5 6474210
    maniek1818
    Poziom 22  
    maly_elektronik napisał:
    Pojawiaja się lekkie szumy ale to najwyraźniej wina mojego PCB.

    To może być spowodowane nie rozdzieleniem w przetworniku zasilania części analogowej od cyfrowej.:idea:
REKLAMA