- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to add OTA functionality to my project, and I am using CE220960 upgradable stack as my base. I am adding my project's feature in piece by piece, but it seems like none of the interrupts I add into the project are working. I have been reading through the PSoC interrupt documentation looking for clues as to what I might might be doing wrong or what needs to be different for the OTA project, but I think I am doing everything I am supposed to.
Is there anything special I need to do for interrupt configuration on a DFU project?
Creator 4.4, PDL 3.1.5, CE220960
Solved! Go to Solution.
- Labels:
-
PSoC Creator & Designer Software
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Disabling the LowPowerImplementation function allowed the PCM mic to work. Needed to add a check for an unhandled PCM interrupt before going to deep sleep.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
CMISIS NVIC_DisableIRQ Issue: https://github.com/ARM-software/CMSIS_5/issues/110
CMSIS Update: https://community.infineon.com/t5/Knowledge-Base-Articles/Including-CMSIS5-Library-in-a-PSoC-Creator...
I am using a PCM mic, and it seems the issue is caused by a delay in NVIC_DisableIRQ that is not compensated for in the version of CMSIS (v5.0.5) included with PDL 3.1.5. (see CMSIS Issue forum discussion). Like in the PCM example project, I use NVIC_DisableIRQ in the interrupt handler and set a flag for the main loop to request PCM data using PDM_PCM_ReadFifo, but I am guessing an interrupt occurs while executing PDM_PCM_ReadFifo, and that is what causes the issue PCM crash. I have verified that interrupts are received after NVIC_DisableIRQ and before NVIC_EnableIRQ by incrementing an interrupt counter and printing it out in the main loop before NVIC_EnableIRQ. I am able to keep the PCM interrupts coming if I either add a 20ms delay in the main loop, or if I do not execute PDM_PCM_ReadFifo.
I am currently trying updating CMSIS using the procedure from the second link to see if that helps, but I am still having the issue. Not sure if totally sure I am doing the update correctly.
Any ideas to make this work without adding 20ms delay in my PCD data processing?
Edit: I was wrong. CMSIS v5.0.5 includes the fix discussed in the post from the link above. Looking for another solution to the problem.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Looks like I am getting 2 interrupts in a row before handling either of them, but it seems from the section "Writing an interrupt service routine" in (https://infineon.github.io/psoc6pdl/pdl_api_reference_manual/html/group__group__sysint.html) that this is expected and not a problem.
I realized that the mic data is updating much slower in my non-OTA project where the mic is working. I am trying to figure out why it is so much slower now, and see if it will also fail when it updates faster.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Disabling the LowPowerImplementation function allowed the PCM mic to work. Needed to add a check for an unhandled PCM interrupt before going to deep sleep.