Other Parts Discussed in Thread: MSP430F2274, ADS1298, ADS1293
Hi
I am currently working with data converter ADS1298 (self made PCB board). The MSP430F2274 from http://www.ti.com/tool/ez430-rf2500 going to program the ADS1298. I have a problem on reading Register ID of the ADS1298.
I can manage to send data via SPI sending :0x11 (Stop Data Continuous) , 0x20 (ID register address) , 0x00 (number of register to read), then 0xAA (Dummy code).
The problem is, I suppose to get the ID = 0x92(10010010), but the the MSP430 always receive 0x0F (the picture below). It seems like the MSP430 outputting 0x0F to the SIMO pin.
I tried to disconnect MSP430 SOMI pin to the ADS1298 and directly connect the output of ADS1298 DOUT pin to the oscilloscope. And the result is fine 0x92(10010010) (picture below)
I suspect the problem is because the MSP430 running with 3.6V, and the ADS1298 is powered with 1.8V DVDD which output the SPI in 1.8V as well.
But, I have checked the MSP430 datasheet, the positive threshold voltage is 1.25-2.25V. As a reference I copy part of my SPI code I used here.
//-------SPI----------------
unsigned char ADS1298_SPI_Data(unsigned char data){ //Write to Register(WREG)
UCB0CTL0 &= ~UCCKPH;
UCB0CTL0 &= ~UCCKPL;
IFG2 &= ~UCB0RXIFG; //RX flag clear
UCB0TXBUF = data;
while(!(IFG2 & UCB0RXIFG)); //while loop check
IFG2 &= ~UCB0RXIFG; //TX & RX flag clear
IFG2 &= ~UCB0TXIFG;
Clear_ADS1298_Enable(); //CLEAR ADS1298 enable
return UCB0RXBUF;
}
Am I missing something in the program? or is it because of the voltage problem?
Thanks..

