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.

[参考译文] OMAP-L138:GPIO1[3]和 GPIO1[4]

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1589469/omap-l138-gpio1-3-and-gpio1-4

器件型号: OMAP-L138

我正在尝试控制 GPIO1[3]和 GPIO1[4] 使用了 多路复用控制 4 寄存器 (PINMUX4) 。 相关的引脚功能如下:

  • SPI1_SCS[5] / UART2_RXD / I2C1_SCL / GP1[3]

  • SPI1_SCS[4] / UART2_TXD / I2C1_SDA / GP1[2]

  • SPI1_SCS[7] / I2C0_SCL / TM64P2_OUT12 / GP1[5]

  • SPI1_SCS[6] / I2C0_SDA / TM64P3_OUT12 / GP1[4]

我已按如下方式配置了 GPIO 的引脚:

#define GPIO_PINMUX       (4)
#define GPIO_PINMUX_MASK  (0x00ffff00u)
#define GPIO_PINMUX_VALUE (0x00888800u)

CPU_SYSCFG0->PINMUX[GPIO_PINMUX] = 
    (CPU_SYSCFG0->PINMUX[GPIO_PINMUX] & ~GPIO_PINMUX_MASK) | 
    (GPIO_PINMUX_VALUE & GPIO_PINMUX_MASK);

我正在使用以下命令设置/清除 GPIO 输出:

CPU_GPIO->Banks[0].SET_DATA = (1 << 20) | (1 << 21) | (1 << 19) | (1 << 18);
CPU_GPIO->Banks[0].CLR_DATA = (1 << 20) | (1 << 21) | (1 << 19) | (1 << 18);

采用以下配置:

  • 我能够控制 GP1[4]和 GP1[5] 成功。

  • 不过、 GP1[3]和 GP1[4] 始终显示 IN_DATA01 寄存器中为高电平 、我无法控制这些引脚。

请说明原因 GP1[3]和 GP1[4] 保持高电平、以及如何正确配置它们以进行 GPIO 控制?

 

 

 

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

    Keerthi

    需要检查一点。   

    1) 方向寄存器是否设置正确、以便 GP1[3]和 GP1[4] 配置为输出?  
    2) 器件引脚上是否有任何可能驱动高电平的连接?  

    ——保罗  

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

    您好 PaulM 

    感谢您的意见。 根据您的意见、我找到了根本原因、我正在努力解决。
    谢谢、
    Keerthi

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

    请与我分享您的意见以解决问题

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

    #define SDA_PIN (1 << 18)// GPIO1[2]
    #define SCL_PIN (1 << 19)// GPIO1[3] GP1[3]
    #define WP_PIN (1 << 29)// GPIO1[13](写保护)
    /* i2c0 和 GPIO */
    #define PINMUX_BANK4 (4)
    #define I2C_GPIO_PINMUX_MASK (0x00ff0000u)
    #define I2C_GPIO_PINMUX_VALUE (0x00880000u)/*为 IRIG 选择 I2C_SDA 和 I2C_SCL *为 FRAM 选择 GPIO1[3]和 GPIO1[2]*/

    #define PINMUX_Bank2 (2)
    #define GPIO_PINMUX_MASK (0x00000F00u)
    #define GPIO_PINMUX_VALUE (0x00000400u)

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

    Keerthi

    这似乎与初始问题无关。 请打开一个新 TT、以便将其分配给相应的团队。  

    ——保罗