ΣSigmaStudio Ask AI Русский Log in

Changing to a different DSP chip

SigmaDSP & SigmaStudio rick-curl Aug 27, 2021 00:00 5 replies Original on forum ↗
Subscribe
rick-curl Question
Aug 27, 2021 00:00

I used SigmaStudio a LONG time ago to develop some code for an ADAU1701 for a product my company is manufacturing. Now the chips are in short supply, and I need to change to a different DSP. The ADAU1702 looks to be very similar and is not only easier to get- it's less expensive too. It's been a while since I worked with SigmaStudio, but after spending a couple of hours with it I can't see a way to start with the same project I developed but change to a different DSP. It's got to be something simple that I'm just overlooking. Can some kind soul point me in the right direction?

Thank you!!

-Rick

Audio Signal Processors

adau1702

SigmaDSP Audio Processors

adau1701

DaveThib Reply
Aug 27, 2021 00:00

Hello Rick,

Yes, the entire industry is suffering from this issue.

The 1702 is the same except for less memory and fewer MIPS. So what is your program MIPS usage? Do you know where to find the info?

Regarding changing your program to another DSP in SigmaStudio, that will depend on which processor you are coming from and going to. Worst case you will have to recreate the project from scratch. It is a larger subject so I will not go into more details until the DSPs are identified.

Here is a post that explains where to find the code size of a 1701 project. KJBob posted the reply.

(+) ADAU1701 size program trouble - Q&A - SigmaDSP Processors and SigmaStudio Development Tool - EngineerZone (analog.com)

Dave T

rick-curl Reply
Aug 27, 2021 00:00

Hi Bob-

Thanks for the reply. Unfortunately I don't know how to determine my MIPS usage. I searched for the info but couldn't find it.

As for the info in the compiler_output file, there are actually four versions of the code that SigmaStudio generated (four variations of the product). Here is the info from the file:

#1:

################## Summary ########################
(Note: Estimates are based on a 48 kHz sample rate)

Number of instructions used (out of a possible 1024 ) = 421

Data RAM used (out of a possible 2048 ) = 1641

Parameter RAM used (out of a possible 1024 ) = 93

#2:

################## Summary ########################
(Note: Estimates are based on a 48 kHz sample rate)

Number of instructions used (out of a possible 1024 ) = 170

Data RAM used (out of a possible 2048 ) = 82

Parameter RAM used (out of a possible 1024 ) = 56

#3:

################## Summary ########################
(Note: Estimates are based on a 48 kHz sample rate)

Number of instructions used (out of a possible 1024 ) = 80

Data RAM used (out of a possible 2048 ) = 25

Parameter RAM used (out of a possible 1024 ) = 37

#4:

################## Summary ########################
(Note: Estimates are based on a 48 kHz sample rate)

Number of instructions used (out of a possible 1024 ) = 170

Data RAM used (out of a possible 2048 ) = 82

Parameter RAM used (out of a possible 1024 ) = 56

Thanks for guidance on this!

-Rick

DaveThib Reply
Aug 27, 2021 00:00

Hello Rick,

You found the file but you may have changed the name of the project a few times so it created different files or something like that. Just load up your project, compile it and then look for the file with the correct date and time stamp.

The 1702 has half the amount of instructions available. So 512 instructions are the max. There are a few instructions used for overhead so any program that is under 500 instructions should work fine. Fortunately, all the examples you posted do not exceed that limit.

Your usage of Parameter RAM cannot be more than 1024 so you are good there.

Data RAM is the only possible issue. The 1702 only has 0.5k Words so 512 words. One of your files was using 1641 words. I am guessing you were using a large delay cell with a long MAX delay setting.

So depending on what your latest program is really using, I think you may be able to switch to the 1702.

Technically, you do not have to change anything in your program and it should load in just fine. You just have to be certain that you are not exceeding the resources.

Otherwise, to switch over is not that complicated but it is a lot to explain. In short, first save the file under a new name, Then you drop in the 1702 processor into the project and connect it to the USBi GUI. It will assign it an "IC" name. If you have an EEPROM then it will probably be IC3. Otherwise it will be IC2.

Then go to the schematic and do a CTRL-A and select the entire schematic. Then right click anywhere inside the schematic window and select "Change IC". So change it to the correct name that was assigned. IC3 or IC2. ( Do not assign it to the EEPROM name )

Then you should be able to go back to the config page and delete the 1701. If it says there are still elements in the design then go back and delete the input cell and the output cells and drag those in from the 1702 section of the toolbox and reconnect. Then you should be able to delete the 1701 and compile the project.

That should do it.

Dave T

rick-curl Reply
Aug 28, 2021 00:00

Thanks, Dave!

I won't be able to try this until I get my hands on some of the 1702 chips- maybe toward the end of the week. Eager to give it a shot. I'll report back here after I get it working.

-Rick

DaveThib Reply
Aug 30, 2021 00:00

Hello Rick,

FYI, SigmaStudio does not check what DSP is actually attached. It does not know. So you can change to the 1702 GUI object and compile and run it on the 1701. The code is the same and the registers are the same so it will run. Then you can look at the instruction and RAM usage statistics to determine if it will run on the 1702. Of course the final test does need to be with the 1702 for 100% confidence but there is a lot you can do before you have the 1702 on hand.

Dave T