[elektro] STM32F4 discovery I2S modul config

flaist flaist at gmail.com
Fri Jul 19 00:15:47 CEST 2013


Szia!
Bocs nem ismerem ezt a családot, de nagyon tetszenek a paraméterei.
Milyen fejlesztő környezet van hozzá.
Mennyire vannak LIB-ek, driverek, ... 

Köszi, üdv. FI.

-----Original Message-----
From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On Behalf
Of Pal Lukacs
Sent: Thursday, July 18, 2013 8:43 PM
To: elektro at tesla.hu
Subject: [elektro] STM32F4 discovery I2S modul config

Sziasztok !

STM32F4 discoveryn I2S modul konfiggal kapcsolatos segitsegre lenne
szuksegem.

ADC van rajta, fs=32kHz, 24bit.
32kHz*2csatorna*32bit orajelnek kellene lenni (bit clock, vagyis CK) es
256*32kHz kellene legyen a system clock (SClK). Ehelyett az SClK 2.6MHz, es
a bit clock (CK) 600kHz. 

(elnezest, a nagy l betum nem mukodik)

Idezem az ide tartozo kod reszletet, hatha valakinek van otlete.

...
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE); ...

I2S_InitTypeDef I2S2_InitStructure;

SPI_I2S_DeInit(SPI2); // ERRATA: deinitialize i2s2 aka. spi2

I2S2_InitStructure.I2S_Standard    = I2S_Standard_Phillips; 

I2S2_InitStructure.I2S_DataFormat  = I2S_DataFormat_24b;  //
I2S2_InitStructure.I2S_MCLKOutput  = I2S_MCLKOutput_Enable;
I2S2_InitStructure.I2S_AudioFreq   = I2S_AudioFreq_32k;   //
I2S2_InitStructure.I2S_CPOL        = I2S_CPOL_Low;        //
I2S2_InitStructure.I2S_Mode        = I2S_Mode_MasterRx; // I2S_Init(SPI2,
&I2S2_InitStructure);


es a system fileban a pll config :

/***************************************************************************
***/
/*                          I2S clock
configuration                           */
/***************************************************************************
***/
  /* PLLI2S clock used as I2S clock source */
  RCC->CFGR &= ~RCC_CFGR_I2SSRC; 
 
  /* Configure PLLI2S */
  RCC->PLLI2SCFGR = (PLLI2S_N << 6) | (PLLI2S_R << 28); 
 
  /* Enable PLLI2S */
  RCC->CR |= ((uint32_t)RCC_CR_PLLI2SON); 
 
  /* Wait till PLLI2S is ready */
  while((RCC->CR & RCC_CR_PLLI2SRDY) == 0)
  {
  }

ahol N, R: 

/* PLLI2S_VCO = (HSE_VALUE Or HSI_VALUE / PLL_M) * PLLI2S_N
   I2SCLK = PLLI2S_VCO / PLLI2S_R */
#define PLLI2S_N   258
#define PLLI2S_R   3

es  HSE 8 MHz, ezzel az I2SCLK 86 MHz-re adodik. 

A tobbi reszet az I2S_Init(...) szamolja (ez standard periph. library) 



Udv.
Szabi
-----------------------------------------
          elektro[-flame|-etc]



More information about the Elektro mailing list