zhangtuan 发表于 2014-4-8 11:34:15

刚到手的LPC4357开发板

本帖最后由 zhangtuan 于 2014-4-8 11:41 编辑

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

gnocy 发表于 2014-4-8 15:33:24

我也有块LPC4357的开发板,我的没什么资料,不什么好玩,共享一下你的资料,一下探讨探讨。

gnocy 发表于 2014-4-8 15:55:24

板子不错啊,楼主共享一下资料来啊,一起学习学习…………{:smile:}{:biggrin:}

Excellence 发表于 2014-4-8 16:11:35

谁家的?多少钱?

gnocy 发表于 2014-4-8 17:25:49

Excellence 发表于 2014-4-8 16:11
谁家的?多少钱?

799,看了某宝的,

Excellence 发表于 2014-4-8 17:28:34

盈钰。。。。。。

Excellence 发表于 2014-4-8 17:29:07

楼主,能否放网盘上,先谢了。

lusson 发表于 2014-4-8 17:29:17

挺想用这个芯片的
就是担心资料不够。。

magicoe 发表于 2014-4-8 17:38:20

本帖最后由 magicoe 于 2014-4-8 17:43 编辑

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

金牛AKI 发表于 2014-4-8 18:13:16

呵呵楼主继续

gnocy 发表于 2014-4-8 19:02:49

楼主还没有来啊,资料放网盘发个链接来啊{:tongue:}

cumtgao 发表于 2014-4-8 20:00:14

某宝 799的板子我也刚买一块,可惜用公司的钱买的资料无法上传(加密了),现在正在把玩中,以后希望一起探讨。
M4的板子现在对初学者确实有点难度,资料少,基本靠自己去啃英文手册和一个个实验。

motodefy 发表于 2014-4-8 20:10:17

{:dizzy:}我也入了一块来着····

gnocy 发表于 2014-4-8 20:15:23

motodefy 发表于 2014-4-8 20:10
我也入了一块来着····

上传资料共享一下啊

alfred1 发表于 2014-4-8 20:22:47

LPCLINK 4370 20美元一个板子,3核,足够玩了

f8023m 发表于 2014-4-8 20:40:57

刚入了一块盈钰的429板子。还没上电,吃灰呢

f8023m 发表于 2014-4-8 20:42:02

刚入了一块盈钰的429板子。还没上电,吃灰呢

nongxiaoming 发表于 2014-4-8 20:48:25

也有一块4357丢柜子里,哈哈哈,通过一次电,刚刚的

tiger5 发表于 2014-4-8 22:58:30

{:victory:}{:victory:}{:victory:}

magicoe 发表于 2014-4-8 23:16:22

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

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

study_hardware 发表于 2014-4-8 23:38:47

这芯片比f4贵了好多啊双核的最大优势是什么

Excellence 发表于 2014-4-9 08:14:43

study_hardware 发表于 2014-4-8 23:38
这芯片比f4贵了好多啊双核的最大优势是什么

两个核,可以分工干活。

XA144F 发表于 2014-4-9 08:37:28

我也买了块298的最小系统,双核的试验测试了,非常有趣,M0核心的程序写好后做成C的数组,M4核心将数组拷贝到ram中,然后复位引导m0核心执行数组就开始运行了。

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

Excellence 发表于 2014-4-9 08:38:27

有时间也搞一块。


shuangbang 发表于 2014-4-9 09:09:01

LPC4357挺好用的,usb也是高速480M内置phy芯片。

wxfje 发表于 2014-4-9 09:16:35

study_hardware 发表于 2014-4-8 23:38
这芯片比f4贵了好多啊双核的最大优势是什么

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

lph80 发表于 2014-4-9 14:29:58

看看,我也想用这个,不知道跑系统怎么样

zhangtuan 发表于 2014-4-9 17:12:33

昨天有点忙,今天登录,把资料共享一下

zhangtuan 发表于 2014-4-9 17:38:21

刚把开发板的emWin例子下载跑了一下,资料晚上上传,好像每天只能上传10M

gnocy 发表于 2014-4-9 17:59:10

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

建议上传到网盘

saddam911 发表于 2014-4-9 18:01:58

我买过一个优龙的LPC4357的开发板,不过被领导那去了,我只有资料,有人想看的话我找找上传一下

magicoe 发表于 2014-4-9 18:18:20

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

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

hqgboy 发表于 2014-4-9 18:29:57

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

上传吧。网盘。

hqgboy 发表于 2014-4-9 18:30:20

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

期待。


wxfje 发表于 2014-4-9 18:54:16

请问下有没有这开发板的原理图呢,核心板和底板的???

zhangtuan 发表于 2014-4-9 20:26:50

资料都在网盘: http://pan.baidu.com/s/1i30vALJ

