SWRU626 December 2025 CC3501E , CC3551E
PDM has an Automatic Gain Control (AGC) accelerator block on each of the two channels to calculate the average value, peak value and average power of the samples. The data from CIC filter shall be routed to the AGC accelerator to generate the above values that are available for software to analyze signal clipping or adjust the signal gain in the feed forward or feedback paths using software AGC routines. The AGC accelerator shall implement first order IIR filter (leaky integrator) for moving average calculation of samples generated by CIC filter and the average value shall be stored in a register for software use. The internal storage in the averaging block shall be 34-bits out of which 32-bits shall be mapped to register for CPU read out and MSB 24-bits shall be used for internal computations for peak value calculation.
For sample peak value calculation, each sample output from CIC filter is subtracted from the moving average value and the absolute value of the difference is generated. This absolute value is then compared against the previously stored peak value and the new value is stored if it is greater than the previously stored peak value. The peak value is stored in a register that is made available for software use. The peak value register is reset when software reads the peak value register and the new peak value is then computed from the next sample. There is an enable bit for peak value detector which when set enables sample averaging and peak value calculations. For 2's complement format, the output from absolute difference calculation block is 23-bits and the result stored in peak sample value register is 23-bits. For offset binary format, the output from absolute difference calculation block is 24-bits and the result stored in peak sample value register is 24-bits.
A First order IIR filter (leaky integrator) calculates the moving average of sample power. The squared value of the sample is 48-bit out of which only MSB 24-bits are presented to the sample power averaging block. The averaging block has a 34-bit internal storage for accumulation of sample power values out of which 32-bits are mapped to average sample power register for CPU read out. The scaling factor alpha is programmable by software to one of the pre-defined values (1/8, 1/16, 1/32, 1/64, 1/128, 1/256, 1/512, 1/1024) and the selected scaling factor is applied to leaky integrators of both sample average and sample average power calculation blocks. The power accumulator and average power register resets when software reads average power register and operation of power accumulation restarts from that time. There is an enable bit for sample average power calculation block which when set enables sample average power calculations.