打印
[微控制器/MCU]

lpc1343之三

[复制链接]
2416|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
金鱼木鱼|  楼主 | 2010-6-26 18:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
:通过USB接口控制开发板LED闪烁速度并读取AD转换结果


一直想充分利用LP1343的USB Device接口作为初期开发时的人机接口。

    如果有感兴趣的朋友可以下载原代码研究。所有程序基于:LPCXpresso v3.3 和VC++ 6.0。

    同时我们也提供编译好的WINDOWS程序,方便没有VC++编译器的朋友。

    LPCXpresso 有两个USB HID的例子:“usbhid”和“usbhid-rom”,usbhid-rom利用了引导ROM包含的USB驱动程序,简化了我们的USB应用开发。

    为了更快的介入到USB开发,这里以usbhid-rom为基础,加入LED闪烁、AD5通道转换。PC机通过USB接口控制LED闪烁速度,并不断读取AD5通道转换结果。

    为了完成以上工作,需要引出LPC1343的USB接口,电路很简单,里面的1.5k电阻我一时找不到,用了2K的。

    如图
usb-sch.jpg (22.75 KB)
2010-5-30 14:29



    上图我们只是简单的把D+通过一个电阻接到+3.3V。

    元件不多,可以直接焊到开发板。下面是焊好的开发板:

相关下载

相关帖子

沙发
金鱼木鱼|  楼主 | 2010-6-26 18:36 | 只看该作者

USB01.JPG (634.28 KB)
2010-5-30 14:29




USB02.JPG (634.18 KB)
2010-5-30 14:29




USB03.JPG (614.4 KB)
2010-5-30 14:29



后面的附件里代码包中有完整的范例。
1)将指针映射到片上驱动程序表中:
ROM ** rom = (ROM **)0x1fff1ff8;
2)使能32位定时器1(CT32B1)和IOCONFIG模块:
LPC_SYSCON->SYSAHBCLKCTRL |= (EN_TIMER32_1 | EN_IOCON);
3)初始化USB时钟和引脚:
(*rom)->pUSBD->init_clk_pins();
4)设置设备类型和信息:
USB_DEV_INFO DeviceInfo;
HID_DEVICE_INFO HidDevInfo;
HidDevInfo.idVendor = USB_VENDOR_ID;
HidDevInfo.idProduct = USB_PROD_ID;
HidDevInfo.bcdDevice = USB_DEVICE;
HidDevInfo.StrDescPtr = (uint32_t)&USB_StringDescriptor[0];
HidDevInfo.InReportCount = 1;
HidDevInfo.OutReportCount = 1;
HidDevInfo.SampleInterval = 0x20;
HidDevInfo.InReport = GetInReport;
HidDevInfo.OutReport = SetOutReport;



MCU的代码限于篇幅就不展开说了,自己看附件吧。

    需要特别指出的是:我们只是简单的把D+通过一个电阻接到+3.3V。所以开发板必须先通电运行才能让PC机找到USB设备(也就是原开发板的USB线先通电让LPC1343程序运行起来,然后再把我们DIY的USB接口连到PC机),否则PC机将报告未知的USB设备。这时需要你重新拔出DIY的USB线,然后再插上就可以了。



    现在运行PC机程序:USB_HID_TEST

使用特权

评论回复
板凳
金鱼木鱼|  楼主 | 2010-6-26 18:37 | 只看该作者

usb-soft1.JPG (19.28 KB)
2010-5-30 14:29



    点Find按纽,找到我们的USB设备


USB-SOFT2.JPG (36.98 KB)
2010-5-30 14:29



    上面的link 1就是我们的USB设备,选择。


USB-SOFT3.JPG (45.97 KB)
2010-5-30 14:29



    右侧显示我们的控制窗口。


USB-SOFT4.JPG (48.22 KB)
2010-5-30 14:37



    调整滑块位置,控制LED闪烁速度

使用特权

评论回复
地板
金鱼木鱼|  楼主 | 2010-6-26 18:38 | 只看该作者

USB-SOFT5.JPG (47.8 KB)
2010-5-30 14:29



    同时AD5通道的转换结果,你可以把AD5短路到GND,看结果是否为零。

USB_HID_TEST程序以及原代码见附件


[ 本帖最后由 zhdphao 于 2010-5-30 14:41 编辑 ] 附件 EEWORLD提示:为减少服务器的压力,请尽量不要使用迅雷等下载软件。 usbhid-led-ad5.zip (393.25 KB) 2010-5-30 14:29, 下载次数: 15

USB-SOFT4.JPG (48.22 KB) 2010-5-30 14:29

USB_HID_TEST.rar

7.11 KB

USB_HID_TEST-code.rar

65.12 KB

使用特权

评论回复
5
六楼的窗户| | 2010-6-26 18:39 | 只看该作者
很好很强大,此贴必顶。

使用特权

评论回复
6
金鱼木鱼|  楼主 | 2010-6-26 18:40 | 只看该作者
忘记了说明这些附件的作用了,不好意思。



现在已经无法编辑原帖,重新发帖说明。.







usbhid-led-ad5.zip : LPC1343的原代码: USB设备初始化、USB设备连接、控制开发板LED闪烁、接收PC机数据改变LED闪烁周期、发送AD5通道AD转换结果到PC机。







USB_HID_TEST.rar : 编译好的WINDOWS程序。







USB_HID_TEST-code.rar : WINDOWS程序的源程序。

使用特权

评论回复
7
六楼的窗户| | 2010-6-26 18:52 | 只看该作者
USB.JPG (38.5 KB)
2010-5-31 12:05



    连接图

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

346

主题

1551

帖子

2

粉丝