线程中讨论的其他部件:TMS320F2.8377万S, ADS1298
您好,
我正在使用TMS320F2.8377万S与ADS1298通信。 我能够对ADC进行编程,并验证寄存器是否更改为所需的值。 但是,一旦我将其置于RDATAC模式,我就无法从DOUT引脚获取数据。 这是我的波形图像。 请注意,顶部数据为DIN,底部数据为DOUT。
我希望在DRDY变低时启动时钟时,这种方法会起作用。 由于24位状态的默认值,我还希望在第一个半字节中看到0xC,然后看到其他数据。 我不应该看到所有的0
这是我的ISR的副本
中断无效ISR_DRDY_XINT1 (无效)
{
//delay_us (1);
ADC_DOUT = SPI_RX_DATA();
interrupT_clearACKGroup(interrupT_ACK_Group1);
}
这是我的主页的副本
Void主(void)
{
常规设置();
//设置SPI,手动控制/CS-pin61
SPI_init();
//开始ADC的通电例程,需要手动控制/CS-pin61
ADC_POWER_INIT();
interrupT_init();// 将导致上述ISR在DRDY变低时触发
SPI_TX_CMD (SDATAC); //停止默认数据流,以便写入寄存器
SPI_RX_BYTE (ID); //通过确认ID验证SPI工作
SPI_TX_STRING(ADC_INIT_ADDR, ADC_INIT_DATA, sizeof(ADC_INIT_ADDR); //对设备进行编程:写入寄存器,读取寄存器以确认正确写入
SPI_TX_CMD (RDATAC); // PUT器件处于读取数据连续模式
SPI_TX_CMD (START); //开始数据转换
while (1); //在ISR被触发时,请永远在此处等待
}
