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.

DAC53701EVM: Issues with Wave Generation Using DAC53701 in a Medical Alarm Application

Part Number: DAC53701EVM
Other Parts Discussed in Thread: DAC53701

Tool/software:

Hi everyone,

I am currently working on a medical alarm application using the DAC53701, but I am facing challenges with wave generation. I’ve been following the pseudocode provided on page 48 of the datasheet (specifically for medical alarm applications using two DACs), but so far, I haven’t been able to successfully generate a wave.

Pseudocode for first DAC:

//SLEW_RATE: 1.6384 ms (Square wave frequency: 610 Hz)
WRITE GENERAL_CONFIG(0xD1), 0xD1, 0x58
//Set MARGIN_HIGH on the first DAC
WRITE DAC_MARGIN_HIGH(0x25), 0x0F, 0xFC
//Set MARGIN_LOW on the first DAC
WRITE DAC_MARGIN_LOW(0x26), 0x00, 0x00
//Trigger square wave generation on the first DAC
WRITE TRIGGER(0xD3), 0x01, 0x00

This is the wave I am trying to reproduce:

I have verified that I can write to and read from the registers, and they hold the values I have written. Below is the sequence of register operations I performed:

  • First, I read the registers 0xD1, 0x25, 0x26, and 0xD3:

Fullscreen
1
2
3
4
5
6
7
8
write to 0x48 ack data: 0xD1
read to 0x48 ack data: 0x01 0xF0
write to 0x48 ack data: 0x25
read to 0x48 ack data: 0x00 0x00
write to 0x48 ack data: 0x26
read to 0x48 ack data: 0x00 0x00
write to 0x48 ack data: 0xD3
read to 0x48 ack data: 0x00 0x08
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Then, I wrote the recommended values and verified them:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
write to 0x48 ack data: 0xD1 0xD1 0x58
write to 0x48 ack data: 0xD1
read to 0x48 ack data: 0xD1 0x58
write to 0x48 ack data: 0x25 0x0F 0xFC
write to 0x48 ack data: 0x25
read to 0x48 ack data: 0x0F 0xFC
write to 0x48 ack data: 0x26 0x00 0x00
write to 0x48 ack data: 0x26
read to 0x48 ack data: 0x00 0x00
write to 0x48 ack data: 0xD3 0x01 0x0A
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Despite these steps, I haven’t been able to generate a square wave as expected. I’m focusing on generating the square wave first to confirm that wave generation is functioning correctly before moving on to the configuration with two DACs.

I’m not sure if I’m missing any critical step. Is there any specific action I need to perform with the GPI pin or something else to enable the wave generation?

Thank you!

  • Hi Jon, 

    You can either use the GPI pin (HW trigger) or the internal bit to start the function generation (SW trigger). You're doing software trigger with the write to register 0xD3. 

    I went into some detail in the following thread on getting the medical alarm function up and running: DAC53701: Generating medical Audio and visual alarm - Data converters forum - Data converters - TI E2E support forums

    If I remember correctly, that user was having a similar issue, and it had to do with a mistake in the datahseet pseudo code for the write to register 0xD1. 1. The EN_PMBUS bit is set when it shouldn't be, and 2. The slew rate field has the incorrect code so the frequency would be incorrect anyway, 3. (the culprit) the power down bit is being set, so the output is just powered down. Try writing 0xC100 instead and let me know if that works. 

    Best,

    Katlynne Jones

  • Hi Katlynne,

    Thank you for your response. I was able to successfully implement the alarm.

    Best regards,

    Jon