CH395使用事项说明及注意点(持续更新)
CH395Q支持串口和SPI,CH395L支持串口、SPI及8位并口
手册及EVT例程:https://www.wch.cn/search?t=all&q=395
软件方面
1.使用SPI接口控制CH395,要注意命令码与命令码,命令码与数据,数据与数据这三个的时间间隔。(参考手册7.3章节时序参数)
2.395调用send函数主动往对端发数据时,要注意每次发包前判断发送缓冲区空闲,必须等到产生此中断后才能发下一包数据。
3.默认进入socket的断开中断或超时中断后,395会主动关闭该socket,需要在这两个中断中重新打开,如果是tcp客户端模式,还需调用connect函数后才能和对端服务器建立连接;如果是tcp服务器,还需调用listen函数后才能启动监听。
4.设置TCP MSS值必须在初始化395之前,最大为1460,最小为60。(默认为800)
5.设置功能参数必须在初始化395之前,参考手册5.55章节
6.SPI接口支持模式0和模式3,CH395会将每次片选拉低后收到的第一个字节当作命令码,后续字节当作数据。
7.使用串口时,需要先发同步码(0x57,0xab),之后发命令码,再之后是相关数据。注意,两字节的同步码之间以及同步码和命令码之间的时间间隔如果大于串口输入超时时间(约40ms),则395将丢弃同步码及命令包。
8.芯片上电依据SEL脚和TXD脚电平状态确定通讯接口,不可中途更改。
9.仅395L支持并口
10.CH395中断脚INT脚低电平有效,内置上拉,查询全局中断后CH395会将INT脚拉高并清除全局中断状态。
11.关于收发缓冲区的设置,参考手册的8.3.9章节描述
12.使用TcpServer单连接模式,当主动调用close函数关闭socket后调用open函数返回执行状态异常时,可以采用一直open直到执行返回success即成功打开
13.对端设备给CH395发一包数据,395会多报一次空中断,这是由于中断在程序中会不断的刷新,当spi接口去读的时候同时会刷新一次中断脚,但是中断码不会多报,正常现象
14.当有socket配置为IPRaw模式且选用Icmp协议时,所有的icmp包会被这个IPRawSocket接管。
15.如果用户代码中有跑操作系统,切记要将395网络部分的任务优先级调到最高,395在收发数据期间不可被打断,建议加上互斥变量来保证不会被打断。
16.编写代码前,可以先用0x06的check命令及读一个版本号测试一下主控和395间的通讯是否正常,之后再进行后续对395的操作。
17.CH395开启DHCP功能,默认主机名为:CH395。(0x49版本)
硬件方面
1.芯片1脚需接12~18K电阻到地。(以太网信号调节电阻,12K信号最优,18K功耗最小)
2.在INT脚或TXD脚可加2K~5KΩ的上拉电阻以维持较稳定的高电平状态,防止复位期间收到干扰导致误操作。
3.CH395是电流型的PHY,网络变压器靠CH395一侧的中心抽头必须接3.3V,另一侧的未使用的引脚应通过75Ω电阻对地接1000P/2KV电容。
4.差分线上需要接49.9Ω的上拉电阻,即阻抗匹配电阻。
5.差分线布线时,应尽量贴jin平行走线,在两侧提供地线或覆铜,减少干扰。
6.CH395内置协议栈,会有一定发热,为工业级标准芯片,在-40~85度范围内均正常。如果觉得芯片发热,可以将一脚电阻改为18K或另加散热措施。
7.芯片湿敏等级为MSL3级。CH395Q热阻为15‘C/W,CH395L热阻为13.5’C/W。