Quantcast
Channel: EngineerZone: Message List
Viewing all articles
Browse latest Browse all 28044

ADAU1445 - Some projects don't work when uploaded from MCU (but work with USBi)

$
0
0

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?


Viewing all articles
Browse latest Browse all 28044

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>