【转载分享】基于Kinetis KL25/KL26USB读写U盘的例程

2020-02-19 21:08发布

不知道以前有没有人发过。。。

原帖地址:http://blog.chinaaet.com/detail/38978

最近发现有很多使用低端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端相连),如图中我加的绿 {MOD}跳线,需要自己焊接一下,这样准备工作就Ok了;

7141871006466.png (80.04 KB, 下载次数: 0) 下载附件 2014-12-31 16:20 上传

好了,就说这么多了。怎么样,如果没试过的赶紧试一试,还是挺好玩的,哈哈。

附件为完整的测试工程: Kinetis KL25 HOST MSD.zip (685.78 KB, 下载次数: 60) 2014-12-31 16:20 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
43条回答
fengyunyu
1楼-- · 2020-02-20 02:08
不错的资源,这个可以参加本坛的活动了。
jiwx2011
2楼-- · 2020-02-20 04:25
支持lz,很好的资源
子鱼
3楼-- · 2020-02-20 04:38
fengyunyu 发表于 2014-12-31 16:40
不错的资源,这个可以参加本坛的活动了。

这个例程还是挺不错的呢
子鱼
4楼-- · 2020-02-20 09:58
jiwx2011 发表于 2014-12-31 17:21
支持lz,很好的资源

多谢支持
子鱼
5楼-- · 2020-02-20 11:52
 精彩回答 2  元偷偷看……
彼岸花开@
6楼-- · 2020-02-20 14:55
这个作者在我们论坛哈。。FSL的版主哈。

一周热门 更多>