Sigma DSP integration in micro controler - weird behavior
Hi,
It's been a while I've been running into problems with the integration of my Sigma DSP with a micro controler.
The problem is usually as follows:
1) When I try my Sigma DSP program real time using Sigma Studio everything is fine.
2) I export the Sigma DSP project using Sigma Studio's Export System files button after compiling.
3) Integrate the code in my micro controler
= Sometimes it works sometimes it doesn't...
It all depends whether I have some specific blocks I added that causes my output audio signals to sound weird (out of pitch), or have no output at all... Again when I run it in Sigma Studio everything is fine, but not when using the micro controler.
Can this be because I'm using Sigma Studio 3.8?
I was able to bypass these problems, but now I really need to make it work...
Thanks for your help!
sigma studio
micro controller
export
SigmaDSP
By the way I am not able to open my old sigma studio projects using the new Sigma Studio 3.11 in windows 7 x64.
Is there a fix?
Hi Vincent,
What are you using as your host interface? SPI or I2C?
The first thing to look at is how does the SigmaStudio download signals and timing look compared to your host microcontroller code? SigmaStudio combined with the USBi microcontroller firmware tends to generate much slower timing, especially for the SPI accesses. If you can capture the USBi byte sequences with the logic analyzer and compare them to your host byte sequences, maybe that might give you an indication if you are missing bytes or transmitting additional bytes.
If all byte sequences are identical, some other things to try would be to extend additional delays after programming the PLL, or adding delays between your register and block writes to see if that helps with the download.
Regarding migration of older 3.8 projects into 3.11, this should be fine to open the older projects as long as there are no missing custom algorithm DLLs or 3rd party DLLs that were included in the 3.8 installation but missing in the newer install.
-JT
Hi,
Thanks for your quick answer. I am using I2C. I don't have any logic analyzer and even if I did it would be really tricky to monitor these signals.
If all byte sequences are identical, some other things to try would be to extend additional delays after programming the PLL, or adding delays between your register and block writes to see if that helps with the download.
I don't understand exactly where I would put the additional delay? In Sigma Studio or in the micro controler in the default_download_IC_X() function? or between the calls of the function? I don't understand what you mean by programming the PLL...? If I understand correctly I should add some delays in between the SIGMA_WRITE_REGISTER_BLOCK instructions in the default_download_IC_X(). I saw that there is already a function called SIGMA_WRITE_DELAY that is included in the default_download, should I use this function to add the delays?
I do have some custom algorithm DLLs that I added back in Sigma Studio 3.11 folder. I can see it in Sigma Studio when I create a new project, but as soon as I open my previous projects Sigma Studio crashes... I installed version 3.10 and it seems to work fine even with the custom DLLs and previous projects.
Thanks a lot!
Hi,
So I did add several delay between SIGMA_WRITE_REGISTER_BLOCK function calls. Also added 200ms between my default_download_IC_X call in my main.c
I am still unable to get my audio stimuli to sound right. Now program takes more time to boot up also (of course)...
I attached the code of my default_download_IC_1 function to this post.
Can it be that I don't put enough delay? shoud I put more or less? maybe it is not at the right place? Should I change R4_delay to another name for the other delays or doesn't matter?
I also noticed that in my SigmaStudioFW.h , where my SIGMA_WRITE function is defined I had cut the data in smaller blocks and looped to send the blocks to the DSP. I had a few delays there that I have increased just now, but still nothing better (at least it's not worse).
I don't know what I could do now :S
I was able to solve my problem by reducing the number of Coefficients of my 2 x NLMS filters in my second DSP (which also routes the faulty audio stimuli as a digital signal to the DAC on this DSP).
Reducing the number of coefficients seems to allow more MIPS for the stimuli?
Hope this will help others!
This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.
Thank you,
EZ Admin
Please log in to reply.