对于想开发电脑互动型仪器设备、乐器、玩具等用户来说,这是一个好东东。
市面上带USB接口的单片机比比皆是,但是这些芯片对于产品开发者来说,都要面临三个关卡。 一是需要在单片机上编写相应的程序,同时要具备这样的前提:不仅要熟悉该单片机的脾气(如果是汇编指令则更费时费力),而且要也要懂USB编程相关的协议。 二是在PC端编写的应用程序是以USB通信为基础的,所以开发者必须要熟悉USB编程的相关协议和知识,而USB的协议是非常庞杂的。 三是单片机硬件搭建的时间和资金成本。不仅要设计和焊接单片机的开发板,还需要购买该单片机的仿真器、烧录器。如果是OTP型的单片机,则更加麻烦。 而EasyUSB正是为解决上述关卡而产生的。即不需要写单片机程序,不需要熟悉USB编程知识和协议,不需要购买单片机开发的相关设备等。
那么,EasyUSB究竟是什么玩意呢? 它是由一个USB专用芯片做成的模块+PC机上完整的应用程序(可二次开发的C++语言源代码)组成的开发套件。有了它,在你需要做一个USB产品开发时,所有要做的就是在PC上修改源代码、调用几个函数读写I/O口。而且该专用芯片的批量价格也是相当便宜。 EasyUSB所用芯片资源示意图如下: http://www.schoolboy.com.cn/pic/digi/0001_IC.jpg
此芯片是一款USB转并行口、串口、SPI、IIC等接口的芯片,PC端不是虚拟的串口,而是真实的I/O地址。EasyUSB模块就是将它做成一个实用的模块,同时打包并简化了软件(你只要修改二次开发包源码中的两个函数的调用参数)。 EasyUSB使得USB产品的开发极为简易、周期大为缩短、费用也节省大半。 EasyUSB模块外观如下: http://www.schoolboy.com.cn/pic/digi/0001_modu.jpg 利用EasyUSB开发的步骤:- 将EasyUSB的USB头插入电脑,另一端的8X2插针插入目标板(也可以不插目标板,因为它本身就自带了4个按键和8个LED灯)。
- 在电脑上用VC++6.0打开开发包工程文件,调用两个函数,就可以输出和输入数据了,就可以灵活运用。(即使不会VC,只要会C就可以了,因为它的应用只需要你修改调用参数。)
EasyUSB用途: 一方面可以作为学习套件、开发板、CH341A评估板使用。 另一方面还可以作为一个万金油式的控制模块、开发模块。因为它留了个16脚插针孔。比如,检测点亮LCD模组;RF模块的数据收发显示;加一个红外二极管便可以做成红外遥控器;加一个红外接收头便可以用家中的电视机遥控器来控制你的电脑;I2C控制;等等。这些,都省去了单片机及其开发、也省去了外接电源。 以EasyUSB模块为基础的应用方案: ★5分钟做一个测速计、频率计。浏览:http://www.schoolboy.com.cn/articles/Read.asp?ID=1248 ★DIY红外遥控器红外分析仪(红外线方波示波器)。浏览:http://www.schoolboy.com.cn/articles/Read.asp?ID=1255 ★镜面旋转LED屏制作。浏览:http://www.schoolboy.com.cn/articles/Read.asp?ID=1253
EasyUSB套件使用说明: 套件清单:
硬件:EasyUSB模块一只 软件:芯片的驱动程序+可编译运行的二次开发包VC++源代码+Demo程序。 下载此软件包 http://www.schoolboy.com.cn/images/small/zip.gif (即使没有EasyUSB模块,也能编译运行该开发包。)
开发包编译运行界面如下: http://www.schoolboy.com.cn/pic/digi/0001_demo_IF.JPG
Demo程序使用说明: (一) 安装该USB设备的驱动程序。 (二) 运行的Demo程序。插入EasyUSB设备后,标题会自动提示设备的插入。(在电脑的设备管理器中,会多出一个外部设备。) (三) 勾选或取消界面上的LED,则会使得EasyUSB模块上的LED点亮或熄灭。 按模块上的按键,对应的Demo程序上的按键会动态地显示http://www.schoolboy.com.cn/pic/digi/0001_KeyOnOff.gif。 预留接口如下: http://www.schoolboy.com.cn/pic/digi/0001_ext_IF.JPG 这些输入输出引脚,在芯片内部都内置了上拉。即使去掉板上的按键和LED,这些引脚都一样是上拉的。 源代码中的函数说明: void EasyUSB_Set8LED(BYTE Data); 功能:设置输出J1的D0~D7的电平。 参数:Data的bit0~bit7分别对应于D0~D7。bit0=0,D0引脚则为低电平,LED1则亮。D0~D7刚好对应于LED1~LED8。 BYTE EasyUSB_GetInput(); 功能:获得输入引脚的状态。 返回值:bit0~bit3分别对应于Key1~Key4。bit0=0,外部引脚为低电平,表明Key1按键按下了。其中,Key3也是中断引脚,上升沿有效。 OnEasyUSB_ExtInt(); 功能:当Key3中断引脚的出现上升沿时,将触发中断,程序会进入本函数处理。 OnEasyUSB_DeviceDetect(); 功能:当该USB设备插入或拔出时,将触发此函数,程序会进入本函数处理。
开发板发货前一律再测试一次,以确保不良率为零。
联系:http://www.schoolboy.com.cn/about.asp |