查看: 1634|回复: 11

【2021年度庆典三】LPC55S69翻页器一波三折复刻记

[复制链接]
  • TA的每日心情
    开心
    昨天 11:26
  • 签到天数: 1274 天

    [LV.10]以坛为家III

    21

    主题

    1万

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    13214
    最后登录
    2024-4-19
    发表于 2021-12-19 21:54:20 | 显示全部楼层 |阅读模式
    NXP论坛小课堂第30期有个LPC55S69实现的翻页器,日天鼓励大家跟着大佬学,正好手头有块论坛活动从日天那薅来的LPC55S69开发板,动手开整。
    首先从X宝买了个PAJ7620传感器,确实不贵,含运费才20多块。然后NXP开发系统是以前就安装好的,并且LPC55S69的SDK也已经安装了。记得SDK里面有个例子,就是用LPC55S69开发板模拟键盘鼠标的,所以没有完全按照论坛大佬视频里的步骤,而是采用了下面这个例子工程:


    装入例子.png


    先把2个传感器文件直接拖入项目中:


    拖入传感器文件.png

    然后修改一些程序。
    主程序composite.c头部加上:


    #include "app_paj7620.h"


    主程序composite.c最后部分修改为:
        paj7620Init();
        USB_DeviceApplicationInit();
        while (1U)
        {
          paj7620_task();
    #if USB_DEVICE_CONFIG_USE_TASK
           USB_DeviceTaskFn(g_UsbDeviceComposite.deviceHandle);
    #endif
        }

    注意:paj7620_task();下面的语句不能去掉,这里和大佬的程序有点差别。
    hid_keyboard.c文件头部加上:

    #include "app_paj7620.h"

    hid_keyboard.c文件中的回调函数USB_DeviceHidKeyboardAction()改为:

    static usb_status_t USB_DeviceHidKeyboardAction(void)
    {
        s_UsbDeviceHidKeyboard.buffer[2] = 0x00U;
        if(g_PAJ7620 == 3)
        {
         s_UsbDeviceHidKeyboard.buffer[2] = KEY_PAGEUP;
         g_PAJ7620= 0;
        }
        if(g_PAJ7620 == 4)
        {
         s_UsbDeviceHidKeyboard.buffer[2] = KEY_PAGEDOWN;
         g_PAJ7620= 0;
        }
        returnUSB_DeviceSendRequest(s_UsbDeviceComposite->deviceHandle, USB_HID_KEYBOARD_ENDPOINT_IN,
                                    s_UsbDeviceHidKeyboard.buffer,USB_HID_KEYBOARD_REPORT_LENGTH);
    }
    然后开始编译,肯定会报错,没有I2C驱动,打开配置窗口,注意外设开关要打开,否则没法配置。


    打开外设开关.png

    在驱动页面勾选I2C和GINT:


    添加GINT和I2C.png

    确定后还会报错 :


    报错1.png

    继续添加CMP驱动:


    添加CMP.png

    回到主界面,此时编译应该没什么问题了。
    大佬视频中介绍使用的是FLEXCOM3口,根据LPC55S69的原理图,把传感器用杜邦线连接到FLEXCOM3:

    flexcom3.png
        最后将编译好的程序下载到开发板,一运行,竟然报错。跟踪发现app_paj7620.c文件中下列语句返回错误:
                PRINTF("paj7620_i2c_writeI2C_MasterWriteBlocking Failed %x\r\n", reVal);
    返回值为:0xa2d
    这是个啥错误呢?继续跟踪发现fsl_i2c.h文件中有定义:
        kStatus_I2C_ArbitrationLost = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 5), /*!<Arbitration lost error. */
    仲裁丢失错误,一般是传感器没上电导致的。难道X宝上买了个次品?联系卖家技术,技术也是一脸懵,吃不准问题在哪,建议再拍个,确认问题后把前面买的那个退回去。
        等新的传感器到手,一上电,问题依旧,运气不会这么差吧,2个传感器都是坏的?此时应该先排除传感器本身的问题了,会不会是其它原因导致的?想想毕竟和大佬所用的开发板不一样,虽然MCU芯片是一样的,会不会是flexcom3被占用了?换个I2C口吧,LPC55S69有3个I2C接口呢,用flexcom1试试。
    把app_paj7620.h文件中的I2C口做如下修改:
    #definePAJ7620_SCL_PORT                 0u
    #definePAJ7620_SCL_PIN                  14u
    //#definePAJ7620_SCL_PIN                  2u
    #definePAJ7620_SCL_FUNC                IOCON_FUNC1
    #definePAJ7620_SCL_PINCFG              IOCON_MODE_INACT  |IOCON_DIGITAL_EN
    #definePAJ7620_SDA_PORT                 0u
    #definePAJ7620_SDA_PIN                  13u
    //#definePAJ7620_SDA_PIN                  3u
    #definePAJ7620_SDA_FUNC                IOCON_FUNC1
    #definePAJ7620_SDA_PINCFG              IOCON_MODE_INACT  |IOCON_DIGITAL_EN
    #definePAJ7620_I2C                      I2C1
    #definePAJ7620_I2C_RST                 kFC1_RST_SHIFT_RSTn
    #definePAJ7620_I2C_CLKATTACH           kFRO12M_to_FLEXCOMM1
    #definePAJ7620_I2C_CLKFREQ             12000000UL
    #definePAJ7620_I2C_CLKSRC              kCLOCK_Flexcomm1
    #define PAJ7620_I2C_RATE                 400000UL
    传感器连接到FLEXCOM1口:


    flexcom1.png

    编译,下载,运行,没有任何问题,大功告成!

    运行结果.png


    将USB连接线插到开发板的USB FULL SPEED接口,打开开发板的原理图,运行效果如下:

    效果.gif


    附件是工程源码,有兴趣的小伙伴可以尝试下。

    dev_composite_hid_mouse_hid_keyboard_lite_bm.rar (5.59 MB, 下载次数: 7)
    跟着日天混 ,三天饱九顿!
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-9 17:01
  • 签到天数: 1478 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92609
    最后登录
    2024-4-9
    发表于 2021-12-19 22:06:27 | 显示全部楼层
    不错哟,感谢分享~~
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 11:46
  • 签到天数: 1933 天

    [LV.Master]伴坛终老

    61

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    17219
    最后登录
    2024-4-19
    发表于 2021-12-19 22:20:26 | 显示全部楼层
    666666666
    牛比大了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 589 天

    [LV.9]以坛为家II

    31

    主题

    1343

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3569
    最后登录
    2024-4-18
    发表于 2021-12-20 08:44:54 | 显示全部楼层
    很强
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    91

    主题

    2926

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    7799
    最后登录
    2024-4-18
    发表于 2021-12-20 08:49:01 | 显示全部楼层
    楼主实现的很快,点个赞,顺便学习一下。传感器买了,还在桌子上仍着呢。
    加油哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2021-12-20 09:06:03 | 显示全部楼层
    优秀优秀
    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 11:26
  • 签到天数: 1274 天

    [LV.10]以坛为家III

    21

    主题

    1万

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    13214
    最后登录
    2024-4-19
     楼主| 发表于 2021-12-20 09:18:38 | 显示全部楼层

    来自日天的夸奖!
    跟着日天混 ,三天饱九顿!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    789

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2694
    最后登录
    2024-4-4
    发表于 2021-12-20 12:19:23 | 显示全部楼层
    本帖最后由 eefocus_3766738 于 2021-12-20 12:31 编辑

    大佬的7620的驱动代码在哪里搞的,去SeedStudio的github没找到合适的,都开始移植了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 11:26
  • 签到天数: 1274 天

    [LV.10]以坛为家III

    21

    主题

    1万

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    13214
    最后登录
    2024-4-19
     楼主| 发表于 2021-12-20 12:51:06 | 显示全部楼层
    eefocus_3766738 发表于 2021-12-20 12:19
    大佬的7620的驱动代码在哪里搞的,去SeedStudio的github没找到合适的,都开始移植了 ...

    买传感器的时候提供驱动代码的, 我是用的大佬mgn改好的.
    跟着日天混 ,三天饱九顿!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-12-20 14:12:14 | 显示全部楼层
    原来还可以这样玩啊
    跟着大佬走,成就感就是满满的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-20 03:24 , Processed in 0.163317 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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