AD7124 writing to registers

buerni

New member
Hi!

I have setup a simple code for my AD7124:

#define AD7124_READ 0x40
#define AD7124_WRITE 0x00
#define AD7124_COMM_REG 0x00
#define AD7124_STATUS_REG 0x00
#define AD7124_CONTROL_REG 0x01

/* adc config register */
#define AD7124_FULL_POWER 0xC0
#define AD7124_LOW_POWER 0x00
#define AD7124_MID_POWER 0x40
#define AD7124_DATA_STATUS 0x04
#define AD7124_INT_CLK 0x01
#define AD7124_CONTIN_MODE 0x00

void ad7124Init (void)
{
uint8_t i;

for (i = 0; i < SPI_BUFFER_SIZE; i++)
{
spiTransmitBuffer = 0xff;
spiReceiveBuffer = 0xff;
}

sspiTransmitByte (AD7124_READ | AD7124_STATUS_REG);
sspiReceive (spiReceiveBuffer, 1);

/* write adc control register */
spiTransmitBuffer[0] = AD7124_WRITE | AD7124_CONTROL_REG;
spiTransmitBuffer[1] = AD7124_CONTIN_MODE | AD7124_DATA_STATUS;
spiTransmitBuffer[2] = AD7124_FULL_POWER | AD7124_INT_CLK;
sspiTransmit (TransmitBuffer, 3);

sspiTransmitByte (AD7124_READ | AD7124_CONTROL_REG);
sspiReceive (ReceiveBuffer, 3);
}

I am using a soft spi library to first set the control register and after that read it to check if it worked. ReceiveBuffer should contain the bits that were set with the TransmitBuffer, but it contains only 0. Does anyone have an idea what I am doing wrong?

buerni
 
Back
Top