2884|3

1万

帖子

25

TA的资源

版主

楼主
 

PICO 的 VGA/TV 驱动库 PicoVGA (2) [复制链接]

 

PicoVGA主要功能

  • 使用 PIO0 模块,使用具有透明度的 1 个基本层和 3 个覆盖层
  • R3G3B2 格式的 8 位输出
  • VGA 显示器输出为 256x192 至 1280x960 分辨率
  • 在PAL或NTSC隔行模式下输出分辨率高达1024x576或848x480
  • 近 30 帧缓冲格式:8/4/2/1 位图形、磁贴、文本、特殊格式(图表)
  • 有限bit位的文本模式和图形格式调色板
  • 不同格式的帧缓冲区可以在图像中以条带和段的形式组合在一起
  • RLE 图像压缩(适合绘图)
  • 具有可选关键颜色的透明度模式
  • 覆盖层中的硬件精灵
  • 层输出仅到指定输出引脚(彩色平面)
  • 根据指定的分辨率和时间自动配置视频模式
  • 根据所需的分辨率自动超频处理器
  • 库使用处理器的第二个内核,第一个内核保留给主程序
  • 附加 PWM 音频输出(不是必要)

这里是一个以隔行模式输出到电视的例子,从VGA连接器到SCART电视连接器。VGA/SCART减少到只包含一个简单的连接器引脚连接,可能还有一个用于消隐信号的电阻器。

 

 

PicoVGA库使用规则

Pico上的图像生成受处理器利用率限制,程序必须遵循它。使用PicoVGA库时,需要记住以下几个原则:

库总是在处理器的第二个核上运行,程序总是在第一个核上运行。渲染图像会使CPU内核完全过载,并且通常无法用于其他用途。核心功能的分离还有一个优点,即核心之间不相互影响,不需要相互锁定。第一个核心简单地使用对帧缓冲区的写操作,第二个核心显示帧缓冲区的内容,而不在它们之间进行任何通信。这使得整体工作更容易和更快。

如果第二个核心不繁忙(例如,当显示仅使用DMA传输传输的8位图形时),它也可以用于主程序工作。但是,应考虑到一些限制:第二个核心中的程序不应使用中断(它会干扰渲染功能),应谨慎使用插值单元(渲染功能不保存其状态),并且不得禁用中断。

一条重要的规则是,PicoVGA库访问的所有数据必须存储在RAM中。外部闪存速度慢,不能用于渲染功能。例如,如果要显示flash图像,则必须首先将其复制到RAM中的缓冲区,然后将指向图像的RAM副本的指针传递给呈现函数。如果将指向flash中图像的指针传递给它,那么访问flash的速度慢将导致视频丢失。除了图像,这也适用于字体和瓷砖模式。

在安排屏幕布局时,必须考虑有限的渲染速度。有些模式渲染速度非常快(例如,使用DMA从帧缓冲区传输8位图形),有些模式渲染强度非常高:例如,以慢速模式渲染精灵。当使用渲染时,某些视频可能无法在要求的时间内足够快地渲染,视频图像将中断(失去同步)。在这种情况下,有必要使用其他模式,或减少渲染区域(添加其他更快的模式,例如在屏幕两侧添加平铺控件),降低屏幕分辨率或提高CPU时钟速度。视频是分开呈现的,因此它始终只是一个视频线上的内容,视频线之间不会相互影响。例如,可以通过将所有精灵水平相邻放置(最具挑战性的情况)来测试精灵渲染的速度,并检查视频同步是否失败。

使用DMA传输时也必须小心。DMA用于将数据传输到PIO。尽管传输使用FIFO缓存,但使用不同的DMA信道可能会导致渲染DMA信道延迟,从而导致视频丢失。例如,当RAM中的大数据块被快速传输时,DMA可能发生过载。然而,最大的负载是来自闪存的数据DMA传输。在这种情况下,DMA通道等待通过QSPI从flash读取数据,从而阻塞DMA呈现通道。

CPU时钟频率也必须服从图像发生器。在初始化视频节点之前,库将计算所需的系统时钟频率,以便定时符合要求,并且处理器速度足以满足所需的图像分辨率。最好先打印出计算出的时钟频率,以便在控制台上进行检查。可以禁止库改变系统时钟,或者仅规定某个范围,在这种情况下,某些模式可能无法访问(或者视频图像可能中断)。

图像缓冲区必须对齐到4字节(32位CPU字),图像段必须水平对齐到4像素-这是指段的水平位置、宽度、对齐(wrapx)和偏移(offx)。对齐不适用于垂直方向。此限制是必要的,因为图像信息是使用32位DMA传输传输到PIO控制器的,并且必须与32位字对齐。一个32位字包含4个像素(1个像素包含8位),因此图像中的水平数据也必须与4个像素对齐。因此,您不能以1像素的增量对图像进行精细的水平滚动(该限制不适用于垂直滚动),而只能以4像素的增量进行。例外是慢精灵,这是软件渲染到视频线,因此可以滚动1像素的增量。类似地,该限制不适用于将软件渲染到帧缓冲区(例如,可以将图像渲染到任何坐标的视频存储器)。

最新回复

1280x960 分辨率如何使用?能介绍详细点吗,不会用   详情 回复 发表于 2023-2-16 23:15
点赞 关注
 
 

回复
举报

7020

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

渲染应该非常占用内存资源的吧

点评

那一定是的,所以PicoVGA只使用了8bit。  详情 回复 发表于 2021-6-21 10:14
 
 
 

回复

1万

帖子

25

TA的资源

版主

板凳
 
Jacktang 发表于 2021-6-21 08:38 渲染应该非常占用内存资源的吧

那一定是的,所以PicoVGA只使用了8bit。

 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(中级)

4
 

1280x960 分辨率如何使用?能介绍详细点吗,不会用

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖探索 | 和村田一起,深挖 GNSS 开发!
活动时间:即日起-5月11日
活动奖励:智能手环、螺丝刀套装、双肩包

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 11

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表