I want to use 1701 and 1452 to make a level detector to detect the signal strength,
but I don't know how to use blocks to make led brightness will follow the signal strength.
The led brightness level will follow the signal strength, if signal is stronger the led will more bright, the other side, the lower signal level will cause lower led brightness
(I think this may use the PWM to make led bright level)
any tips for making this function?
PWM can be done by comparing the signal in question to a ramp or triangle waveform. The example shown below performs this function. Incoming audio passes through a DC Block Filter to remove…
The triangle wave "carrier" signal sets the PWM min and max levels. Presently it ranges from exactly zero to one. If you raise this waveform off the floor by adding a small DC…
I follow your advise and I adjusted the pwm cell to this:
the adder is at the top side and it add with the sawtooth (after absolute value),
I am not sure this is correct, but it works!
PWM can be done by comparing the signal in question to a ramp or triangle waveform. The example shown below performs this function. Incoming audio passes through a DC Block Filter to remove residual DC caused by the A/D converters -- use this filter anytime you're making level measurements; otherwise this DC, which typically measures about -45 dB, shows up with no input. Peak Envelope blocks measure the left and right signal levels. The Sawtooth Oscillator's output goes from -1 to +1; taking its absolute value provides a 1 KHz triangle wave spanning 0 to +1. The two ABCD Comparatorsperform the PWM -- I show their logic inverted simply to make the schematic appear neater, and re-using the level signal for the logic "high" level saves a DC source. The GPIOs accept any nonzero input as a logic "high." The attached project runs on a ADAU1701MINIZ board.
Hello there,If I want to make a signal light and a peak light, use two IO ports to connect a two-color LED. When there is a signal, one IO port outputs high. When the signal reaches a certain level, the other IO port outputs high. At this time, the signal LED output Low level? Note that I don't need PWM.thank you very much!
Since the -1451 is more powerful, there's several differences to be aware of:
Number Formats -- The ADAU1451 handles 32-bit numbers compared to 28 bits for the -1701. Thus the integer format is 32.0, akin to the 1701's 28.0 format. Audio signals are in a 8.24 format. Compared to the -1701's 5.23 format, you get one more bit after the decimal point and three before. This provides twice the resolution in the audio signal range where +/- 1.0 is still full scale, and a whopping +/- 128 for internal calculations. To recap, your "analog" format is 8.24, and your "bit" format is 32.0.
Auxiliary ADC -- The ADAU1701's aux ADCs resolve to eight bits and convert to a 5.23 format analog signal. A full-scale input provides a 1.0 decimal output. The ADAU1451's auxiliary ADCs operate much differently. They have ten bit resolution, converting to an integer result (0 -- 1023 in 32.0 format). This turns out to be more convenient when you're having the Aux ADC driving an index filter or a standard lookup table -- both of which working with integer inputs. For example, if your Aux ADC is driving a 33 value lookup table, multiply the Aux ADC output by (32 / 1023 = 0.03128).
The LED level sensing is the same as the ADAU1701 example, except for the number formats. The bass control shown operates with the Aux ADC's 0-1023 integer output -- since the ADAU1452MINIZ board has no pots, I tested it with a DC source instead. Hope this helps...
I have verified all of this, the DSP works very well, thanks again for your support, the current product can meet the requirements. But I want to know more about RAM information, DM0 and DM1, I look at the compiled output, DM1 is allocated a lot, DM0 is very small, even if I increase the delay amount, DM1 overflow will not be automatically assigned to DM0, how can I manually assign these ?
The delay cell has buttons for choosing which memory it uses. You can use DM0, DM1 or PM (Program Memory). If your program has lots of loops and is not really big then there is often lots of unused program RAM so this is a useful feature.
Sorry, I didn't notice 0 and 1 below the delay unit. This design is very good. In fact, I just use the delay to explain how to allocate RAM. The problem I encountered was that I used the ADAU1450 to perform the reverb function. I found that RAM is not enough. Later I changed the ADAU1451 to solve this problem. Can I use the PM of the ADAU1450 as a reverb? This means I can save costs.
If you have a lot of unused program RAM then yes, you can use it. The 1450 has a lot less data memory so it is a huge step down if memory size is important to your application. So this all depends on how much delay you need and the size of your program. The 1450 is also running at half speed so it can only execute half the program length.
You mean I can use the ADAU1450 to perform reverb. How to assign reverb to PM? My program is very small. I just need to know how to assign reverb to PM.
You select the "PM" button instead of the "0" or "1" buttons.
I didn't find a place to choose. Maybe you didn't pay attention. I said Reverb, not a delay.
Sorry, I thought you might have been using delay lines to make your own reverb. I did not pay attention.
As you see, there is no choice on that cell. The feature of using the PM for delays is new. This is a good thing for me to suggest as an update.
How to use delay to produce reverb effect? You have a recommended solution and I can try it.
Can you send me more reference routines? Currently we mainly use ADAU1701 and ADAU1451.
Sorry for asking a lot of questions.