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.

[参考译文] MSP430FR5969:HDC2010的 I2C 问题

Guru**** 2559190 points
Other Parts Discussed in Thread: ENERGIA, MSP430FR5969, HDC2010, MSP430F5528

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/668800/msp430fr5969-i2c-problems-with-the-hdc2010

器件型号:MSP430FR5969
主题中讨论的其他器件:EnergiaHDC2010MSP430F5528

我将 MSP430FR5969 Launchpad 与 Energia 18搭配使用(将 sketch 导入到 CCSv7)、似乎无法使 I2C 正常工作。

我的设置由 MSP430FR5969 Launchpad、Sharp BoosterPack (96*96 px SPI 存储器 LCD)和 HDC2010 I2C 温度传感器组成。 HDC2010连接到 LaunchPad 的引脚9和10 (SCL*和 SDA*-因为它们是软件仿真的)。 草图只是在 Sharp LCD 上显示从传感器读取的温度;忽略有关能量的部分、因为它现在只是恒定的替代数据。 读取温度的功能已在 Arduino Uno 上进行测试、并且工作正常。

来谈谈我的问题:

显示屏/串行终端显示的温度读数为-40、当电路板与 HDC2010不通信时显示该读数。 我使用的是 HDC2010 EVM、它包含一个 MSP430F5528 (当器件单独使用时、该器件可处理 USB-I2C 部件)、HDC2010部分可从主板上拆分。

我第一次尝试使用它时、没有将其断开、只需通过电平转换器将传感器部分连接到 Arduino Uno (请注意、MSPF5528也在电路中、可能已通电、 但不进行通信、因为我为+3.3V 电源轨供电来为传感器供电)。 它工作正常、我 获得了读数。 然后、我尝试将其与 MSP430FR5969 Launchpad 配合使用、但我一开始没有获得任何读数、逻辑分析仪显示其中一条串行线仍然持续上拉。  但是、经过一段时间后、它开始正常工作、然后再次停止。

在花了很多时间对其进行故障排除后、我决定细分 HDC2010部分(以防 MSP430F5528干扰)。 该传感器可与 Arduino Uno 配合使用、但不能与 MSP430FR5969配合使用。  

逻辑分析仪揭示了这一点:

我意外地对原始草图做了一些更改、因此我无法确定它是软件问题还是硬件问题(与上拉相关?;它的工作时间、没有连接上拉)
如果未连接外部上拉电阻、我将得到:

下面是它与 MSP430FR5969配合使用的时间的屏幕截图:

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

    这是代码。 必须作为.docx 进行附加、因为每次粘贴代码时编辑器都会挂起。

    e2e.ti.com/.../code.docx

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

    您似乎已经很好地完成了这里的所有步骤(Energia.nu/guide/T Ü I²C -check-list/)。 首先,我将简化 sketch,使其仅限于您添加的所需 I2C 函数和支持 Wire()调用。 换言之、我们通过删除所有 LCD 设置和循环代码来简化软件中的问题、以防出现某种干扰。 我查看了 SPI 代码、我没有看到任何冲突在我身上爆发、但可能仍然值得尝试。 我们肯定需要引脚9和10上的上拉电阻器、I2C 才能工作。 查看存在上拉电阻时的数据捕获、似乎 SDA 无法下拉-总线上甚至没有启动条件。

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

    尊敬的 Avner:

    谢谢发帖! 您可能需要注意的另一件事是上拉电阻器值。 HDC2010的原理图显示在电路板上实现了1.5K 上拉电阻器。 I2C 外设的运行频率是多少? 1.5K 电阻器可能仍然可以工作、但我建议在100KHz 时使用10K 电阻器、在400kHz 时使用4.7K 电阻器(根据两者之间的任何其他频率进行相应调整)。

    如果您以100KHz 到400kHz 的频率运行 I2C、我会尝试用更合适的值来关闭 HDC2010板上的1.5K 电阻器。

    如果您仍有问题或疑问、请告诉我!

    Mitch

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

    示波器显示、一旦 SCK 有效、SDA 实际上会变为高电平-这与应该发生的情况相反。 这两条线路上都有10k 上拉电阻器。 您是否有任何包含 测试 I2C 基本要素的 I2C 程序设计思想(Energia 或 CCS)? 这需要是软件仿真 I2C、以符合 Boostpack 标准。

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

    如果我没有弄错、HDC2010 EVM 部分上的1.5k 上拉电阻器位于 MSP430的器件上。 当传感器部分单独断开时、不存在电阻器。
    奇怪的是、它运行良好的时间、EVM2010上的 MSP430也已连接。 我认为这可能是干扰、所以我把它弄掉了。 传感器可与 Arduino Uno 配合使用、但不能与我正在使用的 MSP430FR5969配合使用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Avner:

    您是否仍然在使 I2C 正常工作时遇到问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dennis:  

    是的、我还没有努力让 I2C 正常工作。 示波器/逻辑分析仪迹线都显示意外行为:线路处于活动状态时变为高电平。