AGC by firmware


CEC firmware (and others) has a attenuator and S-meter feature.
I wonder if it would be possible to implement an AGC software function, modifying the value of ATT depending on the value read from the s-meter.
Ramón EA4GZI

John (vk2eta)

Hello Ramon,

In theory yes. I have implemented in my software an AGC extender as the MAX9814 I use as a receive AGC circuit only had 20dB of dynamic adjustment.

The approximate 50dB of additional attenuation is done by using the slow slope of the 45MHz filter and shifting the first and second oscillators by the same amount. 

The receive frequency remains the same but the resulting signal hits the 45MHz filter further down its slope.

You can find my implementation in the files section. Search for VK2ETA.

In my software I only engage the software AGC when I hit the limit of the hardware AGC and return to no attenuation when the S-meter returns to S0.

To be used 100% as a realtime AGC you would need to have a very small time constant of the S-meter analog signal, in the order of 10ms or less, and ensure that you read and adjust the attenuation at a high rate in the software.

Also, since each adjustment produces a step reduction you would need to have small frequency steps (maybe 10 to 50Hz) to avoid making each step audible.

The S-meter display would need to integrate (low pass) the read values to make it behave as the S-meters displays we are used to,  with faster attack than release.

So could well be a solution, but needs a bit of work.

Hope that helps.

73, John (VK2ETA)

John (vk2eta)

Further explanations I dug out on

73, John