CH423S 应用有几个问题希望大家帮开解,谢谢!

各位大师, CH423S 应用有几个问题希望大家帮开解,谢谢!

1: 在IIC命令传输之后全部IO会复位低电平一个620us的周期再执行IIC指令,这样在精密控的输出会出现误操作,不知是我的操作问题还是IC特性. 

2: 我在设计时确认IC在3.3V是可以开漏输出即外部电压不会影响,可我发CH423_OC_L_CMD指令后输出IO把外部5V的控制电压压低到3.3V电压,这和开漏输出不符.

3: 如果控制单个IO能不能发单独指令不影响其他IO呢?现在是只要发CH423_WriteByte(CH423_OC_L_CMD|BIT_OC0_L_DAT)指令其他IO会复位并只执行当前指令,那控制就会很麻烦了.

558185888.jpg以上是0.1s循环发控制指令后IO复位的周期图.


更新一下,第一点是IC出问题了,更换另一个 IC后没有复位低电平脉冲. 但还没有解决2-3点.


您好

CH423的IO默认是高电平。

CH423的OC脚是可以设置为开漏输出的,IO只有推挽输出,以及输入。

CH423不支持单独的控制,如果您需要针对某一个IO或者OC输出状态改变的话,您只需要整体控制,然后后面的8位数据进行修改即可


@TECH51,你好,OC的开漏输出貌似没有设置对,因为会影响外部5V电平拉低到3.3V.

不支持单独控制的话对于复杂的控制很麻烦也,我应用在一个工控板上,每次输出还必须知道8位IO的具体值才行,不小心就会让原有的控制复位,而OC没有发现有预读取功能,那样用起来很受伤也.


您好,针对您的这个问题,您可以是这个方法,就是每次设置完,把设置的数据存入MCU的EEPROM或者flash,然后下次修改前,读出,并修改,即可。


@TECH51,你好, 现在才发现只要使用   CH423_WriteByte(0x4800|0x02); 系统指令后,发送任意指令都是100HZ左右的不受控制波形.

就是如图这样,发送类似CH423_WriteByte(0x6400|0x02);这样的控制指令IO已经不受控制.

http://www.wch.cn/uploads/image/20211124/1637725925747928.jpg 


如果不发送 CH423_WriteByte(0x4800|0x02); 系统指令 ,  IO不能设置为开漏但CH423_WriteByte(0x6400|0x02);这样的控制正常.


您好,CH423发送的数据,您可以看一下您的底层的两线串行的发送,有没有按照我们例程来,做命令的右移操作。


是按照官方例程只修改了适配STM32的GPIO驱动,其他代码没有修改,只要不发送开漏设置,用默认推挽输出控制室正常的.


@TECH51,你好, 抱歉是我没有看懂规格书的指令.

设置开漏输出的指令是:  CH423_WriteByte(0x4800|0x10); 而我一直看例程 "#define BIT_DEC_L         0x02       // 控制开漏输出引脚低8位的片选译码" 这段指令误以为 CH423_WriteByte(0x4800|0x02); 和CH423_WriteByte(0x4800|0x04);  是设置高低8位的开漏输出,这指令是数码管COM端扫描用的才会自动输出100 HZ的短脉冲 .

现在开漏输出终于正常了.一下子钻牛角尖很恐怖,思维一直绕在里端出不来.


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