找回密码
 立即注册
查看: 3017|回复: 14

PWM做 简易 VGA信号发生器

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-10-24 08:06:50 | 显示全部楼层 |阅读模式
本帖最后由 gentleman 于 2023-12-4 13:20 编辑

2023/12/4  
上个版本是纯色图像 @STC32G12K128
这个版本尝试显示 其他图像/动画
使用硬件spi 发送RGB数据
画面有些异常
优化掉bug后 放出代码
先放个视频




---------------------------------------------------
主要的思路就是通过PWM 1P 生成 行同步信号
2N 3N 4N 做测试的 RGB信号
在任务调度中 每1000ms 改变一次颜色(开关2N 3N 4N实现)
我使用的是STC8H8K64U。 使用其他支持PLL PWM的mcu 应该可以实现更高的分辨率与刷新率


截图202310240811227342.jpg

截图202310240811486467.jpg

截图202310240812153883.jpg

截图202310240813049938.jpg







32G_VGA V0.2.7z

453.75 KB, 下载次数: 151

32G版本的

(32G)VGA_V0_2.hex

47.74 KB, 下载次数: 122

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-05-03 10:05:34

718

主题

1万

回帖

1万

积分

管理员

积分
15648
发表于 2023-10-24 09:27:24 | 显示全部楼层
OSD, 菜单显示就有价值了

点评

慢慢研究  详情 回复 发表于 2023-10-24 12:22
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-10-24 12:22:40 | 显示全部楼层
神*** 发表于 2023-10-24 09:27
OSD, 菜单显示就有价值了

慢慢研究
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-11-1 08:29:47 | 显示全部楼层
wdj-*** 发表于 2023-10-31 17:37
能不能分享源码,以及电路图

不要急,会开源的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-11-3 10:56:41 | 显示全部楼层
wdj-*** 发表于 2023-11-2 22:28
我看了你的贴之后,我百度找了相关的vga资料,正在琢磨中,有了一些看法,没有上机实验,我认为,用51单片机做vga ...

行和场的同步信号都是必须的。场同步信号不能省略,只是它的频率较低,容易实现。

不同分辨率 同步信号参数不同,下图是在网上获取的
截图202311031054249037.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-11-3 15:01:59 | 显示全部楼层
wdj-*** 发表于 2023-11-3 13:47
或者,暂时不提供场频,直接给场频提供直流电平,结果就是,屏幕不刷新,不影响点亮屏幕 ...

错误太多,不要空想。你要实际动手实验一下



没有完整的行场同步,显示器认为会无信号待机
rgb使用简单的直流电平也是不可以的。


建议使用示波器采集实际的vga信号波形进行学习。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-11-4 10:30:53 | 显示全部楼层
同步信号大致是这个频率, 因为我使用的是stc的硬件pwm,没有计算过频率的值

硬件pwm 只需要  配置好脉宽和周期 就行
40m 是时钟频率




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-04-17 09:50:59

17

主题

91

回帖

755

积分

高级会员

积分
755
发表于 2023-11-8 08:14:55 | 显示全部楼层
本帖最后由 zhx 于 2023-11-8 08:16 编辑

这个以前用 STM32做过,可以显示文本和图像,处理速度跟不上,可以降低帧数
RGB编码是 565 格式,
记得还有人用 AT2051完成了俄罗斯方块,还带背景音乐的


截图202311080814488261.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-04-17 09:50:59

17

主题

91

回帖

755

积分

高级会员

积分
755
发表于 2023-11-8 08:34:15 | 显示全部楼层
本帖最后由 zhx 于 2023-11-8 08:36 编辑
wdj-*** 发表于 2023-11-3 13:47
或者,暂时不提供场频,直接给场频提供直流电平,结果就是,屏幕不刷新,不影响点亮屏幕 ...

VGA信号,其实是一个模拟信号,显示器不断的从左到右(行),从上到下(场)扫描,
行场同步就是回位左上角的信号,不准大不了图像大小变化,没有,图像就不会展开而是一个点或是一条线,
在扫描的过程中,合适的时机给出合适的RGB分量电压,你就能构成一个图像.
整个扫描时序,可以在一个定时器内完成,用RAM做视频缓冲,应用在场消隐的时间内往RAM里填充数据,时间不够可以用双缓冲区,场消隐只做数据区切换,在不够,可以减低帧率,在多个场后切换.

点评

无行/场同步,显示器会认为无信号而待机。  详情 回复 发表于 2023-11-8 12:41
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-11-8 12:41:09 | 显示全部楼层
zh*** 发表于 2023-11-8 08:34
VGA信号,其实是一个模拟信号,显示器不断的从左到右(行),从上到下(场)扫描,
行场同步就是回位左上角的信号, ...

无行/场同步,显示器会认为无信号而待机

点评

异常的行/场同步,极大的可能是显示器提示 不支持的显示模式 或 频率超出范围  详情 回复 发表于 2023-11-8 12:43
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 01:20 , Processed in 0.457778 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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