CH9121:
一、配置软件搜索不到设备
1.检查网线连接是否正常,网口的连接指示灯是否亮着,若不亮,则换一根网线或是检查
下电脑端网口有没有问题。
2.将9121恢复出厂设置后再试,具体做法:将9121的RESET脚接地,然后上电维持3s。
3.配置软件使用了电脑端口50000,检查电脑50000端口是否被占用(目前已知爱奇艺客户端会占用该端口)
4.如果9121配置成静态IP接路由器或交换机,则检查下局域网内是否存在ip地址冲突
二、9121配置成TCP Client/Server,无法和电脑建立TCP连接
1.连接之前先将电脑的网络防火墙关闭。
2.先ping一下9121,若ping不通,则先检查网口的指示灯是否亮着,若不亮则换一根网线再试;若网口灯亮,则可能9121模块配置失败,恢复出厂设置后,再重配一次。
3.TCP CLIENT 模式下,若能ping通,可能电脑的端口被占用,而有的网络调试软件不会提示,换一下电脑端的tcp端口再试一下。
4.对于多网卡的电脑,在设置电脑端网络调试软件时要注意选择正确的网卡,最好是打开软件前,将其他 网卡都禁用。
三、9121透传无法接收数据
1.检查串口波特率设置,是否与实际发送的波特率相同
2.可以将串口的TX与RX短接,测试自发自收是否正常
四、9121的外围电路设计注意
1.9121的PHY是电压型,网络变压器的中心抽头要接3.3V
2.RSTI引脚是外部复位脚,低电平有效,可以接电容到地;RESET脚是恢复出厂设置
9121上电检测3S内恒为低电平有效,可以接单片机IO来控制,两个脚不要混淆。
3.9121电源引脚的退耦电容不可少,而且要靠芯片周围摆放
4.设计电源的时候,如果电源转换压差比较大,建议使用DC-DC的电源方案,不建议使用LDO。
五、9121透传模块使用问题
1.模块供电可以选择5V或3.3V,通过模块板上靠近网口的J1口跳针来选择,J1口短接,则模块3.3v供电,否则模块5v供电
CH395
一、CH395外围电路设计注意
1.CH395的PHY是电压型,网络变压器的中心抽头要接3.3V
2.CH395的电源引脚退耦电容不可少,而且要靠芯片周围摆放
3.CH395支持串口,SPI和并口(仅CH395L支持)接口,在芯片上电时,395根据SEL和TXD引脚的电平来 决定采用哪种方式
4.为了在电源上电期间有效复位并减少外部干扰,可以在RSTI引脚与地之间接一个0.1UF的电容。
5.具体接法可以上沁恒官网(www.wch.cn)上搜索“CH395EVT”
二、395初始化失败
1.首先检查“check_exist”命令,正常情况下395会将该命令的输入值按位取反后输出,
若该命令不正常,则说明395的通讯接口有问题,请注意接口时序,检查CH395接口选择模式配置是否正确,即检查TXD,SEL电平状态是否正确。。
2.395初始化参数设置好后,先延时20ms左右,再执行初始化命令.
3.注意395的网络参数的合法性,设置不规范的ip地址可能会导致395网络出错
三、395与电脑无法建立TCP连接
1. 连接之前先将电脑的网络防火墙关闭。
2.对于多网卡的电脑,在设置电脑端网络调试软件时要注意选择正确的网卡,最好是打开软件前,将其他网卡都禁用。
3.先ping一下395,若ping不通,则先检查网口的指示灯是否亮着,若不亮则换一根网线再试;若网口灯 亮,则可能395初始化没有正确完成
4.检查395初始化配置的信息是否正确,目的ip与端口是否与电脑端设置相同`,TCP连接要注意ip地址处 于同一网段,如果是在路由器局域网环境下,还要考虑395ip地址避免冲突。
5.TCP正常连接时,395的INT引脚会给出中断低电平信号,可以通过读取命令来获取中断状态
6.若出现连接断开后不能再次连上的问题,则可能是因为395在检测到连接断开后自动关闭了socket,可 以通过在socket断开与超时中断里重新打开socket。
7.初始化socket之前没有将socket配置信息表清空
四、395数据接受与发送问题
1.若395接收到数据,会产生数据接收中断信号,检测395的INT引脚是否有低电平产生,注意如果使用单片机外部中断,则触发位要设置为低电平触发。若有中断信号,则读取中断状态,对照头文件里的定义,获取中断含义
2.检查395接收中断的处理,正常流程是:获取中断、读取数据长度,读取数据内容。
3.UDP server 模式下的数据收发与其他模式不一样:
数据接收时,395会在数据包前加上8个字节的信息,分别是数据包长度,源端口,源ip。在接收中断处理任务里,需要将这些信息分离并保存。
数据发送时,395使用395UDPSendTo()函数,函数参数需要使用上面的信息
4.与395发送相关的中断有两个,分别是发送完成中断与发送缓冲区空闲中断;单片机向395发送缓冲区写一包数据,395会将数据复制到MAC缓冲区,复制完毕后会产生发送缓冲区空闲中断;CH395可能会将数据分装成若干包数据包,每发送一包数据包,395都会产生一次发送完成中断;因此在实际发送时,必须要等到发送缓冲区空闲中断产生后,才能向395缓冲区填写下一次数据
5.395在数据收发过程中出现数据丢包现象:
(1)395在收发数据的过程中不能被其他进程打断,如果395在数据收发中被其他任务打断,则可能会导致数据丢包
(2)检查下定义接收缓冲区大小,读取接收长度,看是否超过了接收缓冲区。接收缓冲区在定义的时候至少要大于定义的TCP MSS的值。
五、芯片发热。
由于CH395内部集成MAC和PHY,发热量稍大,但不会影响芯片稳定性。可通过以下方式改进:
(1)芯片RSETE 脚参考电阻18K。
(2)改善电源,如使用DC电源代替LDO,减小部分功耗。
(3)启用CH395低能耗模式。
六、编程注意事项。
(1)、芯片内置上电复位电路,主程序开始先延时200ms时间,留给CH395足够的上电复位时间,防止单片机上程序开始运行而CH395仍处于复位状态。
(2)、芯片初始化之后,建议先做测试命令,确保基本通信正常后再进行下面的操作。
(3)、假如程序中有设置MAC地址操作,需要延时200ms左右时间。
(4)、批量发送数据时,每次发送数据前要确保前一次数据已经发送完成(可通过查询SINT_STAT_SENBUF_FREE中断来实现)。
CH563
一、CH563外围电路设计注意
1.CH563的PHY是电压型,网络变压器的中心抽头要接3.3V
2.CH563的电源引脚退耦电容不可少,而且要靠芯片周围摆放
3.具体接法可以上沁恒官网(www.wch.cn)上搜索“CH563PCB”
二、CH563初始化失败
1.初始化函数需要输入四个参数:ip,网关,子网掩码,MAC. 检查这些参数的正确性
2.初始化函数会返回状态码,对照头文件CH563NET.H,看一下是什么错误
3CH563初始化后,需要在定时器中断里开启以太网中断服务函数与定时器中断服务函数
三、CH563无法与电脑建立TCP连接
1. 连接之前先将电脑的网络防火墙关闭。
2.对于多网卡的电脑,在设置电脑端网络调试软件时要注意选择正确的网卡,最好是打开软件前,将其他网卡都禁用。
3.先ping一下563,若ping不通,则先检查网口的指示灯是否亮着,若不亮则换一根网线再试;若网口灯亮,则可能563初始化没有正确完成
4.若能ping通,可能电脑的端口被占用,而有的网络调试软件不会提示,换一下电脑端的tcp端口再试一下。
5.检查563配置的信息是否正确,目的ip与端口是否与电脑端设置相同`,TCP连接要注意ip地址处于同一网段,如果是在路由器局域网环境下,还要考虑395ip地址避免冲突。
6.若出现连接断开后不能再次连上的问题,则可能是因为563在检测到连接断开后自动关闭了socket,需要在TCP连接断开与超时中断里重新打开socket。
四、563数据收发问题
1.CH563NET_MainTask()函数是库主任务函数,需要在主程序的大循环里面不停调用
如果563一次中断处理时间过长,导致主任务函数在规定时间内没有运行,则可能会到时563网络异常,因此在写563的中断处理过程应该远短越好,遇到数据量大的任务,可以通过增加循环次数来解决
2.563在TCP连接与数据接收都会产生中断信号,通过调用函数CH563NET_QueryGlobalInt()来查询,数据接收会依次产生全局中断与socket中断,按照中断状态来处理就可以了。
3.563在数据收发过程中出现数据丢包现象:
·检查下定义接收缓冲区大小,读取接收长度,看是否超过了接收缓冲区。接收缓冲
在定义的时候至少要大于定义的TCP MSS的值。