I have designed two test boards to evaluate the sound levels of several speakers and buzzers. While the buzzers are functioning as expected, the speakers are producing sound levels that are significantly lower than anticipated, which is inconsistent with the frequency response curve in the datasheet.

The first test board, which utilizes the PAM8904 piezo sounder driver, is working well. I constructed a circuit which is same as the circuit on page 2 of the datasheet, powered by a 3V Lithium battery (CR2450). The input EN1 and EN2 are controlled by an Arduino (utilizing the 3x mode as specified in the datasheet), and a signal generator is used to produce the signal input for the DIN. A buzzer (PB 9.11) is connected to the output VO1 and VO2.

The second test board uses the TDA2822D for speaker testing. I built a circuit based on the one shown on page 2 of the datasheet and used a similar configuration to the first test board. However, the sound level output for the speaker CS13-00S85-04-6 is very low. I also used others type of speakers but the sound is still lower than expected. The sound is clear, but the volume is significantly lower than the frequency curve.

I think there are few potential causes for this problem:

  1. Power supply: I am using a 3V power supply. I wounder why it works for buzzers but not speakers?

  2. Signal generator input: It appears that the TDA2822D may not be amplifying the signal sufficiently to achieve a higher sound level?

  3. PCB design and components issues

Although the PAM8904 (used in the first test board) is a piezo sounder driver, I attempted to test it by connecting the speakers to the output. This also resulted in a low sound level.

  • \$\begingroup\$ What are you using as 3V supply to the TDA2822? A CR2450? \$\endgroup\$
    – Justme
    Nov 28, 2023 at 5:50
  • \$\begingroup\$ Yes, I used CR2450 for the 3V supply. \$\endgroup\$
    – Dario
    Nov 28, 2023 at 6:10

1 Answer 1


You are using a button cell battery as 3V supply for driving an 8 ohm speaker, and the CR2450 battery is not up to the task in any way.

A speaker is basically 8 ohm resistance. The speaker amplifier requires a lot of current to drive a speaker with some voltage. For example, driving even 1V into 8 ohm speaker requires 125mA.

The battery is intended for only low current loads. Typically their capacity is measured with a test current less than 1mA or pulsed loads less than 10mA for few seconds.

The battery has internal resistance which is in the order of 10 ohms, so higher than the 8 ohm load.

Basically, it means that if you are using these batteries to drive a speaker, you will dissipate more energy as heat in the battery than in the speaker.

Why the buzzer driver IC works is that piezo buzzers are not a DC resistance load, it is basically infinite resistance but high capacitance. So the piezo only takes a gulp of energy when toggling a square wave into it. The buzzer driver IC will also use a charge pump to double or triple the voltage for driving the piezo with higher voltage such as 18Vpp square wave.

The piezo driver is only meant for driving the piezo with a digital signal such as square wave, but not with linear analog waveform. It will only take up to 8mA of current when driving a piezo with 18Vpp which produces enough decibels for things like smoke alarms, which is why the piezo driver also takes only 0.001mA when shut down to prolonge battery life. The piezo driver IC is also unable to drive standard speakers as a load because driving a standard speaker requires DC current to keep voltage over it, while piezos don't require DC current.

So then for the questions:

  1. The battery works for piezo driver IC because it is meant to be used with such batteries and driving piezos don't take much DC current to drive 90-100 dB sound. The battery is completely insufficient supply for a speaker amp driving an 8 ohm speaker.

  2. The amplifier IC is not the problem, it can't get the required current from the battery before voltage sags

  3. Unlikely, it is just the battery that's the issue


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.