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.

[参考译文] RTOS:CC2650EM_7ID + SmartRF06评估板:Sensor Controller Studio 和 I2C

Guru**** 2556120 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/572652/rtos-cc2650em_7id-smartrf06-evaluation-board-sensor-controller-studio-and-i2c

Thread 中讨论的其他器件:CC2650

工具/软件:TI-RTOS

您好!

我正在使用 CC2650EM_7ID + SmartRF06评估板并使用它通过 I2C 与外设传感器通信、最初我使用的是 driverlib 中的驱动程序、但没有成功、现在我尝试 通过 Sensor Controller Studio 使用传感器控制器。 评估板的第一项测试是使用模拟光传感器示例、测试工作正常、而不是使用 I2C 与湿度传感器(SI7006_A20)进行通信、因此我将 SmartRF06引脚配置为 DIO6 (SCL)和 DIO7 (SDA)、 移除跳线、当从器件地址为0x40且低位用于读取/写入时、我使用 sugestion 将其***一位。  

//配置并开始下一个测量
i2cStart();
i2cTx (I2C_OP_WRITE |(ALS_I2C_ADDR << 1));
i2cTx (SI_TMP_CFG);

//如果成功...
//if (state.i2cStatus == 0x0000){
i2cRepeatedStart();
i2cTx (I2C_OP_Read |(ALS_I2C_ADDR <1));
i2cRxAck (output.value);
//}
i2cStop (); 

我的执行代码很简单。 当我运行程序时、我的 i2cStatus 变量为0x0001 (NACK)、如果我没有连接传感器、则为0x0002、并且已经是0x0003。

谢谢、

Miguel

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

    我想我错过了您的问题-您能否澄清您要问的问题? (我可能完全遗漏了、抱歉)

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

    你是对的、我只是解释我的问题、但没有提出任何问题。 我想知道、如果您知道、我的 i2cStatus (0x0001)上总是有一个否定应答。 我正在使用的传感器已经在其他 MCU 上进行了测试、并且工作正常。 如果您需要更多信息、请随时咨询。

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

    您能否获得逻辑分析仪、并根据 CC2650发出的内容获取工作 MCU 的捕获数据?

    这可能只是驱动程序 A 配置问题-上面的内容将确认这一点。

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

    你好,Rebel,

    下图是使用模拟示波器的有效 MCU SCL 引脚。

      

    然后、我尝试使用模拟示波器通过 cc2650 "查看" SCL 上的信号、但没有成功。 幸运的是、我可以使用良好的数字示波器并看到时钟信号。

      

    好消息是信号就在那里、坏消息是我一直在获得 NACK、我不知道为什么、有什么建议?

    感谢你能抽出时间、

    米格尔·维埃拉

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

    您将需要捕获工作 MCU 和传感器以及 CC2650和传感器之间的时钟和数据信号。

    然后您可以看到差异所在-这将有助于我们确定问题所在。

    查看您是否可以使用更好的示波器(或数字逻辑分析仪)的两个通道。

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

    你好,Rebel,  

    我将发布一些照片和我的代码。  

      

    上图表示 i2cStatus 和变量 output.hr、您可以看到 i2cstatus 在0x001和0x002之间振荡。 有时 A 在 output.hr.

    U16
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    | tH;U16 resultL;U16 result;i2cStart();i2ctx ((ALS _I2C_ADDR << 1)| I2C_OP_WRITE);i2cTx (SI_HR_CFG);i2cRepeatedStart ();i2cTx (I2AC_ACT_RESUL_RESULT);i2ACT_RESULT
    output.tmp (i2ACT_RESULT = I2ACT_RESULT);i2ACT_RESULT (i2ACT_RESULT = I2ACT_RESULT);i2ACT_RESULT (i2ACT_RESULT = I2ACT_RESULT = I2ACT_RESULT);iCx (i2ACT_RESULT = I2ACT_RESULT = I2ACT_RESULT (i20x (iCx (iCx 结果2);i2ACT_RESULT);i2ACT_RESULT = I2ACT_RESULT = I2ACT_RESULT = I2ACT_RESULT
    
    

    我发布我的代码以帮助您了解我的情况。 最后、SCL 和 SDA 上的信号如下所示。

      

    通道1代表 SCL (顶部信号)和通道2 SDA (底部信号)

    感谢你能抽出时间

    此致、

    Miguel