该设计还包括一个双色LED指示器,由引脚16和18推动。它可以显示是否成功连上USB闪存盘并可以访问文件系统。
VNC1L和PIC编程
该设计包括两个程序头文件,每个器件需要一个,同时还要有相应的开发环境。对于生产设计而言,两个器件都要在插入PCB之间预先编程,以减少连接头和跳线。
在正常工作状态下,J1和J2需要连上,而其他跳线保持断开。对VNC1L编程的时候,将J1和J2跳线移开以使VNC1LUART输入与PIC输出分开。把5VPSU断开,然后将TTL-232R-3V3线缆接到H2上,将该线缆的USB端接到PC上,而在PC上安装好VPROG编程软件。将J4连上以便将VNC1L的PROG#引脚拉低,并短暂将J3短路以使器件复位使其进入编程状态。编程完成后,记住恢复跳线设定到工作位置。
对PIC编程时编程头连到器件的RA0、RA1和MCLR#引脚,通过编程头提供5V编程电压。PIC微控制器编程前先将5VPSU断开,编程头连到标准PIC编程环境如PICKit2上,可以使用Microchip的调试与下载工具。
本文所附的C代码实例显示PIC等待闪存盘检测,然后打开一个名为hello.txt的文件,接着将“HelloWorld”以及回车换行符写入该文件中,最后关闭文件并等待将闪存盘移开。
VNC1L固件
VNC1L采用标准固件进行编程,称为VDAP,它可以解释来自于PIC的命令。这些VDAP命令有些类似于DOS指令,如DIR、RD以及WR等,命令集也支持容易被微处理器控制的单字节十六进制命令,VDAP命令包含在PIC固件中,可控制USB闪存盘的接入,典型命令序列可以是生成一个文件、从文件中读出/写入数据然后关闭文件。
结论
FTDI的VinculumVNC1L提供了一个低成本微控制器与USB2.0低/全速外设之间的接口,易于使用和编程,其指令集类似于DOS命令,可在微控制器环境下很容易地编写调试数据以及传输例程,同时设计简单,使嵌入式系统能以较低成本实现USB主机功能。因此用户将可以采用低成本通用USB闪存盘作为系统存储媒介,而且还能在现场进行软件升级。此外VNC1L还可用于连接除了大容量存储设备之外的很多其他USB外设,不过这部分内容在本文讨论范围之外。