This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TM4C123GH6PM:SPI 读取困难

Guru**** 2752855 points

Other Parts Discussed in Thread: ADS127L01

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/918482/ccs-tm4c123gh6pm-spi-read-difficulty

器件型号:TM4C123GH6PM
主题中讨论的其他器件: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 命令缺少一些非常简单的东西、但我不知道它是什么。  我们将感谢您的任何帮助。

谢谢、

插孔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的理解是、只有 SSI 发送操作才会产生 SCK。

    如果只读取数据、则需要重复以下序列:

    a.调用 SSIDataPut ()以传输一些生成 SCK 的"虚拟"数据。

    b.调用 SSIDataGet ()来读取 SSI 接收数据。

    当然,TivaWare 外设驱动程序库用户指南并未明确说明这一点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、谢谢。  我将查看我是否可以确定这是否允许我读取 ADC。  测试需要一段时间、但如果可以、我将单击"问题已解决"按钮。

    再次感谢、

    插孔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jack:

     感谢 Chester、他对启动 SPI 时钟所需的虚拟数据表示正确。 SSIDataGet ()仅从 RX FIFO 中读取数据。 它不会启动传输。 是 SSIDataPut ()启动传输。 虽然您的从器件可能不需要 MOSI 输入、但它确实需要时钟来同步 MISO 引脚上的返回数据。 因此、您需要创建三个8位虚拟数据来接收24位数据。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的。  感谢切斯特和查尔斯。  我将关闭该线程。

    最棒的

    插孔