一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 4666|回复: 29
收起左侧

[ARM] 玩二手区35包邮3个车载GPS显示(LPC2132)心得

[复制链接]
发表于 2015-12-17 20:26 | 显示全部楼层 |阅读模式
首先申明,本人兴致与水平严重不对等,特别是ARM和C,以前热衷于C51扣汇编指令,近期因扩展玩域开始接触C和ARM,以下所记权当本人爬行路上的刻符,愿与小白共勉,高手看来或许十分可笑,敬请PASS为谢。
1.拆机IC功能初识,打各引脚
  识别地线,电源脚,LCD的型号、控制IO分配,串口脚分配,SPI/I2C理走线,按键接法
2.初读主控PDF,知晓烧录方法
短路那两个侧面跳针上电,就是进BOOTLOAD,原厂FLASHMAGIC就可以烧HEX了,第一次因为锁了芯片需要用全片擦,之后就勾下面的那个,按需要擦
3.建个最简工程方算起步
  建工程,编译不报错;补充配置IO控制LED,懒得接就用LCD的背光(P0.16),进阶扩展到配置好UART,这样就可以人机对话调试、输出各种可疑信息,因为这个阶段你可能对PDF还有很多理解偏差;
4.控制LCD才有成就感
很容易找到原厂PDF,另一方面也说明屏算是大厂货HYG1926442C,看手册兼容KS0108,只有几条指令,在理清IO分配、IO控制后非常容易就点亮了
5.让SPI字库对LCD说话
继续配好SPI,以32字节为一组写到LCD上,有点经验的很容易就来事了。字库是左上左下右上右下的结构,可能是为前面的ASC16字库共用写模板。一个FOR就可以历遍SPI中存的字模


到这儿,已经入门了,至于其它模块,慢慢去探索吧,下面说的是BT玩法,不需要的也请PASS




至此,你应该知道芯片有16K RAM,与ROM统一编址,就是说可以用来跑程序,特别是经历N次的断电、短路P0.14,上电的过程,是不是觉得玩它是一件痛苦的折磨,接下来就是让这些变得EASY,我把16K分配成0x40000000--0x40001000 的4K用作RAM,0x40001000--0x40004000的12K用作ROM,KEIL 4.60有此功能选项。


写个小程序烧到ROM也就是传统的 0x000000000处,完成以下功能
    上电读串口如果连续50个0xa9则跳分支(权且叫ISP) 否则及超时从FLASH最后12K加载到0x40001000,跳过去(BX)运行
     ISP把上位机串口来的命令(BIN长度)、数据就是BIN写到0x40001000,这儿上位机有个选项,决定是否写到FLASH(W25X40),然后0x40001000,跳过去(BX)运行


说完了,真的就这么简单,不用再断电、短路、上电就可以看到程序结果,如果你有更高要求,还可以设置KEIL编译后触发上位机的发送动作,你只需要按一下板上的RST(需加,I2C块1脚短路到地)甚至都不用按,新修改的程序就可以跑起来而且还比FLASHMAGIC块很多很多.........最关键还是CPU 0磨损,FLASH 100K的写寿命估计没有人能写翻,况且调试是不写FLASH的,只在你需要相对稳定板子功能、脱机运行的时候才烧之。


    12K ROM /4K RAM,确实啥也控制不了,不过在我们学习中的一个个模块,应该是足够了,而且还可能把固态数据表放FLASH
    以上所述,都已经实现
    哈哈!瞬间对不能RAM代码调试的51无爱了, ade !  我的51 !


评分

参与人数 1一乐金币 +20 收起 理由
gmliwei + 20 很给力!

查看全部评分

 楼主| 发表于 2015-12-17 20:36 | 显示全部楼层
