找回密码
 立即注册
查看: 36|回复: 7

stc32g12k128P6口输入不正常

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-10-14 10:40:11
已绑定手机

1

主题

1

回帖

9

积分

新手上路

积分
9
发表于 前天 10:40 | 显示全部楼层 |阅读模式
电路很简单,后面附图,一个传感器输入,信号4.7k拉高,然后两个10k电阻分压后进IO口,高电压时,输入是4.8v左右,低电压时,感应器输入是0.3v以下,但是IO口这里有2.8V左右,

程序如下:

    EAXFR = 1; //À©Õ¹¼Ä´æÆ÷(XFR)·ÃÎÊʹÄÜ

    RSTFLAG |= 0x04;   //ÉèÖÃÓ²¼þ¸´Î»ºóÐèÒª¼ì²âP3.2µÄ״̬ѡÔñÔËÐÐÇøÓò£¬·ñÔòÓ²¼þ¸´Î»ºó½øÈëUSBÏÂÔØÄ£Ê½

    P0M1 = 0x00;   P0M0 = 0x1f;   //ÉèÖÃΪ׼˫Ïò¿Ú
    P1M1 = 0x40;   P1M0 = 0x00;   //ÉèÖÃΪ׼˫Ïò¿Ú
    P2M1 = 0x00;   P2M0 = 0xff;   //ÉèÖÃΪ׼˫Ïò¿Ú
    P3M1 = 0x0c;   P3M0 = 0x00;   //ÉèÖÃΪ׼˫Ïò¿Ú
    P4M1 = 0xff;   P4M0 = 0x00;   //ÉèÖÃΪ׼˫Ïò¿Ú
    P5M1 = 0x00;   P5M0 = 0x00;   //ÉèÖÃΪ׼˫Ïò¿Ú
    P6M1 = 0xff;   P6M0 = 0x00;   //ÉèÖÃΪ׼˫Ïò¿Ú
    P7M1 = 0x00;   P7M0 = 0xff;   //ÉèÖÃΪ׼˫Ïò¿Ú

原理图1

原理图1

原理图2

原理图2

原理图3

原理图3

原理图4

原理图4

原理图5

原理图5


回复

使用道具 举报 送花

3

主题

1880

回帖

608

积分

等待验证会员

积分
608
发表于 前天 10:43 | 显示全部楼层
您提出的问题是关于 STC32G12K128 单片机 P6 口输入异常 的情况,结合您提供的电路描述、电压测量结果以及部分配置代码,现从硬件设计、电气特性、寄存器配置等方面进行专业分析,并提出改进建议。

