TDA7563

hey all, i recently made a custom circuit board following this circuit to the latter
unfortunately, the amp itself will not turn on, i have tried tying the i2c bus to ground and putting the CD out to the voltage using the 47k resistor, there are no shorts i can assure you, i had an input of 1KHz on the 0.22uF capacitor, and studied whether the signal was continuous until it reached pin 12 on the amp using the CRO. I am using a 12.4V@30A power supply and tested today with a 13.8V@20A supply, so it's not the power supply. The speaker I am using on the output is a 4 ohm dual coil clarion sub, with only 1 coil attached, I tried it on my friends amp and it is in full working order. However the amp is seeing the input but won't amplify it to the subwoofer, this was even tested with the CRO again. is there a way i can get it to work? a thought was that does it heavily depend on the i2c bus to unmute the amp? or should it not need them to begin with? also, do i connect all 4 speakers? or should 1 be fine? it says there is open speaker detection, so im not quite sure, if this is so, its pretty strange... not many people have 4 speakers to just "attach".

thanks in advance

MadMatt

UPDATE: it has 13.8V across pins 2, 7 and 21, but has no current drain. (0.003A)

Hi,
Have you got anything communicating with the amp through the I2C BUS?
If you have, is its gnd connect to the amp gnd?

Tom.... :slight_smile:

You will get nothing out of this chip until you configure it with the I2C commands. Note you will need 4K7 pull up resistors on both I2C lines.

Because you don’t have all the speakers connected, I would imagine that the comprehensive diagnostic system has detected multiple faults, and won’t allow the amplifier to go out of standby mode.

The current you are measuring is commensurate with the amplifier being in standby mode.

You could try sending the I2C command to turn the diagnostics off.

You could also try connecting resistors (of a value that would pass the diagnostic tests) in place of the speakers.

By the way, I had to try several sites before I found a datasheet, that didn’t have an “obsolete” watermark across it.

MadMatt:
....not many people have 4 speakers to just "attach".

If I didn't have four speakers, then I wouldn't be building a four channel amplifier in the first place!

Tried all 4 speakers, it didn't work, so how would I go about programming this chip using an arduino? Is there a way I can program the amp to shut off the diagnostics and get it out of standby? :slight_smile: also, does the arduino ALWAYS need to be attached? Or after I program it, can I take it away and it will do everything itself like a normal amp? Thanks for all the replies :slight_smile: can you also specify which address it starts at? The datasheet doesn't tell me anything except the order the commands have to be done..

MadMatt

Blocks in top part of page 15 seems to be the address.

11011000 to write to the chip.

Turn on needs two more frames. See page 18.

I'm affraid you need a micro permanently hooked up to this IC.
Leo..

Wawa:
Blocks in top part of page 15 seems to be the address.

11011000 to write to the chip.

Turn on needs two more frames. See page 18.

I'm affraid you need a micro permanently hooked up to this IC.
Leo..

Thanks so much for the details, ahh that's not a problem, I'm sure i can live with that, but can you be able to post the code required for it? :frowning: please? I have never done this before... I'm a little scared.. It takes a month to ship another pair of them... I don't want to be blowing them up due to wrong coding or anything.. The i2c bus is quite powerful from what the datasheet states... Thanks again!

MadMatt

Sorry, I wish I knew how to write I2C code.
Maybe someone with experience there can chime in.
The code is explained on page 18. 3a=on, 3b=off.
It could be as easy as entering the right numbers into the wire examples of the IDE.

You could use an Arduino UNO and a fancy LCD shield (with buttons).
Then you can see what you're doing to the amp.

I2C is quite easy hardware wise.
Two data wires (clock and data) and a ground between amp and Arduino.
And two 4k7 pullup resistors between Arduino's 5volt and the two data lines.
Leo..

Hi,
What is so special about this amplifier that you don't want to have control of it by I2C?

Tom..... :slight_smile:

Look in the examples in the IDE to see how to write and read I2C devices.

I don't want to be blowing them up due to wrong coding

You can't do that, the worst it can happen is you get no sound.

