lpc的spi真的是很慢
我用的芯片是lpc2478,系统里用了lcd 640480点时钟25Mhz我用了那个官方的工具算了一个总线占用率是50%
我现在要做的事是这样,上电,将spi flash中的数据复制到sdram里,共有48Mbit,复制时,显示是开的,显示复制进度,一秒更新一次
SPI是用的ssp0,配置sck 18M
理论上来讲,忽略LCD自刷新占用总线时间,18M的速率读48Mbit只要3秒,加上写sdram的时间,最多不超过6秒
可以实际上,却要25秒才能全部复制完,
算起来速率只有2Mbit/s还不到
这也太慢了吧
然道总线真的那么忙不过来吗
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_636672UB9S27.jpg
(原文件名:Snap1.jpg) 总线占用率50%是不是指效率要降低一半
比如理论上算要6秒,实际上可能要12秒 spi不会慢的 不知道你的程序是怎么样,你可以试试单独跑spi的通讯,用个io口做为检测通讯状态. 单独跑spi 示波器测量sck在10M左右
也没有18M
不知是何故 楼主应该搞清楚这么几个概念
Fosc(晶振频率) Fcco(电流控制振荡器频率) Fcclk(系统处理器频率) Fpclk(总线频率) Fspi(SPI频率)
Fspi最大是Fpclk的1/8(具体是不是1/8有点忘了,要看一下手册,但是肯定会分频的),因为有个分频器的存在,所以真正SPI的速度也不
是很高
注:Fpclk与Fcclk有关,Fcclk与Fosc有关,其中Fcclk是有最高频率限制的 太乱了啊,感觉哪也不挨着啊。
什么都没说清楚,一会儿说SPI设为18M,一会儿又说测量SPI频率也就10M,什么都没搞清就讨论速度。唉 可能 SDRAM 是瓶颈吧 回复【4楼】njlz0707mm
楼主应该搞清楚这么几个概念
fosc(晶振频率) fcco(电流控制振荡器频率) fcclk(系统处理器频率) fpclk(总线频率) fspi(spi频率)
fspi最大是fpclk的1/8(具体是不是1/8有点忘了,要看一下手册,但是肯定会分频的),因为有个分频器的存在,所以真正spi的速度也不
是很高
注:fpclk与fcclk有关,fcclk与fosc有关,其中fcclk是有最高频率限制的
-----------------------------------------------------------------------
FCCLK = 72M
FPCLK = 36M
FSPI = 18M
FSPI至少要两分频,不能再快了
你说的1/8是SPI,我用的是SSP,SSP也可以当SPI用。 楼上所说的SSP,的确是可以兼容当作SPI使用,但是真正的SPI是全双工的,它的数据寄存器是双向的。
而SSP当作SPI时,原则上是全双工的,但很多情况下,实际上是单向的数据才有意义。
观点:1、不能单纯地说SPI的数据慢,也要考从机的情况。
2、建议使用真正的SPI口 LPC的东东,设置不一定有效
它的IO口有个最高速度,超过这个速度的设置,外设速读也不能提高的
另外,LPC的SSP贼不好使,我恨死它了,在与其他带DMA设备通讯时,数据字节总是错位,
而且波形匹配也不好,如果飞线调试,可能一种走线就需要一个配置,恶心不死你,不可预知的东西太多了
还有IIC口引脚,作为普通IO口也必须外接上拉
正想找机会吧原来的这玩意全部替换掉,反正原来调试好的东东我是一点不敢动了
LZ悠着点 回复【8楼】njlz0707mm
楼上所说的ssp,的确是可以兼容当作spi使用,但是真正的spi是全双工的,它的数据寄存器是双向的。
而ssp当作spi时,原则上是全双工的,但很多情况下,实际上是单向的数据才有意义。
观点:1、不能单纯地说spi的数据慢,也要考从机的情况。
2、建议使用真正的spi口
-----------------------------------------------------------------------
1、从机是m25p64,我在stm32上用过,速度比这快多了,至少快两到三倍,没具体测过,从表像看,很明显。
所以我认为从机是没问题的
2、我也考虑用真真的SPI口,但datasheet上说spccr至少要8分频,也就是说PCLK为36Mhz的话,SPI SCK只有4.5M,
而SSP可以2分频,所以这才选择用SSP
不过其实想来,如果SPI真有4.5M,那也算快了
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_637207UHAPAX.jpg
(原文件名:Snap1.jpg)
实在不行,改NAND FLASH了 回复【5楼】htjgdw
太乱了啊,感觉哪也不挨着啊。
什么都没说清楚,一会儿说spi设为18m,一会儿又说测量spi频率也就10m,什么都没搞清就讨论速度。唉
-----------------------------------------------------------------------
是啊,这我也奇怪,理论上说应该是18M,但测出来只有10M
可能是9楼说的那个原因吧 SPI是外设,SDRAM也是,他们同占一条总线,不是和程序总线放在一起的当然慢了。要不你开DMA试试。开DMA在同一条总线上也是要暂停CPU
页:
[1]