gnocy 发表于 2014-4-9 22:36:53

好资料已收下

bbsview 发表于 2014-4-9 22:53:59

谢谢楼主的资料

hqgboy 发表于 2014-4-10 09:20:19

zhangtuan 发表于 2014-4-9 20:26
资料都在网盘: http://pan.baidu.com/s/1i30vALJ

谢谢。下载中。。。

liuyanlogn123 发表于 2014-4-11 15:58:03

我也买了块一样的开发板,为什么用jlink不能下载程序呢,难道他给我配的线有问题?{:cry:}

zhangtuan 发表于 2014-4-12 17:38:34

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

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

dmxfeng 发表于 2014-4-13 01:35:38

已收藏 谢谢

liugang1986 发表于 2014-4-13 10:52:17

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

爺@龙行天下 发表于 2014-4-14 08:51:25

跟楼主买的一样

紫胤真人 发表于 2014-4-14 10:02:39

{:lol:}429的路过,,表示向往双核的..

magicoe 发表于 2014-4-14 10:48:35

紫胤真人 发表于 2014-4-14 10:02
429的路过,,表示向往双核的..

LPC437x表示可以向往3核了

magicoe 发表于 2014-4-14 10:49:31

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

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

liugang1986 发表于 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连续读写的区域没问题,放置一段时间后再读写的区域就会出现错误,也许是刷新的原因吧。总之,谢谢这位朋友了!

magicoe 发表于 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看是否有冲突的

Xplain 发表于 2014-4-15 21:48:08

一直都很鄙视LPC的CPU

zhcj66 发表于 2014-4-16 11:24:28

nongxiaoming 发表于 2014-4-8 20:48
也有一块4357丢柜子里,哈哈哈,通过一次电,刚刚的

农现在4357玩的怎么样了?

zhcj66 发表于 2014-4-16 11:27:05

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

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

tuoxin 发表于 2014-4-16 20:34:54

资料下了,谢谢!能不能上传LPC4357的sch,pcb封装库文件

cumtgao 发表于 2014-4-16 20:39:55

zhangtuan 发表于 2014-4-9 20:26
资料都在网盘: http://pan.baidu.com/s/1i30vALJ

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

cumtgao 发表于 2014-4-16 20:49:00

hqgboy 发表于 2014-4-10 09:20
谢谢。下载中。。。

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

pangbin4 发表于 2014-4-17 07:53:52

看起来很高级!

liugang1986 发表于 2014-4-18 14:01:39

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

提示了什么错误?

cumtgao 发表于 2014-4-18 14:29:00

liugang1986 发表于 2014-4-18 14:01
提示了什么错误?

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

liugang1986 发表于 2014-4-25 19:15:53

我这里的问题也解决了,原来4357的EMC有BUG,二分频有问题,现在降低总线速度,不分频,目前SDRAM稳定工作在130Mhz,140Mhz会出现hard fault,应该是逼近IC极限了吧。

zhcj66 发表于 2014-5-3 16:23:33

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

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

zhcj66 发表于 2014-5-3 16:24:41

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

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

zhcj66 发表于 2014-5-3 16:25:32

我的也是这款板子,现在卡在这2个地方了

magicoe 发表于 2014-5-4 09:34:00

zhcj66 发表于 2014-5-3 16:24
1.如何让程序完全运行在外部SDRAM上
2.如何让程序在NOR启动运行

1. SDRAM 参看http://www.lpcware.com/content/nxpfile/an10935-using-sdrddr-sdram-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

zhcj66 发表于 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 thefirst 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了。

zhcj66 发表于 2014-5-4 14:54:17

希望大牛也写一个LPC4357应用SDRAM的帖子出来

zhcj66 发表于 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了”?

magicoe 发表于 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的{:biggrin:}

zhcj66 发表于 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?mod=viewthread&tid=5579990&page=2#pid7522172

magicoe 发表于 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或者更多吧~

zhcj66 发表于 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我现在直接想不通了。在主函数设置如下
int main (void)
{
        uint32_t LEDState    = 0;
        uint32_t M4_EventSet = 1;

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

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

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

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

        while (1)
        {
                if (LEDOn)
                {
                        LEDOn = 0;
                        LED_On (4);                     /* Turn on LED 4                      */
                }

                if (LEDOff)
                {
                        LEDOff = 0;
                        LED_Off (4);                      /* Turn off LED 4                     */
                }

                if (M4_EventSet)
                {
                        M4_EventSet = 0;
                        __sev();                        /* Send event signal to the CM0 core*/
                }

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

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

                                M4_EventSet =   1;
                                M4_EventTimer= 250;
                        }
                }
        }
}

软件配置如图M4设置

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

zhcj66 发表于 2014-5-15 15:25:04

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


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

