搜索
bottom↓
回复: 105

刚到手的LPC4357开发板

  [复制链接]

出0入0汤圆

发表于 2014-4-8 11:34:15 | 显示全部楼层 |阅读模式
本帖最后由 zhangtuan 于 2014-4-8 11:41 编辑

刚刚买的LPC4357开发板,先附上说明,详细资料再有空上传

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-4-8 15:33:24 | 显示全部楼层
我也有块LPC4357的开发板,我的没什么资料,不什么好玩,共享一下你的资料,一下探讨探讨。

出0入0汤圆

发表于 2014-4-8 15:55:24 | 显示全部楼层
板子不错啊,楼主共享一下资料来啊,一起学习学习…………

出0入0汤圆

发表于 2014-4-8 16:11:35 | 显示全部楼层
谁家的?多少钱?

出0入0汤圆

发表于 2014-4-8 17:25:49 | 显示全部楼层
Excellence 发表于 2014-4-8 16:11
谁家的?多少钱?

799,看了某宝的,

出0入0汤圆

发表于 2014-4-8 17:28:34 | 显示全部楼层
盈钰。。。。。。

出0入0汤圆

发表于 2014-4-8 17:29:07 | 显示全部楼层
楼主,能否放网盘上,先谢了。

出0入54汤圆

发表于 2014-4-8 17:29:17 | 显示全部楼层
挺想用这个芯片的
就是担心资料不够。。

出0入0汤圆

发表于 2014-4-8 17:38:20 | 显示全部楼层
本帖最后由 magicoe 于 2014-4-8 17:43 编辑

恭喜楼主开始双核,SPIFI,SGPIO,SCT之旅,有空多多交流,我还是推荐RT-thread那块LPC4088的板子,我觉得LPC4088好用些,LPC43xx新人入手有点难度。

出0入0汤圆

发表于 2014-4-8 18:13:16 | 显示全部楼层
呵呵  楼主继续

出0入0汤圆

发表于 2014-4-8 19:02:49 | 显示全部楼层
楼主还没有来啊,资料放网盘发个链接来啊

出0入0汤圆

发表于 2014-4-8 20:00:14 | 显示全部楼层
某宝 799的板子我也刚买一块,可惜用公司的钱买的资料无法上传(加密了),现在正在把玩中,以后希望一起探讨。
M4的板子现在对初学者确实有点难度,资料少,基本靠自己去啃英文手册和一个个实验。

出0入0汤圆

发表于 2014-4-8 20:10:17 | 显示全部楼层
我也入了一块来着····

出0入0汤圆

发表于 2014-4-8 20:15:23 | 显示全部楼层
motodefy 发表于 2014-4-8 20:10
我也入了一块来着····

上传资料共享一下啊

出0入0汤圆

发表于 2014-4-8 20:22:47 | 显示全部楼层
LPCLINK 4370 20美元一个板子,3核,足够玩了

出0入0汤圆

发表于 2014-4-8 20:40:57 | 显示全部楼层
刚入了一块盈钰的429板子。还没上电,吃灰呢

出0入0汤圆

发表于 2014-4-8 20:42:02 | 显示全部楼层
刚入了一块盈钰的429板子。还没上电,吃灰呢

出0入0汤圆

发表于 2014-4-8 20:48:25 | 显示全部楼层
也有一块4357丢柜子里,哈哈哈,通过一次电,刚刚的

出0入0汤圆

发表于 2014-4-8 22:58:30 | 显示全部楼层

出0入0汤圆

发表于 2014-4-8 23:16:22 | 显示全部楼层
cumtgao 发表于 2014-4-8 20:00
某宝 799的板子我也刚买一块,可惜用公司的钱买的资料无法上传(加密了),现在正在把玩中,以后希望一起探 ...

手册有中文的http://www.lpcware.com/content/device/lpc43xx

出0入0汤圆

发表于 2014-4-8 23:38:47 来自手机 | 显示全部楼层
这芯片比f4贵了好多啊  双核的最大优势是什么

出0入0汤圆

发表于 2014-4-9 08:14:43 | 显示全部楼层
study_hardware 发表于 2014-4-8 23:38
这芯片比f4贵了好多啊  双核的最大优势是什么

两个核,可以分工干活。

出0入0汤圆

发表于 2014-4-9 08:37:28 | 显示全部楼层
我也买了块298的最小系统,双核的试验测试了,非常有趣,M0核心的程序写好后做成C的数组,M4核心将数组拷贝到ram中,然后复位引导m0核心执行数组就开始运行了。

但是i2s的程序就是写不好啊!谁有现成的可以参考一下?

出0入0汤圆

发表于 2014-4-9 08:38:27 | 显示全部楼层
有时间也搞一块。


出0入0汤圆

发表于 2014-4-9 09:09:01 | 显示全部楼层
LPC4357挺好用的,usb也是高速480M内置phy芯片。

出0入0汤圆

发表于 2014-4-9 09:16:35 | 显示全部楼层
study_hardware 发表于 2014-4-8 23:38
这芯片比f4贵了好多啊  双核的最大优势是什么

如果没记错的话F429可以接SDRAM和RGB的屏,4357也可以的,从这个层面上看,两个价格差距不是很大,若单单只说M的核心,那确实贵了不少

出0入0汤圆

发表于 2014-4-9 14:29:58 | 显示全部楼层
看看,我也想用这个,不知道跑系统怎么样

出0入0汤圆

 楼主| 发表于 2014-4-9 17:12:33 | 显示全部楼层
昨天有点忙,今天登录,把资料共享一下

