This content has been marked as final. Show 1 reply
Here are some ideas:
Use an OpAmp and external gain setting resistors selectable using a Mux. The feedback resistor can be a fixed one. This will require one external resistor for each gain setting you need.
The gain of a PGA is set by writing appropriate values to the PGA_CR1 and PGA_CR2 registers. I think DMA channel can be used to transfer data from a RAM array to the registers based on an index. The RAM Arrays should have the correct CR1 and CR2 values for the gain settings.
Use control registers and a mux to transfer the content of these control registers to a Status register. The control registers should have the fixed CR1 and CR2 values. Depending on the Mux channel the correct value will be written to the Status register. Use a DMA channel to transfer the content of the status register to the CR1 / CR2 registers.
Each of the above methods will need some experiments to get working. But it is very much possible to have hardware control for the PGA. Also, there may be some very simple method to control the gain in hardware, which I may be missing.