一、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的值。