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/TMS320F280041C:MCP7940N RTC -C2000

Guru**** 2535750 points
Other Parts Discussed in Thread: CC2640

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/952597/ccs-tms320f280041c-mcp7940n-rtc--c2000

器件型号:TMS320F280041C
主题中讨论的其他器件:CC2640

工具/软件:Code Composer Studio

大家好、

这与使用280041C 的 MCP7940N IC (RTC-I2C)有关。 我在  上发布 了 CCS/CC2640:MCP7940N RTC 与 CC2640搭配使用。 我看到了这篇帖子、发现我有类似的问题。 我尝试了不同的从器件地址、例如0x6f 和0X3C (由 )。 我想了解在这种情况下如何选择从器件地址。  

据我所知、我按照数据表中的建议进行了所有读写操作。 我想知道我是否在这里遗漏了一些东西。 BTW、我使用 MATLAB 嵌入式编码器来开发固件。 请在调试模式期间找到 I2C 寄存器的快照。 我很少关注1。 BUSY 位始终置位。 2. NACK 始终置1。 3、IRS (美国国家税务局)始终为0。  

谢谢、

Harish K.

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

    Harish、

    MCP7940N 数据表应提供该器件的从器件地址。 您不能选择任意数字。 从 DS 中、它看起来从地址是0x6f。

    1) 1)您的 I2C 引脚是否上拉? 如果是、使用了什么上拉电阻器?

    2) 2)什么是 I2C 网络的 I2C 总线电容。

    3) 3) 3)您能否使用 I2C 逻辑分析仪探测 I2C 引脚?

    为什么设置忙位?

    BUSY 位表示 START 条件已经生成并且总线不空闲。 在 I2C 主机模式下、当产生 START 条件时、BUSY 位被置位。

    为何设置 NACK?

    当 NACK 置1时、意味着 MCP7940N 没有响应 I2C 主命令。

    为什么 IRS 清除状态?

    I2CMDR.IRS 位是用户可配置的。 在代码中、您必须清除该寄存器。 当此 IRS 位被清零时、表示 I2C 被禁用。

    此致、

    曼诺伊

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

    您好、Manoj、

    是的。 我知道从地址不是任意的、这就是我使用0x6f 的原因。 我问的原因是其中一个帖子在这个论坛中提到0X3C 作为从器件地址。 所以、我有点困惑。  

    关于上拉电阻器、我们使用了10k 欧姆

    2.同一 I2C 总线上还有 EEPROM、温度传感器和 DAC 等其他器件。 根据我们的计算、它小于400pF。 由于温度传感器的最大时钟频率约为100kHz、因此我们将以相同的频率运行所有器件。 我能够按预期对 EEPROM 和 DAC 进行编程。  

    3、现在我无法探测 I2C 引脚、因为我们没有 MSO/逻辑分析仪。  

    在获得逻辑分析仪之前、我们是否可以使用 CCS 进行故障排除?

    谢谢、

    Harish K.

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

    Harish、

    最好知道您能够在同一总线上与 EEPROM、温度传感器和 DAC 进行通信。

    如果没有逻辑分析仪/MSO、调试此类问题会变得很棘手。 但是、这就是我要尝试的结果、我们需要首先确定 MCP7940N 是否能够识别主器件何时传输其地址。 我只会使用 MCP7940N (I2CSAR = 0x6f)生成起始条件。 如果 I2CSTR.NACK 位被置位、则意味着 MCP7940甚至不响应 I2C 主设备。 如果确认、则发送不正确 的 MCP7940N I2C 命令格式可能会出错。

    如果您的总线电容在400pF 左右较高、我建议您将10K 上拉电阻替换为1K 上拉电阻。

    此致、

    曼诺伊

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

    尊敬的 Manoj:

    一旦我掌握了逻辑分析仪、我将尝试并告诉您这里的状态。  

    谢谢、

    Harish K.

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

    好的。 如果您有更多信息、请回复帖子。 线程状态已移至"等待客户"

    此致、

    曼诺伊

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

    尊敬的 Manoj:

    感谢您的耐心等待。 最后、我得到了带逻辑分析仪的 DSO、请在下面找到屏幕截图。

    我将写入数据、然后读取数据。 但是、从器件不会确认我是否错了。 在另一种情况下、当我在从系统读取时使用一个 DO 循环时、屏幕截图如下所示。

    如果您需要 details.e2e.ti.com/.../I2C_5F00_RTCC_5F00_MCP79410_5F00_2910_5F00_ert_5F00_rtw.zip、请告诉我

    编辑1:我可以从时钟读取一些数据,而不设置 NACK 位。 但是、仍然验证数据的真实性。 原因是、如果没有我发送配置控制字节的数据、

    当振荡器位启用时、NACK 位设置为1、我仍在想原因、为什么它设置为1。  这是否意味着振荡器不工作?

    如果您从我的推论中看到任何内容、请告诉我。  

    谢谢、

    Harish K.

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

    Harish、

    根据示波器快照、MCP7940N 似乎没有响应 I2C 主设备。 令人困惑的是、您能够毫无问题地与 EEPROM、温度传感器、DAC 等通信。 MCP7940N (从设备)可能不工作。

    您是否尝试更换部件(MCP7940N)? 您是否尝试将10K 上拉电阻器替换为1K 上拉电阻器。

    此外,“启用时振荡器位时”的含义是什么? 什么是振荡器位、它如何影响 I2C 通信? 您是否至少能够收到一次 MCP7940N 的 ACK?

    此致、

    曼诺伊

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

    尊敬的 Manoj:

    是的。 我能够与 RTC 通信、请在下面找到相同的屏幕截图。

    请找到下面用于 RTC 配置例程的例程。 当我执行 ST 位时、I2CSTR 的结果为1446。 但是、如果我不向具有起始位的特定秒寄存器(振荡器起始位寄存器)写入数据、I2CSTR 的结果是2460、这正是我们所需要的。 但是、它没有价值、因为它不是实时的。  

    即使在访问小时寄存器或写入值时、也会出现同样的问题。 I2CSTR 的值设置为1446。 我有一个用于相同目的的开发板。 我甚至在它上进行了测试。 但是、结果是相同的。 如果我访问小时或秒寄存器、则从机没有响应或 I2CSTR 为1446。

    请告诉我。

    谢谢、

    Harish K.  

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

    Harish K、

    您的问题更具体地针对 MCP7940N。 我不熟悉 MCP7940N 命令序列。 您需要与 Microchip 核实您的观察结果。

    但是、为什么 I2C 波形看起来是三角形的? 您在先前帖子中的第一个波形确实具有适当的方波。

    此致、

    曼诺伊

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

    尊敬的 Manoj:

    感谢您的回复。 我确实解决了与特定查询相关的一些问题。 它更多地是在执行方面。 我也不明白为什么波形有时是三角形的。 如果知道、请告诉我。

    感谢您的回答。

    谢谢、

    Harish K.

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

    Harish、

    如果我是您、SCL 和 SDA 线路上的上拉电阻会更强、比如1K。 具有更强的上拉电阻将确保总线电容在短时间内充满电。 如果拉电阻较弱、则需要更长的时间来为 I2C 总线电容充电、这可能会导致像观察到的那样出现锯齿状波形。

    《I2C 总线上拉电阻计算》-德州仪器

    此致、

    曼诺伊