btw:前天花了一下午才配好串口,其实是浪费时间了,本来一开始就配好了的,只是第一次ARM/KEIL,不熟悉ARM/KEIL的startup.s,它在这个模块中默认配置了PLL=5X,所以串口波特率是预期5倍,本人无任何仪器,所以花了很多时间才发觉是5X并在今天上午才晃然大悟。
 楼主| 发表于 2015-12-17 21:04 | 显示全部楼层
本帖最后由 jcdzxh 于 2015-12-21 20:09 编辑

19264效果

19264效果



补一张显示效果,第三行的两个乱码是汉子编码位码的0xff和0x00处的两个空档,非程序异常,今天在FLASH中补了16点宋体字,显示效果不如这个
今天下午SPI 写判忙也栽了,小白有太多的无奈!

发表于 2015-12-17 21:48 | 显示全部楼层
哈哈............思路清晰,结果满意,崇拜一下等我学着折腾时定讨教
发表于 2015-12-19 03:54 | 显示全部楼层
我也买了,虽然我啥也不懂,但是看着你们玩,跟着一起玩就是很开心了。
发表于 2015-12-19 21:00 | 显示全部楼层
我也买了,现在整了两天还是不能显示,能参考下你的代码吗
 楼主| 发表于 2015-12-21 10:21 | 显示全部楼层
本帖最后由 jcdzxh 于 2015-12-21 20:00 编辑
夜上海 发表于 2015-12-19 21:00
我也买了,现在整了两天还是不能显示,能参考下你的代码吗

我现在重新组织字库了,依次480字节ASC7*5,1536--ASC16*8 1-9区中文  16区----87区楷体,16区----87区宋体,还剩约60K
为了中断向量,RAM代码定义成40000000-40002FFF   RAM:40003000 -40003FFF

不过最致命的是周末测试一直循环依次显示字库发现会无规律死机,而且死机后按几次复位会锁死,必须断电才能复位,查了两天没搞定,所以暂时不发屏驱动以免误导。
整理一个测试工程文件,串口输出0-FF 屏背光1秒闪烁,你在上面伸发吧
等查到不死机,我再贴屏和SPI的驱动
LED.rar (56.57 KB, 下载次数: 114)


好象KEIL的中断入口要用40000000,所以又重新分配40000000-4K:RAM  40001000-12K ROM, 终于能运行中断程序了



 楼主| 发表于 2015-12-21 13:45 | 显示全部楼层
http://www.dzsc.com/dzbbs/20060905/200765183017843946.html

这个贴子有说LPC2132有复位锁死的可能


我现在的测屏、SPI代码循环,在勾选pll就不死机,不选PLL,反而会不定时死掉,严重怀疑芯片有热复位某些寄存器复位不干净的BUG
MD,害我扣三天代码
发表于 2015-12-21 19:49 | 显示全部楼层
本帖最后由 夜上海 于 2015-12-21 19:52 编辑
jcdzxh 发表于 2015-12-21 10:21
我现在重新组织字库了,依次480字节ASC7*5,1536--ASC16*8 1-9区中文  16区----87区楷体,16区----87区 ...

终于有显示了,原来脚位和手册上有错,复位脚和CS1换过来就OK了,这错误搞了我三天 QQ截图20151221194622.png


 楼主| 发表于 2015-12-21 19:57 | 显示全部楼层
夜上海 发表于 2015-12-21 19:49
终于有显示了,原来脚位和手册上有错,复位脚和CS1换过来就OK了,这错误搞了我三天

恭喜出来了,我是开始注意到手册的前面描述和后面例图有出入,RST实际是卡在CS1与CS2、3之前
我还在玩RAM跑代码,到现在还没高懂ARM的中断,今天的实验结果是好象要放RAM顶端,就是40001000,以前都是“我的芯片我作主”,玩ARM被这个startup害惨了,要是自己
完全不了解它。重新把程序空间分配在40001000,终于T0中断成功跑起来了。

好象STARTUP要把中断向量写到RAM开始,我用的是KEIL 4.6

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-27 14:16 , Processed in 0.068876 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表