找回密码
 立即注册
楼主: tzz1983

试用32G12K128系列,感觉不错,很舒服

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:36
  • 最近打卡:2026-04-17 10:38:38

36

主题

1158

回帖

2885

积分

荣誉版主

积分
2885
发表于 2025-8-14 14:25:35 | 显示全部楼层
cyf1*** 发表于 2025-8-14 11:25
我按您的方式对齐了,也是不行。

另外就是我传输的数组长度是不变的,只不过是最后一个灯设置为灭而已。 ...

或许是少传了1位数据,比如:串行输出32位,实际只有31位。
但现在不能确认,代码出现BUG有时候是五花八门,不实演很难猜出症结。

另:请问您用的是 I8080模式,还是M6800模式。
建议I8080模式,硬件波形,时序比较契合。

如何找出问题的建议:
1. 首先降低通信速率,以此来排除可能的匹配问题。
2.反复修改代码,比如现在是输出32个位,
修改代码为只输出8个位,同时更改显示数据,便于观察。(有示波或逻辑分析仪更好,没有也没关系,改数据可体现在LED灯上)
因为总的数据量少了,哪怕一位一位的看过去,也不会花很长时间,就能很快找出症结。
修正后改回,代码就正常了。
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:106
  • 最近打卡:2026-04-03 15:43:20

12

主题

54

回帖

602

积分

高级会员

积分
602
发表于 2025-8-14 14:31:58 | 显示全部楼层
tzz1*** 发表于 2025-8-14 14:25
或许是少传了1位数据,比如:串行输出32位,实际只有31位。
但现在不能确认,代码出现BUG有时候是五花八 ...

使用的是I8080并口的,我现在用的是16位驱动,跟这个有关系吗?我改变了传输数据的长度,显示也会不正常。
截图202508141432586957.jpg

点评

还有个地方要注意,LCM口和普通IO口是共用的,也就是说,当DMA结束(LCM闲置时), WR就变成了普通的IO口并输出IO电平,这可能会使WR引脚上出现额外的脉冲波形。 实际使用中: 1. I8080模式时,WR的初始化为高电平,  详情 回复 发表于 2025-8-14 14:57
这里本来就要减1的,应该不是这里的问题  发表于 2025-8-14 14:41
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:36
  • 最近打卡:2026-04-17 10:38:38

36

主题

1158

回帖

2885

积分

荣誉版主

积分
2885
发表于 2025-8-14 14:57:33 | 显示全部楼层
cyf1*** 发表于 2025-8-14 14:31
使用的是I8080并口的,我现在用的是16位驱动,跟这个有关系吗?我改变了传输数据的长度,显示也会不正常。 ...

还有个地方要注意,LCM口和普通IO口是共用的,也就是说,当DMA结束(LCM闲置时),
WR就变成了普通的IO口并输出IO电平,这可能会使WR引脚上出现额外的脉冲波形。
实际使用中:
1. I8080模式时,WR的初始化为高电平,并设置成推挽输出,以后就一直不要改变.
2. 一行扫描最好只用一次DMA完成, 不要分割成多次,可避免间隙期间电平的变化。

如果是使用M6800的E脚,则初始电平应该设置成低电平。
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:106
  • 最近打卡:2026-04-03 15:43:20

12

主题

54

回帖

602

积分

高级会员

积分
602
发表于 2025-8-14 15:01:32 | 显示全部楼层
tzz1*** 发表于 2025-8-14 14:57
还有个地方要注意,LCM口和普通IO口是共用的,也就是说,当DMA结束(LCM闲置时),
WR就变成了普通的IO口 ...

每次传输一行数据,使用PWM在更新中断修改行地址和数据首地址,使用LCM_DMA中断进行数据锁存,这样应该也是没问题的,我刚刚用示波器看了,一个OE周期内clk的数量也是对的

点评

实在不行,就花点时间,改成IO驱动吧,调成功后,用示波器记录波形。 再改回DMA, 输出同样的数据,看看波形异同  详情 回复 发表于 2025-8-14 15:12
理论上,模组是上升沿锁存数据,即使CLK上升沿后不变低电平也可正常锁存数据。但会不会有外不一定  详情 回复 发表于 2025-8-14 15:08
会不会模组的CLK端不支持高电平结束呢? 我这边用过几种模组,HUB75/HUB12都是正常的。 也可以考虑一下,试试改成增加/减少一位看看结果  详情 回复 发表于 2025-8-14 15:04
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:36
  • 最近打卡:2026-04-17 10:38:38

36

主题

1158

回帖

2885

积分

荣誉版主

积分
2885
发表于 2025-8-14 15:04:56 | 显示全部楼层
cyf1*** 发表于 2025-8-14 15:01
每次传输一行数据,使用PWM在更新中断修改行地址和数据首地址,使用LCM_DMA中断进行数据锁存,这样应该也 ...

