• 0
milad

AD5933 doesn't back register values

Question

I'm using the ASF in Atmel Studio for i2c interface which works fine, but when I want to read data from any register the slave generates 0x00. Plus, I connect the MCLK pin to external 1MHz frequency.

This is my code for temperature measurement:

 

//sets the register pointer

void setPointer(unsigned char address)
{
   uint8_t buffer[2] = { 0xB0, address };      //0xB0: pointer command, address: the address that master point to
   twi_package_t packet_write = {
      .chip = 0x0D,
      .buffer = buffer,
      .length = 2,
      .no_wait = false
   };
   twi_master_write(&TWIC, &packet_write);
   while(slave.result != TWIS_RESULT_OK);
}

 

//sends the address register and data register

void sendByte(unsigned char address, unsigned char data)
{
   uint8_t buffer[2] = { address, data };
   twi_package_t packet_write = {
      .chip = 0x0D,
      .buffer = buffer,
      .length = 2,
      .no_wait = false
   };
   twi_master_write(&TWIC, &packet_write);
   while(slave.result != TWIS_RESULT_OK);
}

 

//read a byte from AD5933

unsigned int getByte(unsigned char reg_loc)
{
   setPointer(reg_loc);
   uint8_t buffer[1];
   twi_package_t packet_read = {
      .chip = 0x0D,
      .buffer = buffer,
      .length = 1,
      .no_wait = false
   };
   while (twi_master_read(&TWIC, &packet_read) != TWI_SUCCESS);
   return slave.receivedData[TWIS_RECEIVE_BUFFER_SIZE];
}

 

void main()

{

   init_i2c();

   sendByte(0x80, 0x90);      // put the 0x90 value into the control register (0x80)

   delay_ms(50);

   while(1)

   {

      getByte(0x80)//I expect it returns 0x90 but it returns 0x00

      //data processing for temperature value

   }

}

 

But it always stays at while(getByte(0x8F) != 0x01);

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Hi @milad,

Welcome to the forums. Unfortunately, we haven't had time to make a library for the Pmod IA that uses the AD5933 . Here is a forum thread that has a link to a Raspberry pi project using the PmodIA that should be a good reference. They also have some good calibration suggestions. 

thank you,

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now