RT-Thread USB学习笔记 - 硬件篇
RT-Thread USB学习笔记 - RTT最小系统移植
RT-Thread 应用笔记 基础通信系列
背景
- 一直以来,都对USB的通信,比较感兴趣。
- J-Link、ST-Link、USB-CAN、USB逻辑分析仪等等,都属于USB通信的设备
- USB协议没怎么看过,目前打算从USB-HID、USB-Device开启。
- 嵌入式软件开发,不是空中楼阁,离不开硬件的支撑。
前言
- 昨天晚上调试USB HID,一块板不通,一块板USB无法正常识别
- 不能正常识别的板子,移除USB上的电容,正常识别。
- 不能识别的板子,经过万用表测量,发现USB端子有问题,用热风枪加烙铁,更换了一个USB 端子,正常。
- 因此,USB调试硬件环境初步搭建完成
- 烧写官方的HAL USB-HID例程。
- 注意官方代码,默认禁用了SWD,造成下次不按复位键无法继续烧写,需要注释掉,如用STM32CubeMX 生成HAL基础代码时注意配置下SWD引脚。(开始以为板子问题,排查了很久)
目标
- 使用STM32F103RB 板子,打通RT-Thread USB开发环境
- 学习USB并应用,做个简单的USB协议转换工具,如USB-CAN。
- 使用VS2019、QT,开发USB上位机
硬件准备
- 搭建USB开发最小硬件开发环境
- STM32芯片如今价格上涨,还好,有国产的可以替代。
- PCB打样,相对比较便宜
- 网上STM32的开发板很多,资料比较齐全
- 这里选型入门级的STM32F103RBT6平台,资源相对较丰富。
- 由于之前做过硬件开发,所以亲手制作。
- 原理图与PCB设计工具:Altium Designer Summer 09
基本功能
- STM32F103RBT6最小系统板
- USB供电,USB学习使用
- USB转串口CP2102,用于RT-Thread MSH串口输出
- 按键:复位、用户按键
- 外设:简单点,GPIO全部引出,方便外接ESP32、 ESP8266、传感器等模块。
硬件准备
- 之前自己画的板子,复制、简化、修改,保证最快发出去。
- 硬件组成分为电源部分、MCU、LED灯(之前网购过多的器件,消减它)。
- 大体原理图如下:
开发路线图
- 板子很早焊接完成,已经初步完成呼吸灯(PWM)、USB-HID 逻辑
- USB上位机,使用之前VC6的,目前移植到VS2019。
- 需要研究RT-Thread USB的移植与使用
- USB Device深入的研究,实现如USB转CAN等功能
资料地址
软硬件资料正在整理中,后期不断更新
https://gitee.com/zhangsz0516/rtt_stm32_usb
初步总结
- 技术源于实践,加强动手能力。
- 用于探求新技术、新思路,如回顾之前写过的代码,很想重构。。。
- 准备好硬件,开始软件的开发。