Hi all,
I am using tm4c129encpdt controller interfaced with ads1271 ADC ic (single IC). I configured microcontroller with 120MHZ clock speed.
ADS1271 setting -> MODE: high resolution
FORMATE: SPI
First i tried to read ads1271 with gpio pin configuration and sucessfuly i read ads1271 with gpio pins.My code is as bellow
while(1)
{
if(GPIOPinREAD(GPIO_PORTD_BASE,GPIO_PIN_4)==0) // DRDY pin
{
for(i=23;i>=0;i--)
{
dt=GPIOPinRead(GPIO_PORTD_BASE,GPIO_PIN_0)==0) // DOUT pin
GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_3,0); // Clock low
GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_3,GPIO_PIN_3); // clock high
data1 = (data1 | (dt<<i) ); // collect data in data1
Delay(5); // 5microsec delay
}
}
}
Now i want to read this ADS1271 ic with SPI configuration. My code is as bellow,
***************************************************************************************************************
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2);
GPIOPinConfigure(GPIO_PD0_SSI2XDATA1); // MISO
GPIOPinConfigure(GPIO_PD3_SSI2CLK); // clock
SSIConfigSetExpClk(SSI2_BASE, 120000000,SSI_FRF_MODE_3,SSI_MODE_MASTER,2000000,8,);
while(1)
{
if(GPIOPinREAD(GPIO_PORTD_BASE,GPIO_PIN_4)==0) // DRDY pin
{
for(i=2;i>=0;i--)
{
SSIDataPut1(SSI2_BASE,DUMMY); // put dummy byte before reading data
while(SSIBusy(SSI2_BASE));
SSIDataGet1(SSI2_BASE,&dt); // read 8 bit data
data1 = (data1 | (dt<<i) );
Delay(5); // 5microsec delay
}
}
}
This code is not working please suggest me any solution.
******************************************************************************************************************
Put and get function is as bellow
void SSIDataPut1(uint32_t ui32Base, uint8_t ui32Data)
{
while(!(HWREG(ulBase + SSI_O_SR) & SSI_SR_TNF))
{
}
// Write the data to the SSI.
HWREG(ulBase + SSI_O_DR) = ui32Data;
}
void SSIDataGet1(unsigned long ulBase, unsigned char*pulData)
{
while(!(HWREG(ulBase + SSI_O_SR) & SSI_SR_RNE))
{
}
// Read data from SSI.
*pulData = HWREG(ulBase + SSI_O_DR);
}