Quick answer: According to NXP's PCA9685 datasheet, the PCA9685 is an I2C LED controller with 16 PWM outputs, each offering 12-bit resolution, or 4,096 steps. Each channel has an independent duty cycle, but all channels on the chip share a programmable frequency, typically 24–1,526 Hz.
This guide covers the chip's electrical limits, frequency calculation, LED dimming and shared-bus capacity. It separates the controller specifications from the connector layout and power connections of any particular breakout board. For other lighting calculations, start with the LEDask calculator hub.
PCA9685 specifications at a glance
The key distinction is independent duty cycles with a shared frequency. According to NXP, the outputs also share their output-driver mode: you cannot mix open-drain and totem-pole operation across channels on the same chip.
The following reference values are from NXP; the conditions beside each current figure matter.
| Specification | Value according to NXP | What it means for your design |
|---|---|---|
| Chip supply | 2.3–5.5 V; inputs and outputs tolerate 5.5 V (NXP) | Keep the chip supply within this range |
| PWM control | 16 outputs, 12-bit resolution, 4,096 steps, adjustable duty cycle from 0% to 100% (NXP) | Change duty cycle per channel |
| PWM frequency | Typically 24–1,526 Hz, shared by every output (NXP) | Choose a frequency suitable for every load on that chip |
| Open-drain output | 25 mA sink capability at 5 V (NXP) | Read the conditional current limits below before sizing loads |
| Totem-pole output | 25 mA sink and 10 mA source capability at 5 V; default mode (NXP) | Sourcing and sinking have different limits |
| Clock | Internal oscillator typically 25 MHz; external clock input up to 50 MHz (NXP) | Use the selected clock frequency in the prescaler calculation |
| I2C interface | Fast-mode Plus compatible, up to 1 MHz (NXP) | Bus clock speed is separate from PWM frequency |
How much current can each output handle?
Do not treat the headline sink capability as a guaranteed minimum under every supply condition. According to NXP's static-characteristics table, at an output LOW voltage of 0.5 V and a supply of 2.3–4.5 V, the per-output sink current has a 12 mA minimum and 25 mA typical value. The same table gives a 400 mA maximum total sink current, specified at an output LOW voltage of 0.5 V and a supply of 4.5 V.
These figures describe different conditions and limits. A typical per-pin value is not a promise that every output will provide that current throughout the supply range. Likewise, the total-current ceiling does not override the individual output conditions.
According to NXP, LEDs can connect directly within its stated 25 mA and 5.5 V envelope; loads needing higher current or voltage require external drivers. Choose between direct LED control and an external driver using both the load requirements and the conditional output specifications above. A channel count alone tells you nothing about the power available to a connected load.
How do you set the PWM frequency?
Set the prescaler from the oscillator frequency and desired PWM rate. According to NXP, the calculation is:
PRE_SCALE = round(oscillator frequency ÷ (4,096 × desired PWM frequency)) − 1
NXP also specifies that PRE_SCALE can only be written while the SLEEP bit in MODE1 is set, and that the minimum loadable prescaler value is 3 (NXP datasheet). This makes frequency selection a chip-level configuration step, separate from choosing each channel's duty cycle.
Worked example: an assumed target frequency
Assumed inputs: a 200 Hz target and an oscillator operating at exactly 25 MHz for this calculation. The latter uses NXP's typical internal-clock figure, not a measurement of a particular device (NXP).
- Convert the clock: 25 MHz = 25 × 1,000,000 = 25,000,000 Hz.
- Multiply the denominator: 4,096 × 200 = 819,200.
- Divide: 25,000,000 ÷ 819,200 = 30.517578125.
- Round: round(30.517578125) = 31.
- Subtract: 31 − 1 = 30, or 0x1E in hexadecimal.
This matches the default prescaler that NXP describes as giving 200 Hz (NXP). Because the prescaler is rounded, the nominal rate is approximate: rearranging the formula gives 25,000,000 ÷ (4,096 × (30 + 1)) = 25,000,000 ÷ 126,976 ≈ 196.89 Hz with the assumed clock. Use this distinction when a calculation needs more precision than the rounded target label.
How do you turn a dimming level into a PWM count?
Choose the dimming curve before converting its output to a count. The dimming curve calculator offers a logarithmic option implemented as output percent = (input percent ÷ 100)^2.2 × 100. Here, gamma 2.2 is the calculator's planning figure, not a measured property of your LED or a built-in PCA9685 curve.
According to NXP, the PWM controller provides 12-bit resolution. The corresponding ordinary register-value range is 0 through 4,095, because 2^12 = 4,096 values and 4,096 − 1 = 4,095.
Worked example: an assumed halfway control setting
Assumed inputs: a 50% input setting, the calculator's logarithmic curve, a 0% minimum dimming setting, and a software mapping that scales the curve output onto the ordinary register range.
- Normalize the input: 50 ÷ 100 = 0.5.
- Apply the calculator's planning figure: 0.5^2.2 ≈ 0.21763764.
- Convert to percent: 0.21763764 × 100 ≈ 21.763764%.
- Convert to the selected count range: 0.21763764 × 4,095 ≈ 891.2261.
- Round to an integer: round(891.2261) = 891.
This is a software mapping example, not a claim that a halfway control setting produces halfway measured brightness. Its denominator for scaling register values is the largest ordinary value; the PWM cycle still has the step count specified by NXP. Keep those concepts separate when implementing endpoint behavior.
How many PCA9685 devices can share a bus?
According to NXP, up to 62 devices can share an I2C bus. Its 6 hardware address pins provide 64 address combinations, but the Software Reset and LED All Call addresses are unavailable for individual device addressing.
For an assumed fully populated bus, the address arithmetic is 2^6 = 64 combinations; 64 − 2 reserved addresses = 62 devices. The channel calculation is devices × outputs per device = 62 × 16 = 992 PWM channels, using NXP's device and output counts (NXP). This is addressable channel capacity, not a guarantee that a power supply can run that many attached loads.
For synchronized devices, NXP provides an external clock input accepting up to 50 MHz, allowing several controllers to use a common clock (NXP). Shared addressing capacity and clock synchronization are separate design questions.
Configuration checklist
Plan the startup state as well as normal operation. According to NXP, each LED output powers up LOW, and the active-LOW OE input can force outputs to a defined state or high impedance.
- Select an output mode for the whole chip. According to NXP, LEDs containing integrated Zener diodes require open-drain mode to avoid overheating the controller.
- Choose the common PWM frequency before assigning channel duty cycles.
- Compare the load against both per-output and total-current limits.
- Decide whether the load needs an external driver and what output state it should see during startup.
FAQ
What voltage does the PCA9685 run on?
According to NXP, the chip supply range is 2.3–5.5 V, and its inputs and outputs tolerate 5.5 V. Apply this specification to the chip; it does not establish the rating of an unrelated breakout-board power connector.
Can different channels use different PWM frequencies?
No. According to NXP, all 16 outputs share the same PWM frequency, while their duty cycles are independently adjustable.
Is 25 mA guaranteed from every output?
No. According to NXP, the static-characteristics table lists 25 mA typical and 12 mA minimum sink current at an output LOW voltage of 0.5 V and a supply of 2.3–4.5 V. Sourcing current is a different specification.
Does the chip calculate the dimming curve?
The example above calculates the curve in software. According to NXP, the chip supplies 12-bit PWM control; the calculator's gamma mapping is the software's choice of duty-cycle values.
Does a servo-driver label mean the chip supplies motor power?
That label does not establish a motor-power rating. According to NXP, this is an LED controller, and loads exceeding its direct-output current or voltage capability require external drivers; servo-specific power and timing instructions are outside this chip-level guide.
Jack Shi
Founder & editor, LEDaskJack Shi builds and writes LEDask, an independent LED-lighting tools project operated by clooms. He designs the calculators, checks their formulas and reference values against published engineering data, and writes the guides across the site.



