完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试从 ESP32-S3 开发 VGA 驱动程序。
我的示意图类似于 FabGL 库 。我有 8 个输出: 1 个输出 V-Sync 1 个输出 H-Sync 2 个输出红色 2 个输出绿色 2 个输出蓝色 我在 ESP32 WROOM 上测试过,它工作正常。 在 ESP32-S3 上,我无法重用 fabGL 代码(FalbGL 使用具有 LCD 功能的 I2S 模块)。为了在 S3 上工作,我重复使用了“rgb_panel”示例 本例绘制散点图。 我设置了良好的 IO 和时序640*480: 我在 PSRAM 中使用两个帧缓冲区配置驱动程序。 但是陈列很脏。我看到了散点图,但它在闪烁和移动,背景不干净。 我尝试使用 LCD 菜单配置中的“在 VSYNC 中重新启动传输”。好一点了,散点图居中,但是信号不干净。 我用示波器检查了 vsync 和 hsync。时机很好(前廊,后廊,...) 别的,我试过没有 LVGL。我直接在帧缓冲区中写了一个模式。但我不知道如何切换帧缓冲区。要显示我的模式,我必须写入两个帧缓冲区。 代码: // Code OK, but why I must write in the two frame buffer ?? void *buf1 = NULL; void *buf2 = NULL; ESP_LOGI(TAG, "Use frame buffers as LVGL draw buffers"); ESP_ERROR_CHECK(esp_lcd_rgb_panel_get_frame_buffer(panel_handle, 2, &buf1, &buf2)); memset(buf1, 0x01, EXAMPLE_LCD_H_RES * EXAMPLE_LCD_V_RES); memset(buf2, 0x01, EXAMPLE_LCD_H_RES * EXAMPLE_LCD_V_RES); vTaskDelay(pdMS_TO_tiCKS(1000)); memset(buf1, 0x02, EXAMPLE_LCD_H_RES * EXAMPLE_LCD_V_RES); memset(buf2, 0x02, EXAMPLE_LCD_H_RES * EXAMPLE_LCD_V_RES); vTaskDelay(pdMS_TO_TICKS(1000)); memset(buf1, 0x04, EXAMPLE_LCD_H_RES * EXAMPLE_LCD_V_RES); memset(buf2, 0x04, EXAMPLE_LCD_H_RES * EXAMPLE_LCD_V_RES); vTaskDelay(pdMS_TO_TICKS(1000)); 你有想法吗? |
|
相关推荐
3个回答
|
|
可能是带宽问题。640x480x16bit 占用大约 600K,所以你不能将它存储在内部 RAM 中,所以我想你正在使用 PSRAM。640x480x60Hz@16bit 是 36MBit/秒。这足够高,四路 PSRAM 无法处理它,因此您可能需要八路 PSRAM。
|
|
|
|
我使用 ESP32-S3-WROOM-1-N8R8 模块(来自 ESP32-S3-DevKitC-1-N8R8)。
两个帧缓冲区存储在八进制 PS RAM 中:640*480@60Hz@8bits (300 ko / FB) 你知道八进制 PS RAM 的最大带宽吗? |
|
|
|
如果配置正确,我认为八进制 PSRAM 可以达到 80MHz DDR,换句话说就是 160MByte/second 或 1.2GBit/second。
|
|
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
437浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 21:58 , Processed in 0.815113 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号