完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近发现有很多使用低端MCU作为USB主机读写U盘的低成本需求,Kinetis KL2x系列作为MCU平台比较合适,飞思卡尔也为此提供了bare mental版(不带RTOS)的USB Stack,不过官方原版的USB Stack(4.1.1版本)经常会出现挑U盘的现象(即有些U盘不能识别),为此我和同事在官方原版代码的基础上做了修改,并且自己写了使用部分FatFS文件系统常用的几个API函数的demo(见msd_fat_demo.c文件中Fat_Demo_Test()函数,官方原版的测试函数接口为fat_demo()函数,FatFS的API函数很多,但是我们常用来操作U盘的API就那几个,索性我就写了个简单的test就这几个常用的API做了demo演示),经过测试,可以兼容市场上大部分的U盘,效果还是很不错的,下面我简单介绍下(以IAR版为例,Keil版的我就先不介绍了,跟IAR类似),并在文章最后附上了IAR和Keil版的源代码供广大网友参考:
测试平台:IAR7.3 + KL25 FRDM板(我电脑刚更新了IAR到最新版,老版本的应该也没有问题) 测试代码:Kinetis KL25 HOST MSDmsd_mfs_genericiar_ew(基于FSL USB Stack 4.1.1) 测试上位机:超级终端,波特率为9600bps,端口为USB调试端口虚拟的Com口 (1)如下图所示为测试平台,Freedom板自带两个USB接口,其中一个为调试端口与电脑相连,同时电脑通过该USB接口为Freedom板子5v供电,而另一个USB端口则主要用来测试KL25的USB模块的。不过需要注意的问题是,Freedom板默认只能测试USB device功能(板子做USB Device的时候,外部USB Host可以给板子供电),但是如果做USB Host则需要对板子做些许改动,因为如果Freedom板做为USB Host,Device端是无源的设备需要Host端通过VBUS为其供电,所以这时不仅需要调试端口的USB接到电脑端为板子供电,而且还需要加一根跳线将调试端口USB的5v连到测试USB端口的VBUS上为USB Device供电(因为Freedom板子默认没有把这两个USB端口的5v VBUS端相连),如图中我加的绿色跳线,需要自己焊接一下,这样准备工作就Ok了; (2)打开IAR工程并编译,最后下载到Freedom板子上,复位芯片。然后将准备好的U盘插到板子的测试USB端口(需要准备一根大口转小口的USB线),见证奇迹的时刻就到来了,如下图: 附件为完整的测试工程:
Kinetis KL25 HOST MSD.zip
(685.78 KB, 下载次数: 108
)
|
|
相关推荐
|
|
|
|
|
|
真棒,良心贴
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1897个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36308 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4373 浏览 0 评论
6030 浏览 1 评论
6748 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4197 浏览 0 评论
606浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
600浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
590浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
679浏览 2评论
773浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 08:20 , Processed in 1.520716 second(s), Total 97, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号