LO单片机VE 发表于 2016-5-25 14:35:25

LPC1788 SDRAM数据冲突问题

在玩LPC1788单片机的坛友不知道有没有注意到,当TFT正常显示的情况下(前提是用SDRAM做显存),这时如果写入数据至SDRAM中如shuzu[]={1,2,3,4,5,6,7,8,9},SDRAM中保存的数据不一定会是这些数;当TFT显示关闭后再写入数据至SDRAM中,数据全部正确。所以我认为可能是SDRAM数据读写冲突了,TFT显示就是SDRAM不停的再读写数据,这时你再去写入的话,势必SDRAM数据冲突,这个问题具体有没有可解决的方法?望坛子里的大侠们出招

(我目前的情况:我在SD卡里存了图片数据和字库,开机时要把数据全部写入至SDRAM中,已提高刷新速度,前提是写入数据时TFT要显示的。)   

big_cat 发表于 2016-5-25 14:38:06

做乒乓缓存了吗

LO单片机VE 发表于 2016-5-25 14:49:55

big_cat 发表于 2016-5-25 14:38
做乒乓缓存了吗

你好,你说的乒乓缓存是给我解释下吗,我不是很懂哎{:smile:}

nazily215 发表于 2016-5-25 14:56:06

片选没做好?还是互斥问题没做好?

LO单片机VE 发表于 2016-5-25 15:06:38

在TFT正常显示的情况下,我从NAND FLASH读出数据至SDRAM和从SD卡读出数据至SDRAM现象一样,都会有个别数据不正确,如读出的是一幅图片数据,则图片会有很多杂点。当显示关闭的情况下再写入数据就全部正常的

lusson 发表于 2016-5-25 15:11:04

TFT显示就是SDRAM不停的再读写数据
->TFT显示会写SDRAM吗?

big_cat 发表于 2016-5-25 15:24:46

LO单片机VE 发表于 2016-5-25 14:49
你好,你说的乒乓缓存是给我解释下吗,我不是很懂哎

我也是以前看的一点,不一定正确。原理就是在SDRAM中开两块显示缓冲区,分别是1区和2区。工作时的过程是1区数据读取到LCD,用于刷新当前页面。此时CPU向2区写入下一次刷新的数据。当下一次数据刷新时,2区数据读取到LCD,CPU向1区写入新的数据。两个缓冲区交替更新数据和刷新LCD显示。

LO单片机VE 发表于 2016-5-25 15:30:13

lusson 发表于 2016-5-25 15:11
TFT显示就是SDRAM不停的再读写数据
->TFT显示会写SDRAM吗?

我用的是EMWIN(UC GUI),比如我的显存(SDRAM)地址是0xA0C00000,而我将要显示的图片数据放在(SDRAM)地址0xA0E00000开始处,通过函数GUI_DrawBitmap(&bmp480272,0,0)进行显示。我的理解是后台SDRAM自己数据在不停交换的,当然我的理解也不一定完全正确的{:tongue:}

zhangyun2743 发表于 2016-5-26 13:01:38

big_cat 发表于 2016-5-25 15:24
我也是以前看的一点,不一定正确。原理就是在SDRAM中开两块显示缓冲区,分别是1区和2区。工作时的过程是1 ...

那是双缓存吧

big_cat 发表于 2016-5-26 13:36:53

zhangyun2743 发表于 2016-5-26 13:01
那是双缓存吧

本质是双缓存。

LeiR 发表于 2016-5-26 16:27:05

一般做双缓存
页: [1]
查看完整版本: LPC1788 SDRAM数据冲突问题