(求助)LPC4357启动延时7-8S,如何快速启动?
在从LPC4357中运行ucOSII+emWin时,上电后,CPU一直处于未运行状态,大概7、8秒钟后,程序才开始运行,不知道是什么原因同样的板子,只运行简单的测试触摸屏坐标程序时,很快就可以启动起来。
不知道有没有网友遇到过,会不会是我的keil设置有问题。。。 感觉啊,仅仅是感觉,如果你Flash选择的是SPIFI, 参考http://www.nxp.com/documents/errata_sheet/ES_LPC43X0_A.pdf 中的15页。内部Flash应该没这个问题。 从内部FLASH启动的,从外部SPIFI启动非常快。。。 内部FLASH应该比外部的SPIFI快的,你是自己做的板子还是买的板子? 本帖最后由 grarrow 于 2013-7-11 11:27 编辑
我自己做的板子,从内部FLASH启动,刚开始屏是花屏,我用万用表测了一下晶振,电压是0,说明外部晶振还没有使能,说明程序还在LPC的内部64K启动ROM中运行,等待8S后,再次测量外部晶振电压,电压为0.6V,系统进入触摸屏校正界面,校正结束后,开始运行emWin Demo,运行速度非常快,很流畅。
我想问一下,我在scatter file中,在SDRAM区(0x280000000x00040000),没有指定UNINIT属性,这样是不是会导致在Startup.s启动代码中,调用__main()函数时,系统去初始化SDRAM(0x280000000x00040000)的区域为0,而在此时,我的时钟源还是内部的RC,最高运行速度也就是12MHz(96MHz),导致对64MB的SDRAM初始化为0需要很长的时间。。。
晚上回去把SDRAM数据段加上UNINIT试试,如果还是不行,就直接把systeminit()和CGUinit()放在启动代码中,在调用__main()之前调用这两个函数,让系统直接运行在180MHz或182MHz 仿真也是出现这个情况吗? 仿真倒是没试过,晚上回去试试看,LPC1788启动非常快,都是内部FLASH。。。 这个问题终于解决了,在scatter file中,在设置SDRAM的语句中没有加UNINIT,导致每次启动时,启动代码都要将64M的SDRAM初始化为0,这样耗费了7、8S的时间。加上UNINIT属性后,板子一上电就立即运行起来了。一下贴出Scatter file:
LR_IROM1 0x1A000000 0x00080000{ ; load region size_region
ER_IROM1 0x1A000000 0x00080000{; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x10080000 0x0000A000{
.ANY (+RW +ZI)
}
RW_IRAM2 0x20000000 0x00010000{
.ANY (+RW +ZI)
}
RW_IRAM3 0x10000000 0x00008000{; RW data
.ANY (+RW +ZI)
}
;RW_RAM1 0x28000000 0x04000000{
; * (VRAM, GUI_RAM, GUIDEMO_STACK, FS_RAM, IP_RAM, USB_RAM)
;}
RW_RAM1 0x28000000 UNINIT 0x04000000{
* (VRAM, GUI_RAM, GUIDEMO_STACK, FS_RAM, IP_RAM, USB_RAM)
}
}
;LR_IROM2 0x1B000000 0x00080000{
;ER_IROM2 0x1B000000 0x00080000{; load address = execution address
; .ANY (+RO)
;}
;} 楼主试过在SDRAM中调试程序吗? 没有试过,考虑到程序在SDRAM中运行,还要在SDRAM中反复读写LCD数据,效率不是太高,并且SDRAM运行一旦超过96MHz,CPU就死机
感觉还不如指令和数据操作分开效率更高点儿。要是ARM9或A8/A9,用DDR内存,并且CPU带有内存保护单元,运行起来更放心 我目前测试的是LPC4350在204M,SDRAM 102M下运行了20分钟,没有发现问题。楼主的SDRAM运行在90M吗?内核是180M?我的204M下运行时,芯片有些热。不知道楼主有没有发现芯片发热的情况。 grarrow 发表于 2013-7-11 20:42 static/image/common/back.gif
这个问题终于解决了,在scatter file中,在设置SDRAM的语句中没有加UNINIT,导致每次启动时,启动代码都要将 ...
MARK.
我的是LPC4357,CPU主频运行在204MHz,EMC的读写频率设置为102MHz,如果只是裸跑LCD,不运行ucOS+emWin,长时间运行没有问题。但是如果运行ucos+emwin,CPU为204MHz,SDRAM为102MHz,运行一段时间就会死机不动了。为稳定起见,我把CPU频率设为192MHz,SDRAM运行在96MHz,并且跑usos+emwin,非常流畅,不间断运行一整天也没事儿。
可能跟布线有关系,我的SDRAM数据、地址线没有做等长处理,所以当频率超过96MHz就可能存在读写出错的问题。我的另外一块板子LPC1788,SDRAM超过96MHz时也不稳定,所以我让LPC1788的CPU运行在96MHz,SDRAM也是96MHz.
如果LPC4357运行在204MHz是芯片确实有点儿热,但是热的不厉害,可以接受。我的屏是群创7寸AT070TN92屏,LED等耗电量大,我的LM2596-5.0V芯片有点儿发热,据说是国产芯片,要是买原装进口的发热量很小。 MARK grarrow 发表于 2013-7-12 15:45 static/image/common/back.gif
我的是LPC4357,CPU主频运行在204MHz,EMC的读写频率设置为102MHz,如果只是裸跑LCD,不运行ucOS+emWin,长 ...
嗯,我的也没有做等长和阻抗匹配的处理。我仿真下运行了20分钟左右,没有出现问题。这20分钟是不断的对整个SDRAM区域填充数据然后读取判断。你的102M下运行一段时间就出问题,这个是多长时间?我的LPC1788也最高只能到96M,在网上就不行了,不过我的LPC1788是做了等长和阻抗匹配的。 卤煮厉害!而且问题解决后愿意分享方法,顶了 SDRAM在102MHz运行时间我没有测试,这几天测试一下 正在调试板子的各个功能模块,调试结束把资源上传,大家共享 嗯,我的测试结果为,内核最高运行都240M,EMC最高运行到108M。EMCDELAY的延迟为3.5ns. 超频不太好,一切以稳定为前提。。。 grarrow 发表于 2013-7-11 20:42 static/image/common/back.gif
这个问题终于解决了,在scatter file中,在设置SDRAM的语句中没有加UNINIT,导致每次启动时,启动代码都要将 ...
"在scatter file中,在设置SDRAM的语句中没有加UNINIT"
我怎么没找到你说的这个关键字 仔细看看,我猜你对LPC18XX或LPC43XX的SDRAM不熟吧,要是熟悉的,只看标题就会直奔0X28000000这个地址域,你说呢? grarrow 发表于 2013-7-14 13:00 static/image/common/back.gif
超频不太好,一切以稳定为前提。。。
我只是想测试下EMC的最高频率。按照手册上的参数,SDRAM最高可以到120M ,我的只能到108M,没有做等长和阻抗匹配,不知道有没有能将频率提高到120M的。 ST_ATMEL_NXP 发表于 2013-7-14 16:30 static/image/common/back.gif
我只是想测试下EMC的最高频率。按照手册上的参数,SDRAM最高可以到120M ,我的只能到108M,没有做等长和 ...
CPU主频204MHz,emc102MHz,运行UCOS+EMWIN,运行将近2个小时,目前还没有出现问题 ST_ATMEL_NXP 发表于 2013-7-14 10:01 static/image/common/back.gif
嗯,我的测试结果为,内核最高运行都240M,EMC最高运行到108M。EMCDELAY的延迟为3.5ns. ...
CPU主频204MHz,EMC102MHz,运行emWin 三个小时没有出现问题;CPU主频216MHz,EMC108MHz,运行emWin没有出现问题;CPU主频228MHz,EMC114MHz,emWin运行稳定可靠;CPU主频240MHz,EMC120MHz,界面出现花屏,后死机;
超频后,CPU芯片温度有升高现象。 ST_ATMEL_NXP 发表于 2013-7-14 16:30 static/image/common/back.gif
我只是想测试下EMC的最高频率。按照手册上的参数,SDRAM最高可以到120M ,我的只能到108M,没有做等长和 ...
SDRAM确实可以上120M的,我试过。。
不过我项目里只用60M grarrow 发表于 2013-7-14 16:02 static/image/common/back.gif
仔细看看,我猜你对LPC18XX或LPC43XX的SDRAM不熟吧,要是熟悉的,只看标题就会直奔0X28000000这个地址域, ...
我用的是1788。。。
话说我1788的SCT文件SDRAM域也没加UNINIT这个关键字,怎么不会像你那么要等七八秒,都是秒开
SNOOKER 发表于 2013-7-14 22:57 static/image/common/back.gif
SDRAM确实可以上120M的,我试过。。
不过我项目里只用60M
你可以试试120M 有SDRAM里面运行程序试试看.我的跑120M,放数据是没有问题的,但是在SDRAM里面跑代码会不稳定,导致死机,而且死机的时间没有规律.有时是几秒,有时是几分钟.有时是几个小时. grarrow 发表于 2013-7-14 22:08 static/image/common/back.gif
CPU主频204MHz,EMC102MHz,运行emWin 三个小时没有出现问题;CPU主频216MHz,EMC108MHz,运行emWin没有 ...
我昨天运行的结果是,CPU:216M,EMC:108M,对整个64MB的SDRAM区域进行完全填充,然后在读取判断。总共进行了13215次。没有出现问题。不过CPU的热量明显有所提升。CPU:228M,EMC:114M,第一次区域填充以及判断是正确的。往后都是错误。另外你们的EMC CLK的延迟都是多少? grarrow 发表于 2013-7-14 22:08 static/image/common/back.gif
CPU主频204MHz,EMC102MHz,运行emWin 三个小时没有出现问题;CPU主频216MHz,EMC108MHz,运行emWin没有 ...
13楼的帖子提过,EMC在102M时会出现不稳定情况,所以降到了90M。这次运行你对代码进行了修改?可以正常运行到114M?根据手册的参数,EMC最高不到120M的。 SNOOKER 发表于 2013-7-14 22:57 static/image/common/back.gif
SDRAM确实可以上120M的,我试过。。
不过我项目里只用60M
你这个是1788的吧,你的SDRAM能到120M? 手册上说的是最高80M。你对PCB板子做了特殊处理?另外哪个批次的芯片呀! 做了一些设置,我的内部带FLASH的型号,在systeminit函数中,有个宏定“#ifdefine INTERNAL_FLASH .....”我定义了一下INTERNAL_FLAS宏,也就是设置了一下内部FLASH的取指令加速功能,运行速度明显加快,并且没有出现死机的情况。另外EMC运动的114MHZ很稳定,没有出错 SNOOKER 发表于 2013-7-14 23:01 static/image/common/back.gif
我用的是1788。。。
话说我1788的SCT文件SDRAM域也没加UNINIT这个关键字,怎么不会像你那么要等七八秒, ...
这就不太清楚了,对我的板子来说,确实很有效~ EMC delay时间最长的,77777 grarrow 发表于 2013-7-15 09:29 static/image/common/back.gif
EMC delay时间最长的,77777
在PCB板子上EMC的时钟做了处理了吗? 没有,连个33R的电阻也没串,后悔没有串个电阻。。。,不过我的1788板子上串了,SDRAM的速度还是上不去。。。 grarrow 发表于 2013-7-15 09:54 static/image/common/back.gif
没有,连个33R的电阻也没串,后悔没有串个电阻。。。,不过我的1788板子上串了,SDRAM的速度还是上不去。。 ...
嗯,我现在用的是10年的4350,改天换个4357试试,看看频率能上去吧!倒时候可以共享下你的测试代码吗?呵呵。 没问题,SD卡文件系统移植好了,CAN总线的主从测试,RS485主从测试也都OK,正在搞USB,回来共享下数据。另外如果跑LCD的话,起码用LPC1857或LPC4357,外部SPIFI运行太慢,如果用LPC1850或LPC4350还不如直接上LPC1788或LPC4088,性能不咋样 grarrow 发表于 2013-7-15 10:15 static/image/common/back.gif
没问题,SD卡文件系统移植好了,CAN总线的主从测试,RS485主从测试也都OK,正在搞USB,回来共享下数据。另外 ...
代码在SRAM中运行的速度是很快的。内部的flash不一定比SRAM快。LPC4350是代码260KB的SRAM的,其中128KB做代码空间也可以,只是代码容量过大不行。 嗯,我还是倾向于自带的internal flash,1M的容量,速度也可以了。 请问 LPC4350 能批量拿货了么 价格几何啊?谢谢! ST_ATMEL_NXP 发表于 2013-7-15 08:51 static/image/common/back.gif
你这个是1788的吧,你的SDRAM能到120M? 手册上说的是最高80M。你对PCB板子做了特殊处理?另外哪个批次的 ...
手册哪里有讲最高只能80M?
我只在手册上看到SDRAM时钟只能设置为内核时钟的1分频或2分频。
PCB板子没做任何特殊处理,2层板,随意布的线,批次没留意,板子在公司 xjavr 发表于 2013-7-15 00:15 static/image/common/back.gif
你可以试试120M 有SDRAM里面运行程序试试看.我的跑120M,放数据是没有问题的,但是在SDRAM里面跑代码会不稳 ...
哦,当时我没有在内存里跑程序,下次试看看 SNOOKER 发表于 2013-7-15 19:48 static/image/common/back.gif
手册哪里有讲最高只能80M?
我只在手册上看到SDRAM时钟只能设置为内核时钟的1分频或2分频。
这个手册里是有说明的。你在数据手册里搜索"12.5"ns的关键字。LPC4350的搜索“8.4”ns的关键字。 这个得标记下 fishhead 发表于 2013-7-15 15:58 static/image/common/back.gif
请问 LPC4350 能批量拿货了么 价格几何啊?谢谢!
LPC4350量产了,LPC4357好像没量产,LPC4357 60元/片,我当时买的时候可是80元/片,LCP1857 48元/片 经验,留个记号 ST_ATMEL_NXP 发表于 2013-7-16 08:05 static/image/common/back.gif
这个手册里是有说明的。你在数据手册里搜索"12.5"ns的关键字。LPC4350的搜索“8.4”ns的关键字。 ...
LPC178x_7x User manual(2012-09-20)这个手册搜索表示未找到 SNOOKER 发表于 2013-7-17 20:08 static/image/common/back.gif
LPC178x_7x User manual(2012-09-20)这个手册搜索表示未找到
你这是用户手册,还有一个数据手册,主要标注了MCU的电气特性的。在EMC章节的外部动态存储器中有标注。 grarrow 发表于 2013-7-16 14:15 static/image/common/back.gif
LPC4350量产了,LPC4357好像没量产,LPC4357 60元/片,我当时买的时候可是80元/片,LCP1857 48元/片 ...
楼主,你的板子上一有NOR FLASH吗?我的板子上有个8MB的NOR,但是我的地址线没有偏移。造成不能使用,CS0引脚上也没有上拉电阻。在这样的情况下,只要焊接上NOR,SDRAM就不能用,应该是干扰了总线,我在配置CS0的时候使能了内部的上拉电阻。烦请楼主帮忙指点下!多谢。 楼主,您好!
我有个问题不知能否请您帮忙解答一下?
我也是用LPC4357,驱动4.3屏没问题,现在想驱动7寸屏,可是我仿照1788驱动7寸代码改LPC4357的,怎么也无法显示,屏幕是白色的,我用的是KEIL MCB4300的DEMO改的。能否将您的7寸驱动代码发来参考一下?我的EMAIL: 13603052469@139.COM,.
望不吝赐教!先谢谢了 szszjdb 发表于 2013-7-28 11:43 static/image/common/back.gif
楼主,您好!
我有个问题不知能否请您帮忙解答一下?
我也是用LPC4357,驱动4.3屏没问题,现在想驱动7寸屏 ...
裸屏还是运行emWin?我用的屏是群创AT070TN92,参数设置可能不一样,今天有点儿晚,明天下班把例程发给你 不是EMWIN,也不算裸屏,是KEIL的MCB4300中的一个名叫DEMO的例子,主要演示刷屏,按键,温度测量等简单功能。想刷实时动态波形,刷新率40-50HZ,用1788发现波形抖动厉害,(没有用AB显存功能),怀疑显示带宽不够,故想用4357试试,结果又无法显示,郁闷几天了。
实在多谢您了。 多看看屏的手册,时序不对,原来我的屏也抖,更改了些参数,LPC1788也不抖了 1788屏如果刷静态或更新率不高的图像是没有问题的,我已经将屏幕刷新设为50HZ,只有在高带宽占用的实时刷新时,图像在轻微抖动,肉眼很明显感觉到。直觉就是写显存时带宽不够,影响了LCD刷新。这个问题可能也是视频显示时需要解决的问题,不知道人家如何解决的。
4357还没点亮7寸屏,不知是否改善。
多谢指导。 我设置的刷新为60MHZ,为60MHz可以表现不错。我目前只运行了SDRAM,在刷屏是没有去读写NOR或NAND FLASH,我觉得你把LCD更新频率改为60MHz试试。我目前在LPC1788和LPC4357上,还没有发现有抖动的情况。 grarrow 发表于 2013-7-31 14:15 static/image/common/back.gif
我设置的刷新为60MHZ,为60MHz可以表现不错。我目前只运行了SDRAM,在刷屏是没有去读写NOR或NAND FLASH,我 ...
多谢楼上兄弟!
我试过LCD刷新率50HZ,没法解决问题。
我说的高带宽占用是指高速(25HZ)刷新大面积的屏幕。这时写显存可能太慢导致写还没有完成就刷到LCD上了,静态没问题,动态图像就看到闪烁了。听说利用双缓冲可解决,但不知道其具体实现机制。
不知您试过双缓冲显示方法吗?疑惑在于,比如我新建一个按键,要先在A屏画出,再在B屏画,一个按键要画两次,如何安排绘图底层和中间层是个巨大挑战。
再谢! 你们这用的都是BGA封装的吗?做的是几层的板子!!
如果是BGA封装,焊接如何搞的?一直想玩玩LPC4357可惜BGA,不敢入手! szszjdb 发表于 2013-7-31 22:10 static/image/common/back.gif
多谢楼上兄弟!
我试过LCD刷新率50HZ,没法解决问题。
我说的高带宽占用是指高速(25HZ)刷新大面积的屏幕 ...
动态驱动7寸屏没有问题,如果抖动的话,仔细看下HPULSE设置的是否合理 electrlife 发表于 2013-7-31 22:32 static/image/common/back.gif
你们这用的都是BGA封装的吗?做的是几层的板子!!
如果是BGA封装,焊接如何搞的?一直想玩玩LPC4357可惜BG ...
BGA封装,我让贴片厂家焊的,焊一片150RMB,6层板 grarrow 发表于 2013-8-1 14:18 static/image/common/back.gif
动态驱动7寸屏没有问题,如果抖动的话,仔细看下HPULSE设置的是否合理
多谢楼主!我的TFT配置如下,不知是否有误?现在静态显示是没有闪烁的,动态闪。
#define H_SIZE 800
#define V_SIZE 480
/* LCD Config */
#define LCD_H_SIZE H_SIZE
#define LCD_H_PULSE 2
#define LCD_H_FRONT_PORCH 17
#define LCD_H_BACK_PORCH 45
#define LCD_V_SIZE V_SIZE
#define LCD_V_PULSE 2
#define LCD_V_FRONT_PORCH 22
#define LCD_V_BACK_PORCH 22
多谢! szszjdb 发表于 2013-8-6 10:26 static/image/common/back.gif
多谢楼主!我的TFT配置如下,不知是否有误?现在静态显示是没有闪烁的,动态闪。
#define H_SIZE 800
#define LCD_H_PULSE 2将修改成10试试
grarrow 发表于 2013-8-6 13:15 static/image/common/back.gif
#define LCD_H_PULSE 2将修改成10试试
楼主:
试过了,还是不行。它那种闪是好像刷新率不够的闪。可能得提高刷新率。
多谢! grarrow 发表于 2013-8-6 13:15 static/image/common/back.gif
#define LCD_H_PULSE 2将修改成10试试
HI,请问LPC4357在内部FLASH启动的时候。BOOT的引导接口需要怎么设置。我在仿真的情况下可以运行代码,但是重新上电后就不能启动了。 ST_ATMEL_NXP 发表于 2013-10-18 21:46 static/image/common/back.gif
HI,请问LPC4357在内部FLASH启动的时候。BOOT的引导接口需要怎么设置。我在仿真的情况下可以运行代码,但 ...
随便设置,在启动时,boot ROM中的程序首先判断内部FLASH是否有合法的程序,如果有则直接从内部FLASH启动,与BOOT引脚的设置没关系。如果内部FLASH中没有有效的程序,则根据BOOT引脚的设置从相依的存储器启动 先做记号,以后再看 记下了我用LPC1788时也有这个问题
MARK......
页:
[1]