找回密码
 立即注册
查看: 1020|回复: 17

求助!急 键盘扫描串口发送键值不定时异常

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-06-26 00:56:38

2

主题

5

回帖

50

积分

注册会员

积分
50
发表于 2024-5-29 11:14:24 | 显示全部楼层 |阅读模式
自从2009年公司一直使用STC12C56系列型号,每年有20K左右的用量,做矩阵键盘扫描,串口输出键值到主控单片机,运行一直很稳定。

2023年初开始更换新工艺的STC8H1K28,价格更低、速度更快,做同样的矩阵扫描工作,几个批量的41个按键的键盘处理,没有集中出现过运行不稳定的情况,最近做了两批72个按键的键盘,集中爆发了运行不稳定的情况,全国各地和国外的客户都有,排除天气、温度、湿度的影响,有时早晨开机就出现扫描不到有效键值的情况,反复上电掉电都不行,过一天再开机又正常了,用几天又出现这样的异常,返回我们车间几十台控制器,运行一切正常,发回给客户,还是不定时的出现异常,有三个客户已经配合往返3~5次,依旧没有解决。急切需要STC官方给解决一下呀,客户催的急。
前后大小两个键盘的区别是:按键少的用了11.0592MHz的晶体,没有用到P3.2/P3.3,按键多的用了12MHz的晶体,用到了所有的IO,软件的扫描方式相同。
官方处理需要的话可以向我索要版图和程序,多谢多谢,在线等,问题已经出现了3个月了

下载界面选项240416-01.png
回复

使用道具 举报 送花

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

718

主题

1万

回帖

1万

积分

管理员

积分
15648
发表于 2024-5-30 10:55:55 | 显示全部楼层
把实际电路原理图的PDF发上来,大家一起帮你分析

行列式按键扫描,输入用高阻,打开内部上拉/或外部已有上拉,
===如打开内部上拉,则等 1mS, 再读外部状态,

===则外部对地分布电容再大,也可以认为外部被拉高了
===大概 T = 0.7 R*C


对应的内部上拉电阻,上电就打开,不要关 !
外部上拉电阻在跑用户程序时,已有充分的时间
===将外部对地分布电容拉高了
===上电时就在同步拉高

后面行列式按键扫描,I/O要输出低电平,可以开漏输出低

===开漏输出低就是强推挽的输出低,从高拉低也是要时间的,这个较短
===开漏输出低就是准双向口的输出低
===开漏输出高就是高阻输入,从
开漏输出低回到开漏输出高/浮空高阻输入
         等外部实际被外部上拉电阻/内部上拉电阻拉高,还是要时间的
大概 T = 0.7 R*C
所有也可以统一用开漏模式
===到这个理解,也就及格了



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-03 10:42:54
已绑定手机

46

主题

1694

回帖

2548

积分

金牌会员

积分
2548
发表于 2024-5-29 12:53:37 | 显示全部楼层
是不是与上电初始化进入IAP有关?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:215
  • 最近打卡:2025-05-03 00:37:12
已绑定手机

36

主题

561

回帖

1942

积分

荣誉版主

积分
1942
发表于 2024-5-29 13:47:05 | 显示全部楼层
班门弄个斧:您说的不稳定是哪个方面?初始化?主循环?按键扫描?状态机还是轮询?还是串口发送?
另外多考虑一个现场地线的问题,我们也经常碰到现场的故障在家里复现不了的情况,首先把程序的问题排除干净,然后考虑干扰,干扰可能是EMC或者其他。
C8051F040都碰到过程序跑飞的情况,分时轮询500ms的程序指示灯没反应,最后判断的是地线问题。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-5-29 14:12:53 | 显示全部楼层
一般这种问题大概率是电源问题!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-06-26 00:56:38

2

主题

5

回帖

50

积分

注册会员

积分
50
发表于 2024-5-29 14:14:18 | 显示全部楼层
就是一个最简单的矩阵扫描键盘,由原来的STC12C5608换成了STC8H1K28,其他所有的外围电路都没变,程序的书写也基本一致,个人认为地线干扰的问题可以排除,现象是今天开机扫描不到有效键值,反复重新上电都不行,明天正常了的话,反复重新上电都没问题,主控芯片能接收到发过来的键值,只是键值为无效键值0
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-06-26 00:56:38

2

主题

5

回帖

50

积分

注册会员

积分
50
发表于 2024-5-29 14:15:38 | 显示全部楼层
电子DI*** 发表于 2024-5-29 14:12
一般这种问题大概率是电源问题!

电源不稳定,还是供电不足?还是滤波不够干净彻底?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-5-29 14:21:03 | 显示全部楼层
lhf_*** 发表于 2024-5-29 14:14
就是一个最简单的矩阵扫描键盘,由原来的STC12C5608换成了STC8H1K28,其他所有的外围电路都没变,程序的书 ...

我记得指令的处理时间有差距,,,,这些应该考虑到了吧。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-06-26 00:56:38

2

主题

5

回帖

50

积分

注册会员

积分
50
发表于 2024-5-29 14:23:24 | 显示全部楼层
IO置位和读取输入状态之间有1ms的延时,时间应该足够了吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-30 10:59:33

25

主题

1154

回帖

2391

积分

超级版主

积分
2391
发表于 2024-5-29 14:25:07 | 显示全部楼层
可参考下面技术贴进行排查电路隐患:
【新提醒】完整的系统设计参考原理图@STC8H8K64U, @STC32G12K128 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区
  https://www.stcaimcu.com/forum.p ... 5025&extra=page%3D1

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:52
  • 最近打卡:2025-05-03 23:41:15

73

主题

5884

回帖

1万

积分

超级版主

积分
12085
发表于 2024-5-29 15:17:30 | 显示全部楼层
行列扫描按键不正常,都是扫描时序和IO设置的问题。
行列扫描按键,IO设置为准双向口,也可以打开内置的额外4K上拉电阻会更好。
由于STC8系列的速度更快,所以当IO改变之后,要加一点延时(相比STC12系列速度慢,不需要加延时),通常加3~5个NOP即可。
部分客户就是因为换了速度更快的MCU,没有处理好速度、时序问题,才会出现不稳定的问题。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-4 06:00 , Processed in 0.130755 second(s), 122 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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