PWM做 简易 VGA信号发生器
本帖最后由 gentleman 于 2023-12-4 13:20 编辑2023/12/4
上个版本是纯色图像 @STC32G12K128
这个版本尝试显示 其他图像/动画
使用硬件spi 发送RGB数据
画面有些异常
优化掉bug后 放出代码
先放个视频
https://www.bilibili.com/video/BV1TC4y117hV
---------------------------------------------------
主要的思路就是通过PWM 1P 生成 行同步信号。
2N 3N 4N 做测试的 RGB信号
在任务调度中 每1000ms 改变一次颜色(开关2N 3N 4N实现)
我使用的是STC8H8K64U。 使用其他支持PLL PWM的mcu 应该可以实现更高的分辨率与刷新率
https://www.bilibili.com/video/BV1bB4y1R7ca
OSD, 菜单显示就有价值了 神农鼎 发表于 2023-10-24 09:27
OSD, 菜单显示就有价值了
慢慢研究{:4_165:} wdj-stc 发表于 2023-10-31 17:37
能不能分享源码,以及电路图
不要急,会开源的
wdj-stc 发表于 2023-11-2 22:28
我看了你的贴之后,我百度找了相关的vga资料,正在琢磨中,有了一些看法,没有上机实验,我认为,用51单片机做vga ...
行和场的同步信号都是必须的。场同步信号不能省略,只是它的频率较低,容易实现。
不同分辨率 同步信号参数不同,下图是在网上获取的
wdj-stc 发表于 2023-11-3 13:47
或者,暂时不提供场频,直接给场频提供直流电平,结果就是,屏幕不刷新,不影响点亮屏幕 ...
错误太多,不要空想。你要实际动手实验一下
没有完整的行场同步,显示器认为会无信号待机
rgb使用简单的直流电平也是不可以的。
建议使用示波器采集实际的vga信号波形进行学习。
同步信号大致是这个频率, 因为我使用的是stc的硬件pwm,没有计算过频率的值
硬件pwm 只需要配置好脉宽和周期 就行
40m 是时钟频率
本帖最后由 zhx 于 2023-11-8 08:16 编辑
这个以前用 STM32做过,可以显示文本和图像,处理速度跟不上,可以降低帧数
RGB编码是 565 格式,
记得还有人用 AT2051完成了俄罗斯方块,还带背景音乐的
本帖最后由 zhx 于 2023-11-8 08:36 编辑
wdj-stc 发表于 2023-11-3 13:47
或者,暂时不提供场频,直接给场频提供直流电平,结果就是,屏幕不刷新,不影响点亮屏幕 ...
VGA信号,其实是一个模拟信号,显示器不断的从左到右(行),从上到下(场)扫描,
行场同步就是回位左上角的信号,不准大不了图像大小变化,没有,图像就不会展开而是一个点或是一条线,
在扫描的过程中,合适的时机给出合适的RGB分量电压,你就能构成一个图像.
整个扫描时序,可以在一个定时器内完成,用RAM做视频缓冲,应用在场消隐的时间内往RAM里填充数据,时间不够可以用双缓冲区,场消隐只做数据区切换,在不够,可以减低帧率,在多个场后切换.
zhx 发表于 2023-11-8 08:34
VGA信号,其实是一个模拟信号,显示器不断的从左到右(行),从上到下(场)扫描,
行场同步就是回位左上角的信号, ...
无行/场同步,显示器会认为无信号而待机{:4_165:}。
页:
[1]
2