ModusToolbox Device Configurator missing I2S interrupts

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
OkBa_4438736
Level 3
Level 3
10 replies posted 5 replies posted 5 questions asked

We have a project on CY8CPROTO-063 BLE Kit using I2S interface.

We created a project is created in PSoC Creator 4.2, we adapted the example I2S project CE218636 ( https://www.cypress.com/documentation/code-examples/ce218636-psoc-6-mcu-inter-ic-sound-i2s-example  ), which uses a PCM coded wave (array)  and fed it to the I2S bus together with an interrupt.

So far everything is okay and the I2S configuration file looks like this:

Capture1_psoc.PNG

The problem is that we are not able to run the same example in ModusToolbox as the configurator does not configure I2S interrupts.

I2S device configuration looks like as follow, there is no option for the interrupts, thus it does not generate corresponding config files or structures.

Capture_modus.PNG

Is there anyone faced with the same problem?

Regards,

Oktay

0 Likes
1 Solution
RodolfoGL
Employee
Employee
250 solutions authored 250 sign-ins 5 comments on KBA

In ModusToolbox, you need to manually set the interrupt mask. Refer to the I2S PDL documentation. There is a function called Cy_I2S_SetInterruptMask().

View solution in original post

0 Likes
6 Replies
RodolfoGL
Employee
Employee
250 solutions authored 250 sign-ins 5 comments on KBA

In ModusToolbox, you need to manually set the interrupt mask. Refer to the I2S PDL documentation. There is a function called Cy_I2S_SetInterruptMask().

0 Likes

Thanks for the answer. After Setting the interrupt mask with "Cy_I2S_SetInterruptMask()" function, how can I access to this interrupt via NVIC functions, such as "NVIC_EnableIRQ()" or "NVIC_GetEnableIRQ()" ? Previous this was done with "I2S_isr_cfg" structure.

0 Likes

It's the same method. The only difference is that in ModusToolbox, you need to manually create the structure.

It will look something like this:

const cy_stc_sysint_t I2S_isr_cfg = {

    .intrSrc = (IRQn_Type) audioss_0_interrupt_i2s_IRQn,

    .intrPriority = 7u

};

0 Likes

And the interrupt initialization has to be done like this?

    Cy_SysInt_Init(&I2S_isr_cfg, I2S_isr_Handler);

I could not find any proper example in I2S PDL documentation, which only covers function prototypes, about how to do it.

0 Likes

Furthermore, when I use a manuel structure like ;

const cy_stc_sysint_t I2S_isr_cfg = {

    .intrSrc = (IRQn_Type) audioss_0_interrupt_i2s_IRQn,

    .intrPriority = 7u

};

The compiler complains and can not find the declaration for "audioss_0_interrupt_i2s_IRQn" .

0 Likes

Probably because the PSoC you picked has only one I2S block, so you don't need the "_0_". Try audioss_interrupt_i2s_IRQn.

0 Likes