你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

怎么用32L4R9IDISCOVERY开发板上的PSRAM做显存?

[复制链接]
aaaaaabcai 提问时间:2019-12-25 09:32 /
我手上有一块 32L4R9IDISCOVERY
然后,我在DEMO程序STM32Cube_FW_L4_V1.14.0\Projects\32L4R9IDISCOVERY\Examples\DSI\DSI_CmdMode_SingleBuffer基础上,添加了PSRAM初始化。PSRAM工作正常,并可以作为堆使用。
但当我把显存设置到PSRAM上的时候。
发现系统会进入到LTDC Error中断
LTDC_ER_IRQHandler


请问大大有测试过类似的问题吗?
谢谢


附:代码
显存配置
//__attribute__((section(".FrameBufferSection")))
__attribute__((section(".XRAMSection")))
__align(16) uint32_t PhysFrameBuffer[91260]; // 5 char buffer, 5*16 = 80 pixer

PSRAM初始化
/* PSRAM device configuration */
  /* Timing configuration derived from system clock (up to 120Mhz)
  for 60Mhz as PSRAM clock frequency */
  Timing.AddressSetupTime   = 4;
  Timing.AddressHoldTime    = 2;
  Timing.DataSetupTime     = 6;
  Timing.BusTurnAroundDuration = 1;
  Timing.CLKDivision      = 2;
  Timing.DataLatency      = 2;
  Timing.AccessMode    = FMC_ACCESS_MODE_A; //FMC_ACCESS_MODE_A;
  psramHandle.Init.NSBank       = FMC_NORSRAM_BANK1;
  psramHandle.Init.DataAddressMux   = FMC_DATA_ADDRESS_MUX_DISABLE;
  psramHandle.Init.MemoryType     = FMC_MEMORY_TYPE_PSRAM;
  psramHandle.Init.MemoryDataWidth  = FMC_NORSRAM_MEM_BUS_WIDTH_16;
  psramHandle.Init.BurstAccessMode  = FMC_BURST_ACCESS_MODE_DISABLE;
  psramHandle.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_HIGH;
  psramHandle.Init.WaitSignalActive  = FMC_WAIT_TIMING_BEFORE_WS;
  psramHandle.Init.WriteOperation   = FMC_WRITE_OPERATION_ENABLE;
  psramHandle.Init.WaitSignal     = FMC_WAIT_SIGNAL_DISABLE;
  psramHandle.Init.ExtendedMode    = FMC_EXTENDED_MODE_DISABLE;
  psramHandle.Init.AsynchronousWait  = FMC_ASYNCHRONOUS_WAIT_DISABLE;
  psramHandle.Init.WriteBurst     = FMC_WRITE_BURST_DISABLE;
  psramHandle.Init.ContinuousClock  = FMC_CONTINUOUS_CLOCK_SYNC_ASYNC;
  psramHandle.Init.WriteFifo     = FMC_WRITE_FIFO_DISABLE;
  psramHandle.Init.NBLSetupTime    = 0;
  psramHandle.Init.PageSize      = FMC_PAGE_SIZE_NONE;
  psramHandle.Instance = FMC_NORSRAM_DEVICE;
  psramHandle.Extended = FMC_NORSRAM_EXTENDED_DEVICE;

收藏 评论3 发布时间:2019-12-25 09:32

举报

3个回答
butterflyspring 回答时间:2020-1-6 16:16:06
刚好有个朋友玩过。因为STM32L4R9-DISCO板上的PSRAM,DEMO中初始化为异步模式,读写速率较慢,直接用作framebuffer会出现带宽不匹配的问题,需要优化PSRAM参数配置,比如配置为burst mode,或同步模式,访问速率会大提高,同时也要结合LTDC配置,使PSRAM带宽与LTDC带宽需求相匹配。希望能帮到你
l271918434 回答时间:2020-9-22 18:38:39
butterflyspring 发表于 2020-1-6 16:16
刚好有个朋友玩过。因为STM32L4R9-DISCO板上的PSRAM,DEMO中初始化为异步模式,读写速率较慢,直接用作fr ...

版主  能不能把PSRAM当显存的配置放出来造福一下坛友啊,我用L4R9搞DSI都要吐血了  感谢感谢
butterflyspring 回答时间:2020-9-25 15:29:37
巧了,刚好又碰到他,所以问了一下。不过有个不好的消息,他说这个板子上的PSRAM 不支持同步模式,只能在极低速下运行,不超过4M下还能跑。所以想用PSRAM当FRAMEBUFFER的话需要用到支持同步模式的PSRAM才行

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版