This ‘bug,’ or whatever, reared its ugly head during the development of a monaural audio processing system. These notes reference the ADAU1701 Development Board running under Sigma 3.11. Results described here are confirmed on two independent systems and should be repeatable.
The overall processing project is quite complex and utilizes the ADAU1701 to about 90% of its instruction capacity. But the observed problem is clearly illustrated in the partial design presented here for simplicity.
One element of the project is a closed-loop, servo-type of audio AGC (Automatic Gain Control). The circuit is a slow-acting average-power leveler that effectively erases long-term level variations in the program audio. This particular implementation was built from Sigma modules in a somewhat unconventional manner. This AGC circuit is a hierarchy board that can be deleted, ‘undo-deleted’ and saved independently. What is interesting in this illustration is that this AGC hierarchy board is not even in the signal path. It simply ‘stands alone’ with its input ‘grounded’ to a zero-volts DC Input Entry module. The theory of operation of this AGC is outlined in a User Comment on the AGC schematic sheet.
In Test Circuit A.dspproj, the Sigma DSP output essentially comes off the wiper of a single-pole, 2-position Multiplexer (switch) that selects the DSP input, either through a DC Blocking Filter or through a second-order LPF set to 10Hz. I supplied 1V p-p to the tip of the Development Board’s analog input jack and saw nearly the same signal on the tip of the output jack. Under these conditions the Sigma on-screen meter (1XRTA1) sits at about –8dB, and the peak-responding Readback_1 displays a number on the order of 0.32. This reading is identical for either position of the input switch, and overall frequency response is flat, as expected.
Test Circuit B.dspproj is identical to A, except that the AGC hierarchy board has been added to the Main circuit. Note: this AGC circuit is not in the signal path.
Now with the AGC simply resident on the page, in the first switch position, where the LPF (Gen Filter 1) is selected, at 500Hz there is a small level change from the expected value, but the response rises nearly 10dB at 10kHz. Worse than this, however, is that when the DC Blocking Filter is selected there is a tremendous first-order rolloff of low frequencies, such that 500Hz is down 25dB! In other words, something in the totally-disconnected AGC hierarchy board is affecting Sigma modules in a separate circuit that uses the same DSP chip.
In the course of sussing-out this odd behavior, I discovered that operation could be restored to normal by changing or adding unrelated Sigma blocks to the circuit. For example, making that input Multiplexer (switch) a 3-position one restores unity gain and flat response, as exemplified in Test Circuit C.dspproj. Adding an additional (or removing an unneeded) T connector, indiscriminately here or there, also made the circuit behave. But these workarounds were not consistent, nor were they considered a reliable and proper fix for this odd condition.
Following a lot of experimentation it became apparent that the key to the problem lay in the two Sigma Feedback modules used in this unique servo-mode AGC. The Sigma Help file states that these blocks introduce a delay in the path, and Sigma wants to see these salmon-colored Feedback blocks anywhere a signal is routed back to an earlier stage.
To make a long story short, it appears that these Feedback modules do not want have their outputs split. In both instances here the Feedback outputs had been T’d to drive multiple inputs. Getting rid of the Ts and using a separate Feedback module for each driven input restored proper circuit operation, seemingly unconditionally (so far, anyway). This fix is presented in Test Circuit D.dspproj, identical to B but with the revised AGC circuit.
Scientific explanations and comments are very welcome. I apologize if this situation has already been addressed; I searched for such but didn't find.