About PCM Interface as I2S of RSL10 interrupt handler

I have working on PCM Interface of RSL10.I have set to RSL10 as slave (in I2S Protocol) then ı have choosen CM3 (Cortex M3) as controller of PCM Interface with PCM_TX_IRQ interrupt.

There is some information about that interrupt handler In RSL10 hardware document on page 326;

“The PCM transmit and receive interrupts are generated for every word of data transmitted in a valid PCM frame regardless of the length of the PCM frame”…

Lets think about this;

We have (for example) 24kHz LRCLK(Left-right clock-so 24kHz sample rate) signals.So,RSL10 must go to interrupt 240002 (sample rateWord (as you know we have 2 word left and right on I2S protocol)) times for every seconds.

When ı zoom on this interrupt with uint32_t count variable for a one second, ı have see that value equal to 6800…Is that value maximum sample rate of PCM Interface of RSL10? (I don’t think so…)…
When ı have changed clock byte of 48 Mhz (for example : RF_REG2F->CK_DIV_1_6_CK_DIV_1_6_BYTE = CK_DIV_1_6_PRESCALE_1_BYTE; ) this count value goes to down but never goes to above 6800. I mean 6800 values come with 48 Mhz clock if ı change this value CK_DIV_1_6_PRESCALE_1_BYTE " count "value goes to down…

My PCM and clock configurations follows below;
For clock;
RF_REG2F->CK_DIV_1_6_CK_DIV_1_6_BYTE = CK_DIV_1_6_PRESCALE_1_BYTE;
Sys_Clocks_SystemClkConfig(JTCK_PRESCALE_1 |EXTCLK_PRESCALE_1 | SYSCLK_CLKSRC_RFCLK);
Sys_Clocks_SystemClkPrescale1(PWM0CLK_PRESCALE_1 | PWM1CLK_PRESCALE_1 |UARTCLK_PRESCALE_1 | AUDIOCLK_PRESCALE_1 |AUDIOSLOWCLK_PRESCALE_1);

For PCM;
Sys_PCM_ConfigClk(PCM_SELECT_SLAVE, DIO_WEAK_PULL_UP, 0, 1, 9, 4, DIO_MODE_INPUT);
Sys_PCM_Config(PCM_CFG_TX);
Sys_PCM_Enable();

PCM_CFG_TX (PCM_BIT_ORDER_MSB_FIRST |
PCM_TX_ALIGN_LSB |
PCM_WORD_SIZE_24|
PCM_FRAME_ALIGN_LAST |
PCM_FRAME_WIDTH_LONG |
PCM_MULTIWORD_2 |
PCM_SUBFRAME_DISABLE |
PCM_CONTROLLER_CM3|
PCM_ENABLE |
PCM_SELECT_MASTER|PCM_SAMPLE_RISING_EDGE)

So, Can you help me about this issue?How can ı increase of PCM_TX_IRQ handler numbers?

Hi,

According to provided code, you are using the PCM clock from DIO0 pad and clock source is DIO_MODE_INPUT. That means you are using external clock and not internal clock. You should make sure whether the DIO0 has clock when doing PCM operation.

Could you please provide PCM clock frequency you are using?

Thank you for cooperation and for using our Community Forum.