主题中讨论的其他器件: TM4C129ENCPDT
您好!
我只是 SPI 协议的初学者、我尝试使用 CCS IDE 和 EK-TM4C129-EXL 板对 TM4C 控制器进行编程、以连接 ADS1220 ADC。 我已经在回路中测试了 SPI 接口、现在正在进行、下面列出了我用于 SPI 和与 ADC 通信的配置、ADC 不会进行寄存器回读、我请求您提供一些帮助以解决问题。
谢谢你
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SPI 配置
INTERRUPT_FLAG = 0xFF;//初始设置标志
#if defined (target_IS_TM4C129_RA0)||\
已定义(TARGET_IS_TM4C129_RA1)||\
已定义(TARGET_IS_TM4C129_RA2)
#endif
ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、120000000);//将时钟设置为以120MHz 直接从晶体运行。
SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPinConfigure (GPIO_PA2_SSI0CLK);
GPIOPinConfigure (GPIO_PA3_SSI0FSS);
GPIOPinConfigure (GPIO_PA4_SSI0XDAT0);
GPIOPinConfigure (GPIO_PA5_SSI0XDAT1);
GPIOPinTypeGPIOInput (GPIO_Porta_base、GPIO_PIN_6);//中断
GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 |
GPIO_PIN_2);
#if defined (target_IS_TM4C129_RA0)||\
已定义(TARGET_IS_TM4C129_RA1)||\
已定义(TARGET_IS_TM4C129_RA2)
SSIConfigSetExpClk (SSI0_BASE、ui32SysClock、SSI_FRF_MOTO_MOTO_MODE_1、
SSI_MODE_MASTER、1000000、8);
其他
SSIConfigSetExpClk (SSI0_BASE、SysCtlClockGet ()、SSI_FRF_MOTO_MOTO_MODE_1、
SSI_MODE_MASTER、1000000、8);
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ADC 配置
SSIEnable (SSI0_BASE);
SSIDataPut (SSI0_BASE、ADC_Reset);//重置 ADC
delay_ms (1);//确定延迟
pui32DataTx[0]= 0x43;// WREG 命令写入寄存器
pui32DataTx[1]= 0x01;// Register0数据值
pui32DataTx[2]= 0xD4;// Register1数据值
pui32DataTx[3]= 0x00;// Register2数据值
pui32DataTx[4]= 0x00;// Register3数据值
for (ui32Index = 0;ui32Index < 5;ui32Index++)
{
SSIDataPut (SSI0_BASE、pui32DataTx[ui32Index]);
}
while (SSIBusy (SSI0_BASE))
{
}
delay_ms (1);
SSIDataPut (SSI0_BASE、0x23);//读取寄存器
while (SSIBusy (SSI0_BASE))
{
}
for (ui32Index = 0;ui32Index < 4;ui32Index++)
{
SSIDataGet (SSI0_BASE、&pui32DataRx[ui32Index]);
pui32DataRx[ui32Index]&= 0x00FF;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////