CH395Q中断信号问题,当TCP连接时,高电平才有效,与手册说明不一致

采用异步串口通信,中断引脚为

49 INT# 输出 中断请求输出,低电平有效,内置上拉电阻

 Socket 0 作为TCP服务器;


问题现象:

  1. 我实际测过信号,CH395Q初始化完成之后,MCU的中断引脚为低电平。当TCP建立连接收发包时,触发中断,MCU中断引脚变为高电平;

    === 请问为什么和芯片手册里,低电平有效不一致;

             我看代码案例也是中断低电平有效,为什么我这个板子,高电平有效;

    === 为什么CH395Q初始化完成之后,中断引脚为低电平 (CH395CMDInitCH395,抓过信号,与命令CMD0W_INIT_CH395有关,命令结束后,中断引脚为低电平了)

  2. 怎么清中断;

    === 我在TCP建立连接,进入中断函数;我再断开连接,函数还是在继续跑中断函数,也就是说,我断开连接后,MCU的中断引脚一直为高电平,处于中断状态;没有进行清中断操作;

    ===请问我是需要再执行CH395CMDInitCH395,才能清中断吗

问题现象:

  1. 1. 我实际测过信号,CH395Q初始化完成之后,MCU的中断引脚为低电平。当TCP建立连接收发包时,触发中断,MCU中断引脚变为高电平;

    === 请问为什么和芯片手册里,低电平有效不一致;

             我看代码案例也是中断低电平有效,为什么我这个板子,高电平有效;

    === 为什么CH395Q初始化完成之后,中断引脚为低电平 (CH395CMDInitCH395,抓过信号,与命令CMD0W_INIT_CH395有关,命令结束后,中断引脚为低电平了)


  2. 2. 怎么清除中断;

    === 我在TCP建立连接,进入中断函数;我再断开连接,函数还是在继续跑中断函数,也就是说,我断开连接后,MCU的中断引脚一直为高电平,处于中断状态;没有进行清中断操作;

    ===请问我是需要再执行CH395CMDInitCH395,才能清中断吗



1.CH395的中断脚是低电平有效。至于您说的初始化395后中断脚为低,是否是插着网线进行的初始化?如果是这样,推测是产生了phy_change中断导致INT脚拉低。

2.CH395是通过发送查询全局中断的命令进行清中断,手册中有描述。

3.可以用逻辑分析仪抓一下整个流程的spi时序及INT脚电平状态,分析一下有没有异常点,可以将抓的时序邮件发来看一下。

后续有问题可邮件联系一下(邮箱:lq@wch.cn)

image.png


1.至于您说的初始化395后中断脚为低,是否是插着网线进行的初始化?如果是这样,推测是产生了phy_change中断导致INT脚拉低。

=== 是插着网线进行初始化;

        PHY中断INT脚一直都是拉低的,和TCP连接时中断INT脚拉低有冲突,后续怎么处理;因为在客户使用时,都是插着网线对板子上电;


产生中断后通过读取全局中断正常清中断就可以。例程中是通过轮询判断中断脚电平状态来读全局中断值实现的,可以参考下。


只有登录才能回复,可以选择微信账号登录