I2S Bitfehler - gelöst

OP #4792948
Lesenswert?

Hallo,
ich möchte mit einem STM32F401C-Disco Board einen I2S Audiostream 
erzeugen. Allerdings gibt es beim Output (TX) einen Bitfehler. Der 
Audiostream ist um ein Bit Verschoben (siehe Abbildung). Ich habe 
versucht eine 1 zu senden (uint16_t) und bekomme am Output eine 32768. 
Ich nutze die Coocox IDE und die darin zur Verfügung gestellten 
Funktionen für die I2S Schnittstelle.
1
   // configure I2S port
2
  SPI_I2S_DeInit(CODEC_I2S);
3
  I2S_InitType.I2S_AudioFreq = I2S_AudioFreq_8k;
4
  I2S_InitType.I2S_MCLKOutput = I2S_MCLKOutput_Enable;
5
  I2S_InitType.I2S_DataFormat = I2S_DataFormat_16b;
6
  I2S_InitType.I2S_Mode = I2S_Mode_MasterTx;
7
  I2S_InitType.I2S_Standard = I2S_Standard_Phillips;
8
  I2S_InitType.I2S_CPOL = I2S_CPOL_Low;
9

10
  I2S_Init(SPI3, &I2S_InitType);

Senden mit Interrupt:
1
void SPI3_IRQHandler(void)
2
{
3
  /* Check the interrupt source */
4
  if (SPI_I2S_GetITStatus(SPI3, SPI_I2S_IT_TXE) == SET)  //SPI_I2S_IT_TXE
5
  {
6
       SPI_I2S_SendData(SPI3, 1);
7
  }
8
}

Hat jemand eine Idee wo dieser Fehler her kommt und wie man ihn beheben 
kann?

Vielen Dank!

Tom
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren