So here is the situation:
I've used the 144x series a few times and haven't had a problem like this show up until now.
My setup: 1445 being controlled via a PIC32 over SPI. I have some jumpers on the board so I can switch to using the USBi for debugging/testing things in SigmaStudio.
Generally, uploading the code via the PIC32 and controlling everything works fine. There are some particular projects however, that don't respond after initialization/upload. I will hear audio, but writing to anything like a volume slider or switch is non-responsive. Also, reading a readback that is supposed to be the peak volume gives a constant number, even though I can hear the audio, which is varying in volume of course.
These same projects will upload and run fine over USBi. My init process is the normal "default_download_ic1()" (after setting to SPI mode). If I readback the entire contents of program RAM and compare it to the Program_Data_IC_1 array generated by SigmaStudio, they are the same.
Now, here is the strange part. The only projects that are failing are ones with a FIR filter in it. I've used FIR blocks with 200 coefficients before (in another application) and have not had a problem, as long as I stayed under the max MIPS/coefficient limits of the sigma chip, of course. Here, if a put a FIR filter in with 80 coefficients, the project will not respond when uploaded from the PIC32. The %'s in the compiler output are all under 25%, with the MIPS being the most at 23% (I'm running at quad rate). If I remove that FIR filter and replace it with a ton of first order filters (just to max out the MIPS at 25%), the resulting project works fine. If I drop the # of coefficients to 60, the project will deceptively appear to work, but certain blocks within the project will not respond, and others will!
This is what the non-working project looks like (with the 60 coeff FIR)
Subroutines called:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 800 800 338 265
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
(%) 22% 20% 4% 6%
And this is what a working project looks like, where the FIR is replaced by a ton of 1st order filters to max out the MIPS:
Subroutines called:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 894 894 364 253
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
(%) 25% 22% 4% 6%
At quad rate, this should be well within the limits! Any idea what is going on here?