TDA9437
My sound controller board is finally finished. It’s based on the TDA9437 chip. The Dip version of this chip is only available in an annoying SDIP-30 package. It will not fit on a standard prototype board.
The board had inputs for 4 stereo sources (8 pins) and a single stereo output. The IC can select between any of the connected audio sources, and an appropriate gain can be set.
This board also allows a microcontroller to control volume, treble, mid-range and bass. Mute and independent speaker control functions are also available, but I dont think I will use them.
Data transmission from the microprocessor to the TDA7439 and vice versa takes place through the 2-wire I2C bus interface. This consists of the data and clock lines, SDA and SCL. Pull-up resistors to the positive supply voltage must be used (there are no internal pull-ups).
Power up
When powered up with 9 volts, the green LCD should light up. The I2C bus address of the TDA7439 is 0x88 (88hex). This is an 8-bit address, since the arduinos’ wire library only supports 7-bit addresses, an arduino i2c scan will show 0x44. You can use the wire library to address this chip using address 0x44; the extra zero will be added automatically.
Data transmission from the microprocessor to the TDA7439 and vice versa takes place through the 2-wire I2C bus interface. This consists of the data and clock lines, SDA and SCL. Pull-up resistors to the positive supply voltage must be used (there are no internal pull-ups).
Coding
To test and use the board, I used the TDA7439 library :
#include <Wire.h> //Sound Processor chip library #include <TDA7439.h> TDA7439 equ;
On powerup the output is muted, from the datasheet :
To unmute the board, add this to setup-part in your code.
void setup() { equ.setInput(2); // 1 to 4 equ.inputGain(29); // 0 to 30 equ.setVolume(1); // 0 to 48 ( 0 is mute) //equ.setSnd(0,1); // Bass-7 to +7 //equ.setSnd(0,2); // Mids -7 to +7 //equ.setSnd(0,3); // Treble -7 to +7 equ.spkAtt(1); // Output attenuation 0 to 79 (db) }