[原创] LPC800_MINI_KIT把玩记(更新了:频率计雏形)

sacq   2013-8-18 21:45 楼主
LPC800_MINI_KIT把玩记

近日得小闲,也来了点兴致,开始把玩这块小板并顺便整理这段文字。
我是最后一批的最后一拨收到NXP LPC800_MINI_KIT
板上没有太多的器件。据说,浓缩的都是精化。
精华到了最多只有6IO 口,是6个位(bit)的口
(一共就8脚,有6个可以当IO 口,还不满足?)
1 准备
为了能玩转这个小东西,四处搜罗相关资料——
主要来源:NXP EEWORLD ZLG,爱板网 等网站;
得手的主要资料:
LPC800_ds_en.pdf  LPC81XM  data sheet
UM10601.pdf (LPC800用户手册)
LPC800 mini board Rev AR2_0.pdf  (电路图)
正确的对LPC810进行程序烧录.pdf(火工头陀的大作,指导FLASH MAGIC的相关操作)
NXP , ZLG 例程,网友们的大作(工程)
硬件准备:
LPC800_MINI_KIT
USBTTL转接板利用MSP430 launchpad (后换成了USB232线等)
杜邦线
软件安装:
FLASH MAGIC (把HEX文件下载到LPC810
KEIL4.6 + MDK-ARM_AddOn_LPC8xx.exe
看起来非常迷人的SwitchMatrix Tool (配置工具)没有搞定,先放一边。
2 FLASH MAGIC烧写程序——更多烧的是耐心
与许多网友一样,利用MSP430 launchpad作为USBTTL转接板,再按照火工头陀的那篇文章,下载NXP官网提供的2HEX文件(闪灯,HELLOWORLD)。
实际过程并不顺利,后来总结主要原因有:
* LPC800小板与MSP430小板之间的串口线连接问题; 
* LPC800小板未进入ISP状态。
对第一个问题的解决办法,也是最笨的办法——TXD,RXD两根线调换过来再试;
对于一直无法进入ISP 的办法,自己觉得应该是比较省钱又有效的——按下ISP键,重新上电,必通! 
怎么知道LPC800小板是否在ISP 状态:
 火工头陀的那篇文章提到的办法非常有效——看看能不能正常读出DEVICE SIGNATURE
插曲:
用我的MSP430小板作为转接板烧完官网的2HEX文件,再烧几个网友提供的,特别是呼吸灯,表现不错。可是,发现一个问题,一旦有串口,都不能正常进行通讯,比如运行 hello world,收到的是乱码。而下载、校验都正常的。(这仍然是不解的问题,先放下)
后换用其它下载办法(USB232线+MAX232小板)解决(回避)了串口通讯错误的问题
3 选KEIL 作为编译环境
看到网友说KEIL可为,于是坚定了信心。
爱机上原来已经装了编译环境 KEIL V4.6  ,但该版本并不支持 LPC800, 在失望间猛然看到MDK-ARM_AddOn_LPC8xx(以前大概是在官网下的),安装后,KEIL Database 新增了 "NXP LPC8xx Devices", LPC810M021”即OK.  
编译网友的几个工程,都成功,代码都很赞。
包括:
呼吸灯 ( led_lpc810)
串口控制闪灯频率 ( LPC800+Test)
LPC800串口数码管
4 自己的第一个工程?
万事开头难,写一个自己的工程难度还是很大的,为了不打击自己的积极性,还是选一个比较规范的例程来学习吧。
经过比较,选择ZLG LP800例程(压缩包文件名:PC800_demo.rar)作为学习的材料,原因:
LP800系列,靠谱;
有一定的系统性,便于持续学习;
有中文注解。
但对该系列例程编译后发现:无一能直接在LPC810小板上直接运行。
后反复对比不同例程,找到一些可能的原因:
时钟源问题——这是个最大的问题,LPC810小板用内部RC产生,而ZLG例程用的什么时钟呢?猜测是外时钟,惨!
需要SwitchMatrix重新配置——没有SwitchMatrix Tool帮忙,确实不方便;
……
代码…pdf文档…N多小时后)
经过一番努力,现在好了,基本搞定了GPIO 里的3个例程:
GPIO_Led      (口输出:LED闪动指示)
GPIO_Key     (口输入、输出:按下键,LED亮)
GPIO_Int   (输入口中断,按键触发中断,LED亮)
放一个比较有趣味的GPIO_Key工程文件:GPIO_Key.rar
GPIO_Key.rar (114.77 KB)
(下载次数: 12, 2013-8-21 09:44 上传)
更有趣的代码还需要自己慢慢来努力。
sacq   2013-08-18 (网络极为不畅的日子)


[ 本帖最后由 sacq 于 2013-8-21 09:44 编辑 ]
http://weibo.com/u/1391449055

