打印
[STM32F4]

STM32F429驱动vga问题

[复制链接]
2571|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jepsen1|  楼主 | 2015-6-12 18:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jepsen1 于 2015-6-13 12:31 编辑

429板上有32m sdram,使用7123驱动vga,分辨率800*600,刷新率50,cpu运行在168m,sdram 84m,由于系统中要用到文件系统和网络,所以初始化sdram作为系统内存,显存使用malloc分配,变量全部分配在sdram中,tftp下载文件也会先分配内存缓冲(一般几MB),现在的问题是显示屏总是出现水平抖动,在网络下载文件时,能抖动成一条线(左边显示“测试字符串”,结果整行被拉伸了)。        
在系统空闲时,偶尔抖动一下。        
初步判定是sdram带宽不够,总线矩阵仲裁导致的。以前sdram只用做显存无此问题。        
参考手册和编程手册看了个遍也没找到设置矩阵优先级的方法(lpc1788的貌似能设置),可能st的用的时间片仲裁。。。
哪位遇到过这个问题。或者有解决方案的欢迎一起讨论。
这类问题在arm9上不会出现,速度差不多,at91sam9260都不会出现这问题。可能arm9的仲裁配置比较灵活。

IMG_20150613_081906.jpg (1.81 MB )

IMG_20150613_081906.jpg

IMG_20150613_092905.jpg (2 MB )

IMG_20150613_092905.jpg

IMG_20150613_093003.jpg (2.04 MB )

IMG_20150613_093003.jpg
沙发
jepsen1|  楼主 | 2015-6-12 18:59 | 只看该作者
希望原厂技术支持能看到,如果可以的话能提供解决方法最好,目前片上ram只用于分配msp堆栈,其他所有数据均分配在sdram。

使用特权

评论回复
板凳
aozima| | 2015-6-12 20:57 | 只看该作者
先排除一堆的网络   TFTP等问题。
单独刷屏,然后用CPU和DMA去竞争总线就可以确认您的怀疑了。

使用特权

评论回复
地板
aozima| | 2015-6-12 20:59 | 只看该作者
不过从您的问题现象看可能是板子电源设计不好,建议先查这块。瞬间电流其实很大的。

使用特权

评论回复
5
jepsen1|  楼主 | 2015-6-12 23:58 | 只看该作者
感觉电源的问题应该不是很可能,dcdc 2756常用的电源,而且是适配器供电。明天拍照片上来。

使用特权

评论回复
6
jepsen1|  楼主 | 2015-6-13 00:00 | 只看该作者
aozima 发表于 2015-6-12 20:57
先排除一堆的网络   TFTP等问题。
单独刷屏,然后用CPU和DMA去竞争总线就可以确认您的怀疑了。 ...

不下载文件也会抖动,只是没那么厉害,下载文件时文字看不清了。

使用特权

评论回复
7
aozima| | 2015-6-13 13:41 | 只看该作者
jepsen1 发表于 2015-6-12 23:58
感觉电源的问题应该不是很可能,dcdc 2756常用的电源,而且是适配器供电。明天拍照片上来。 ...

先用稳定的外部电源排除这问题再说。同时还要排查电源到器件的走线是否太细。
大电流时有些差的板子GND上面的波纹有几百mV

使用特权

评论回复
8
ztzjl2010| | 2015-6-16 13:06 | 只看该作者
为什么用malloc而不是直接分配显存?先直接分配缓存试试呢

使用特权

评论回复
9
15113484470| | 2015-6-16 16:59 | 只看该作者
先不用SDRAM,放张小图片看抖不抖

使用特权

评论回复
10
jepsen1|  楼主 | 2015-6-16 18:56 | 只看该作者
用稳压源也这样,所以排除电源问题。测试发现不用ucos,就没事,读写文件系统也没事。

使用特权

评论回复
11
jepsen1|  楼主 | 2015-6-16 18:59 | 只看该作者
ztzjl2010 发表于 2015-6-16 13:06
为什么用malloc而不是直接分配显存?先直接分配缓存试试呢

已经将sdram配置为系统内存,可以和iram一样使用,声明数组,分配内存。这样sdram不至于浪费,而且文件系统,网络和显示都要用内存,尤其显示将图片缓存到sdram后,显示速度快不少。

使用特权

评论回复
12
jepsen1|  楼主 | 2015-6-16 19:03 | 只看该作者
15113484470 发表于 2015-6-16 16:59
先不用SDRAM,放张小图片看抖不抖

测试不加os就不抖,即使设置一个超循环,一直memset内存块也没问题。另外一个测试在memset后加入ostimedly,就开始抖,难道是因为os_enter_critical关中断的问题。。。费解,

使用特权

评论回复
13
jepsen1|  楼主 | 2015-6-16 19:04 | 只看该作者
本来打算打造这个平台替换arm9+wince的方案,结果遇到这个问题。

使用特权

评论回复
14
泰山特曲123| | 2015-6-17 00:20 | 只看该作者
资源共享保护,可能是两个任务同时使用了与VGA相关的资源

使用特权

评论回复
15
jepsen1|  楼主 | 2015-6-17 07:43 | 只看该作者
驱动都用互斥做保护了,目前就添加一个任务。

使用特权

评论回复
16
jepsen1|  楼主 | 2015-6-17 17:09 | 只看该作者
lcd行中断能关掉就好了,否则一定会受临界代码的影响

使用特权

评论回复
17
jepsen1|  楼主 | 2015-6-23 14:44 | 只看该作者
结帖,结论,无解。sdram带宽做显存稍有富裕,再加其他数据读写,总线负担过重,而文件系统,给出的折中办法是用片上ram,且使用io模拟nand接口,避免总线复用。

使用特权

评论回复
18
jepsen1|  楼主 | 2015-6-23 14:49 | 只看该作者
或者用2片sdram组建32位宽没准可以。

使用特权

评论回复
19
玛尼玛尼哄| | 2015-6-23 15:09 | 只看该作者

先不用SDRAM,放张小图片看抖不抖,,肯定抖动s

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

21

帖子

0

粉丝