出0入0汤圆

 楼主| 发表于 2014-4-9 17:38:21 | 显示全部楼层
刚把开发板的emWin例子下载跑了一下,资料晚上上传,好像每天只能上传10M

出0入0汤圆

发表于 2014-4-9 17:59:10 | 显示全部楼层
zhangtuan 发表于 2014-4-9 17:38
刚把开发板的emWin例子下载跑了一下,资料晚上上传,好像每天只能上传10M

建议上传到网盘

出0入0汤圆

发表于 2014-4-9 18:01:58 | 显示全部楼层
我买过一个优龙的LPC4357的开发板,不过被领导那去了,我只有资料,有人想看的话我找找上传一下

出0入0汤圆

发表于 2014-4-9 18:18:20 | 显示全部楼层
wxfje 发表于 2014-4-9 09:16
如果没记错的话F429可以接SDRAM和RGB的屏,4357也可以的,从这个层面上看,两个价格差距不是很大,若单单 ...

跟F429竞争的我觉得是LPC4088产品线,LPC435x也有不带Flash的,那个价格灰常有竞争力,SPIFI很强大

出0入0汤圆

发表于 2014-4-9 18:29:57 | 显示全部楼层
saddam911 发表于 2014-4-9 18:01
我买过一个优龙的LPC4357的开发板,不过被领导那去了,我只有资料,有人想看的话我找找上传一下 ...

上传吧。网盘。

出0入0汤圆

发表于 2014-4-9 18:30:20 | 显示全部楼层
zhangtuan 发表于 2014-4-9 17:38
刚把开发板的emWin例子下载跑了一下,资料晚上上传,好像每天只能上传10M

期待。


出0入0汤圆

发表于 2014-4-9 18:54:16 | 显示全部楼层
请问下有没有这开发板的原理图呢,核心板和底板的???

出0入0汤圆

 楼主| 发表于 2014-4-9 20:26:50 | 显示全部楼层
资料都在网盘: http://pan.baidu.com/s/1i30vALJ

出0入0汤圆

发表于 2014-4-9 22:36:53 | 显示全部楼层
好资料已收下

出0入0汤圆

发表于 2014-4-9 22:53:59 | 显示全部楼层
谢谢楼主的资料

出0入0汤圆

发表于 2014-4-10 09:20:19 | 显示全部楼层
zhangtuan 发表于 2014-4-9 20:26
资料都在网盘: http://pan.baidu.com/s/1i30vALJ

谢谢。下载中。。。

出0入0汤圆

发表于 2014-4-11 15:58:03 | 显示全部楼层
我也买了块一样的开发板,为什么用jlink不能下载程序呢,难道他给我配的线有问题?

出0入0汤圆

 楼主| 发表于 2014-4-12 17:38:34 | 显示全部楼层
liuyanlogn123 发表于 2014-4-11 15:58
我也买了块一样的开发板,为什么用jlink不能下载程序呢,难道他给我配的线有问题? ...

他们建议不要用Jlink,我就买了个Ulink使用

出0入0汤圆

发表于 2014-4-13 01:35:38 来自手机 | 显示全部楼层
已收藏 谢谢

出0入0汤圆

发表于 2014-4-13 10:52:17 | 显示全部楼层
你好,我前一阵子也买了一块盈钰4357的板子,不久前调试发现ewWIN带触摸的那个例程运行一会儿就会死机,将ewWIN升级成5.22后就没事了,但是如果在emWIN例程加入SD卡例程的话,会在读取文件的时候程序跑飞,进入hard fault,不知你有没有遇到这样的问题?如果有的话你觉得可能是哪里的问题呢?

出0入0汤圆

发表于 2014-4-14 08:51:25 | 显示全部楼层
跟楼主买的一样

出0入0汤圆

发表于 2014-4-14 10:02:39 | 显示全部楼层
429的路过,,表示向往双核的..

出0入0汤圆

发表于 2014-4-14 10:48:35 | 显示全部楼层
紫胤真人 发表于 2014-4-14 10:02
429的路过,,表示向往双核的..

LPC437x表示可以向往3核了

出0入0汤圆

发表于 2014-4-14 10:49:31 | 显示全部楼层
liugang1986 发表于 2014-4-13 10:52
你好,我前一阵子也买了一块盈钰4357的板子,不久前调试发现ewWIN带触摸的那个例程运行一会儿就会死机,将ewW ...

看你Harfalt置位原因,多半都是因为SRAM/SDRAM内存读取冲突了,造成的

出0入0汤圆

发表于 2014-4-15 09:30:42 | 显示全部楼层
magicoe 发表于 2014-4-14 10:49
看你Harfalt置位原因,多半都是因为SRAM/SDRAM内存读取冲突了,造成的

昨天晚上试了试,果然问题与sdram有关。在kei中调试的时候, fault种类为ibus fault,尝试将emWIN的缓存由片外sdram转移到片内ram后,就能正常工作了。运行了一夜也没出现任何问题,看来问题的却是出在sdram上了。今晚在去看看到底是时序参数设置的问题,还是芯片的问题。目前的感觉是片外sdram连续读写的区域没问题,放置一段时间后再读写的区域就会出现错误,也许是刷新的原因吧。总之,谢谢这位朋友了!

出0入0汤圆

发表于 2014-4-15 18:21:09 | 显示全部楼层
本帖最后由 magicoe 于 2014-4-15 18:23 编辑
liugang1986 发表于 2014-4-15 09:30
昨天晚上试了试,果然问题与sdram有关。在kei中调试的时候, fault种类为ibus fault,尝试将emWIN的缓存由 ...


