Part Number: AFE4300
Hello,
I have a problem in getting the AFE4300 start the ADC measurement. I started with a new board that was designed using reference design on TI. Am trying to communicate with the board through an Arduino UNO.
These are what has happened
- I was able to establish the communication with the AFE4300 on SPI. I have monitored the SPI Clock and data on the CRO and its fine.
- I was able to write to the device control registers and also read the data back (I have again written the data back after reading) and all the data seems to be fine.
- The device front end is powered up. I have done this by checking the VLDO which measures ~1.7V.
- I have connected a 50mV input to INP1 and INM1 of Wight measurement inputs using a potential divider. The potential divider is excited by 1.7V VLDO.
- After this I expect to see RDY(BAR) giving pulses to indicate ADC measurement ready. But I do not see anything on RDY pin (It always stays HIGH)
- Following is code snippet of how am writing to the AFE registers. (NOTE: write and read registers are implemented using SPI calls)
Serial.println("Initializing weigh scale");
writeRegister(DEVICE_CONTROL_1,0x6005); //Power up weigh scale signal chain
Serial.println(readRegister(DEVICE_CONTROL_1)); //Read to check
writeRegister(DEVICE_CONTROL_1,0x6005); //Write back
writeRegister(ADC_CONTROL_REGISTER,0x4140); //Differential measurement mode, 128 SPS
Serial.println(readRegister(ADC_CONTROL_REGISTER)); //read to check
writeRegister(ADC_CONTROL_REGISTER,0x4140); // Write back
writeRegister(ADC_CONTROL_REGISTER_2,0x0000); //ADC selects output of weigh scale
Serial.println(readRegister(ADC_CONTROL_REGISTER_2)); //Read to check
writeRegister(ADC_CONTROL_REGISTER_2,0x0000); //Write back
writeRegister(WEIGHT_SCALE_CONTROL,0x0000); //Gain = 1 DAC Offset = 0
Serial.println(readRegister(WEIGHT_SCALE_CONTROL)); //Read to check
writeRegister(WEIGHT_SCALE_CONTROL,0x0000); //Write back
writeRegister(BCM_DAC_FREQ,0x0040); //Frequency = default
writeRegister(DEVICE_CONTROL_2,0x0000);
writeRegister(IQ_MODE_ENABLE,0x0000); //Disable IQ mode
writeRegister(ISW_MATRIX,0x0000); //Channels IOUTP1 and IOUTN0
writeRegister(VSW_MATRIX,0x0000); //Channels VSENSEP1 and VSENSEN0
Any leads would be of great help
Regards,
Shankar