OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1097|回复: 0

[XILINX] 同样的Block Design,SDK裸机程序配置VDMA寄存器屏幕能正常显示,PYNQ下同样的寄存器配置,屏幕不能显示,提示不是最佳分辨率

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2023-11-11
在线时间
2 小时
发表于 2023-11-29 16:10:37 | 显示全部楼层 |阅读模式
2金钱
在PYNQ OV5640 LCD显示基础上,增加一路VDMA,用OSD拼在一起输出1080p,像素时钟、video timing和OSD固定1080p配置。
在裸机程序里配置两个VDMA只开启MM2S通道,能正常显示内存的画面;同样的寄存器配置放在PYNQ里屏幕就不能显示,并且屏幕提示:“未达到最佳分辨率,推荐1920*1080”。
SDK裸机程序只配置了两个VDMA,PYNQ也只配置VDMA,这两个配置方式有差别吗,需要怎么修改?
// SDK 程序寄存器配置
void vdma_config(u32 ID, u32 w, u32 h, u32 addr, u32 size)
{
        // MM2S
        XAxiVdma_Config *Config = XAxiVdma_LookupConfig(ID);
        u32 vdma_base_addr = Config->BaseAddress;
        XAxiVdma_WriteReg(vdma_base_addr, 0x00, 0x81);
        XAxiVdma_WriteReg(vdma_base_addr, 0x5C, addr);
        XAxiVdma_WriteReg(vdma_base_addr, 0x5C+4, addr+size);
        XAxiVdma_WriteReg(vdma_base_addr, 0x5C+2*4, addr+2*size);
        XAxiVdma_WriteReg(vdma_base_addr, 0x58, w*3);
        XAxiVdma_WriteReg(vdma_base_addr, 0x54, w*3);
        XAxiVdma_WriteReg(vdma_base_addr, 0x50, h);
        // S2MM
        XAxiVdma_WriteReg(vdma_base_addr, 0x30, 0x80);
}


// PYNQ内跟SDK同样的寄存器配置
vdma0 = overlay.axi_vmda_0
vdma1 = voerlay.axi_vdma_1
vdma0.write(0x00, 0x81)
....



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 21:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表