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.

DAC8552: DAC8552 gives only zero or full scale output

Part Number: DAC8552

Hello,

right now I am trying to write an output value with a STM32F407 to the DAC8552 via SPI. According to the datasheet register description the DAC should change the value. But it only gives back full scale or zero scale. The transmitted data also seem to be right.
Right now the DAC is mounted on a breakout board. It's supplied with 5V from a lab psu. For first tests I tied V_ref to the supply voltage.

My SPI has the following configuration:

Mode: Master

Clock Frequency = 10MHz

Dataframe Size : 8bit

CPOL: 0

CPHA: 1

Firstbit: MSB

CRC: Disabled

In my software I am writing simply two different values into DAC A with a 100ms delay in between. Just fyi the function HAL_SPI_Transmit sends n bytes defined by its third parameter.

uint8_t byte1[3];
uint8_t byte2[3];

  bytes1[0] = 0x10;
  bytes1[1] = 0xAA;
  bytes1[2] = 0x00;
  bytes2[0] = 0x10;
  bytes2[1] = 0x20;
  bytes2[2] = 0x00;

HAL_GPIO_WritePin(SPI_CS1_GPIO_Port, SPI_CS1_Pin, GPIO_PIN_SET); // SYNC=High

  while (1){
    
     
      HAL_GPIO_WritePin(SPI_CS1_GPIO_Port, SPI_CS1_Pin, GPIO_PIN_RESET); // SYNC=Low
      HAL_SPI_Transmit(&hspi1, (uint8_t *)&bytes1, 3, 100); // send each element of bytes1
      HAL_GPIO_WritePin(SPI_CS1_GPIO_Port, SPI_CS1_Pin, GPIO_PIN_SET); // SYNC=High
      HAL_Delay(100);

      HAL_GPIO_WritePin(SPI_CS1_GPIO_Port, SPI_CS1_Pin, GPIO_PIN_RESET); // SYNC=Low
      HAL_SPI_Transmit(&hspi1, (uint8_t *)&bytes2, 3, 100); // send each element of bytes2
      HAL_GPIO_WritePin(SPI_CS1_GPIO_Port, SPI_CS1_Pin, GPIO_PIN_SET); // SYNC=High
      HAL_Delay(100);
  }

Did you know about such issues with the DAC8552 and a STM32Fxx? Do you have any idea what might be wrong?

Kind regards,

Simon