CH446复位问题
我要用单片机控制CH446切换。产品中一半左右出现上电后复位不正常的现象,经测试,CH446的引脚电平都在零点几伏左右,而正常复位后应该是5V的。
单片机开机后是先延时了2秒钟,才发送的复位信号,单片机是3.5V复位,CH446是4V复位,测试了一下CH446电源部分电压从0上升到5V大概才需要40ms,我延时了2秒才发送复位信号的,应该可以正常复位了吧。
但怎么还有很多产品不能够正常复位呢?
这人很懒,什么都没留下
你给CH446复位是通过单片机I/O口复位的吗?CH446芯片工作电压是多少?
E-MAIL:fqb@wch.cn TEL:025-52638375
是通过单片机发送的复位信号。CH446和单片机都是5V供电
这人很懒,什么都没留下
试了一下,连续送3次(复位、切换)才能够正常切换过来。是时序的问题吗?
这人很懒,什么都没留下
这个更像是延时的时间不足导致的。
E-MAIL:fqb@wch.cn TEL:025-52638375
-----------------下面的代码,是技术支持给的。 ----------------------------------
#include "reg52.h"
#include "intrins.h"

sbit CH446_DAT =P1^0;
sbit CH446_CK =P1^1;
sbit CH446_STB =P1^2;
sbit CH446_RST =P1^3;

typedef unsigned char UINT8;
typedef unsigned short UINT16;

#define NOP { _nop_();_nop_();}

void Control_Switch_State( UINT8 Address,UINT8 State )
{
UINT8 ByteCnt;

CH446_STB =0;
CH446_DAT = 0;
NOP;
NOP;
for( ByteCnt=0; ByteCnt<7; ByteCnt++ )
{
CH446_CK =0;
NOP;
if( Address & 0x80 )
{
CH446_DAT = 1;
}
else
{
CH446_DAT = 0;
}
CH446_CK =1;
NOP;
NOP;
NOP;
NOP;
NOP;
Address <<=1;
}
CH446_CK =0;
if( State == 1 )
{
CH446_DAT =1;
}
else
{
CH446_DAT =0;
}
NOP;
NOP;
NOP;
NOP;
CH446_STB =1;
NOP;
NOP;
CH446_STB =0;
NOP;
NOP;
}

void main( void )
{
CH446_RST =1;
CH446_RST =1;
CH446_RST =1;
NOP;
NOP;
NOP;
NOP;
NOP;
NOP;
CH446_RST =0;
CH446_RST =0;

Control_Switch_State( 0x00,1);/* Y0,X0导通 */
Control_Switch_State( 0x22,1);/* Y1,X1导通 */
while(1);

}
//-----------------------------------------------------------------------------
我用的是宏晶的STC单片机,30M晶振,代码与上面一样,同时由于STC单片机比51快,将延时函数:
#define NOP { _nop_();_nop_();}
改为了
#define NOP { _nop_();_nop_();_nop_();_nop_();_nop_();}

但是,仍然出现上面的情况,很多情况下,连续发三次(复位、切换)才可正常,有时发1次能正常。
这人很懒,什么都没留下
在复位之后加50MS的延时在切换。
CH446_RST =0;
CH446_RST =0;
DELAYMS(50);
Control_Switch_State( 0x00,1);/* Y0,X0导通 */
Control_Switch_State( 0x22,1);/* Y1,X1导通 */
E-MAIL:fqb@wch.cn TEL:025-52638375
加了50m延时,问题依旧。没效果。
这人很懒,什么都没留下
另外:
CH446手册上说:--------------------------------------------------------------------------
由于模拟电路与数字电路共用VDD,为减少干扰,VDD和VEE引脚必须外接退耦电容,并且建议
将数字输入信号的边沿适当放缓,降低传输频率。另外,对于强干扰的应用环境,单片机可以每隔数
秒定期对CH446进行刷新,确保各个模拟开关处于正确的开关状态。
----------------------------------------------------------------------------------------
那就是说:我用CH446切换后,还要定期刷新啊,那岂不是太不可靠了。
这人很懒,什么都没留下

我也是按照这个代码移植到用pic驱动,我想问的是不用初始化ch446的吗?直接这样我是发现没任何反应的,然后整个社区我都翻了一遍都没有例程……不知道怎么用的

这人很懒,什么都没留下

楼上的朋友,不知道您芯片的电路连接是否有问题,可以直接来电确认一下025-52632854

联系方式:025-52632854 微信:18951773082 邮箱:wsh@wch.cn 汪工 CH37X、CH4XX系列芯片技术支持
只有登录才能回复,可以选择微信账号登录