- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
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.
Is there anyone faced with the same problem?
Regards,
Oktay
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In ModusToolbox, you need to manually set the interrupt mask. Refer to the I2S PDL documentation. There is a function called Cy_I2S_SetInterruptMask().
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In ModusToolbox, you need to manually set the interrupt mask. Refer to the I2S PDL documentation. There is a function called Cy_I2S_SetInterruptMask().
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
};
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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" .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Probably because the PSoC you picked has only one I2S block, so you don't need the "_0_". Try audioss_interrupt_i2s_IRQn.