查看: 9379|回复: 18

【征文FSL 开发经验篇】+ KL26 USB模块开发

[复制链接]

该用户从未签到

31

主题

253

帖子

20

金牌会员

Rank: 6Rank: 6

积分
1532
最后登录
2021-7-20
发表于 2015-5-7 16:45:45 | 显示全部楼层 |阅读模式
本帖最后由 laotui 于 2015-5-7 16:45 编辑

        学单片机到现在有2年多了,单片机基本上是我业余最大的爱好,马上要毕业了趁这个机会也写点东西。个人感情迟钝语文也不好就只写“开发经验篇”了,从大二下学期开始接触51,后来学过不少其他的内核,一直没用过飞思卡尔(自己买飞思卡尔比较贵)后来听说飞思卡尔可以申请样片,于是申请了KL26,回来自己作板开始了学习(一直习惯自己做核心板+扩展),之前做过平衡车什么的所以选KL26主要目的就是USB,我之前用过stm32、c8051这些都有硬件USB但我都没用过,这次是从头写飞思卡尔,也是从头学USB,我自己也就刚刚能用而已USB功能非常丰富确实挺难的,所以也就说说自己学习的过程,不足之处还望高手指正

       我学USB是从看“圈圈教你玩儿USB”开始的我的水平有限基础知识就不说了建议看看圈圈的书。
       USB发送和接收都是数据包,和最常用的串口是不一样的和CAN总线是相似的,经过最近的应用感觉通讯的话数据包是非常必要的,可以非常方便的制定自己的协议而且硬件会完成CRC校验我们只要把想发的数据放到指定位置开始发送,当有数据需要接收时只要从指定位置拷贝回数据即可,这里要注意USB只允许有一个主机,无论是读还是写都只能由主机发起,单片机响应主机,曾经有网友问过能否用双公头USB线连接两台电脑传输数据,电脑的USB都是主机所以理论上是不可以的。
       之后就是寄存器的问题,USB设备与主机通讯靠的是端点,每一个端点要记录各自的状态,收发的缓冲区地址而端点有比较多,但不一定每次都能用上(通常用不了太多)所以处理器采用的办法基本上都是在RAM中开一块区域专门给USB模块使用,这之中也包括端点的缓冲区。
       再来说一说端点,USB设备必须有的是端点0,控制传输通过端点0进行,端点0最小传输长度为8字节,为什么是8字节?因为端点0的传输传输长度在设备描述符的第8字节,这也就是为什么枚举是第一次控制传输主机读回的长度是8字节。得到端点0的长度后就可以正常的进行控制传输了。
       我到现在为止只会用USB而已,所以说说怎么用,USB最重要的就是控制传输,正确进行控制传输的就是这个:
typedef struct _tUSB_Setup
{
       uint8 bmRequestType;
       uint8 bRequest;
       uint8 wValue_l;
       uint8 wValue_h;
       uint8 wIndex_l;
       uint8 wIndex_h;
       uint8 wLength_l;
       uint8 wLength_h;
}tUSB_Setup;

这8字节数据至关重要,如果设备能识别到而没有枚举成功,多数可以从这8个字节找到原因。而且修改成其他设备除了对各中描述符修改以外,如果新的设备类型有其特有的描述符也要在程序中对这8字节解析并添加相应处理。
      学习一种新的单片机还是很有挑战的,但也一定会有收获,在学飞思卡尔以前我一直不太理解启动文件什么的,程序都是从主函数写起,现在看来连时钟配置都没找到单片机怎么就工作了?所以经过对飞思卡尔单片机的学习我自己得到了一定的提高,感谢飞思卡尔通过我的样片申请让我有机会学习到这些,最后贴上两张自己做的飞思卡尔开发板。

K64.png
KL26.png
回复

使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13168
    最后登录
    2019-1-27
    发表于 2015-5-7 18:17:18 | 显示全部楼层
    楼主写的不错啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19

    主题

    317

    帖子

    0

    高级会员

    Rank: 4

    积分
    862
    最后登录
    1970-1-1
    发表于 2015-5-7 19:57:05 | 显示全部楼层
    好文章,学习了。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    50

    帖子

    0

    注册会员

    Rank: 2

    积分
    126
    最后登录
    1970-1-1
    发表于 2015-5-7 21:51:04 | 显示全部楼层
    学习。。。。。。。。。。。
    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]偶尔看看I

    36

    主题

    507

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1450
    最后登录
    2020-8-3
    发表于 2015-5-8 08:57:49 | 显示全部楼层
    板子做的不错!
    哎...今天够累的,签到来了1...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-30 08:51
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    4

    主题

    138

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    202
    最后登录
    2022-7-7
    发表于 2015-5-8 10:52:13 | 显示全部楼层
    前来学习,楼主这是要送板子的节奏吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-4-28 12:41
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    280

    帖子

    0

    高级会员

    Rank: 4

    积分
    802
    最后登录
    2021-9-5
    发表于 2015-5-8 17:14:38 | 显示全部楼层
    过来支持一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20

    主题

    174

    帖子

    0

    高级会员

    Rank: 4

    积分
    770
    最后登录
    1970-1-1
    发表于 2015-5-9 10:03:12 | 显示全部楼层
    挺好的啊
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-20 08:44
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    4

    主题

    233

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1198
    最后登录
    2017-8-30
    发表于 2015-5-11 18:28:08 | 显示全部楼层
    喜欢楼主这样自己做板子的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31

    主题

    253

    帖子

    20

    金牌会员

    Rank: 6Rank: 6

    积分
    1532
    最后登录
    2021-7-20
     楼主| 发表于 2015-5-12 13:34:31 | 显示全部楼层
    本帖最后由 laotui 于 2015-5-15 10:18 编辑
    123tango 发表于 2015-5-11 18:28
    喜欢楼主这样自己做板子的

    谢谢支持,这样用起来比较熟悉。在离一楼最近的位置添加一些自己帖子的连接都与USB有关
    【YL-KL26Z试用】上位机控制HID自定义设备
    Bus Hound使用交流
    【YL-KL26试用】+laotui 的 HID鼠标


    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-3 04:01 , Processed in 0.106993 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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