Other Parts Discussed in Thread: ADS127L01
主题中讨论的其他器件:ADS127L01
工具/软件:Code Composer Studio
大家好、
我无法使用 SPI 从24位 ADC (ADS127L01)读取数据。 我最初使用模块3进行设置、但后来切换到模块0 、看看这是否对任何事情都有帮助。 它没有。 当数据就绪时、ADC 将引脚(数字就绪、DRDY)拉至低电平、因此我尝试使用基于 GPIO 的中断触发 ADC 读取。 我需要以250kHz 的频率收集数据、因此我设置为以8MHz 的频率收集24位数据。 在示波器上、我可以看到 GPIO 切换。 GPIO 中断服务例程设置一个称为触发器 ADC 的标志、该标志看起来正在工作(讨论如下):
void DRDYIntHandler (void){//启动 ADC 数据传输
GPIOIntClear (GPIO_Porte _BASE、GPIO_INT_PIN_1);
触发器 ADC = true;
}
在主循环中、我有以下代码:
if (triggerADC =true){
uint8_t i = 0;
对于(i = 0;i<3;i++){
SSIDataGet (SSI0_BASE、数据点[i]);
}
触发器 ADC = false;
}
问题是、当我尝试读取数据时、我看不到 SCK 引脚切换。 如果我用 SSIDataPut 命令替换 SSIDataGet、则 SCK 引脚会切换、从而在预期频率下提供三组8个脉冲。 这表示 ISR 正在工作、并且在我需要时设置和清除标志。 我还尝试读取单个值(不使用 for (int i...) 循环)、但这也不起作用。 我还尝试使用非阻塞命令进行读取、但这不起作用。
我怀疑 SSIDataGet 命令缺少一些非常简单的东西、但我不知道它是什么。 我们将感谢您的任何帮助。
谢谢、
插孔