回复评论 (17)

楼主用心了
点赞  2013-8-18 23:33
:carnation: 很好的东西,谢谢。。。。。。。
我的博客
点赞  2013-8-19 06:28
昨晚发完主贴后便又玩了下串口。
比较幸运,因为TXD、RXD这2个脚的定义完全一致,代码没有太多的改动。
当然,只要你指出改动的地方,我给你“加分”!(7天内有效)

不想说太多,看文件名字,或代码内容,便知详情。

这是“免费”的 :
UARTInt.rar (119.12 KB)
(下载次数: 10, 2013-8-19 22:19 上传)


QQ图片20130819000155.jpg
http://weibo.com/u/1391449055
点赞  2013-8-19 22:19

回复 4楼sacq 的帖子

STC_ISP是用来调试串口的吧?应该不支持LPC800下载吧。
我的博客
点赞  2013-8-20 06:12

回复 5楼zhaojun_xf 的帖子

是的,STC_ISP只是用来调试串口,配合那个  UARTInt 程序的。
UARTInt程序,就是:把接收的字符,原样发回。设置在图中可见。

[ 本帖最后由 sacq 于 2013-8-20 14:01 编辑 ]
http://weibo.com/u/1391449055
点赞  2013-8-20 09:14
频率计?还只是个雏形
SysTick,使用系统节拍定时器产生中断,控制LED的固定间隔的闪动。
如果在固定的时间里记下外部脉冲的数量,
如果这个固定的时间是1秒,
这个计数器不就就相当于外部脉冲的频率了?
SysTick 起步,所以原有的文件名及注解未改动,定时改为500毫秒(我也想直接改成1秒啊,还没成功);
添加了:引脚(口)中断(来源GPIO_Key部分),计数脉冲输入(P0.1,也就是ISP键);
串口中断(来源UARTInt部分),用于发送计数器的数值;
还只是个雏形,很多地方还可以再改进,比如:时基可调,输入脚可变,上下沿可选……
SysTick.rar (127.23 KB)
(下载次数: 8, 2013-8-21 09:42 上传)

给个效果图,输入脉冲是100KHz
QQ图片20130821090114.jpg
还会再努力的。
http://weibo.com/u/1391449055
点赞  2013-8-21 09:42
很不错的东西,希望进一步加深。。。。。。。
我的博客
点赞  2013-8-21 11:06
支持分享~
楼主加油  我们共同努力
点赞  2013-8-23 21:01

回复 9楼flamywei 的帖子

板子虽简单,你也可以一起玩起来~
http://weibo.com/u/1391449055
点赞  2013-8-24 09:41
楼主把频率计完善一下, 让我们也学习学习.
点赞  2013-8-27 08:53

好用的

楼主的程序好用的。
  • IMG_20130827_161555.jpg
  • 5.JPG
点赞  2013-8-27 16:28

回复 12楼hizzx 的帖子

你会做的更好~~
http://weibo.com/u/1391449055
点赞  2013-8-28 09:01
这好几天,可能钻进了死胡同了。
试着玩IIC,读写EEPROM,木有成功。
试着用IIC连COG显示,还未成功。
用逻辑分析仪查看,IIC只发出初始的第一个字节,后面的命令、数据都发不出。
可能是,还没吃透有关内容。。。
http://weibo.com/u/1391449055
点赞  2013-8-28 09:08

回复 14楼sacq 的帖子

可以发帖问问zhaojun_xf
加油!在电子行业默默贡献自己的力量!:)
点赞  2013-8-28 10:14

咦,正交信号发生器?

很早就想做个这个东西,不复杂,需要时很实用。这次借用LPC812了了一个小小的心愿。
在 XinChao 童鞋的 测试程序(UART收发,GPIO控制检测,MRT定时器)基础上修改,修改的主要内容都在定时器中断里。完成了个“正交信号发生器”,信号频率可以通过串口改变。
LP812的8个管脚,全用上了。电源和地用了2个,串口通信再用2个,复位和LED的2个继续保留,还有2个就是用于输出A、B信号了。
输出:
A --(P0.1)
B --(P0.3)

上个A、B信号图,截图于逻辑分析仪软件的界面:

screenshot2.jpg

斑竹昨出的帖子也涉及到了这类的内容(旋转编码解码)。

[ 本帖最后由 sacq 于 2013-8-30 00:13 编辑 ]
http://weibo.com/u/1391449055
点赞  2013-8-30 00:12
在楼上的基础上继续改进,增加了通过串口命令改变“方向”的功能,更实用一些。

“反向”的截图:
screenshot4.jpg

“正向”(默认是正向)的截图
screenshot5.jpg
http://weibo.com/u/1391449055
点赞  2013-9-1 09:49
一起学习
点赞  2013-9-8 13:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复