SDRAM的时序配置有问题,这个你要稍微计算下自刷新的时间。或者把所有SDRAM时序配置为最差的模式看看,还有检查你的map file看是否有冲突的

出0入0汤圆

发表于 2014-4-15 21:48:08 | 显示全部楼层
一直都很鄙视LPC的CPU

出0入53汤圆

发表于 2014-4-16 11:24:28 | 显示全部楼层
nongxiaoming 发表于 2014-4-8 20:48
也有一块4357丢柜子里,哈哈哈,通过一次电,刚刚的

农现在4357玩的怎么样了?

出0入53汤圆

发表于 2014-4-16 11:27:05 | 显示全部楼层
magicoe 发表于 2014-4-15 18:21
SDRAM的时序配置有问题,这个你要稍微计算下自刷新的时间。或者把所有SDRAM时序配置为最差的模式看看,还 ...

M0和M4是如何进行共享数据的,有没有关于2个core 通信的资料 还有m0的应用资料,看了例程没看明白

出0入0汤圆

发表于 2014-4-16 20:34:54 | 显示全部楼层
资料下了,谢谢!能不能上传LPC4357的sch,pcb封装库文件

出0入0汤圆

发表于 2014-4-16 20:39:55 | 显示全部楼层
zhangtuan 发表于 2014-4-9 20:26
资料都在网盘: http://pan.baidu.com/s/1i30vALJ

不知楼主玩到说明程度了?那个code下面,LPCOpen....V2_2_7文件夹下的例程你能编译通过吗?我编译第二个生产lib文件时提示错误了,现在还没有找到问题!

出0入0汤圆

发表于 2014-4-16 20:49:00 | 显示全部楼层
hqgboy 发表于 2014-4-10 09:20
谢谢。下载中。。。

我手动将开发板带的jlink转接小板信号都加了一个5V TVS管表示用到现在还没坏!!!

出0入0汤圆

发表于 2014-4-17 07:53:52 来自手机 | 显示全部楼层
看起来很高级!

出0入0汤圆

发表于 2014-4-18 14:01:39 | 显示全部楼层
cumtgao 发表于 2014-4-16 20:39
不知楼主玩到说明程度了?那个code下面,LPCOpen....V2_2_7文件夹下的例程你能编译通过吗?我编译第二个 ...

提示了什么错误?

出0入0汤圆

发表于 2014-4-18 14:29:00 | 显示全部楼层
liugang1986 发表于 2014-4-18 14:01
提示了什么错误?

解决了,解压缩时可能掉了什么东西。现在编译通过了

出0入0汤圆

发表于 2014-4-25 19:15:53 | 显示全部楼层
我这里的问题也解决了,原来4357的EMC有BUG,二分频有问题,现在降低总线速度,不分频,目前SDRAM稳定工作在130Mhz,140Mhz会出现hard fault,应该是逼近IC极限了吧。

出0入53汤圆

发表于 2014-5-3 16:23:33 | 显示全部楼层
magicoe 发表于 2014-4-15 18:21
SDRAM的时序配置有问题,这个你要稍微计算下自刷新的时间。或者把所有SDRAM时序配置为最差的模式看看,还 ...

刚刚接触SDRAM和NOR FLASH还有很多迷惑

出0入53汤圆

发表于 2014-5-3 16:24:41 | 显示全部楼层
magicoe 发表于 2014-4-15 18:21
SDRAM的时序配置有问题,这个你要稍微计算下自刷新的时间。或者把所有SDRAM时序配置为最差的模式看看,还 ...

1.如何让程序完全运行在外部SDRAM上
2.如何让程序在NOR启动运行

出0入53汤圆

发表于 2014-5-3 16:25:32 | 显示全部楼层
我的也是这款板子,现在卡在这2个地方了

出0入0汤圆

发表于 2014-5-4 09:34:00 | 显示全部楼层
zhcj66 发表于 2014-5-3 16:24
1.如何让程序完全运行在外部SDRAM上
2.如何让程序在NOR启动运行

1. SDRAM 参看http://www.lpcware.com/content/n ... am-memories-lpc32xx
    NOR 比较容易,看例程代码就好了http://www.lpcware.com/lpcopen
    让程序完全运行在SDRAM中,首先你向量表最好在RAM中,其次在startup.s 中跳转到main之前初始化好sdram,再次在分散加载中设置好你的SDRAM区域,其他应该木什么了。
    其实有SPIFI了,应该比SDRAM中运行效率更高。所以我觉得没必要SDRAM了,除非你程序超过32MByte。
2. Nor运行参考SDRAM,另外要注意Boot的设置成Nor,这个Keil有个例程,参考Keil\ARM\Boards\Keil\MCB4300\Demo

出0入53汤圆

发表于 2014-5-4 14:50:43 | 显示全部楼层
magicoe 发表于 2014-5-4 09:34
1. SDRAM 参看http://www.lpcware.com/content/nxpfile/an10935-using-sdrddr-sdram-memories-lpc32xx
   ...

转发一下硬汉大哥的贴子
http://bbs.armfly.com/read.php?tid=1942
驱动SDRAM的时序比较的麻烦一些,不像驱动SRAM,非常简单,网上搜索一下,估计有非常多的FPGA驱
动SDRAM的资料,而且是各种的给你讲时序问题,现在F429/439集成了控制器以后就方便很多了,用户只需配
置相应的寄存器即可,这里向大家推荐一篇文章,强烈的推荐,不懂SDRAM为何物的,一定要看看。
《高手进阶,终极内存技术指南——完整/进阶版》 http://bbs.armfly.com/read.php?tid=1930
1.  学习SDRAM驱动前的准备工作
    学习SDRAM前搞清楚两个问题,一个是SDRAM的基本原理,还有一个就是那几个关键的参数,参数是F429
