CH395常见问题汇总及解答(持续更新)

您好,使用CH395Q EVT板测试时需要注意,如果接口使用SPI,要将板上Re1处短接,或者使用杜邦线将TXD和GND短接,切换到SPI模式,否则会出现测试命令返回FF的现象。

image.png


????您好,我已经将EVT板上面的Re1处用焊锡短接了,但是还是返回FF,另外我用网上另外一家做的CH395模块,还是一样的结果,请帮忙提供下其他解决思路。感谢,期待回复。

????如下是我的项目中CH395初始化代码,也请帮忙确认下是不是哪里配置有问题,感谢!

void?CH395_PORT_INIT(?void?)??
{
	//替换自己的端口初始化函数
	SPI_InitTypeDef??SPI_InitStructure;
	GPIO_InitTypeDef?GPIO_InitStructure;
	
	/*?初始化SPI接口?*/
	CH395_CONFIG_SPI_CLK();
	CH395_CONFIG_GPIO_CLK();

	/*?SCK引脚推挽输出功能?*/
	GPIO_InitStructure.GPIO_Pin?=?CH395_CLK_PIN;
	GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode?=??GPIO_Mode_AF;
	GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;
	GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_NOPULL;
	GPIO_Init(?CH395_CLK_PORT,?&GPIO_InitStructure?);
	GPIO_PinAFConfig(?CH395_CLK_PORT,?GPIO_PinSource5,?GPIO_AF_SPI1?);

	/*?MISO引脚浮空输入功能?*/
	GPIO_InitStructure.GPIO_Pin?=?CH395_MISO_PIN;
	GPIO_InitStructure.GPIO_Mode?=??GPIO_Mode_AF;
	GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;
	GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_UP;
	GPIO_Init(?CH395_MISO_PORT,?&GPIO_InitStructure?);
	GPIO_PinAFConfig(?CH395_MISO_PORT,?GPIO_PinSource6,?GPIO_AF_SPI1?);
	
	/*?MOSI引脚推挽输出功能?*/
	GPIO_InitStructure.GPIO_Pin?=?CH395_MOSI_PIN?;
	GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode?=??GPIO_Mode_AF;
	GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;
	GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_NOPULL;
	GPIO_Init(?CH395_MOSI_PORT,?&GPIO_InitStructure?);
	GPIO_PinAFConfig(?CH395_MOSI_PORT,?GPIO_PinSource7,?GPIO_AF_SPI1?);

	/*?CS引脚推挽输出功能,低电平有效?*/
	GPIO_InitStructure.GPIO_Pin?=?CH395_CS_PIN;
	GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;	
	GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_NOPULL;		
	GPIO_Init(?CH395_CS_PORT,?&GPIO_InitStructure?);
	
	/*?RST引脚推挽输出功能,低电平有效?*/
	GPIO_InitStructure.GPIO_Pin?=?CH395_RST_PIN;
	GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_OType?=?GPIO_OType_OD;
	GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_NOPULL;?
	GPIO_Init(?CH395_RST_PORT,?&GPIO_InitStructure?);

	/*?中断引脚初始化,上拉输入功能,低电平有效?*/
	GPIO_InitStructure.GPIO_Pin?=?CH395_INT_PIN;
	GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN;
	GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_UP;??	
	GPIO_Init(?CH395_INT_PORT,?&GPIO_InitStructure?);

	/*?CS?引脚置为高?*/
	CH395_SPI_CS_HIGH();
	
	/*?SPI?configuration?*/?
	SPI_InitStructure.SPI_Direction?=?SPI_Direction_2Lines_FullDuplex;?/*?SPI配置成两线的单向全双工通信?*/
	SPI_InitStructure.SPI_Mode?=?SPI_Mode_Master;	?				???/*?SPI主机?*/
	SPI_InitStructure.SPI_DataSize?=?SPI_DataSize_8b;				???/*?SPI8位数据格式传输?*/
	SPI_InitStructure.SPI_CPOL?=?SPI_CPOL_Low;	??					???/*?空闲时时钟为低电平??*/
	SPI_InitStructure.SPI_CPHA?=?SPI_CPHA_1Edge;					???/*?数据在时钟第二个边沿时捕获,时钟信号偶数沿采样?*/
	SPI_InitStructure.SPI_NSS?=?SPI_NSS_Soft;		?				???/*?内部NSS信号由SSI控制?*/
	SPI_InitStructure.SPI_BaudRatePrescaler?=?SPI_BaudRatePrescaler_4;?/*?波特率预分频数为4?*/
	SPI_InitStructure.SPI_FirstBit?=?SPI_FirstBit_MSB;		???		???/*?传输时高位在前?*/
	SPI_InitStructure.SPI_CRCPolynomial?=?7;			??			????

	SPI_Init(?USE_SPI,?&SPI_InitStructure?);

	/*?Enable?SPI??*/
	SPI_Cmd(?USE_SPI,?ENABLE?);
}



ch395初始化没有设置目标ip和端口号或者ip和端口号与pc端不一致,ch395接收不到UDP包,有人遇到过吗?我是想接收到第一包数后再根据源ip和端口重新设置ch395的目标ip和端口。


请问CH395Q可以完全兼容替换CH392吗?


@安。蓝 您好,CH395Q和CH392不能完全兼容替换,从硬件角度看,CH395是LQFP封装,CH392是QFN封装,两者在封装上不同,对于电源要求也不同。


@-- 您好,具体需要根据您的应用需求决定,如果是UDP单播(客户端)模式,一般情况下目标IP和端口号都是确定的,此时可与对端设备点对点通信;如果是UDP广播(服务器)模式,可与对端设备进行点对多通信,此时CH395收到的UDP数据会附带相应的对端设备的源IP和端口信息,可根据这些信息配置相应的目的IP和端口。

image.png


@. 根据图中SPI相关配置,暂未发现问题。针对您实际中命令返回FF,首先确保芯片工作正常,通过评估板上的UART接口,外接USB转串口工具,通过CH395 EVT中DEBUG395.EXE工具进行测试,看看此时有无数据返回,以及网络工作是否正常。如果UART接口正常,可以尝试将MCU的SPI主频降低,重新操作CH395;注意CS片选脚不要在命令收发过程中拉高;通过逻辑分析仪或示波器抓取SPI总线数据,看看SPI时序是否满足CH395要求。


您好,用DEBUGCH395.EXE调试CH395 EVT,需要切换成串口模式吗?还是SPI模式也可以直接调试?


您好,目前DEBUG395.EXE软件只支持串口调试,暂不支持SPI模式


请问392 395内部的固件支持升级版本吗?


您好,目前暂不支持用户自行升级。若您在使用中遇到问题,可联系wtf@wch.cn或025-52638370咨询


如果需要升级的话,是返回原厂升级,还是你们能够远程升级?


您好,若使用中遇到问题,可联系wtf@wch.cn或者025-52638370电话咨询。


你好,请问,两个CH395可以直接通过网线连接吗,中间不经过路由器或交换器,

我这里尝试两个CH395Q直接通过网线连接,然后不断检测CMD_GET_PHY_STATUS寄存器,当其中一个为连接状态时,另一个便从连接状态变为断开状态,就是两个CH395Q无法同时为连接状态


您好,两个CH395可以通过网线直连,本质上还是两个PHY之间的连接。可以这样进行测试,一个CH395跑tcp server,另一个跑tcp client,先打开服务器监听,看看此时客户端是否与服务器PHY建立连接,后续是否建立TCP连接,查询当前两个CH395的PHY状态


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