刚到手的LPC4357开发板
本帖最后由 zhangtuan 于 2014-4-8 11:41 编辑刚刚买的LPC4357开发板,先附上说明,详细资料再有空上传 我也有块LPC4357的开发板,我的没什么资料,不什么好玩,共享一下你的资料,一下探讨探讨。 板子不错啊,楼主共享一下资料来啊,一起学习学习…………{:smile:}{:biggrin:} 谁家的?多少钱? Excellence 发表于 2014-4-8 16:11
谁家的?多少钱?
799,看了某宝的, 盈钰。。。。。。 楼主,能否放网盘上,先谢了。
挺想用这个芯片的
就是担心资料不够。。 本帖最后由 magicoe 于 2014-4-8 17:43 编辑
恭喜楼主开始双核,SPIFI,SGPIO,SCT之旅,{:smile:}有空多多交流,我还是推荐RT-thread那块LPC4088的板子,我觉得LPC4088好用些,LPC43xx新人入手有点难度。 呵呵楼主继续 楼主还没有来啊,资料放网盘发个链接来啊{:tongue:} 某宝 799的板子我也刚买一块,可惜用公司的钱买的资料无法上传(加密了),现在正在把玩中,以后希望一起探讨。
M4的板子现在对初学者确实有点难度,资料少,基本靠自己去啃英文手册和一个个实验。 {:dizzy:}我也入了一块来着···· motodefy 发表于 2014-4-8 20:10
我也入了一块来着····
上传资料共享一下啊 LPCLINK 4370 20美元一个板子,3核,足够玩了 刚入了一块盈钰的429板子。还没上电,吃灰呢 刚入了一块盈钰的429板子。还没上电,吃灰呢 也有一块4357丢柜子里,哈哈哈,通过一次电,刚刚的 {:victory:}{:victory:}{:victory:} cumtgao 发表于 2014-4-8 20:00
某宝 799的板子我也刚买一块,可惜用公司的钱买的资料无法上传(加密了),现在正在把玩中,以后希望一起探 ...
手册有中文的http://www.lpcware.com/content/device/lpc43xx 这芯片比f4贵了好多啊双核的最大优势是什么 study_hardware 发表于 2014-4-8 23:38
这芯片比f4贵了好多啊双核的最大优势是什么
两个核,可以分工干活。 我也买了块298的最小系统,双核的试验测试了,非常有趣,M0核心的程序写好后做成C的数组,M4核心将数组拷贝到ram中,然后复位引导m0核心执行数组就开始运行了。
但是i2s的程序就是写不好啊!谁有现成的可以参考一下? 有时间也搞一块。
LPC4357挺好用的,usb也是高速480M内置phy芯片。 study_hardware 发表于 2014-4-8 23:38
这芯片比f4贵了好多啊双核的最大优势是什么
如果没记错的话F429可以接SDRAM和RGB的屏,4357也可以的,从这个层面上看,两个价格差距不是很大,若单单只说M的核心,那确实贵了不少 看看,我也想用这个,不知道跑系统怎么样 昨天有点忙,今天登录,把资料共享一下 刚把开发板的emWin例子下载跑了一下,资料晚上上传,好像每天只能上传10M zhangtuan 发表于 2014-4-9 17:38
刚把开发板的emWin例子下载跑了一下,资料晚上上传,好像每天只能上传10M
建议上传到网盘 我买过一个优龙的LPC4357的开发板,不过被领导那去了,我只有资料,有人想看的话我找找上传一下 wxfje 发表于 2014-4-9 09:16
如果没记错的话F429可以接SDRAM和RGB的屏,4357也可以的,从这个层面上看,两个价格差距不是很大,若单单 ...
跟F429竞争的我觉得是LPC4088产品线,LPC435x也有不带Flash的,那个价格灰常有竞争力,SPIFI很强大 saddam911 发表于 2014-4-9 18:01
我买过一个优龙的LPC4357的开发板,不过被领导那去了,我只有资料,有人想看的话我找找上传一下 ...
上传吧。网盘。 zhangtuan 发表于 2014-4-9 17:38
刚把开发板的emWin例子下载跑了一下,资料晚上上传,好像每天只能上传10M
期待。
请问下有没有这开发板的原理图呢,核心板和底板的??? 资料都在网盘: http://pan.baidu.com/s/1i30vALJ 好资料已收下 谢谢楼主的资料 zhangtuan 发表于 2014-4-9 20:26
资料都在网盘: http://pan.baidu.com/s/1i30vALJ
谢谢。下载中。。。 我也买了块一样的开发板,为什么用jlink不能下载程序呢,难道他给我配的线有问题?{:cry:} liuyanlogn123 发表于 2014-4-11 15:58
我也买了块一样的开发板,为什么用jlink不能下载程序呢,难道他给我配的线有问题? ...
他们建议不要用Jlink,我就买了个Ulink使用 已收藏 谢谢 你好,我前一阵子也买了一块盈钰4357的板子,不久前调试发现ewWIN带触摸的那个例程运行一会儿就会死机,将ewWIN升级成5.22后就没事了,但是如果在emWIN例程加入SD卡例程的话,会在读取文件的时候程序跑飞,进入hard fault,不知你有没有遇到这样的问题?如果有的话你觉得可能是哪里的问题呢? 跟楼主买的一样 {:lol:}429的路过,,表示向往双核的.. 紫胤真人 发表于 2014-4-14 10:02
429的路过,,表示向往双核的..
LPC437x表示可以向往3核了 liugang1986 发表于 2014-4-13 10:52
你好,我前一阵子也买了一块盈钰4357的板子,不久前调试发现ewWIN带触摸的那个例程运行一会儿就会死机,将ewW ...
看你Harfalt置位原因,多半都是因为SRAM/SDRAM内存读取冲突了,造成的 magicoe 发表于 2014-4-14 10:49
看你Harfalt置位原因,多半都是因为SRAM/SDRAM内存读取冲突了,造成的
昨天晚上试了试,果然问题与sdram有关。在kei中调试的时候, fault种类为ibus fault,尝试将emWIN的缓存由片外sdram转移到片内ram后,就能正常工作了。运行了一夜也没出现任何问题,看来问题的却是出在sdram上了。今晚在去看看到底是时序参数设置的问题,还是芯片的问题。目前的感觉是片外sdram连续读写的区域没问题,放置一段时间后再读写的区域就会出现错误,也许是刷新的原因吧。总之,谢谢这位朋友了! 本帖最后由 magicoe 于 2014-4-15 18:23 编辑
liugang1986 发表于 2014-4-15 09:30
昨天晚上试了试,果然问题与sdram有关。在kei中调试的时候, fault种类为ibus fault,尝试将emWIN的缓存由 ...
SDRAM的时序配置有问题,这个你要稍微计算下自刷新的时间。或者把所有SDRAM时序配置为最差的模式看看,还有检查你的map file看是否有冲突的 一直都很鄙视LPC的CPU nongxiaoming 发表于 2014-4-8 20:48
也有一块4357丢柜子里,哈哈哈,通过一次电,刚刚的
农现在4357玩的怎么样了? magicoe 发表于 2014-4-15 18:21
SDRAM的时序配置有问题,这个你要稍微计算下自刷新的时间。或者把所有SDRAM时序配置为最差的模式看看,还 ...
M0和M4是如何进行共享数据的,有没有关于2个core 通信的资料 还有m0的应用资料,看了例程没看明白 资料下了,谢谢!能不能上传LPC4357的sch,pcb封装库文件 zhangtuan 发表于 2014-4-9 20:26
资料都在网盘: http://pan.baidu.com/s/1i30vALJ
不知楼主玩到说明程度了?那个code下面,LPCOpen....V2_2_7文件夹下的例程你能编译通过吗?我编译第二个生产lib文件时提示错误了,现在还没有找到问题! hqgboy 发表于 2014-4-10 09:20
谢谢。下载中。。。
我手动将开发板带的jlink转接小板信号都加了一个5V TVS管表示用到现在还没坏!!! 看起来很高级! cumtgao 发表于 2014-4-16 20:39
不知楼主玩到说明程度了?那个code下面,LPCOpen....V2_2_7文件夹下的例程你能编译通过吗?我编译第二个 ...
提示了什么错误? liugang1986 发表于 2014-4-18 14:01
提示了什么错误?
解决了,解压缩时可能掉了什么东西。现在编译通过了 我这里的问题也解决了,原来4357的EMC有BUG,二分频有问题,现在降低总线速度,不分频,目前SDRAM稳定工作在130Mhz,140Mhz会出现hard fault,应该是逼近IC极限了吧。 magicoe 发表于 2014-4-15 18:21
SDRAM的时序配置有问题,这个你要稍微计算下自刷新的时间。或者把所有SDRAM时序配置为最差的模式看看,还 ...
刚刚接触SDRAM和NOR FLASH还有很多迷惑 magicoe 发表于 2014-4-15 18:21
SDRAM的时序配置有问题,这个你要稍微计算下自刷新的时间。或者把所有SDRAM时序配置为最差的模式看看,还 ...
1.如何让程序完全运行在外部SDRAM上
2.如何让程序在NOR启动运行 我的也是这款板子,现在卡在这2个地方了 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 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了。 希望大牛也写一个LPC4357应用SDRAM的帖子出来 magicoe 发表于 2014-5-4 09:34
1. SDRAM 参看http://www.lpcware.com/content/nxpfile/an10935-using-sdrddr-sdram-memories-lpc32xx
...
求解“其实有SPIFI了,应该比SDRAM中运行效率更高。所以我觉得没必要SDRAM了”? 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:} 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 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或者更多吧~ 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:05
现在我用M4+M0遇到一个问题是,如果下载M4的程序 则运行M4的程序 还有一个怪事 我在没有下载M0的程序的时 ...
LPC_RGU->RESET_CTRL1 = 0;//如果把次句注释掉 LED闪烁正常 表示不理解 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;
// }
// }
}
} magicoe 发表于 2014-5-8 17:43
在选择Flash算法的那个选项中的右上角有个RAM for Algrithm, size 改成0x2800或者更多吧~ ...
最奇怪的是没有加载M0的程序哪里来的 M0的LED闪烁呢 盈钰资料太少。。。 不知道楼主有没有例程? 网盘共享的资料访问不了。 zhcj66 发表于 2014-5-15 15:42
最奇怪的是没有加载M0的程序哪里来的 M0的LED闪烁呢
沒有加載M0 但是有把原有程序的清除嗎@@?
想睡觉了,标记着以后看看。 zhangtuan 发表于 2014-4-9 20:26
资料都在网盘: http://pan.baidu.com/s/1i30vALJ
哥们你好,我有其他板子的LPC4357的关盘,交换学习哈 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代码包里都有参考例程 LPC4357开发板,现在搞18X和43xx的不多哦。 建议站长设立一个NXP专栏。 希望莫老板开NXP专栏, somwin 发表于 2014-8-1 15:50
LPC4357开发板,现在搞18X和43xx的不多哦。
LPC18xx和LPC43xx太奇葩了,不过性能真的很牛 magicoe 发表于 2014-8-15 22:20
LPC18xx和LPC43xx太奇葩了,不过性能真的很牛
代码片外存储,搞得和ARM9似的,没仔细看过数据手册,不知道代码加密如何处理。 somwin 发表于 2014-8-15 22:51
代码片外存储,搞得和ARM9似的,没仔细看过数据手册,不知道代码加密如何处理。 ...
片外Flash代码加密,可以靠外部的加密芯片。或者自己处理。片内Flash加密,NXP一直做得不错。如果还想更加可靠,可以考虑LPC18S和LPC43S,带有硬件128bit AES加密直接运行AES加密过得程序。 楼主可不可以把光盘共享出来啊? 豪做友。。。多谢资料公开 共享一下你的资料,一下探讨探讨 本帖最后由 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 光盘连接已经取消了,能再发个吗? 你好,你在帖子“刚到手的LPC4357开发板”中的资料连接失效了。能发我一份么?邮箱119939898@qq.com。万分感谢 盈钰的LPC4357开发板: http://pan.baidu.com/s/1mg1RfkO LPC4357开发板 双核貌似很高大上啊 我用MDK都不知怎么直接把M0代码写进B区,一直都是用J-FLASH下载到B区运行。 XA144F 发表于 2014-4-9 08:37
我也买了块298的最小系统,双核的试验测试了,非常有趣,M0核心的程序写好后做成C的数组,M4核心将数组拷贝 ...
你是怎么开发的 我买了个板子有点无从下手啊一起没用过nxp的只用过st的有没有除了官方手册之外的教程呢 关注本贴呀 alsowang 发表于 2015-11-5 22:54
你是怎么开发的 我买了个板子有点无从下手啊一起没用过nxp的只用过st的有没有除了官方手册之外的 ...
用nxp的,感觉就是端口太残暴了,没有手册的话根本没法编程……现在吃灰中。 XA144F 发表于 2015-11-6 09:43
用nxp的,感觉就是端口太残暴了,没有手册的话根本没法编程……现在吃灰中。 ...
手册也不好懂 我也是一点点的啃为什么官方的库连个手册都没有
页:
[1]
2