配置SDRAM的关键,这几个参数大概知道是什么意思就行了,配置的时候,根据SDRAM的手册配置一下就OK
了。在STM32F429/439的数据手册里关键参数说明,F429/439是把这几个关键的参数做到了一个寄存器里面
了,这些参数,手册上面有一些英文说明,但比较的笼统。

我推荐的那篇文章,建议大家一定要看,别的可以不看,这个必须得看,讲的实在太好了,我这里把一些关键的
参数摘录出来:
tRCD:
       在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为tRCD,即RAS to CAS
Delay(RAS至CAS延迟),大家也可以理解为行选通周期,这应该是根据芯片存储阵列电子元件响
应时间(从一种状态到另一种状态变化的过程)所制定的延迟。tRCD是SDRAM的一个重要时序参数
,可以通过主板BIOS经过北桥芯片进行调整,但不能超过厂商的预定范围。广义的tRCD以时钟周期
(tCK,Clock Time)数为单位,比如tRCD=2,就代表延迟周期为两个时钟周期,具体到确切的时间
,则要根据时钟频率而定,对于PC100SDRAM,tRCD=2,代表20ns的延迟,对于PC133则为15ns
CL(CAS Latency):
        在选定列地址后,就已经确定了具体的存储单元,剩下的事情就是数据通过数据I/O通道(DQ)输
出到内存总线上了。但是在CAS发出之后,仍要经过一定的时间才能有数据输出,从CAS与读取命令发
出到第一笔数据输出的这段时间,被定义为CL(CAS Latency,CAS潜伏期)。由于CL只在读取时出现,
所以CL又被称为读取潜伏期(RL,Read Latency)。CL的单位与tRCD一样,为时钟周期数,具体耗时
由时钟频率决定。
       数据写入的操作也是在tRCD之后进行,但此时没有了CL(记住,CL只出现在读取操作中)。
tWR:
        数据并不是即时地写入存储电容,因为选通三极管(就如读取时一样)与电容的充电必须要有一段
时间,所以数据的真正写入需要一定的周期。为了保证数据的可靠写入,都会留出足够的写入/校正时间
(tWR,WriteRecovery Time),这个操作也被称作写回(Write Back)。
tRP:
        在发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新的工作行,这个间隔被
称为tRP(Precharge command Period,预充电有效周期)。和tRCD、CL一样,tRP的单位也是时钟周
期数,具体值视时钟频率而定。
我这里就先贴上这几个参数,其它的参数,大家可以查阅相关的资料。
2.  F429/439手册中对SDRAM的介绍
       如果你看了我在前面推荐的那个文章,现在看这个手册还是比较容易的。我这里就象征性的贴一下F429
439自带SDRAM控制器的特性和引脚,其它的大家自己看手册就行。



3.  F429/439驱动SDRAM详细过程
说明:以官方的Demonstration做例子


第一步:F429的时钟配置
        F429/439支持最高主频180Mhz,相比于407只提高了12M, 感觉劲还是不足,传说STM32F5系列将
做到250MHz,就相当的给力了。
F429配置过程和以前芯片的配置过程是一样的,我这里主要是想通过这个配置得到SDRAM的时钟频率, 先
说明一下这个开发板外接的是8MHz的晶振,通过锁相环得到180的主频。

