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.

[参考译文] LAUNCHXL-F28069M:GPIO 23/59的 I2C 配置

Guru**** 2595935 points
Other Parts Discussed in Thread: C2000WARE, TMS320F28069M

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/674819/launchxl-f28069m-i2c-config-for-gpio-23-59

器件型号:LAUNCHXL-F28069M
主题中讨论的其他器件:C2000WARETMS320F28069M

你(们)好

如何配置 J6的 launchpad 引脚23/59以使用 I2C

有一个

// I2C 数据
GPIO_setMode (obj->gpioHandle、GPIO_Number_32、GPIO_32_Mode_SDAA);

// I2C 时钟
GPIO_setMode (obj->gpioHandle、GPIO_Number_33、GPIO_33_Mode_SCLA);

但是对于23和54?? 没有    仅适用于 GPIO_23_Mode_SDAA 的 SCI、GPIO、...

GPIO_setMode (obj->gpioHandle、GPIO_Number_23、GPIO_23_Mode_generalpurpose);

是否有 I2C 示例

I WAN 来通过 I2C 连接 OLED SSD1306、因此任何驱动器或实现都是如此  

https://github.com/olikraus/u8g2/wiki/Porting-to-new-MCU-platform

欢迎您的到来

谢谢

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

    下载 C2000ware 并将 I2C 示例项目导入 CCS:
    C:\ti\c2000Ware_1_00_03_00\device_support\f2806x\examples\c28\i2c_eeprom

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

     谢谢、这是配置代码

    EALLOW;
    //为所选引脚启用内部上拉
    //用户可以启用或禁用上拉。
    //这将启用指定引脚的上拉电阻。
    //注释掉其他不需要的行。
    // GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0;//为 GPIO28 (SDAA)启用上拉
    电阻// GpioCtrlRegs.GPAPUD.bit.GPIO29 = 0;//为 GPIO29 (SCLA)启用上拉电阻
    GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0;//启用 GPIO32的上拉电阻(SDAA)
    GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0;//启用 GPIO33的上拉电阻器(SCLA)
    
    //仅将所选引脚的限定条件设置为异步
    //这将为所选引脚选择异步(无限定条件)。
    // GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 3;//异步输入 GPIO28 (SDAA)
    // GpioCtrlRegs.GPAQSEL2.bit.GPIO29 = 3;//异步输入 GPIO29 (SCLA)
    GpioCtrlRegs.GPBQSEL1.bit.GPIO32 = 3;//异步输入 GPIO32 (SDAA)
    GpioCtrlRegs.GPBQSEL1.bit.GPIO33 = 3;//异步输入 GPIO33 (SCLA)
    
    //使用 GPIO 寄存器配置 I2C 引脚*/
    //这指定哪些可能的 GPIO 引脚将是 I2C 功能
    //引脚。
    
    //将 GPIO28配置为 SDAA 操作
    // GpioCtrlRegs.GPAMUX2.bit.GPIO28=2;
    //将 GPIO29配置为 SCLA 操作
    // GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 2;
    
    //为 SDAA 操作配置 GPIO32
    GpioCtrlRegs.GPBMUX1.bit.GPIO32=1;
    //为 SCLA 操作配置 GPIO33
    GpioCtrlRegs.GPBMUX1.bit.GPIO33=1;
    EDIS;
    

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

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

    最后、我需要在另一个 SIL (J5)上实现 I2C  

    GPIO23_SCL  和 GPIO54_SDA

    我们在 Launchpad XL 28069M 的连接图片上看到这是可以的 (它位于绿色的 SCL/SDA 中)

    但在配置 GPIO 时、没有 I2C!  对于 MUX,该怎么办?

    请参阅  《TMS320x2806x Piccolo 技术参考手册》spruh18g.pdf 的第129页

    那么、我如何更改代码

    void InitI2CGpio()
    {
    EALLOW;
    //为所选引脚启用内部上拉
    //用户可以启用或禁用上拉。
    //这将启用指定引脚的上拉电阻。
    //注释掉其他不需要的行。
    // GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0;//为 GPIO28 (SDAA)启用上拉
    电阻// GpioCtrlRegs.GPAPUD.bit.GPIO29 = 0;//为 GPIO29 (SCLA)启用上拉电阻
    GpioCtrlRegs.GPAPUD.bit.GPIO23 = 0;//启用 GPIO23的上拉电阻(SDAA)
    GpioCtrlRegs.GPBPUD.bit.GPIO54 = 0;//启用 GPIO54的上拉电阻(SCLA)
    
    //仅将所选引脚的限定条件设置为异步
    //这将为所选引脚选择异步(无限定条件)。
    // GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 3;//异步输入 GPIO28 (SDAA)
    // GpioCtrlRegs.GPAQSEL2.bit.GPIO29 = 3;//异步输入 GPIO29 (SCLA)
    GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 3;//异步输入 GPIO23 (SDAA)
    GpioCtrlRegs.GPBQSEL2.bit.GPIO54 = 3;//异步输入 GPIO54 (SCLA)
    
    //使用 GPIO 寄存器配置 I2C 引脚*/
    //这指定哪些可能的 GPIO 引脚将是 I2C 功能
    //引脚。
    
    //将 GPIO28配置为 SDAA 操作
    // GpioCtrlRegs.GPAMUX2.bit.GPIO28=2;
    //将 GPIO29配置为 SCLA 操作
    // GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 2;
    
    //为 SDAA 操作配置 GPIO32
    GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 1;
    //为 SCLA 操作配置 GPIO33
    GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1;
    
    EDIS;
    } 

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

    [引用 USER="Lotfi]GPIO23_SCL  和 GPIO54_SDA[/quot]

    数据表中显然没有提到上述 GPIO、即 GPIO23和54的多路复用方案、根本不能多路复用为 I2C 引脚。

    尽管原理图中以蓝色提到了相同的内容、但这是奇数。 您能检查一下吗?

    此致、

    Gautam

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

    是的、数据表、代码、很明显没有提到、我们可以在 GPIO 23和54上放置 I2S

    不过、请参阅《TMS320F28069M LaunchPad 开发套件快速入门指南》sprui02.pdf
    www.ti.com/.../sprui02.pdf
    引脚图、我们可能认为我们可以在 GPIO 23和54上使用 I2C、因为我们看到 BoosterPack 可能性的绿色...
    这就是我在制作 BYOB 原理图时出错的原因...
    请更正 sprui02.pdf 和相关文档

    顺便说一下、感叹号是什么意思?

    谢谢

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

    让我在这里提出一个简单的问题-感叹号意味着可以中断。

    好的、这是不正确的。 现在、我们来看看棘手的部分。
    简而言之、J5站点上的 BoosterPack 标准位置没有可用的 I2C。 器件数据表正确。
    用户指南、原理图和快速入门指南未提及这是一个例外。 为了提供一定程度的兼容性、在 J5接头上的这些位置放置了一个 GPIO。

    如快速入门指南的引脚图页面所述、某些 LaunchPad 不完全符合标准、您需要验证 LaunchPad 和 BoosterPack 的兼容性。 TI 提供了一款名为 BoosterPack Checker 的出色工具、可在 dev.ti.com/.../上轻松找到该工具

    由于 I2C 是一种总线协议、因此您可以将 GPIO23和 GPIO54配置为输入、然后将其忽略。 然后、在插入第二个 BoosterPack 时、您可以使用跳线将 J1至 J5的 I2C 信号连接起来。

    很抱歉、我将在文档中提交一个 TT、以便将来的用户不会面临相同的问题。

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

    此致、
    Gautam