Forum: Mikrocontroller und Digitale Elektronik STA013 nur Knack geräusche


von Frank (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen ich bastle gerade einen MP3 player mit dem Baustein 
STA013 und einem WM8727 DAC. Die Initialisierung ist denke ich ok, 
jedoch kommen aus dem Lautsprecher nur Knackgeräusche. Hat jemand 
Erfahrung und kann mir helfen. Nach dem Starten werden die Daten auch 
zum Decoder übertragen und nach einer gewissen Zeit geht die DataReq auf 
Low.
Wäre Dankbar für jede Hilfe.

CPU AtMega64L 8MHZ
STA013 8Mhz

Initialisierung.
WriteRegister(0x54, 0x03);  // PCM_DIVIDER
WriteRegister(0x55, 0x20);  // PCMCONF
WriteRegister(0x07, 0x00);  // PLLCTL [15:12]
WriteRegister(0x06, 0x16);  // PLLCTL [20:16]
WriteRegister(0x0B, 0x03);  // ???
WriteRegister(0x52, 0xFD);  // PLLFRAC_441_H
WriteRegister(0x51, 0x8B);  // PLLFRAC_441_L
WriteRegister(0x65, 0x0A);  // PLLFRAC_H
WriteRegister(0x64, 0x3D);  // PLLFRAC_L
WriteRegister(0x50, 0x10);  // MFSDF_441
WriteRegister(0x61, 0x0E);  // MSDF(X)
WriteRegister(0x05, 0xA1);  // PLLCTL [7:0]
WriteRegister(0x0D, 0x04);  // SCLK_POL
WriteRegister(0x4D, 0x00);  // CHIP_MODE
WriteRegister(0x18, 0x04);  // DATA_REQ_ENABLE
WriteRegister(0x0C, 0x00);  // REQ_POL
WriteRegister(0x14, 0x01);  // MUTE
WriteRegister(0x78, 0x0B);  // TREBLE_FREQUENCY_HIGH
WriteRegister(0x77, 0xB8);  // TREBLE_FREQUENCY_LOW
WriteRegister(0x7A, 0x00);  // BASS_FREQUENCY_HIGH
WriteRegister(0x79, 0xC8);  // BASS_FREQUENCY_LOW
WriteRegister(0x72, 0x01);  // RUN
WriteRegister(0x13, 0x01);  // PLAY
WriteRegister(0x14, 0x00);  // MUTE
WriteRegister(0x46, 10);  // DLA
WriteRegister(0x48, 10);  // DRA

Datenübertragung werden aus der SD-Karte geladen und in TempBuffer 
gespeichert.

  //Daten an Decoder
  for(i=0;i<br;i++)
    {
    // Auf Data Request warten
    while(Is_Request() == LOW) {YellowLED_ON();};
  YellowLED_OFF();

  // So lange wie Data Request an ist, Daten senden
  while(Is_Request() == HEIGHT)
    {
    if(i>=br) break;
    GreenLED_Togggle();

    c=TempBuffer[i];
      for(j = 7; j >= 0; j--)
           {
         SCKR_Low();

         if(((c >> j) & 1) == 1) {SDI_Heigh(); }
         else      {SDI_Low();   }
         SCKR_Heigh();
        }
    i++;
    }
  }
  }

Gruß Frank

von Frank (Gast)


Lesenswert?

weiss keiner Rat

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.