查看: 4584|回复: 10

[求助] 请教下各位大神RT1176 I2C1 硬件始终搞不通,sda 始终都没有....

[复制链接]

该用户从未签到

26

主题

97

帖子

0

中级会员

Rank: 3Rank: 3

积分
386
最后登录
2023-9-12
发表于 2023-4-27 15:35:26 | 显示全部楼层 |阅读模式
本帖最后由 hpdell 于 2023-4-28 09:29 编辑

请教下各位大神RT1176 I2C1 硬件始终搞不通,sda 始终都没有任何数据输出 ??

i2c1 sda 管脚使用的是 r16 管脚编号,
h17 也可以作为 i2c1 的 sda 使用,但是这个管脚分配给其他功能使用了,

配置代码如下:
#define LPI2C_CLOCK_FREQUENCY (CLOCK_GetRootClockFreq(kCLOCK_Root_Lpi2c1))               
CLOCK_EnableClock(kCLOCK_Iomuxc);           /* LPCG on: LPCG is ON. */

        uint32_t  clockHz = LPI2C_CLOCK_FREQUENCY;
        lpi2c_master_config_t masterConfig;


  IOMUXC_SetPinMux(
      IOMUXC_GPIO_AD_08_LPI2C1_SCL,           /* GPIO_AD_08 is configured as LPI2C1_SCL */
      1U);                                    /* Software Input On Field: Force input path of pad GPIO_AD_08 */
  IOMUXC_SetPinMux(
      IOMUXC_GPIO_AD_09_LPI2C1_SDA,           /* GPIO_AD_09 is configured as LPI2C1_SDA */
      1U);                                    /* Software Input On Field: Force input path of pad GPIO_AD_09 */

  IOMUXC_SetPinConfig(
      IOMUXC_GPIO_AD_08_LPI2C1_SCL,           /* GPIO_AD_08 PAD functional properties : */
      0x10U);                                 /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: normal drive strength
                                                 Pull / Keep Select Field: Pull Disable, Highz
                                                 Pull Up / Down Config. Field: Weak pull down
                                                 Open Drain Field: Enabled
                                                 Domain write protection: Both cores are allowed
                                                 Domain write protection lock: Neither of DWP bits is locked */
  IOMUXC_SetPinConfig(
      IOMUXC_GPIO_AD_09_LPI2C1_SDA,           /* GPIO_AD_09 PAD functional properties : */
      0x10U);                                 /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: normal drive strength
                                                 Pull / Keep Select Field: Pull Disable, Highz
                                                 Pull Up / Down Config. Field: Weak pull down
                                                 Open Drain Field: Enabled
                                                 Domain write protection: Both cores are allowed
                                                 Domain write protection lock: Neither of DWP bits is locked */

        

这个配置代码是官方提供的,我单独使用官方的驱动例程,下载到板子里程序也不会运行,使用的 是 m7 内核的,官方的例程也是参考 m7 内核的

怎么会这样呀 ????????

使用 i2c5/i2c6 随便配置一下都可以正常使用,就唯独这个 i2c1 搞的我都怀疑人生了呀



回复

