aaaaaabcai 发表于 2019-12-25 09:32:44

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

我手上有一块 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; // 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;

butterflyspring 发表于 2020-1-6 16:16:06

刚好有个朋友玩过:P。因为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都要吐血了感谢感谢:P

butterflyspring 发表于 2020-9-25 15:29:37

巧了,刚好又碰到他,所以问了一下。不过有个不好的消息,他说这个板子上的PSRAM 不支持同步模式,只能在极低速下运行,不超过4M下还能跑。所以想用PSRAM当FRAMEBUFFER的话需要用到支持同步模式的PSRAM才行:(
页: [1]
查看完整版本: 怎么用32L4R9IDISCOVERY开发板上的PSRAM做显存?