

The CN3791 is a high-efficiency step-down (buck) voltage regulator designed for low-power applications. It is capable of converting a higher input voltage to a stable, lower output voltage with high efficiency. The CN3791 features a wide input voltage range, adjustable output voltage, and built-in protection mechanisms such as overcurrent protection and thermal shutdown. These features make it ideal for use in battery-powered devices, portable electronics, and other compact electronic systems requiring efficient power regulation.








| Parameter | Value | 
|---|---|
| Input Voltage Range | 4.5V to 28V | 
| Output Voltage Range | Adjustable (up to 25V) | 
| Output Current | Up to 3A | 
| Efficiency | Up to 96% | 
| Switching Frequency | 300kHz | 
| Operating Temperature | -40°C to +85°C | 
| Protection Features | Overcurrent, thermal shutdown, short-circuit protection | 
The CN3791 is typically available in an 8-pin SOP (Small Outline Package). Below is the pin configuration:
| Pin Number | Pin Name | Description | 
|---|---|---|
| 1 | VIN | Input voltage supply (4.5V to 28V). | 
| 2 | GND | Ground connection. | 
| 3 | SW | Switching node. Connect to the inductor. | 
| 4 | FB | Feedback pin. Used to set the output voltage. | 
| 5 | EN | Enable pin. High to enable, low to disable. | 
| 6 | COMP | Compensation pin for loop stability. | 
| 7 | NC | No connection (leave unconnected). | 
| 8 | VOUT | Regulated output voltage. | 
Below is a basic example of a CN3791 circuit for a 12V input and 5V output:
VIN (12V) ----+----[10µF]----+---- VIN (Pin 1)
              |              |
             [10µH]         [GND]
              |              |
             SW (Pin 3)      GND (Pin 2)
              |
             FB (Pin 4) ----[R1]----+----[R2]---- GND
                                    |
                                   VOUT (Pin 8)
The CN3791 can be used to power an Arduino UNO. Below is an example code to monitor the output voltage using the Arduino's ADC:
// CN3791 Output Voltage Monitoring with Arduino UNO
// Connect the CN3791 output to the Arduino's A0 pin for voltage monitoring.
const int voltagePin = A0; // Analog pin connected to CN3791 output
const float referenceVoltage = 5.0; // Arduino reference voltage (5V)
const float resistorRatio = 2.0; // Adjust based on your resistor divider
void setup() {
  Serial.begin(9600); // Initialize serial communication
  pinMode(voltagePin, INPUT); // Set A0 as input
}
void loop() {
  int adcValue = analogRead(voltagePin); // Read ADC value
  float voltage = (adcValue / 1023.0) * referenceVoltage * resistorRatio;
  
  // Print the measured voltage to the Serial Monitor
  Serial.print("Output Voltage: ");
  Serial.print(voltage);
  Serial.println(" V");
  
  delay(1000); // Wait for 1 second before the next reading
}
No Output Voltage:
Output Voltage is Unstable:
Overheating:
Low Efficiency:
Q: Can the CN3791 be used for charging batteries?
A: Yes, the CN3791 is suitable for charging batteries, especially lithium-ion batteries, due to its adjustable output voltage and current capabilities.
Q: What is the maximum output voltage of the CN3791?
A: The maximum output voltage is adjustable up to 25V, depending on the input voltage and feedback resistor configuration.
Q: Can the CN3791 operate without a load?
A: Yes, the CN3791 can operate without a load, but it is recommended to have a small minimum load for stable operation.
Q: How do I calculate the feedback resistors for a specific output voltage?
A: Use the formula ( V_{OUT} = V_{REF} \times \left(1 + \frac{R1}{R2}\right) ), where ( V_{REF} ) is typically 1.25V. Select ( R1 ) and ( R2 ) accordingly.