EDN China > 其它文章 > 消费电子设计 > 个人电脑及外围设备 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

如何在PIC微控制器系统中使用USB闪存盘

Fred Dart?? Future Technology Devices International公司?? 2007年09月11日 ?? 收藏0

  USB接口已经无处不在,我们很容易找到各种低成本闪存盘和USB外设,但它们主要用于PC市场。为了将这些外设用于8位或16位嵌入式应用,如何实现、成本和功耗将是主要问题。其中部分原因要追溯到这类系统中用到的嵌入式控制器,如Microchip公司推出且得到广泛应用的PIC系列MCU具有多种存储容量和外设,但由于缺乏接口、资源和性能,无法做为USB主控制器。

系统原理图


  在本文的应用实例中,VNC1L Vinculum控制器提供了作为系统控制器的PIC和USB2.0全速端口之间的接口,可实现与USB闪存盘的连接,同时该方案具有很短的执行时间和最小系统开销。

  Vinculum控制器特点

  该控制器基于定制处理器内核,有两个DMA引擎以加快数据传输和32位数字协处理器优化文件系统的计算,所有这些都在一个芯片里完成,芯片带有64kB嵌入式闪存和4kB内部数据SRAM。Vinculum专门针对嵌入式USB控制器市场,只需要很少外部支持元件。Vinculum核与常用MCU核相比的一个主要特点是其代码长度大幅缩短,减少了内核在代码上的开销,因此可以在单芯片e-Flash存储器里装入更多功能,这

一特点也正好可以弥补基于PIC的嵌入式系统的不足。系统原理图见图1,通过Vinculum将小型PIC MCU连到USB “A”连接器上,然后就可以连接USB闪存盘了。

  PIC是系统控制器,通过通用I/O引脚(引脚9、10、11上的RC0、RC1、RA2)接收从传感器或其它来源传过来的数据,对数据格式进行转换,然后用数据流将数据写入闪存盘上的文件里。命令和数据通过TXD(引脚6)传到VNC1L的RXD(引脚32),VNC1L在USB闪存盘上生成FAT 12/16/32文件并存储数据,并通过USB2DM(引脚28)和USB2DP(引脚29)和闪存盘通信。数据也用同样引脚读出,然后将数据通过VNC1L的TXD(引脚31)传到PIC的PXD(引脚5)以供系统固件使用。

  系统由PIC上的固件控制,数据传输则由PIC发出的指令控制,该指令由Vinculum上的标准固件进行解释。虽然说起来很简单,但完成设计还有其它一些工作要做,例如器件还需要电源、控制时钟的晶振以及编程。

  在PIC引脚2和3之间接入一个20MHz晶振,可在其UART接口获得高达115200bps,而使用内部8MHz振荡器只能获得最高9600bps,因此加接晶振可提高系统性能。PIC的IO引脚RC2和RC3都被固件使用,以模拟与VNC1L UART连接的RTS/CTS握手信号。

  系统需要标准的5V、250mA电源(PSU),可为USB “A”连接器提供200mA电流,同时为VNC1L和PIC各提供25mA驱动电流。VNC1L采用3.3V电源,由一个3.3V LDO稳压器提供,它带有一个5V容限IO引脚,可使其连到PIC而不需要用到电平转换器。

  在低功耗应用中,VNC1L不工作时可进入睡眠模式,消耗电流为2mA,如需唤醒器件,只需触发RART接口的振铃指示(RI)引脚(引脚38)。如果它连到RXD线上(如图所示),就可以用一个空命令触发以唤醒器件。

  该设计还包括一个双色LED指示器,由引脚16和18驱动。它可以显示是否成功连上USB闪存盘并可以访问文件系统。

  VNC1L固件

  VNC1L采用标准固件进行编程,称为VDAP,它可以解释来自于PIC的命令。这些VDAP命令有些类似于DOS指令,如DIR、RD以及WR等,命令集也支持容易被微处理器控制的单字节十六进制命令。

  VDAP命令包含在PIC固件中,可控制USB闪存盘的接入,典型命令序列可以是生成一个文件、从文件中读出/写入数据然后关闭文件。

  VNC1L和PIC编程

  该设计包括两个程序头文件,每个器件需要一个,同时还要有相应的开发环境。对于生产设计而言,两个器件都要在插入PCB之前预先编程,以减少连接头和跳线。

  在正常工作状态下,J1和J2需要连上,而其它跳线保持断开。对VNC1L编程的时候,将J1和J2跳线移开,以使VNC1L UART输入与PIC输出分开。把5V PSU断开,然后将TTL-232R-3V3线缆接到H2上,将该线缆的USB端接到PC上,而在PC上安装好VPROG编程软件。将J4连上以便将VNC1L的PROG#引脚拉低,并短暂将J3短路以使器件复位使其进入编程状态。编程完成后,记住恢复跳线设定到工作位置。

  对PIC编程时编程头连到器件的RA0、RA1和MCLR#引脚,通过编程头提供5V编程电压。PIC微控制器编程前先将5V PSU断开,编程头连到标准PIC编程环境,如PICKit2上,可以使用Microchip的调试与下载工具。

  VDAP固件以及介绍完整指令集的文件可从FTDI的Vinculum网站(


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

PIC微控制器? USB? 闪存?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