

The Pimoroni PGA2350 is a high-performance programmable gain amplifier (PGA) designed for precise control of signal amplification. It features a digital interface, enabling seamless integration with microcontrollers and other digital systems. The PGA2350 is particularly well-suited for audio applications, sensor signal conditioning, and other scenarios requiring fine-tuned signal amplification.








The following table outlines the key technical specifications of the Pimoroni PGA2350:
| Parameter | Value |
|---|---|
| Supply Voltage (VDD) | 4.5V to 5.5V |
| Gain Range | -95.5 dB to +31.5 dB (0.5 dB steps) |
| Control Interface | SPI |
| Input Impedance | 10 kΩ |
| Output Impedance | 100 Ω |
| Maximum Output Voltage | ±4.5V (at VDD = 5V) |
| Power Consumption | Low power operation |
| Operating Temperature | -40°C to +85°C |
| Package Type | 16-pin SSOP |
The Pimoroni PGA2350 is housed in a 16-pin SSOP package. The pinout and descriptions are as follows:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | VDD | Positive power supply (4.5V to 5.5V) |
| 2 | GND | Ground |
| 3 | IN1 | Input signal channel 1 |
| 4 | IN2 | Input signal channel 2 |
| 5 | OUT1 | Output signal channel 1 |
| 6 | OUT2 | Output signal channel 2 |
| 7 | SCLK | SPI clock input |
| 8 | SDI | SPI data input |
| 9 | CS | Chip select (active low) |
| 10 | MUTE | Mute control (active high) |
| 11 | NC | No connection |
| 12 | NC | No connection |
| 13 | NC | No connection |
| 14 | NC | No connection |
| 15 | NC | No connection |
| 16 | NC | No connection |
Below is an example of how to control the PGA2350 using an Arduino UNO via SPI:
#include <SPI.h>
// Define SPI pins for the PGA2350
const int CS_PIN = 10; // Chip select pin
void setup() {
// Initialize SPI communication
SPI.begin();
pinMode(CS_PIN, OUTPUT);
digitalWrite(CS_PIN, HIGH); // Set CS pin high (inactive)
// Configure SPI settings
SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE0));
}
void setGain(float gain) {
// Convert gain to a 16-bit command
// Gain range: -95.5 dB to +31.5 dB in 0.5 dB steps
int gainSteps = (int)((gain + 95.5) * 2); // Convert gain to step value
byte highByte = (gainSteps >> 8) & 0xFF; // Extract high byte
byte lowByte = gainSteps & 0xFF; // Extract low byte
// Send the command to the PGA2350
digitalWrite(CS_PIN, LOW); // Activate chip select
SPI.transfer(highByte); // Send high byte
SPI.transfer(lowByte); // Send low byte
digitalWrite(CS_PIN, HIGH); // Deactivate chip select
}
void loop() {
// Example: Set gain to 0 dB
setGain(0.0);
delay(1000);
// Example: Set gain to -10 dB
setGain(-10.0);
delay(1000);
}
No Output Signal:
Distorted Output:
SPI Communication Failure:
Excessive Noise:
Q: Can the PGA2350 be used with 3.3V microcontrollers?
A: Yes, but you will need level shifters for the SPI signals, as the PGA2350 operates at 5V logic levels.
Q: What is the maximum gain of the PGA2350?
A: The maximum gain is +31.5 dB, adjustable in 0.5 dB steps.
Q: How do I mute the output?
A: Drive the MUTE pin high to mute the output signal.