一、问题描述总结
单片机型号:STC32G12K128
问题端口:P6 口
电路结构:
传感器输出电压范围:0~48V(高电平约 48V,低电平  建议:若用于输入检测,建议配置为 开漏输入(Open-drain Input)或高阻输入(High-Z)模式,以避免内部上拉影响。

4. 外部干扰或漏电流
若电路中存在漏电流路径,或 PCB 布线不合理(如高压与 IO 口距离过近)
可能造成 IO 口在低电平时仍有电压残留

三、改进建议

1. 调整分压电阻比例

目标:将传感器输入的 48V 信号分压至单片机可接受范围内(如 0~3.3V 或 0~5V)

推荐分压比:
R1(上拉):47kΩ
R2(下拉):3.3kΩ(或 4.7kΩ)
输出电压:Vout = Vin × R2 / (R1 + R2) ≈ 48 × 3.3 / (47 + 3.3) ≈ 3.1V
这样即使输入为 48V,IO 口电压也不会超过 3.3V,符合安全输入范围。

2. 增加钳位保护电路

建议在 IO 口前增加 TVS 管或肖特基二极管 至 VDD 和 GND,防止过压损坏。
使用双向 TVS(如 SMBJ5.0CA)连接在 IO 与 GND/VDD 之间
可有效吸收瞬态高压,保护 IO 口

3. 修改 IO 口配置

将 P6 口配置为 高阻输入(High-Z)或开漏输入 模式:
  1. c
  2. P6M1 = 0x00;   // 高阻输入
  3. P6M0 = 0x00;
复制代码
注意:不同型号的寄存器配置方式略有不同,请参考数据手册确认具体配置方式。

4. 增加输入缓冲/电平转换芯片

如使用 MOSFET 输入缓冲器 或 专用电平转换芯片(如 TXB0108),可有效隔离高压输入与单片机之间的直接连接。

四、建议电路结构(改进后)
  1. 传感器输出(0~48V)
  2.      |
  3.      +----[R1 = 47kΩ]----+----> IO 口(P6.x)
  4.                           |
  5.                      [R2 = 3.3kΩ]
  6.                           |
  7.                          GND
复制代码
可选:在 IO 口前加 TVS 管至 VDD 和 GND,形成双向保护。

五、结论

当前 P6 口输入电压异常(低电平时仍有 2.8V)的主要原因包括:

1. 分压电路设计不合理,导致 IO 口承受过高电压;
2. 单片机 IO 口耐压限制未满足;
3. IO 口配置为“准双向口”,内部上拉可能影响输入判断;
4. 外部干扰或漏电流可能造成电压残留。

建议立即调整分压比例,增加保护电路,并优化 IO 口配置,以确保系统稳定运行。

如需进一步分析,建议提供完整的电路图及单片机供电电压信息(如 VDD 为 3.3V 或 5V),以便更精确判断。

如需,我可以为您提供完整的电路图建议或代码配置示例。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-10-14 10:40:11
已绑定手机

1

主题

1

回帖

9

积分

新手上路

积分
9
发表于 前天 11:56 | 显示全部楼层
国芯人*** 发表于 2025-10-14 10:43
您提出的问题是关于 STC32G12K128 单片机 P6 口输入异常 的情况,结合您提供的电路描述、电压测量结果以及 ...

我没有设置P6IE  是不是这个原因,电压是12v的,高输入时9.4伏,低输入时0V
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:683
  • 最近打卡:2025-10-15 08:16:23
已绑定手机

54

主题

1917

回帖

4071

积分

论坛元老

积分
4071
发表于 前天 14:26 | 显示全部楼层
你可以把输入口串一个二极管,IO端接正极,信号端接负极,当外部信号为高时,电流不会倒灌入IO
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:683
  • 最近打卡:2025-10-15 08:16:23
已绑定手机

54

主题

1917

回帖

4071

积分

论坛元老

积分
4071
发表于 前天 14:30 | 显示全部楼层
如图这样
截图202510141430161171.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:683
  • 最近打卡:2025-10-15 08:16:23
已绑定手机

54

主题

1917

回帖

4071

积分

论坛元老

积分
4071
发表于 前天 14:32 | 显示全部楼层
当外部信号和mcu的电源不同共地时,可以这样试试
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:584
  • 最近打卡:2025-10-15 08:26:15
已绑定手机

86

主题

6274

回帖

1万

积分

超级版主

积分
11734
发表于 昨天 10:07 | 显示全部楼层

注意到IO用4.7K电阻上拉到12V了
IO禁止用电阻上拉到单片机VCC以上,否则可能造成IO损坏
注意单片机所有脚的电压都不能超过VCC到GND范围
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-10-15 11:03:15

787

主题

1万

回帖

1万

积分

管理员

积分
19770
发表于 昨天 11:03 | 显示全部楼层

楼主描述:
【 一个传感器输入,信号4.7k拉高,
     然后两个10k电阻分压后进I/O口,
     高电压时,输入是4.8v左右,
    低电压时,感应器输入是0.3v以下,
    但是I/O口这里有2.8V左右



我老了,看不懂,
1,如只是 1路 电压输入,分压到 MCU-VCC 以下,进 MCU的ADC 测量
2,如只是 1路 电压输入,分压到 MCU-VCC 以下,进 MCU的比较器跟1.18V比较


回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-10-16 03:41 , Processed in 0.127066 second(s), 85 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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