查看: 14928|回复: 32

[求助] 万利lpc54114 lite 的io模拟iic问题

[复制链接]
  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9291
    最后登录
    2022-5-12
    发表于 2018-4-9 15:45:40 | 显示全部楼层 |阅读模式
    本帖最后由 小马哥-1650185 于 2018-4-9 15:52 编辑

    实验用到3路iic,都用io模拟
    111111111111111111.jpg


    第一路用 硬件iic的io口,驱动为io模拟
    sda1:   GPIO->B[0][24]
    scl1:    GPIO->B[0][23]

    调试没什么问题,一切都是正常的...
    然而换成别的io就不行了,同样的驱动,只换了io口,iic从设备一直应答失败.

    驱动在别的设备上移植的,,,在上面io模拟的iic也是ok的.

    如下:  第二路
    sda2:   GPIO->B[1][11](复用KEY3)
    scl2:    GPIO->B[0][15](复用LED0)


    第三路
    sda3:   GPIO->B[0][21](复用LED2)
    scl3:    GPIO->B[0][22](复用LED3)



    怀疑是万利板子的io复用功能影响的,现把复用的设备拆掉还是不行,,甚至还把 复用外设的线割断了还是不行..不知道是不是io的问题,还是配置问题,

    不过仿真看着 这些io是有高低电平变化的.

    io初始化如下:
    1.   gpio_pin_config_t led_config = {      kGPIO_DigitalOutput, 0,    };
    2.     CLOCK_EnableClock(kCLOCK_Gpio0);
    3.     CLOCK_EnableClock(kCLOCK_Gpio1);
    4.         

    5.                 GPIO_PinInit(GPIO, 0, 24, &led_config);//
    6.                 GPIO_PinInit(GPIO, 0, 23, &led_config);//
    7.                 GPIO_PinInit(GPIO, 1, 11, &led_config);//
    8.                 GPIO_PinInit(GPIO, 0, 15, &led_config);//
    9.                 GPIO_PinInit(GPIO, 0, 21, &led_config);//
    10.                 GPIO_PinInit(GPIO, 0, 22, &led_config);//
    复制代码




    我知道答案 目前已有32人回答
    好好
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-3-5 08:47
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    110

    主题

    3405

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    9007
    最后登录
    2025-7-22
    发表于 2018-4-10 09:35:29 | 显示全部楼层
    1.在pin_mux.c文件中查看一下复用情况,是否只启用了GPIO功能
    2.看楼主仅进行了初始化,输入输出设置是否配置正确
    3.楼主把各部分接口初始化换一下顺序试试(有过此经历)

    评分

    参与人数 1 +1 收起 理由
    NXP管管 + 1

    查看全部评分

    加油哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9291
    最后登录
    2022-5-12
     楼主| 发表于 2018-4-10 10:13:30 | 显示全部楼层
    jundao721 发表于 2018-4-10 09:35
    1.在pin_mux.c文件中查看一下复用情况,是否只启用了GPIO功能
    2.看楼主仅进行了初始化,输入输出设置是否配 ...

    1.在万利提供的demo里面改的,pin_mux.c里面只有 uart0的初始化,  board.h里面的也注释了呀

    2.GPIO->B[0][24],GPIO->B[0][23]  这一堆io模拟的正常的,io都配置的输出, 说明配置为输出是可以接受数据的,和stm32类似....当然也试过sda引脚 根据数据方向实时配置输入还是输出,结果都是一样,iic设备应答失败,

    3.试了,没变化
    好好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24901
    最后登录
    2025-7-21
    发表于 2018-4-10 10:18:36 | 显示全部楼层
    小马哥-1650185 发表于 2018-4-10 10:13
    1.在万利提供的demo里面改的,pin_mux.c里面只有 uart0的初始化,  board.h里面的也注释了呀

    2.GPIO->B[0] ...

    楼主你好,建议你用示波器或者逻辑分析仪查看下I2C总线的波形,这个非常直接,最好用示波器先看下,看看电平,波特率等等,是否和你正常运行的引脚波形一样?
    你测试之后,可以把两路的波形,正常的,不正常的都贴出来给我看看。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9291
    最后登录
    2022-5-12
     楼主| 发表于 2018-4-10 10:55:01 | 显示全部楼层
    本帖最后由 小马哥-1650185 于 2018-4-10 11:20 编辑
    小恩GG 发表于 2018-4-10 10:18
    楼主你好,建议你用示波器或者逻辑分析仪查看下I2C总线的波形,这个非常直接,最好用示波器先看下,看看电 ...

    好,回头我找个仪器测下,不过我可以确定的是 波形肯定不一样,因为我仿真发现 不正常的io口,程序在等待应答函数里面 返回 false了
    你们有没有  小脚丫 那个触摸计算器板子,电路城提供那个cap1298的板子,  工程发你可以试下

    #define CAP1298_SDA1            GPIO->B[0][21]
    #define CAP1298_SCL1                GPIO->B[0][22]


    bool CAP1_I2C_WaitAck(void)   //返回为:=1有ACK,=0无ACK
    {

        CAP1298_SCL1=0;  
        I2C_delay();
        CAP1298_SDA1=1;
        I2C_delay();
         CAP1298_SCL1=1;  
        I2C_delay();
        if(CAP1298_SDA1) //这里SDA引脚没有变成低电平,导致return flase,  后面时序 肯定都错了
        {
            CAP1298_SCL1=0; //
            I2C_delay();
            return          false;
        }
        CAP1298_SCL1=0;  
        I2C_delay();
        return true;
    }


    好好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24901
    最后登录
    2025-7-21
    发表于 2018-4-10 15:22:50 | 显示全部楼层
    你说的:你们有没有  小脚丫 那个触摸计算器板子,电路城提供那个cap1298的板子
    你把板子拍个照片传上来我看看我有没有。
    回头我有空,也可以帮你测试下,你可以把相关的工程代码,以及你板子的连接图片都给发一份,我把手上的题目搞定之后会帮你看看。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9291
    最后登录
    2022-5-12
     楼主| 发表于 2018-4-10 15:39:16 | 显示全部楼层
    本帖最后由 小马哥-1650185 于 2018-4-10 15:58 编辑
    小恩GG 发表于 2018-4-10 15:22
    你说的:你们有没有  小脚丫 那个触摸计算器板子,电路城提供那个cap1298的板子
    你把板子拍个照片传上来我看 ...

    QQ截图20180410153826.jpg

    就这个板子
    http://bbs.cirmall.com/thread-47072-1-1.html


    工程
    lpc54110_package_new_1804101556.zip (2.81 MB, 下载次数: 12)
    好好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24901
    最后登录
    2025-7-21
    发表于 2018-4-10 15:41:20 | 显示全部楼层

    和开发板的连线,以及测试问题代码工程,和另一个能工作的也分享下。
    今天没有时间帮你测试,后面我找找看这个板子,有空就帮你测试。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9291
    最后登录
    2022-5-12
     楼主| 发表于 2018-4-10 16:00:21 | 显示全部楼层
    本帖最后由 小马哥-1650185 于 2018-4-10 16:03 编辑
    小恩GG 发表于 2018-4-10 15:41
    和开发板的连线,以及测试问题代码工程,和另一个能工作的也分享下。
    今天没有时间帮你测试,后面我找找 ...

    工程里面有三个io  模拟  iic,   时序共用一个,,cap1  是可以的,cap2,cap3   不行,等待应答失败



    arduino接口,直接插上就行
    下图Cap1 可以,另外两个不行
    QQ截图20180410160208.jpg

    1.   Cap1.sda_port = 0;
    2.                 Cap1.sda_pin = 24;
    3.                 Cap1.scl_port = 0;
    4.                 Cap1.scl_pin = 23;
    5.                
    6.                 Cap2.sda_port = 1;
    7.                 Cap2.sda_pin = 11;
    8.                 Cap2.scl_port = 0;
    9.                 Cap2.scl_pin = 15;

    10.                 Cap3.sda_port = 0;
    11.                 Cap3.sda_pin = 21;
    12.                 Cap3.scl_port = 0;
    13.                 Cap3.scl_pin = 22;
    复制代码


    好好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9291
    最后登录
    2022-5-12
     楼主| 发表于 2018-4-13 09:37:01 | 显示全部楼层
    小恩GG 发表于 2018-4-10 15:41
    和开发板的连线,以及测试问题代码工程,和另一个能工作的也分享下。
    今天没有时间帮你测试,后面我找找 ...

    遇到类似问题了么
    好好
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-22 12:42 , Processed in 0.107954 second(s), 32 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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