This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DAC811: DAC811

Part Number: DAC811

Hello Team,

One of my customer is facing issue with configuration of DAC811, attached is the schematic and schematic and setting followed. Output voltage is not matching with register settings, can you please help with your comments to understand the issue.

DAC_REPORT_TI.xlsx

void analog_output()                //d1 input from do_next_ao //d1 contains data and d2 contains channel number
{

	uint8_t byte;
        unsigned short int d1 = 0x7FF;  //value changed on 19/3  on 4.18pm//changed by seeing the datasheet previous value 7ff

        printInt(ReadByte(a6,ao_data));

	byte = 0xCF & ReadByte(a6,ao_data);
	WriteByte(a6,ao_data,byte); //make ENEXP and ENLOC to 0
        printInt(byte);
        printInt(ReadByte(a6,ao_data));
        delay_us(3);
	//d1 = _rotlhw(d1,4);//hi nibble	//ns/ls/0/ms

	WriteByte(a6,ao_data,(d1 >> 8) & 0x0f); //output Ms

	printInt(d1 >> 8 & 0xf);
	printInt(ReadByte(a6,ao_data));    //added on 15/3/2018

	delay_us(3);

	WriteByte(a6,ao_cntl,0x3 | 0x08);                         //added this code on 19/3/2018 to set muxen bit high
	delay_us(1);

	printInt(ReadByte(a6,ao_cntl));

	WriteByte(a6,ao_cntl,2  | 0x08); //strobe msb

	delay_us(1);
	printInt(ReadByte(a6,ao_cntl));


	delay_us(1);
	printInt(ReadByte(a6,ao_cntl));

        //added on 15/3/2018
        // d1 = d1 >> 8; //0/00/ns/ls
	WriteByte(a6,ao_data, (d1 >> 4 & 0x0f) | 0x40); //middle nibble

	printInt((d1 >> 4 & 0x0f));
	printInt(ReadByte(a6,ao_data));   //added on 15/3/2018

	delay_us(3);
	WriteByte(a6,ao_cntl,3 | 0x08); //strobe msb

	delay_us(1);
	printInt(ReadByte(a6,ao_cntl));   //added on 15/3/2018
	WriteByte(a6,ao_cntl,2 | 0x08);

	delay_us(1);
	printInt(ReadByte(a6,ao_cntl));    //added on 15/3/2018


	WriteByte(a6,ao_data,(d1 & 0x0f) | 0x80 ); //output lsb

	//alt_putstr("\nDAC nibble3:");
	printInt(d1 & 0x0f);
	printInt(ReadByte(a6,ao_data));  //added on 15/3/2018

	delay_us(3);
	WriteByte(a6,ao_cntl,3 | 0x08 ); //strobe msb

	delay_us(1);
	printInt(ReadByte(a6,ao_cntl));  //added on 15/3/2018
	WriteByte(a6,ao_cntl,2 | 0x08);

	delay_us(1);
	printInt(ReadByte(a6,ao_cntl));  //added on 15/3/2018


	WriteByte(a6,ao_data,0);    //Changed the channel number on 8.15pm                       //output mux
	delay_us(3);
	WriteByte(a6,ao_data,0xd0);  //changed the channel number on 8.15pm                     //output ena
	printInt(ReadByte(a6,ao_data));   //added on 15/3/2018

}

Regards, Shinu Mathew.