查看: 3490|回复: 4

[分享] 使用KDS+PE+SDK1.3实现USB CDC功能的步骤

[复制链接]

该用户从未签到

16

主题

78

帖子

0

注册会员

Rank: 2

积分
178
最后登录
2018-6-1
发表于 2016-5-30 10:23:35 | 显示全部楼层 |阅读模式
        在一些简单的应用中,有很多客户使用KDS+PE+SDK1.3做项目的开发,由于在目前的Processor Expert(PE)中基于SDK1.3的组件已经完整支持了常用的GPIO、SPI、UART、定时器等内部外设和文件系统、以太网协议栈等中间件的驱动,所以可以大大简化了开发的周期。
        但是当客户在使用PE中SDK1.3的组件实现USB的CDC功能,却发现PE中并没有现成的CDC类的驱动组件,而只有HID和MSD类的驱动组件,如下图所示。那应该如何使用KDS+PE+SDK1.3实现USB CDC功能呢?于是笔者结合网上资料摸索了一个步骤,简单记录于此,以供参考。
       
        本文档的目的在于,一方面可以实现PE中暂不支持的CDC类(当然同样的方法用户也可以用来实现Audio 类、PHDC类、复合类等),另一方面方便客户理解USB协议栈的文件结构。简言之,本文档目的在于实现在当前PE中暂不支持的CDC类,描述中尽量简化步骤,方便读者理解和快速实现。
        本教程的好处在于,一方面可以实现PE中暂不支持的CDC类(当然同样的方法用户也可以用来实现Audio 类、PHDC类、复合类等),另一方面方便客户理解USB协议栈的文件结构。简言之,本文档目的在于实现在当前PE中暂不支持的CDC类,描述中尽量简化步骤,方便读者理解和快速实现。
        Step 1: File->New->Kinetis Project->Board, 选择 Processor Expert;记得修改build Option
        Stack Size 0x1000(否则出现unknown device)
        Heap Size 0x0400

         

        Step 2: 添加fsl_usb_framework 组件到工程,并设定Baud Rate;
       
       
        Step 3:在fsl_usb_framework 组件属性框中,使能USBCFG_DEV_CDC类,并Disable组件的自动初始化功能;
       
        Step 4:完成配置, 点击Gernerate Code生成代码;
        Step 5:转至以下目录1中拷贝classes文件夹,粘贴到到工程目录2下;(基础文件拷贝)
        目录1:C:\Freescale\KSDK_1.3.0\usb\usb_core\device\sources\
        目录2:KDS工程/SDK/usb/usb_core/device/sources
        Step 6:删除刚才目录2下的除cdc/common/include之外的其他文件夹,只保留CDC相关目录。
       
        Step 7:转至以下目录中拷贝usb_descriptor.h,usb_descriptor.c以及virtual_com.h三个文件到KDS工程/Sources/目录下; (不要拷贝virtual_com.c)
        C:\Freescale\KSDK_1.3.0\examples\frdmk64f\demo_apps\usb\device\cdc\virtual_com\

         
       

        Step 8:添加文件搜索路径到工程;
        "${ProjDirPath}/SDK/usb/usb_core/device/sources/classes/include"
        "${ProjDirPath}/SDK/usb/usb_core/device/sources/classes/include/config"
        "${ProjDirPath}/SDK/usb/usb_core/device/sources/classes/common"
        "${ProjDirPath}/SDK/usb/usb_core/device/sources/classes/cdc"

        Step 9:依照virtual_com.c修改main.c,编译代码并下载程序;
        Note:void APP_init(void)在KSDK1.2.0和KSDK1.3.0之间有些差异,如果是SDK1.3需要修改:
        cdc_config.board_init_callback.callback = NULL;

        Step 10:连接上USB接口,会在设备管理器中显示“MCU VIRTUAL COM DEMO”,前面又有一个黄色感叹号表示驱动未安装。然后按照SDK1.3 CDC demo中read_me.pdf的步骤安装CDC驱动即可,此处不再赘述。
       
        完成后会在设备管理器显示对应的虚拟串口,可以通过串口助手打开该串口,进行测试,当前实现的是一个echo输入回显功能。
        至此,使用KDS+PE+SDK1.3成功实现了USB 的CDC功能。


回复

使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-5-30 10:35:53 | 显示全部楼层
    感谢楼主分享
    签到 签到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    46

    帖子

    0

    注册会员

    Rank: 2

    积分
    108
    最后登录
    2018-5-24
    发表于 2016-5-30 10:51:17 | 显示全部楼层
    感谢分享
    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    20

    帖子

    0

    注册会员

    Rank: 2

    积分
    55
    最后登录
    2018-6-28
    发表于 2016-5-30 10:51:44 | 显示全部楼层
    赞一个,感谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-4-27 10:34
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    507

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1450
    最后登录
    2020-8-3
    发表于 2016-5-30 17:15:07 | 显示全部楼层
    不错,赞一个!
    哎...今天够累的,签到来了1...
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-19 09:40 , Processed in 0.107560 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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