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/TM4C123BH6ZRB:适用于 TI-RTOS 的 I2C 命令 I2C_MASTER_CMD_QUICK_COMMAND

Guru**** 2601915 points
Other Parts Discussed in Thread: TM4C123BH6ZRB

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/740214/rtos-tm4c123bh6zrb-i2c-command-i2c_master_cmd_quick_command-for-ti-rtos

器件型号:TM4C123BH6ZRB
主题中讨论的其他器件: TM4C123

工具/软件:TI-RTOS

你(们)好
我使用 IIC 端口2定义主站、但在"Initiate send of address from Master to Slave"中运行、因此 TI-RTOS 崩溃。
  如何使用"I2C_MASTER_CMD_QUICT_COMMAND"?
  我在下面的列表中编码3个步骤。  

//初始化主从设备
I2CMasterInitExpClk (I2CPortBased[I2C->bus]、MAP_SysCtlClockGet ()、IIC_params[I2C->bus].bitrate=I2C_400kHz? true:false);

//指定从机地址
I2CMasterSlaveAddrSet (I2CPortBased[I2C->bus]、I2C->address、false);

//启动从主设备到从设备的地址发送
I2CMasterControl (I2CPortBased[I2C->bus]、I2C_MASTER_CMD_QUICK_COMMAND);

2.我使用软件环境
tirtos_tivac_2_14_04_31
TivaWare_C_Series-2.1.4.178
IAR 7.4
TM4C123BH6ZRB

BR、

JK

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    再次阅读 TM4C123数据表、我找不到支持 SMBus 快速命令的 I2C。 我倾向于认为这不是一个受支持的功能。 在驱动程序库中找到 I2C_MASTER_CMD_QUICT_COMMAND 的原因是 TM4C129器件确实支持 SMBus 和快速命令。 尽管 TM4C129支持 SMBus、但根据数据表、它仅限于100kHz、而不是400kHz。

    话虽如此、您的崩溃问题可能与使用 TM4C123中的快速命令无关。 由于您使用的是 TI-RTOS、因此最好检查您是否为任务预留了足够的堆栈。 尝试为您的任务增加堆栈大小、看看这是否会产生影响。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    非常感谢您的回复、  

    TM4C123支持3.33Mbps。

    四种传输速度:
    –标准(100 Kbps)
    –快速模式(400 Kbps)
    –超快模式(1Mbps)
    高速模式(3.33 Mbps)

    BR、
    JK

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

    您好!

     我的理解是、快速命令是 SMBus 协议定义、其中 R/S 位用作1位数据。 即使在数据表中提到 SMBus 的 TM4C129中、它也限制为100kHz。 正如我提到过的、TM4C123数据表中没有提到 SMBus。  

     BTW、您是否有机会增加任务堆栈大小?

    以下是 TM4C129数据表中的内容。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、
    旧任务堆栈大小为512。
    我已将任务堆栈大小增加到1024。
    结果失败。

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

    您好、Charles、

    抱歉、这是 公司的项目、  

    所以、我无法向您展示。

    BR、

    JK

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    在这种情况下、我建议您先在非 TI-RTOS 环境中创建 I2C 操作。 确保其正常工作、然后将代码移植回 TI-RTOS。 通过这种方法、我们可以确定它是否与驱动程序问题、硬件问题或 RTOS 问题有关。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、
    感谢您的回复、您可以关闭此项目。

    BR、
    JK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、JK、
    很高兴您的问题得到解决。 您是否想与我们分享您如何解决问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、
    根据您的回复、请勿使用此命令。
    TI 链 FAE 具有与您相同的答案。

    谢谢、
    JK Wolf