zhcj66 发表于 2014-5-15 15:28:12

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

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

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

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

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

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

        while (1)
        {
//                if (LEDOn)
//                {
//                        LEDOn = 0;
//                        LED_On (4);                     /* Turn on LED 4                      */
//                }

//                if (LEDOff)
//                {
//                        LEDOff = 0;
//                        LED_Off (4);                      /* Turn off LED 4                     */
//                }

//                if (M4_EventSet)
//                {
//                        M4_EventSet = 0;
//                        __sev();                        /* Send event signal to the CM0 core*/
//                }

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

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

//                                M4_EventSet =   1;
//                                M4_EventTimer= 250;
//                        }
//                }
        }
}

zhcj66 发表于 2014-5-15 15:42:25

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

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

tiger5 发表于 2014-5-21 21:46:41

盈钰资料太少。。。

hex2dec 发表于 2014-6-6 15:40:56

不知道楼主有没有例程?

laoge 发表于 2014-6-12 12:28:36

网盘共享的资料访问不了。

long_stay 发表于 2014-6-27 14:59:40

zhcj66 发表于 2014-5-15 15:42
最奇怪的是没有加载M0的程序哪里来的 M0的LED闪烁呢

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

armstrong 发表于 2014-6-29 17:28:48

想睡觉了,标记着以后看看。

shuiluo2 发表于 2014-7-1 09:47:00

zhangtuan 发表于 2014-4-9 20:26
资料都在网盘: http://pan.baidu.com/s/1i30vALJ

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

magicoe 发表于 2014-7-1 10:02:40

shuiluo2 发表于 2014-7-1 09:47
哥们你好,我有其他板子的LPC4357的关盘,交换学习哈

NGX Schematic
http://shop.ngxtechnologies.com/download/Schematics/Xplorer/LPC4330_Xplorer_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代码包里都有参考例程

somwin 发表于 2014-8-1 15:50:39

LPC4357开发板,现在搞18X和43xx的不多哦。

jiafulu 发表于 2014-8-11 10:59:50

建议站长设立一个NXP专栏。

bd7qw 发表于 2014-8-14 15:57:00

希望莫老板开NXP专栏,

magicoe 发表于 2014-8-15 22:20:35

somwin 发表于 2014-8-1 15:50
LPC4357开发板,现在搞18X和43xx的不多哦。

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

somwin 发表于 2014-8-15 22:51:38

magicoe 发表于 2014-8-15 22:20
LPC18xx和LPC43xx太奇葩了,不过性能真的很牛

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

magicoe 发表于 2014-8-16 00:00:49

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

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

lyz3432 发表于 2014-10-21 10:54:23

楼主可不可以把光盘共享出来啊?

啥都不懂小白痴 发表于 2014-10-26 12:29:02

豪做友。。。多谢资料公开

LiuCH 发表于 2014-11-3 17:16:12

共享一下你的资料,一下探讨探讨

WXLmjr 发表于 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/nxpfile/lpcopen-software-development-platform-lpc43xx-packages选择网页上 :Keil MCB4300 (LPC4357) board       2、Keil安装目录:ARM\Boards\Keil\MCB4300

龙缘天下 发表于 2015-1-25 13:03:51

光盘连接已经取消了,能再发个吗?

hover_007 发表于 2015-7-13 23:27:09

你好,你在帖子“刚到手的LPC4357开发板”中的资料连接失效了。能发我一份么?邮箱119939898@qq.com。万分感谢

zhangtuan 发表于 2015-7-14 08:54:22

盈钰的LPC4357开发板:   http://pan.baidu.com/s/1mg1RfkO

lxk19781221 发表于 2015-7-14 14:18:00

LPC4357开发板

yezhenke 发表于 2015-7-15 16:23:07

双核貌似很高大上啊

CoolBird007 发表于 2015-8-24 13:49:04

我用MDK都不知怎么直接把M0代码写进B区,一直都是用J-FLASH下载到B区运行。

alsowang 发表于 2015-11-5 22:54:44

XA144F 发表于 2014-4-9 08:37
我也买了块298的最小系统,双核的试验测试了,非常有趣,M0核心的程序写好后做成C的数组,M4核心将数组拷贝 ...

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

bd7qw 发表于 2015-11-6 06:42:31

关注本贴呀

XA144F 发表于 2015-11-6 09:43:44

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

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

alsowang 发表于 2015-11-9 20:23:13

XA144F 发表于 2015-11-6 09:43
用nxp的,感觉就是端口太残暴了,没有手册的话根本没法编程……现在吃灰中。 ...

手册也不好懂 我也是一点点的啃为什么官方的库连个手册都没有
页: [1] 2
查看完整版本: 刚到手的LPC4357开发板