Grumpy_Mike:
Look in the examples in the IDE to see how to write and read I2C devices.
You can't do that, the worst it can happen is you get no sound.

Well that's a relief.. But where is this example? I have already connected the SDA and SCL lines to the correct arduino ports, I have the pull-up resistors too, but I'm not sure where to start..

Thanks again

MadMatt

Well, some advice from another noob.
In the IDE File>examples>wire, you find master writer.
I just filled in the blanks.

#include <Wire.h>

void setup()
{
  Wire.begin(); // join i2c bus
}

void loop()
{
  Wire.beginTransmission(B11011000); // transmit to device #108 (the TDA7563's write address)
  Wire.write(B00000000);             // sends IB1 byte as in example 3a
  Wire.write(B00010011);             // sends IB2 byte as in example 3a
  Wire.endTransmission();            // stop transmitting

  delay(5000);
}

If that works, you might have to add another block to unmute the front and rear channels (table IB1).
If it all works as it should, you can include an LCD screen with control buttons.
Leo…

Wawa:
Well, some advice from another noob.
In the IDE File>examples>wire, you find master writer.
I just filled in the blanks.

#include <Wire.h>

void setup()
{
  Wire.begin(); // join i2c bus
}

void loop()
{
  Wire.beginTransmission(B11011000); // transmit to device #108 (the TDA7563’s write address)
  Wire.write(B00000000);            // sends IB1 byte as in example 3a
  Wire.write(B00010011);            // sends IB2 byte as in example 3a
  Wire.endTransmission();            // stop transmitting

delay(5000);
}




If that works, you might have to add another block to unmute the front and rear channels (table IB1).
If it all works as it should, you can include an LCD screen with control buttons.
Leo..

Wow, thanks so much! I’ll test it right now :smiley:

Well, I’m back, it didn’t work :confused: I have analog pin A4 connected to pin 26 and analog pin A5 connected to pin 23, those are the pins the arduino uses for I2C from what I can gather… The resistors pulling it up are 4k7 and they are attached to the arduino’s 5v rail is there something I am missing?

MadMatt

Did you also join grounds?
Leo..

You are missing posting your code so we can check if you are doing it right. Din't forget the code tags.

Wawa:
Did you also join grounds?
Leo…

Oh, join the arduino and tda’s grounds? Oops… Yeah I will do that then :slight_smile: thanks! Oh right, I’ll post it in a little bit, I need the code to copy and paste it haha

tried it just then, didnt work :confused: the grounds are now connected and the resistors are still tied to the 5v rail

#include <Wire.h>

void setup()
{
Wire.begin();
}

void loop()

{
Wire.beginTransmission(B11011000);
Wire.write(B00000111);
Wire.write(B00010011);
Wire.endTransmission();

delay(5000);
}

this is the code, as you can see i made some slight alterations for the channel muting, etc. i cant see the problem, unless the diagnostic pin needs to be connected too?

MadMatt

Why did you not use code tags like I said! :stuck_out_tongue_closed_eyes:

Read the how to use this forum sticky thread.

You have the I2C address wrong. The arduino uses seven bit addresses not eight bit ones. Shift your address one place to the right.

Hi Grumpy_Mike.
I gave him that code, not knowing exactly what to do.
The ICs’s datasheet states the usual 7-bit address, but also an 8th read/write bit.
Write being the last zero.
Never worked with custom I2C code, so I think we need help.

OP, did you measure the voltage on IC pin 2 (mute).
I think it has to be open, and/or have more than 7volt on it for the IC to work.
Don’t know if it has to be done with a pullup resistor, e.g. 100k?.
Leo…

Grumpy_Mike:
Why did you not use code tags like I said! :stuck_out_tongue_closed_eyes:

Read the how to use this forum sticky thread.

You have the I2C address wrong. The arduino uses seven bit addresses not eight bit ones. Shift your address one place to the right.

oh? you told me? sorry must have misread, i didnt know about it, will know for next time thanks, but how do i shift the address? do i add another 0 or? and Wawa, i already tied that to the voltage supply, so thats all good :slight_smile: thanks anyway!

MadMatt