I'm experimenting with the DAC TDA1543 that uses I2S communication (the name looks like I2C, but it's not the same).
The datasheet is here:
http://www.datasheetcatalog.org/datasheet/philips/TDA1543.pdfSince the communication protocol looked for me quite similar to the shiftout function, I've modified the following code to drive it:
void mishiftOut(word val, boolean wsSel)
// if wsSel is HIGH, RIGHT channel is selected.
{
uint8_t i;
digitalWrite(WSPIN, wsSel);
for (i = 0; i < 16; i++) {
digitalWrite(CLOCKPIN, HIGH);
digitalWrite(DATAPIN, !!(val & (1 << (15 - i)))); //MSB FIRST
digitalWrite(CLOCKPIN, LOW);
}
digitalWrite(WSPIN, !wsSel);
}
The wiring is prettey simple, 3 pins of the arduino are used to connect with the ICs data, clock and WS pins.
I've tested it, trying to get different DC voltages in the Analog Outputs (measuring with a multimeter), so far without success. Voltage does not change.
As far as I understand from the datasheet, once the signal is sent, the output should be latched. I'm not using a high frecuency, just sending a stream every 2 seconds.
As far as I understand from the datasheet, I should get an output between 1.8 and 3.8V (5V - 1.2V)
Does anyone have experience with this IC? Is the code I've written right?
Regards