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.

[参考译文] TMS320F28055:我的 I2C 和 SCI 有问题。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/568563/tms320f28055-i-have-a-problem-with-i2c-and-sci

器件型号:TMS320F28055
主题中讨论的其他器件:SFRA

在我的器件中、我使用 tms320f28055pnt。 我想同时使用 I2C 和 SCI 等接口。 I2C 我连接到 GPIO 32 n GPIO 33。 我将使用 EEPROM 测试 I2C、它正常工作。 SCI 我想连接到 GPIO28和 GPIO29。 当我初始化 GPIO 时、I2C 不工作更多。 SDA 设置为"0" SCL 设置为"1"。
我必须为这项工作做些什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以发布 GPIO 初始化代码?

    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我可以。
    这是我的初始化代码 GPIO:

    空 InitSciaGpio()

    EALLOW;

    /*为所选引脚启用内部上拉*/
    //用户可以启用或禁用上拉。
    //这将启用指定引脚的上拉电阻。


    GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0; //为 GPIO28 (SCIRXDA)启用上拉
    GpioCtrlRegs.GPAPUD.bit.GPIO29 = 0;//为 GPIO29 (SCITXDA)启用上拉

    /*将所选引脚的限定条件设置为仅异步*/
    默认情况下、//输入与 SYSCLKOUT 同步。
    //这将为所选引脚选择异步(无限定条件)。


    GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 3;//异步输入 GPIO28 (SCIRXDA)
    GpioCtrlRegs.GPAQSEL2.bit.GPIO29 = 3;//异步输入 GPIO29 (SCITXDA)

    /*使用 GPIO 寄存器配置 SCI-B 引脚*/
    //这指定哪些可能的 GPIO 引脚将是 SCI 功能引脚。

    GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 2;//为 SCIRXDA 操作配置 GPIO28
    GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 2;//为 SCITXDA 操作配置 GPIO29

    EDIS;


    void InitI2CGpio (void){

    EALLOW;

    /*为所选引脚启用内部上拉*/
    //用户可以启用或禁用上拉。
    //这将启用指定引脚的上拉电阻。
    //注释掉其他不需要的行。
    GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0;//启用 GPIO32的上拉电阻(SDAA)
    GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0;//启用 GPIO33的上拉电阻器(SCLA)

    /*将所选引脚的限定条件设置为仅异步*/
    //这将为所选引脚选择异步(无限定条件)。
    //注释掉其他不需要的行。
    GpioCtrlRegs.GPBQSEL1.bit.GPIO32 = 3;//异步输入 GPIO32 (SDAA)
    GpioCtrlRegs.GPBQSEL1.bit.GPIO33 = 3;//异步输入 GPIO33 (SCLA)

    /*使用 GPIO 寄存器配置 I2C 引脚*/
    //这指定哪些可能的 GPIO 引脚将是 I2C 功能引脚。
    //注释掉其他不需要的行。
    GpioCtrlRegs.GPBMUX1.bit.GPIO32=1;//将 GPIO32配置为 SDAA 操作
    GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 1;//为 SCLA 操作配置 GPIO33

    EDIS;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    奇怪。 这些外设之间应该没有交互、我看不到您的 GPIO 设置代码有任何问题。 您是否能够自己使用 SCI 和 I2C?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    这真的很奇怪。 接口的工作方式。 SCI 我用于 SFRA 并与另一个 MCU 交换。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题可能出在外设或系统控制的设置代码中。 运行故障代码后、您可以查看以下内容:

    *在 PCLKCR0寄存器中、确保启用了 I2C 和 SCI 的时钟。
    *在 PLLSTS 寄存器中、确保 MCLKSTS 位为0。
    *在 I2CMDR 寄存器中、确保 IRS 位为1。
    *确保 I2CCLKL 和 I2CCLKH 寄存器具有合理的值、或者至少为非零值。