使用道具 举报

  • TA的每日心情
    开心
    2025-8-8 16:43
  • 签到天数: 1504 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4693

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10101
    最后登录
    2025-9-4
    发表于 2023-4-27 17:29:06 | 显示全部楼层
    楼主不会没有焊接上拉电阻吧?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    97

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    386
    最后登录
    2023-9-12
     楼主| 发表于 2023-4-28 09:26:42 | 显示全部楼层
    jobszheng5 发表于 2023-4-27 17:29
    楼主不会没有焊接上拉电阻吧?

    悍了上啦电阻,我估计有 98% 的可能就是这个 io 口本身有问题或者是坏了,

    我单独配置为这个  sda 为普通的 io 口,仅做输出 高低电平测试都没有任何电平输出,io口一直都是出于高电平 3.3v 状态
    这 nxp 的单片机说是很牛逼的,怎么io口这么容易就坏了呀 ??? 有没有什么办法可以修复  ??
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-8-8 16:43
  • 签到天数: 1504 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4693

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10101
    最后登录
    2025-9-4
    发表于 2023-4-28 10:52:34 | 显示全部楼层
    看芯片的电流。
    如果IO拉高与拉低 电流有较大变化,再考虑IO损坏。

    修复肯定是没戏,这个不用多想!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    97

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    386
    最后登录
    2023-9-12
     楼主| 发表于 2023-4-28 14:40:48 | 显示全部楼层
    jobszheng5 发表于 2023-4-28 10:52
    看芯片的电流。
    如果IO拉高与拉低 电流有较大变化,再考虑IO损坏。

    现在的问题是 我 把 这个 r16 管脚配置为普通的 io 功能,仅测试输出 高低电平都没有任何反应呀 ?

    这个 管脚始终都是高电平状态,这就狠 纠结了呀 ? 我使用 M7 内核的 GPIO3 驱动也不行 ??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35

    主题

    356

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3306
    最后登录
    2023-6-23
    发表于 2023-5-3 12:35:09 | 显示全部楼层
    如果配置为普通IO都不能正常操作,确认下是否焊接有问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    97

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    386
    最后登录
    2023-9-12
     楼主| 发表于 2023-5-4 11:53:07 | 显示全部楼层
    本帖最后由 hpdell 于 2023-5-7 14:59 编辑
    香水橙 发表于 2023-5-3 12:35
    如果配置为普通IO都不能正常操作,确认下是否焊接有问题。

    我测量这个 sda 管脚对地 的电阻值,与 scl 的基本一致,应该可以确定焊接是没有问题的吧
    当测量 sda(r16) 对低电压时貌似发现了问题, 电压只有 1.8v, 而 scl 是 3.3v  , sda 电平 怎么会低那么多呀 ?
    我看例程使用 i2c1 的配置也没有什么特别的地方啊,而且 sdk 例程使用的也是这 r15, r16 这 2个管脚,

    我吧 sdk 里的 i2c1 例程直接下载到板子,貌似 i2c1 也不工作,有些犯迷糊了呀

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    97

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    386
    最后登录
    2023-9-12
     楼主| 发表于 2023-5-25 09:18:47 | 显示全部楼层
    jobszheng5 发表于 2023-4-28 10:52
    看芯片的电流。
    如果IO拉高与拉低 电流有较大变化,再考虑IO损坏。

    你好,我又不死心的捣鼓了几下,发现如下的情况,

    i2c1-sda 管脚 r16 , 配置如下

    //- {pin_num: R16, peripheral: GPIO9, signal: 'gpio_io, 08', pin_signal: GPIO_AD_09, direction: OUTPUT, gpio_init_state: 'true', slew_rate: Fast}
    #define  IOMUXC_GPIO_MX25L_PCS0   IOMUXC_GPIO_AD_09_GPIO9_IO08
    #define  MX25L_GPIO_CS               GPIO9
    #define  MX25L_GPIO_CS_PIN           (8U)
    #define        __MX25L_CS_L            GPIO_OUT_L(MX25L_GPIO_CS,MX25L_GPIO_CS_PIN)   
    #define        __MX25L_CS_H            GPIO_OUT_H(MX25L_GPIO_CS,MX25L_GPIO_CS_PIN)   



            // mx25l cs 备用管脚,r16
            bsp_gpio_mode_config(MX25L_GPIO_CS,
                                                            MX25L_GPIO_CS_PIN,
                                                            GPO,
                                                            GPIO_HIGH,
                                                            kGPIO_NoIntmode
                                                            );


                    afio_init(IOMUXC_GPIO_MX25L_PCS0,  0U,
                                                                            0x07U);   // 配置为 0x07 时, 低电平只能到 2.0v 左右, 高电平正常时3.3v


    函数 afio_init 这个最后一个参数貌似只能配置为 0x07 时, 普通 io 口貌似才能够输出高低电平,但是低电平最低只能到 2v 左右,高电平可以 到3.3v, 外部上啦电阻 10k 到 3.3v, 如果外部不上啦电阻到 3.3v 的话,那末此管脚的电平始终都是 1.8v 左右,输出高低电平基本也感觉不到什么变化 ,

    请教下这是怎么回事呀 ??

    void afio_init(uint32_t muxRegister, uint32_t muxMode, uint32_t inputRegister, uint32_t inputDaisy,
                          uint32_t configRegister, uint32_t inputOnfield, uint32_t pinconf)
    {
      CLOCK_EnableClock(kCLOCK_Iomuxc);           /* LPCG on: LPCG is ON. */
      CLOCK_EnableClock(kCLOCK_Iomuxc_Lpsr);      /* LPCG on: LPCG is ON. */
           
        IOMUXC_SetPinMux(muxRegister, muxMode, inputRegister, inputDaisy, configRegister, inputOnfield);
        IOMUXC_SetPinConfig(muxRegister, muxMode, inputRegister, inputDaisy, configRegister, pinconf);
    }




                                                                                   



    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-8-8 16:43
  • 签到天数: 1504 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4693

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10101
    最后登录
    2025-9-4
    发表于 2023-5-25 10:35:24 | 显示全部楼层
    如果是I2C引脚,其为开漏输出。
    NXP的芯片有真开漏的设计,如果不上拉的话,电平的输出电压是浮动,和当前楼主的实验结果类似。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    97

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    386
    最后登录
    2023-9-12
     楼主| 发表于 2023-5-25 21:25:56 | 显示全部楼层
    jobszheng5 发表于 2023-5-25 10:35
    如果是I2C引脚,其为开漏输出。
    NXP的芯片有真开漏的设计,如果不上拉的话,电平的输出电压是浮动,和当前 ...

    测试 了一下, 发现 afio_init 这个函数的最后一个数据, 如果是 0x07, 0x06 的话, 就跟我之前说的一样, 如果是其他的任何数据,则 i2c1-sda 管脚没有任何反应, 估计应该还是 芯片 的这个 io 口驱动内部的电路有问题吗  ?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-8 20:24 , Processed in 0.091605 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表