#define PLL_SOURCE_HSE    // HSE (8MHz) used to clock the PLL, and the PLL is used as system clock source
/*  PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N  */
#if defined  (PLL_SOURCE_HSI)
#define PLL_M      16
#else
#define PLL_M      8
#endif
#define PLL_N      360
/* SYSCLK = PLL_VCO / PLL_P */  
#define PLL_P      2
/* USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ */
#define PLL_Q      7
由上面的公式得到 :SYSCLK = PLL_VCO / PLL_P =( (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N)/PLL_P  = 180
/* HCLK = SYSCLK / 1 = 180 */RCC->CFGR |= RCC_CFGR_HPRE_DIV1;   
/* PCLK2 = HCLK / 2 = 90 */RCC->CFGR |= RCC_CFGR_PPRE2_DIV2;  
/* PCLK1 = HCLK / 4 = 45 */RCC->CFGR |= RCC_CFGR_PPRE1_DIV4;
第二步:引脚配置
        驱动前要先搞清楚一个问题,驱动SDRAM的行选和列选的地址线是分时复用的,和SRAM不同
需要完整的地址线才可以访问各个地址空间,官方提供的原理图


关于这个芯片的特点:


标准的SDRAM一般都是4个BANK,这个芯片也不例外,芯片的总容量
1Mbitx 16-bit x 4-bank = 67,108,864 bits = 64-Mbit ,每个BANK的组成
4096rows x 256 columns x 16 bits, 这个比较重要,配置的时候要用到,也就是
12行8列。
第三步:FMC配置
这里FMC驱动SDRAM只支持两种频率,分别是
SDCLK period = 2 x HCLK periods
SDCLK period = 3 x HCLK periods
根据我们上面的配置,HCLK是180MHz,这里SDCLK就是2分频或者3分频,官方提供的
这个例子,在注释上面有误,他们是按照主频168MHz,2分频是SDCLK = 84MHz注释的,
不过不影响使用,只是注释上面是这样的。按照90MHz的话,每个时钟周期就是11.1ns
7个SDRAM关键参数的配置,下面一个一个的说。
1.  TMRD
/* TMRD: 2 Clock cycles */
FMC_SDRAMTimingInitStructure.FMC_LoadToActiveDelay = 2;
这里为什么成2,查手册, 手册上提供的是三种速度等级时提供的参数,我们这里是用
的90MHz,也取2个肯定是没问题的。


2. TXSR
/* TXSR: min=70ns (6x11.10ns) */
FMC_SDRAMTimingInitStructure.FMC_ExitSelfRefreshDelay = 7;
开发板上面用的SDRAM速度等级的7,最高工作频率时143MHz


3. TRAS
/* TRAS: min=42ns (4x11.10ns) max=120k (ns) */
FMC_SDRAMTimingInitStructure.FMC_SelfRefreshTime = 4;


4. TRC
/* TRC:  min=63 (6x11.10ns) */        
FMC_SDRAMTimingInitStructure.FMC_RowCycleDelay = 7;   


5. TWR
/* TWR:  2 Clock cycles */
FMC_SDRAMTimingInitStructure.FMC_WriteRecoveryTime = 2;  

6. TRP
/* TRP:  15ns => 2x11.10ns */
FMC_SDRAMTimingInitStructure.FMC_RPDelay = 2;


7. TRCD               
/* TRCD: 15ns => 2x11.10ns */
FMC_SDRAMTimingInitStructure.FMC_RCDDelay = 2;


时序设置好以后就是SDRAM控制器的配置。

/* 支持两个SDRAM的BANK,这里使用的是bank2  */
  FMC_SDRAMInitStructure.FMC_Bank = FMC_Bank2_SDRAM;
  /* 根据这个SDRAM的特性是12行,8列,在这里配置一下 */
  FMC_SDRAMInitStructure.FMC_ColumnBitsNumber = FMC_ColumnBits_Number_8b;
  FMC_SDRAMInitStructure.FMC_RowBitsNumber = FMC_RowBits_Number_12b;
  /* 数据位宽是16 */
  FMC_SDRAMInitStructure.FMC_SDMemoryDataWidth = SDRAM_MEMORY_WIDTH;
  /* 此芯片支持4个bank */
  FMC_SDRAMInitStructure.FMC_InternalBankNumber = FMC_InternalBank_Number_4;
  /* 设置CAS的延迟是3 */
  FMC_SDRAMInitStructure.FMC_CASLatency = SDRAM_CAS_LATENCY;
  FMC_SDRAMInitStructure.FMC_WriteProtection = FMC_Write_Protection_Disable;
  /* 配置SDCLK的时钟频率 */
  FMC_SDRAMInitStructure.FMC_SDClockPeriod = SDCLOCK_PERIOD;  
  /* 禁止读取时的突发模式 */
  FMC_SDRAMInitStructure.FMC_ReadBurst = SDRAM_READBURST;
  /* 设置ReadPipe时的延迟  */
  FMC_SDRAMInitStructure.FMC_ReadPipeDelay = FMC_ReadPipe_Delay_1;
  FMC_SDRAMInitStructure.FMC_SDRAMTimingStruct = &FMC_SDRAMTimingInitStructure;
第四步:SDRAM初始化
1.  使能时钟
  FMC_SDRAMCommandStructure.FMC_CommandMode = FMC_Command_Mode_CLK_Enabled;  
  FMC_SDRAMCommandStructure.FMC_CommandTarget = FMC_Command_Target_bank2;
  FMC_SDRAMCommandStructure.FMC_AutoRefreshNumber = 1;  FMC_SDRAMCommandStructure.FMC_ModeRegisterDefinition = 0;
  /* Wait until the SDRAM controller is ready */   
  while(FMC_GetFlagStatus(FMC_Bank2_SDRAM, FMC_FLAG_Busy) != RESET)
  {  }
  /* Send the command */  
  FMC_SDRAMCmdConfig(&FMC_SDRAMCommandStructure);
2.  插入100ms的延迟
  __Delay(10);
3.  预充电配置  
  /* Configure a PALL (precharge all) command */   
  FMC_SDRAMCommandStructure.FMC_CommandMode = FMC_Command_Mode_PALL;
  FMC_SDRAMCommandStructure.FMC_CommandTarget = FMC_Command_Target_bank2;  
  FMC_SDRAMCommandStructure.FMC_AutoRefreshNumber = 1;
  FMC_SDRAMCommandStructure.FMC_ModeRegisterDefinition = 0;  
  /* Wait until the SDRAM controller is ready */
  while(FMC_GetFlagStatus(FMC_Bank2_SDRAM, FMC_FLAG_Busy) != RESET)  
  {
  }  
  /* Send the command */
  FMC_SDRAMCmdConfig(&FMC_SDRAMCommandStructure);
4. 自动刷新配置
  /* Configure a Auto-Refresh command */   
  FMC_SDRAMCommandStructure.FMC_CommandMode = FMC_Command_Mode_AutoRefresh;
  FMC_SDRAMCommandStructure.FMC_CommandTarget = FMC_Command_Target_bank2;  
  FMC_SDRAMCommandStructure.FMC_AutoRefreshNumber = 4;
  FMC_SDRAMCommandStructure.FMC_ModeRegisterDefinition = 0;  
  /* Wait until the SDRAM controller is ready */
  while(FMC_GetFlagStatus(FMC_Bank2_SDRAM, FMC_FLAG_Busy) != RESET)  
  {
  }  
  /* Send the  first command */
  FMC_SDRAMCmdConfig(&FMC_SDRAMCommandStructure);  
  /* Wait until the SDRAM controller is ready */   
  while(FMC_GetFlagStatus(FMC_Bank2_SDRAM, FMC_FLAG_Busy) != RESET)
  {  }
  /* Send the second command */  
  FMC_SDRAMCmdConfig(&FMC_SDRAMCommandStructure);
5. 配置外部模式寄存器  
  /* Program the external memory mode register */
  tmpr = (uint32_t)SDRAM_MODEREG_BURST_LENGTH_2          |                  
                   SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL   |
                   SDRAM_MODEREG_CAS_LATENCY_3           |                  
                   SDRAM_MODEREG_OPERATING_MODE_STANDARD |
                   SDRAM_MODEREG_WRITEBURST_MODE_SINGLE;  
  /* Configure a load Mode register command*/   
  FMC_SDRAMCommandStructure.FMC_CommandMode = FMC_Command_Mode_LoadMode;
  FMC_SDRAMCommandStructure.FMC_CommandTarget = FMC_Command_Target_bank2;  
  FMC_SDRAMCommandStructure.FMC_AutoRefreshNumber = 1;
  FMC_SDRAMCommandStructure.FMC_ModeRegisterDefinition = tmpr;  
  /* Wait until the SDRAM controller is ready */
  while(FMC_GetFlagStatus(FMC_Bank2_SDRAM, FMC_FLAG_Busy) != RESET)  
  {
  }  
  /* Send the command */
  FMC_SDRAMCmdConfig(&FMC_SDRAMCommandStructure);
6. 刷新频率设置
  /* Set the refresh rate counter */  
  /* (7.81 us x Freq) - 20 */
  /* Set the device refresh counter */  
  FMC_SetRefreshCount(683);
  /* Wait until the SDRAM controller is ready */   
  while(FMC_GetFlagStatus(FMC_Bank2_SDRAM, FMC_FLAG_Busy) != RESET)
  {  }
关于刷新频率的的数值是这么得到的,这里得详细的说一下,目前公认的标准是,存储体中电容的数据有效保存期上限是
64ms(毫秒,1/1000秒),也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行数量/64ms。我们在看内
存规格时,经常会看到4096 Refresh Cycles/64ms或8192 RefreshCycles/64ms的标识,这里的4096与8192就代表这
个芯片中每个L-Bank的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096行时为15.625μs(微秒,
1/1000毫秒),8192行时就为7.8125μs。        
       SDRAM的手册上说是4096 refresh cycles every 64 ms,这里就应该是15.525us,而注释上面是按8192行计算
的,郁闷,有时间得研究研究。


到这里基本就设置完了,剩下就可以像使用SRAM一样,使用SDRAM了。

出0入53汤圆

发表于 2014-5-4 14:54:17 | 显示全部楼层
希望大牛也写一个LPC4357应用SDRAM的帖子出来

出0入53汤圆

发表于 2014-5-4 15:59:49 | 显示全部楼层
magicoe 发表于 2014-5-4 09:34
1. SDRAM 参看http://www.lpcware.com/content/nxpfile/an10935-using-sdrddr-sdram-memories-lpc32xx
   ...

求解“其实有SPIFI了,应该比SDRAM中运行效率更高。所以我觉得没必要SDRAM了”?

出0入0汤圆

发表于 2014-5-4 17:29:53 | 显示全部楼层
zhcj66 发表于 2014-5-4 15:59
求解“其实有SPIFI了,应该比SDRAM中运行效率更高。所以我觉得没必要SDRAM了”? ...


NXP的LPC43/18还有LPC40系列具有SPIFI功能,可以让程序直接在外部四线制的SPI Flash上运行程序,类似并行Flash的XIP功能。效率应该比在外部SDRAM中运行高哦,最大我目前看到有256Mbits(32MByte)的SPI Flash

在SDRAM中跑程序,也可以参考RT-Thread的

出0入53汤圆

发表于 2014-5-8 16:58:52 | 显示全部楼层
magicoe 发表于 2014-5-4 17:29
NXP的LPC43/18还有LPC40系列具有SPIFI功能,可以让程序直接在外部四线制的SPI Flash上运行程序,类似并行 ...

LZ请帮我看一下169楼的问题 谢谢
http://www.amobbs.com/forum.php? ... p;page=2#pid7522172

出0入0汤圆

发表于 2014-5-8 17:43:17 | 显示全部楼层
zhcj66 发表于 2014-5-8 16:58
LZ请帮我看一下169楼的问题 谢谢
http://www.amobbs.com/forum.php?mod=viewthread&tid=5579990&page=2#p ...

在选择Flash算法的那个选项中的右上角有个RAM for Algrithm, size 改成0x2800或者更多吧~

出0入53汤圆

发表于 2014-5-15 15:05:00 | 显示全部楼层
magicoe 发表于 2014-5-8 17:43
在选择Flash算法的那个选项中的右上角有个RAM for Algrithm, size 改成0x2800或者更多吧~ ...

现在我用M4+M0遇到一个问题是,如果下载M4的程序 则运行M4的程序 还有一个怪事 我在没有下载M0的程序的时候 M4应该只有1个LED闪烁。而现实是有4个LED在闪烁,
LED4和LED3可以理解 LED2和LED1我现在直接想不通了。在主函数设置如下
  1. int main (void)
  2. {
  3.         uint32_t LEDState    = 0;
  4.         uint32_t M4_EventSet = 1;

  5.         SystemCoreClockUpdate ();                 /* Update system core clock       */
  6.         SysTick_Config(SystemCoreClock/20-1);     /* Generate interrupt each 50 ms  */
  7.         LED_Init();                               /* LED Initialization             */
  8.         NVIC_EnableIRQ (M0APP_IRQn);              /* Enable IRQ from the M0 Core    */

  9.         /* Stop CM0 core */
  10.         LPC_RGU->RESET_CTRL1 = (1 << 24);

  11.         /* Download CM0 application */
  12.         Load_CM0_Image (0x10080000, LR0, sizeof (LR0));

  13.         /* Start CM0 core */
  14.         LPC_RGU->RESET_CTRL1 = 0;

  15.         while (1)
  16.         {
  17.                 if (LEDOn)
  18.                 {
  19.                         LEDOn = 0;
  20.                         LED_On (4);                       /* Turn on LED 4                      */
  21.                 }

  22.                 if (LEDOff)
  23.                 {
  24.                         LEDOff = 0;
  25.                         LED_Off (4);                      /* Turn off LED 4                     */
  26.                 }

  27.                 if (M4_EventSet)
  28.                 {
  29.                         M4_EventSet = 0;
  30.                         __sev();                          /* Send event signal to the CM0 core  */
  31.                 }

  32.                 if (M4_EventTimer == 0)
  33.                 {           /* Wait for timer timeout (250ms)     */
  34.                         if (M0_EventResp)
  35.                         {
  36.                                 M0_EventResp = 0;               /* M0 response received, toggle LED 3 */

  37.                                 (LEDState ^= 1) ? LED_On (3) : LED_Off (3);

  38.                                 M4_EventSet =   1;
  39.                                 M4_EventTimer  = 250;
  40.                         }
  41.                 }
  42.         }
  43. }
复制代码


软件配置如图  M4设置

我下载M0的程序M4就无法运行了理解不了。请大神帮我分析一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入53汤圆

发表于 2014-5-15 15:25:04 | 显示全部楼层
zhcj66 发表于 2014-5-15 15:05
现在我用M4+M0遇到一个问题是,如果下载M4的程序 则运行M4的程序 还有一个怪事 我在没有下载M0的程序的时 ...


LPC_RGU->RESET_CTRL1 = 0;//如果把次句注释掉 LED闪烁正常 表示不理解

出0入53汤圆

发表于 2014-5-15 15:28:12 | 显示全部楼层
zhcj66 发表于 2014-5-15 15:25
LPC_RGU->RESET_CTRL1 = 0;//如果把次句注释掉 LED闪烁正常 表示不理解

M4的程序如下注释掉,还有LED可以在闪烁,表示非常不理解(只下载了M4的程序)
  1. int main (void)
  2. {
  3.         uint32_t LEDState    = 0;
  4.         uint32_t M4_EventSet = 1;

  5. //        SystemCoreClockUpdate ();                 /* Update system core clock       */
  6. //        SysTick_Config(SystemCoreClock/20-1);     /* Generate interrupt each 50 ms  */
  7. //        LED_Init();                               /* LED Initialization             */
  8. //        NVIC_EnableIRQ (M0APP_IRQn);              /* Enable IRQ from the M0 Core    */

  9. //        /* Stop CM0 core */
  10. //        LPC_RGU->RESET_CTRL1 = (1 << 24);

  11.         /* Download CM0 application */
  12.         Load_CM0_Image (0x10080000, LR0, sizeof (LR0));

  13.         /* Start CM0 core */
  14.         LPC_RGU->RESET_CTRL1 = 0;

  15.         while (1)
  16.         {
  17. //                if (LEDOn)
  18. //                {
  19. //                        LEDOn = 0;
  20. //                        LED_On (4);                       /* Turn on LED 4                      */
  21. //                }

  22. //                if (LEDOff)
  23. //                {
  24. //                        LEDOff = 0;
  25. //                        LED_Off (4);                      /* Turn off LED 4                     */
  26. //                }

  27. //                if (M4_EventSet)
  28. //                {
  29. //                        M4_EventSet = 0;
  30. //                        __sev();                          /* Send event signal to the CM0 core  */
  31. //                }

  32. //                if (M4_EventTimer == 0)
  33. //                {           /* Wait for timer timeout (250ms)     */
  34. //                        if (M0_EventResp)
  35. //                        {
  36. //                                M0_EventResp = 0;               /* M0 response received, toggle LED 3 */

  37. //                                (LEDState ^= 1) ? LED_On (3) : LED_Off (3);

  38. //                                M4_EventSet =   1;
  39. //                                M4_EventTimer  = 250;
  40. //                        }
  41. //                }
  42.         }
  43. }
复制代码

出0入53汤圆

发表于 2014-5-15 15:42:25 | 显示全部楼层
magicoe 发表于 2014-5-8 17:43
在选择Flash算法的那个选项中的右上角有个RAM for Algrithm, size 改成0x2800或者更多吧~ ...

最奇怪的是没有加载M0的程序哪里来的 M0的LED闪烁呢

出0入0汤圆

发表于 2014-5-21 21:46:41 | 显示全部楼层
盈钰资料太少。。。

出0入0汤圆

发表于 2014-6-6 15:40:56 | 显示全部楼层
不知道楼主有没有例程?

出0入0汤圆

发表于 2014-6-12 12:28:36 | 显示全部楼层
网盘共享的资料访问不了。

出0入0汤圆

发表于 2014-6-27 14:59:40 | 显示全部楼层
zhcj66 发表于 2014-5-15 15:42
最奇怪的是没有加载M0的程序哪里来的 M0的LED闪烁呢

沒有加載M0 但是有把原有程序的清除嗎@@?

出870入263汤圆

发表于 2014-6-29 17:28:48 | 显示全部楼层
想睡觉了,标记着以后看看。

出130入20汤圆

发表于 2014-7-1 09:47:00 | 显示全部楼层
zhangtuan 发表于 2014-4-9 20:26
资料都在网盘: http://pan.baidu.com/s/1i30vALJ

哥们你好,我有其他板子的LPC4357的关盘,交换学习哈

出0入0汤圆

发表于 2014-7-1 10:02:40 | 显示全部楼层
shuiluo2 发表于 2014-7-1 09:47
哥们你好,我有其他板子的LPC4357的关盘,交换学习哈

NGX Schematic
http://shop.ngxtechnologies.com/ ... lorer_schematic.pdf
Hitex Schematic
http://www.hitex-download.de/lpc/lpc1800/SCM_LPC1850EVA-A4-2.pdf
Keil Schematic
http://www.keil.com/mcb1800/MCB1800v1-3-schematics.pdf

以上这几个LPCOPEN代码包里都有参考例程

出0入0汤圆

发表于 2014-8-1 15:50:39 | 显示全部楼层
LPC4357开发板,现在搞18X和43xx的不多哦。

出0入0汤圆

发表于 2014-8-11 10:59:50 | 显示全部楼层
建议站长设立一个NXP专栏。

出0入0汤圆

发表于 2014-8-14 15:57:00 | 显示全部楼层
希望莫老板开NXP专栏,

出0入0汤圆

发表于 2014-8-15 22:20:35 | 显示全部楼层
somwin 发表于 2014-8-1 15:50
LPC4357开发板,现在搞18X和43xx的不多哦。

LPC18xx和LPC43xx太奇葩了,不过性能真的很牛

出0入0汤圆

发表于 2014-8-15 22:51:38 | 显示全部楼层
magicoe 发表于 2014-8-15 22:20
LPC18xx和LPC43xx太奇葩了,不过性能真的很牛

代码片外存储,搞得和ARM9似的,没仔细看过数据手册,不知道代码加密如何处理。

出0入0汤圆

发表于 2014-8-16 00:00:49 | 显示全部楼层
somwin 发表于 2014-8-15 22:51
代码片外存储,搞得和ARM9似的,没仔细看过数据手册,不知道代码加密如何处理。 ...

片外Flash代码加密,可以靠外部的加密芯片。或者自己处理。片内Flash加密,NXP一直做得不错。如果还想更加可靠,可以考虑LPC18S和LPC43S,带有硬件128bit AES加密直接运行AES加密过得程序。

出0入0汤圆

发表于 2014-10-21 10:54:23 | 显示全部楼层
楼主可不可以把光盘共享出来啊?

出0入0汤圆

发表于 2014-10-26 12:29:02 | 显示全部楼层
豪做友。。。多谢资料公开

出0入0汤圆

发表于 2014-11-3 17:16:12 | 显示全部楼层
共享一下你的资料,一下探讨探讨

出0入0汤圆

发表于 2014-12-29 15:37:20 | 显示全部楼层
本帖最后由 WXLmjr 于 2014-12-29 15:39 编辑

盈钰的LPC4357开发板,软件资料不多,不过板子做工不错,售后服务还可以。板子硬件原理图基本和 Keil 官方评估板MCB4300一样,软件也是从官方例程移植的。主要有两个软件资源:1、LPCOpen Software Development Platform (LPC43xx packages)   网址http://www.lpcware.com/content/n ... rm-lpc43xx-packages选择网页上 :Keil MCB4300 (LPC4357) board       2、Keil安装目录:ARM\Boards\Keil\MCB4300

出0入0汤圆

发表于 2015-1-25 13:03:51 | 显示全部楼层
光盘连接已经取消了,能再发个吗?

出0入0汤圆

发表于 2015-7-13 23:27:09 | 显示全部楼层
你好,你在帖子“刚到手的LPC4357开发板”中的资料连接失效了。能发我一份么?邮箱119939898@qq.com。万分感谢

出0入0汤圆

 楼主| 发表于 2015-7-14 08:54:22 | 显示全部楼层
盈钰的LPC4357开发板:   http://pan.baidu.com/s/1mg1RfkO

出0入0汤圆

发表于 2015-7-14 14:18:00 | 显示全部楼层
LPC4357开发板

出0入0汤圆

发表于 2015-7-15 16:23:07 | 显示全部楼层
双核貌似很高大上啊

出0入0汤圆

发表于 2015-8-24 13:49:04 | 显示全部楼层
我用MDK都不知怎么直接把M0代码写进B区,一直都是用J-FLASH下载到B区运行。

出0入0汤圆

发表于 2015-11-5 22:54:44 | 显示全部楼层
XA144F 发表于 2014-4-9 08:37
我也买了块298的最小系统,双核的试验测试了,非常有趣,M0核心的程序写好后做成C的数组,M4核心将数组拷贝 ...

你是怎么开发的 我买了个板子  有点无从下手啊  一起没用过nxp的  只用过st的  有没有除了官方手册之外的教程呢

出0入0汤圆

发表于 2015-11-6 06:42:31 | 显示全部楼层
关注本贴呀

出0入0汤圆

发表于 2015-11-6 09:43:44 | 显示全部楼层
alsowang 发表于 2015-11-5 22:54
你是怎么开发的 我买了个板子  有点无从下手啊  一起没用过nxp的  只用过st的  有没有除了官方手册之外的 ...

用nxp的,感觉就是端口太残暴了,没有手册的话根本没法编程……现在吃灰中。

出0入0汤圆

发表于 2015-11-9 20:23:13 | 显示全部楼层
XA144F 发表于 2015-11-6 09:43
用nxp的,感觉就是端口太残暴了,没有手册的话根本没法编程……现在吃灰中。 ...

手册也不好懂 我也是一点点的啃  为什么官方的库连个手册都没有
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 06:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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