Toggle ON/OFF cell turns OFF randomly - ADAU1701
Hi, I've been struggling with this problem for several days and I'm not getting to the bottom of it.
In this simple block (part of a more complex project) I use the GPIO_6 input to control the toggle cell that turns on/off an LED (GPIO_7) and a volume control function.
The block works correctly, but randomly the function and the respective LED turn off on their own, without any GPIO_6 button presses occurring.
The opposite, from OFF to ON, never happens.
The turning off happens randomly in a period between about 10 and 100 minutes after turning on, on average about every 30/40 minutes.
I have also disabled GPIO_6 with a mute (after turning it on) but the problem still occurs.
Right now I am using the feedback block connected to the toggle, previously I was using interface_0 but the problem was the same.
The problem is not caused by the DSP reset, at least not a full reset because the DSP remains functional and we do not use selfboot.
How can I proceed? What other checks can I do to investigate the problem?
Many thanks
Audio Signal Processors
software
issue
toggle
sigmaStudio 4.7
problem
SigmaDSP Audio Processors
adau1701
Show More
Hello razielfirst,
This is an interesting one. You did a great job of troubleshooting this. I suggest you continue with a couple more tests.
The mute is an excellent idea. Try to move it to two different places, one at a time. See if it happens when it is in these positions I show with two arrows.
Something is getting corrupted so it would be good to know where it might be.
Look at the rest of your project. Look for index controlled objects. They can be the source of these strange issues when the index is a strange number. Most of those blocks do not range check and they just use the value on the control pin as an offset pointer to memory. So if you give it a value outside of the expected range it will happily change the value of the memory that it is pointing to. Well, that could be about anything in the DSP.
Feel free to attach your project.
Dave T
I attach the complete project, I would be very grateful if you could check it and see if there is anything wrong and what other tests I can do.
v400.0.dspproj
I did a further test implemented a method used for "mission critical" applications: I created two identical concurrent blocks whose result is compared.
If only one of the 2 toggle blocks switches to 0 the output remains at 1 and the block that became 0 is reset to 1. Both blocks must go to 0 in the same cycle for the output to switch to 0.
The problem still occurs, so both memory areas go to 0 at the same time.
Please log in to reply.



