liu_xf 发表于 2011-5-5 11:53:13

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)

liu_xf 发表于 2011-5-5 11:56:13

总线占用率50%是不是指效率要降低一半

比如理论上算要6秒,实际上可能要12秒

gardenhill 发表于 2011-5-5 12:07:11

spi不会慢的 不知道你的程序是怎么样,你可以试试单独跑spi的通讯,用个io口做为检测通讯状态.

liu_xf 发表于 2011-5-5 12:28:23

单独跑spi 示波器测量sck在10M左右

也没有18M

不知是何故

njlz0707mm 发表于 2011-5-5 14:30:50

楼主应该搞清楚这么几个概念

Fosc(晶振频率) Fcco(电流控制振荡器频率) Fcclk(系统处理器频率) Fpclk(总线频率) Fspi(SPI频率)

Fspi最大是Fpclk的1/8(具体是不是1/8有点忘了,要看一下手册,但是肯定会分频的),因为有个分频器的存在,所以真正SPI的速度也不

是很高

注:Fpclk与Fcclk有关,Fcclk与Fosc有关,其中Fcclk是有最高频率限制的

htjgdw 发表于 2011-5-5 15:19:43

太乱了啊,感觉哪也不挨着啊。
什么都没说清楚,一会儿说SPI设为18M,一会儿又说测量SPI频率也就10M,什么都没搞清就讨论速度。唉

aureole 发表于 2011-5-5 15:22:19

可能 SDRAM 是瓶颈吧

liu_xf 发表于 2011-5-5 17:04:27

回复【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用。

njlz0707mm 发表于 2011-5-5 21:04:33

楼上所说的SSP,的确是可以兼容当作SPI使用,但是真正的SPI是全双工的,它的数据寄存器是双向的。

而SSP当作SPI时,原则上是全双工的,但很多情况下,实际上是单向的数据才有意义。

观点:1、不能单纯地说SPI的数据慢,也要考从机的情况。
      2、建议使用真正的SPI口

283868130 发表于 2011-5-5 22:59:26

LPC的东东,设置不一定有效
它的IO口有个最高速度,超过这个速度的设置,外设速读也不能提高的
另外,LPC的SSP贼不好使,我恨死它了,在与其他带DMA设备通讯时,数据字节总是错位,
而且波形匹配也不好,如果飞线调试,可能一种走线就需要一个配置,恶心不死你,不可预知的东西太多了
还有IIC口引脚,作为普通IO口也必须外接上拉

正想找机会吧原来的这玩意全部替换掉,反正原来调试好的东东我是一点不敢动了
LZ悠着点

liu_xf 发表于 2011-5-6 08:22:05

回复【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了

liu_xf 发表于 2011-5-6 08:23:34

回复【5楼】htjgdw
太乱了啊,感觉哪也不挨着啊。
什么都没说清楚,一会儿说spi设为18m,一会儿又说测量spi频率也就10m,什么都没搞清就讨论速度。唉
-----------------------------------------------------------------------


是啊,这我也奇怪,理论上说应该是18M,但测出来只有10M

可能是9楼说的那个原因吧

19001579 发表于 2011-10-25 16:16:59

SPI是外设,SDRAM也是,他们同占一条总线,不是和程序总线放在一起的当然慢了。要不你开DMA试试。开DMA在同一条总线上也是要暂停CPU
页: [1]
查看完整版本: lpc的spi真的是很慢