I have a custom ADAU1701 board which is working fine.
I have an SPDT switch to change the value on Input_GPIO5 between 0V (GND) and 3.3V (VCC).
I have cathode of an LED connected to Output_GPIO4. The LED anode is connected to VCC through a 1k resistor.
I want to achieve the below but am unable to do so.
Toggle switch LO: LED OFF, Sig1A and 1B appear on OUT1 and OUT2
Toggle switch HI: LED ON, Sig2A and 2B appear on OUT1 and OUT2
Kindly help me on how to go about doing this.
The MUX uses an integer (28.0) control input while the GP digital input blocks produce a decimal 1.0 (5.23 format). Use a Buffer Gate to connect one to the other, as shown below. Also, don't forget to set your HW registers to recognize MP4 as an output.
Thank you so much, Bob!!
I implemented the logic in my main application and it did not work.
So to verify the hardware, I created a new project and interfaced the toggle switch, Input_gpio5, output_gpio4 and the LED only. Nothing else. It works. So this tells me that there is nothing wrong in the hardware.
Now I am going to add my application step-by-step. It has 4 x AUX_ADC, an input_output pair that interfaces to a uC, one output that interfaces to another LED and so on. Let me see what causes interaction for the toggle switch logic to not work and I will come back to you again.
As always, thanks for your prompt and correct solution with some insight on the formats the blocks are using.
I found out a few things about the multiplexer:
1. If I include the multiplexer in my signal chain, there is audio output only at 1X Program length. At 2X, the output is MUTE
2. If I include the multiplexer in my signal chain, I can toggle any GPIO (input) line with an external uC. But any I2C WRITE to Control Register (0x0820) will result in no sound on output.
Without the MUX, I did not face these restrictions.
At 1X program length there is significant loss of HF details as compared to 2X. Without the MUX, normal operation continues even at 4X with substantial increase in HF detail, though this setting is not in the datasheet specs for PLL settings of 256xfs per table 12 of datasheet.
Is this normal? Any more inforamtion would be much appreciated.
You may be running out of MIPS. Look at the files that the compiler produces. In the folders you will find the compiler_output.txt file. In that file it tells you what your MIPS usage is. Keep in mind that this is calculated for 48kHZ fs. So 1024 MAX instructions, ( a few less in reality for overhead and housekeeping at the end of the frames) If you are running at 96kHZ then it is 512 MAX and 256 MAX for 192kHz fs.
If you run out of instructions the program stops executing and goes back to the beginning. So there is code that is never reached during each frame. So often it is the code for stuffing the resulting data into the serial output port buffer that is missed and so no output.
Your diagnosis is correct and perfect. I am on the edge of usage and hence cannot go higher on sampling frequency.
So I will have to skim my signal chain or move to a bigger processor. Hmm.....
Working on the sigmaDSP platform is so engaging that more often than not you are engrossed in your application and take the technicalities for granted.