主题中讨论的其他部件:ADS1120, HALCOGEN
你(们)好
我是这款转换器的新用户,使用简单的写寄存器和读寄存器命令测试我的ADS1120,以了解其工作原理。 我正在 使用Mibspi协议测试此问题。
我正在使用Halcogen来生成驱动程序。 我为此创建了3个转接组。 TS0 5字节,TS1 1字节,TS2 3字节和TS3 4字节。
我在RM48中作为主代码运行此代码。
这是我的代码:
Void主(void)
{
/*用户代码开始(3)*/
UINT16_t resetCmd = 0x06;
uINT16_t startCmd = 0x08;
UINT16_t writeRegCmd[5]={0x43,0x08,0x04,0x10,0x00};
UINT16_t readRegCmd = 0x23;
UINT16_t rxBuffer[4]={0};
/*初始化RTI驱动程序*/
rtiInit();
/*启用RTI比较0中断通知*/
rtiEnableNotification (rtiNOTIFICION_COMPARE0);
/*启用IRQ -清除CPS寄存器中的I标志*/
/*注:这通常由操作系统或Svc调度程序*/完成
_enable_IRQ();
/*初始化MibSpi*/
mibspiInit();
//重置ADC1120
mibspiSetData(mibspireG1,&resetCmd);
mibspiTransfer (mibspireG1,1);
while (!(mibspiIsTransferComplete (mibspireG1,0)));
//将值写入所有4个寄存器
mibspiSetData (mibspiREG1,0,writeRegCmd);
mibspiTransfer (mibspireG1,0);
while (!(mibspiIsTransferComplete (mibspireG1,0)));
//从所有4个寄存器读取值
mibspiSetData(mibspireG1,&readRegCmd);
mibspiTransfer (mibspireG1,1);
while (!(mibspiIsTransferComplete (mibspireG1,1)));
//获取数据
mibspiGetData (mibspireG1,3,rxBuffer);
mibspiTransfer (mibspireG1,3);
while (!(mibspiIsTransferComplete (mibspireG1,1)));
mibspiSetData(mibspireg1,&startCmd);
mibspiTransfer (mibspireG1,1);
while (!(mibspiIsTransferComplete (mibspireG1,1)));
/*启动RTI计数器块0 */
rtiStartCounter(rtiCOUNTER_BLOCK0);
/*永远运行*/
同时(1);
/*用户代码结束*/
}
以下是将ADS连接到RM48的方式
/*电线连接
* ADS1120 --- RM48
* TP5 -黑色-> DOUT
* TP3 -橙色->- DIN
* TP2 -白色-> SCLK
* TP1 -紫色-> CS
*/
当我尝试读取寄存器值时,我得到了所有4个寄存器的FF。 现在,我陷入困境,需要一些帮助才能继续前进。
以下是协议分析器显示的内容:
谢谢
Thomas

