programming a digital controlled variable gain amplifier


I have an RFMD RDA1005L amplifier. Can I use an Arduino Uno to control the gain of it? I attached part of the datasheet of the device.

truetable.pdf (73.1 KB)

Sure, no problem. Check out the SPI library. Since it takes only 6 bits instead of the standard 8, you might have to bit-bang your own SPI, but that is not hard to do.

That should work. The Arduino has an SPI Library. I'm using a serial LED driver that uses a similar concept and I didn't bother with the SPI library... I just wrote a little function to send serial data and the control data over 3 output pins.

It's not too complicated. Basically, you write a bit to your data-pin. Then you send a clock-edge to load (AKA "clock-in") that data bit into your receiving device (your amplifier). Reset the clock, and update the output-data on the data pin. Send another clock-edge, repeat, etc. When you've sent all of the data, one bit at a time, you send a "latch" signal to tell the receiver that all of the data has been sent, so that it can re-assemble the individual bits into a byte/word, or whatever.