会不会模组的CLK端不支持高电平结束呢?
我这边用过几种模组,HUB75/HUB12都是正常的。
也可以考虑一下,试试改成增加/减少一位看看结果
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:36
  • 最近打卡:2026-04-17 10:38:38

36

主题

1158

回帖

2885

积分

荣誉版主

积分
2885
发表于 2025-8-14 15:08:02 | 显示全部楼层
cyf1*** 发表于 2025-8-14 15:01
每次传输一行数据,使用PWM在更新中断修改行地址和数据首地址,使用LCM_DMA中断进行数据锁存,这样应该也 ...

理论上,模组是上升沿锁存数据,即使CLK上升沿后不变低电平也可正常锁存数据。但会不会有例外不一定
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:36
  • 最近打卡:2026-04-17 10:38:38

36

主题

1158

回帖

2885

积分

荣誉版主

积分
2885
发表于 2025-8-14 15:12:23 | 显示全部楼层
cyf1*** 发表于 2025-8-14 15:01
每次传输一行数据,使用PWM在更新中断修改行地址和数据首地址,使用LCM_DMA中断进行数据锁存,这样应该也 ...

实在不行,就花点时间,改成IO驱动吧,调成功后,用示波器记录波形。
再改回DMA, 输出同样的数据,看看波形异同

慢慢测试,祝成功!
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:29
  • 最近打卡:2026-04-27 09:59:53

13

主题

79

回帖

367

积分

中级会员

积分
367
发表于 2026-4-13 14:57:35 | 显示全部楼层
我现在在用这种方法驱动全彩,如果用STC32G144K单片机以48M晶振驱动64张全彩的话,达到104帧的刷新率,效果很好,但驱动80张的话,只有83帧,肉眼看不闪,但拍照不行。。。

不过还有个问题,就是如何调节亮度呢???我把EN脚用PWM来驱动,乱码,感觉只能LCM_DMA发送完一行数据,再改一下EN脚才有用,其它地方改变EN脚的话,都有可能乱码

点评

注意一下时序,大致是这样的,比如是四扫描的,PWM中断启动DMA, 先把其中1次扫描的数据用DMA发出去,但先不要锁存HS(锁存) , 等到下次PWM中断的时候锁存,我一直都是这么做的,很稳定, 锁存很快,就一条语句改变I  详情 回复 发表于 2026-4-14 09:31
如果用STC32G144K单片机以48M晶振 ===STC32G144K246 可以跑 100MHz ~ 120MHz I/O 可以到 55MHz  详情 回复 发表于 2026-4-13 22:39
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:394
  • 最近打卡:2026-05-01 10:39:02

850

主题

1万

回帖

2万

积分

管理员

积分
23144
发表于 2026-4-13 22:39:29 | 显示全部楼层
乘*** 发表于 2026-4-13 14:57
我现在在用这种方法驱动全彩,如果用STC32G144K单片机以48M晶振驱动64张全彩的话,达到104帧的刷新率,效果 ...

如果用STC32G144K单片机以48M晶振

===STC32G144K246 可以跑 100MHz ~ 120MHz
       I/O 可以到 55MHz
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:36
  • 最近打卡:2026-04-17 10:38:38

36

主题

1158

回帖

2885

积分

荣誉版主

积分
2885
发表于 2026-4-14 09:16:50 | 显示全部楼层
乘*** 发表于 2026-4-13 14:57
我现在在用这种方法驱动全彩,如果用STC32G144K单片机以48M晶振驱动64张全彩的话,达到104帧的刷新率,效果 ...
不过还有个问题,就是如何调节亮度呢???我把EN脚用PWM来驱动,乱码,感觉只能LCM_DMA发送完一行数据,再改一下EN脚才有用,其它地方改变EN脚的话,都有可能乱码
注意一下时序,大致是这样的,比如是四扫描的,PWM中断启动DMA, 先把其中1次扫描的数据用DMA发出去,但先不要锁存HS(锁存) , 等到下次PWM中断的时候锁存,我一直都是这么做的,很稳定,
锁存很快,就一条语句改变IO即可,这么语句放在PWM中断执行代码的偏前几句,也就是改变扫描地址后立即锁存。即保证时间间隔粒度精确,同时启动下次DMA,如此循环往复。
PWM的亮度由另一路占空比控制(EN),与与数据的控制逻辑无关的,或者说关联不大,如果你不放心,可以限制一下占空比,让EN在PWM中断前期保持不动,但我这边测试时,无论多少占空比者是正常的,亮度从0-100%连续无级。


回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-1 12:09 , Processed in 0.123883 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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