CH395

问题 1CH395 初始化失败。
解答:

1、首先检查“check_exist”命令,正常情况下 CH395 会将该命令的输入值按位取
反后输出,若该命令不正常,则说明 CH395 的通讯接口有问题。首先检查
CH395 接口选择模式配置是否正确,即检查 TXD, SEL 电平状态是否正确;
其次检查通讯时序问题。


2、 检查通讯时序, SPI 接口注意:每次发送命令之前,片选 CS 引脚必须先拉高
再拉低,产生下降沿;其次输入命令码与后面的参数之间,至少要间隔 2us。
3、 CH395 初始化参数设置好后,先延时 20ms 左右,再执行初始化命令。
4、注意 CH395 的网络参数的合法性,设置不规范的 ip 地址可能会导致 CH395
网络出错。

问题 2CH395 初始化之后,插网线网口灯不亮(CH395 硬件设计注意事项)。
解答:

1、 首先检查网络初始化命令是否成功,若不成功则查看问题 1。
2、 芯片双路独立供电, 3.3V 和 1.8V,芯片的每个电源引脚旁边都需要接对地的
退耦电容(104)。电源的纹波需要稳定在 50m V 以内。
3、芯片网络差分信号引脚 TXN , TXP, RXN, RXP,需要接 49.9Ω的上拉电
阻。
4、芯片外接网络变压器,变压器的中心抽头需要接 3.3V。
5、检查网线是否有问题,换根网线重新尝试。

问题 3CH395 与电脑无法建立 TCP 连接。
解答:

1、检查电脑防火墙是否处于关闭状态,若没有关闭则关闭它。
2、检查网口灯是否亮闪,如果不亮查看问题 2.
3、使用电脑 pingCH395,如果 ping 不通,则检查 CH395 初始化的 IP 参数是否正
确, 可以使用命令读取 CH395 的 IP 信息对比。
4、 如果是在局域网内,则需要检查 CH395 是否存在 IP 冲突。
5、对于多网卡的电脑,在设置电脑端网络调试软件时要注意选择正确的网卡,最
好是打开软件前,将其他网卡都禁用。
6、检查 TCP 双方端口是否正确无误。
7、 TCP 正常连接成功时, CH395 的 INT 引脚会给出中断低电平信号,可以通过
读取命令来获取中断状态,查看是否有 TCP 连接成功中断。
8、若出现连接断开后不能再次连上的问题,则可能是因为 395 在检测到连接断开
后自动关闭了 socket,可以通过在 socket 断开与超时中断里重新打开 socket,
重新开启连接。


问题 4CH395 无法收发网络数据。
解答:

1、 TCP 模式下先检查 TCP 连接是否成功,若不成功,查看问题 3。
2、 若 CH395 接收到网络数据,会产生数据接收中断信号,检测 CH395 的 INT 引
脚是否有低电平产生,注意如果使用单片机外部中断,则触发位要设置为低电
平触发,不要使用边沿触发。若有中断信号,则读取中断状态,对照头文件里
的定义,获取中断含义。检查 CH395 接收中断的处理,正常流程是:获取中断、
读取数据长度,读取数据内容。
3、 UDP server 模式下的数据收发与其他模式不一样:
数据接收时, CH395 会在数据包前加上 8 个字节的信息,分别是数据包长度,
源端口,源 IP。在接收中断处理任务里,需要将这些信息分离并保存。
数据发送时, CH395 使用 395UDPSendTo()函数,函数参数需要使用上面的
信息。
4、 CH395 发送相关的中断有两个,分别是发送完成中断与发送缓冲区空闲中断;
单片机向 CH395 发送缓冲区写一包数据, CH395 会将数据复制到 MAC 缓冲区,

复制完毕后会产生发送缓冲区空闲中断; CH395 可能会将数据分装成若干包数
据包,每发送一包数据包, CH395 都会产生一次发送完成中断;因此在实际发
送时,必须要等到发送缓冲区空闲中断产生后,才能向 395 缓冲区填写下一次
数据。

问题 5CH395 以太网数据丢包。
解答: 1、 CH395 在收发数据的过程中不能被其他进程打断,如果 CH395 在数据收发中
被其他任务打断,则可能会导致数据丢包。
2、检查下定义接收缓冲区大小,读取接收长度,看是否超过了接收缓冲区。接收
缓冲区在定义的时候至少要大于定义的 TCP MSS 的值。
3、 UDP 模式下存在丢包的可能性,这是协议本身就存在的缺陷。

问题 6CH395 芯片发热,温度高。

由于Ch395内部集成了MAC和PHY,发热量稍大,大概会比室温高25-40°C,但是不会影响芯片的稳定性,

可以通过一下方式来改进温度:

1、 RSETE 引脚下拉电阻改为 18K。
2、 改善电源,如使用 DC 电源代替 LDO,减小部分功耗。
3、 启用 CH395 低能耗模式,降低 CH395 一半主频,但会导致 CH395 速度降低
一半。


问题 7CH395 编程注意事项。
解答:

1、 芯片内置上电复位电路,主程序开始先延时 200ms 时间,留给 CH395 足够的
上电复位时间,防止单片机上程序开始运行而 CH395 仍处于复位状态。
2、芯片内置上电复位电路芯片初始化之后,建议先做测试命令,确保基本通信正
常后再进行下面的操作。
3、假如程序中有设置 MAC 地址操作, 设置完成后需要延时 200ms 左右时间。
4、批量发送数据时,每次发送数据前要确保前一次数据已经发送完成(可通过查
询 SINT_STAT_SENBUF_FREE 中断来判断)。

CH392

问题 1CH392 初始化失败。
解答:

1、首先检查“check_exist”命令,正常情况下 CH392 会将该命令的输入值按位取
反后输出,若该命令不正常,则说明 CH392 的通讯接口有问题。首先检查
CH325 接口选择模式配置是否正确,即检查 TXD, SEL 电平状态是否正确;
其次检查通讯时序问题。
2、检查通讯时序, SPI 接口注意:每次发送命令之前,片选 CS 引脚必须先拉高
再拉低,产生下降沿;其次输入命令码与后面的参数之间,至少要间隔 2u S
3、 CH392 初始化参数设置好后,先延时 20ms 左右,再执行初始化命令。
4、注意 CH392 的网络参数的合法性,设置不规范的 ip 地址可能会导致 CH392
网络出错。


问题 2CH392 初始化之后,插网线网口灯不亮(CH392 硬件设计注意事项)。
解答:

1、首先检查网络初始化命令是否成功,若不成功则查看问题 1。

2、芯片 3.3V 供电,电源的纹波需要稳定在 50m V 以内。
3、芯片网络差分信号引脚 TXN , TXP, RXN, RXP, 不需要接 49.9Ω的上拉
电阻,该电阻在芯片内部已经内置。
4、芯片外接网络变压器,变压器的中心抽头需要接 3.3V。
5、检查网线是否有问题,换根网线重新尝试。
6、芯片外部 32M 晶振, 无需接负载电容,该电容芯片内部已经内置。

问题 3CH392 与电脑无法建立 TCP 连接。
解答:

1、检查电脑防火墙是否处于关闭状态,若没有关闭则关闭它。
2、检查网口灯是否亮闪,如果不亮查看问题 2.
3、使用电脑 ping CH392,如果 ping 不通,则检查 CH392 初始化的 IP 参数是否
正确,可以使用命令读取 CH392 的 IP 信息对比。
4、如果是在局域网内,则需要检查 CH392 是否存在 IP 冲突。
5、对于多网卡的电脑,在设置电脑端网络调试软件时要注意选择正确的网卡,最
好是打开软件前,将其他网卡都禁用。
6、检查 TCP 双方端口是否正确无误。
7、 TCP 正常连接成功时, CH392 的 INT 引脚会给出中断低电平信号,可以通过
读取命令来获取中断状态,查看是否有 TCP 连接成功中断。
8、若出现连接断开后不能再次连上的问题,则可能是因为 CH392 在检测到连接
断开后自动关闭了 socket,可以通过在 socket 断开与超时中断里重新打开
socket,重新开启连接。


问题 4CH392 无法收发网络数据。
解答: 1、 TCP 模式下先检查 TCP 连接是否成功,若不成功,查看问题 3。
2、若 CH392 接收到网络数据,会产生数据接收中断信号,检测 CH392 的 INT 引
脚是否有低电平产生,注意如果使用单片机外部中断,则触发位要设置为低电
平触发,不要使用边沿触发。若有中断信号,则读取中断状态,对照头文件里
的定义,获取中断含义。检查 CH392 接收中断的处理,正常流程是:获取中断、
读取数据长度,读取数据内容。
3、 UDP server 模式下的数据收发与其他模式不一样:
数据接收时, CH392 会在数据包前加上 8 个字节的信息,分别是数据包长度,
源端口,源 IP。在接收中断处理任务里,需要将这些信息分离并保存。
数据发送时, CH392 使用 CH392UDPSendTo()函数,函数参数需要使用上
面的信息。
4、 CH392 发送相关的中断有两个,分别是发送完成中断与发送缓冲区空闲中断;
单片机向 CH392 发送缓冲区写一包数据, CH392 会将数据复制到 MAC 缓冲区,
复制完毕后会产生发送缓冲区空闲中断; CH392 可能会将数据分装成若干包数
据包,每发送一包数据包, CH392 都会产生一次发送完成中断;因此在实际发
送时,必须要等到发送缓冲区空闲中断产生后,才能向 CH392 缓冲区填写下一
次数据。


问题 5CH392 以太网数据丢包。
解答: 1、 CH392 在收发数据的过程中不能被其他进程打断,如果 CH392 在数据收发中
被其他任务打断,则可能会导致数据丢包。

2、检查下定义接收缓冲区大小,读取接收长度,看是否超过了接收缓冲区。接收
缓冲区在定义的时候至少要大于定义的 TCP MSS 的值。
3、 UDP 模式下存在丢包的可能性,这是协议本身就存在的缺陷。


问题 6CH392 编程注意事项。
解答: 1、芯片内置上电复位电路,主程序开始先延时 200ms 时间,留给 CH392 足够的
上电复位时间,防止单片机上程序开始运行而 CH392 仍处于复位状态。
2、芯片内置上电复位电路芯片初始化之后,建议先做测试命令,确保基本通信正
常后再进行下面的操作。
3、假如程序中有设置 MAC 地址操作,设置完成后需要延时 200ms 左右时间。
4、批量发送数据时,每次发送数据前要确保前一次数据已经发送完成(可通过查
询 SINT_STAT_SENBUF_FREE 中断来判断)。

CH392/CH395常见问题解决方法指南的更多相关文章

  1. OpenStack安装部署管理中常见问题解决方法

    一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...

  2. Web Deploy发布网站及常见问题解决方法(图文)

    Web Deploy发布网站及常见问题解决方法(图文) Windows2008R2+IIs7.5 +Web Deploy 3.5 Web Deploy 3.5下载安装 http://www.iis.n ...

  3. Python爬虫编程常见问题解决方法

    Python爬虫编程常见问题解决方法: 1.通用的解决方案: [按住Ctrl键不送松],同时用鼠标点击[方法名],查看文档 2.TypeError: POST data should be bytes ...

  4. 老出BUG怎么办?游戏服务器常见问题解决方法分享

    在游戏开发中,我们经常会遇到一些技术难题,而其引发的bug则会影响整个游戏的品质.女性向手游<食物语>就曾遇到过一些开发上的难题,腾讯游戏学院专家团Wade.Zc.Jovi等专家为其提供了 ...

  5. VNC使用及其常见问题解决方法

    博主之前在博文(https://www.cnblogs.com/kangbazi666/p/14153604.html)中已经介绍了多人VNC的配置方法,下面将简单介绍其使用方法及常见问题的解决方法. ...

  6. QTP常见问题解决方法(一)

    1.对脚本的运行速度进行设置 TOOLS->OPTIONS->RUN->RUN MODE 设置就可以了:一般可以设置为500或者1000值,也就是毫秒: QTP 12.0版本: TO ...

  7. 转:在决定使用ClickOnce发布你的软件前,应该知道的一些事情(一些常见问题解决方法)

    1,无法有效避免非法的下载 使用ClickOnce部署,你的软件的更新版可以发布到Web服务器上,当用户从开始菜单启动软件时,ClickOnce自动到指定的URL去检测是否存在新版本,并且从这个地址下 ...

  8. Entity Framework表名默认自动变为复数形式等常见问题解决方法

    今天使用了一下手写EntityFramework,发现一些常见的问题,做个记录: 1.以前使用模板生成不太在意的问题,就是在定义实体类时,如果没映射注释,自动映射的表名会变成复数形式 如:表名==&g ...

  9. VC++6.0一些常见问题解决方法(打开多个窗口、行号、添加文件无响应、更改.exe图标及名称等等)

    背景: 最近使用VC++6.0做一个界面,供测试CAN通信使用.由于客户希望我们提供简单方便的函数接口让其最快速使用CAN,DLL(动态链接库)是不二之选.做DLL需要两个VC窗口进行测试才方便.可是 ...

  10. CString的GetBuffer用法,GetBuffer本质,GetBuffer常见问题解决方法

    一.函数原型 CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); Return V ...

随机推荐

  1. 关于windows-server-下MySQL Community版本的的安装与配置

    在公司电脑或者服务器上安装软件,都是有要求的,要么购买license-(这个需要申请,难度较大),要么安装免费开源的软件 笔者最近想要安装mysql服务环境,用于数据存储及开发一些功能程序需要连接数据 ...

  2. github使用Webhooks实现自动化部署

    参考: https://blog.csdn.net/u013764814/article/details/85240752 -------------------------------------- ...

  3. Linux家族谱系

    I II III VI unix linux Redhat Centos   Debian Ubuntu   SUSE   Android   BSD freeBSD NetBSD openBSD   ...

  4. Linux系统安装宝塔面板教程

    # Linux系统宝塔安装教程 注意:安装宝塔面板的前提条件 首先要有一台服务器或者使用linux系统的虚拟机. 安装前请确保是[全新的机器].必须是没装过其它环境的新系统,如Apache/Nginx ...

  5. python信息检索实验之向量空间模型与布尔检索

    import numpy as np import pandas as pd import math def bool_retrieval(string): if string.count('and' ...

  6. Java多线程(5):CAS

    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来- 在JDK1.5之前,Java的多线程都是靠synchronized来保证同步的,这会引起很多性能问题,例如死锁.但随着Java的不断完善,JNI ...

  7. C# String.IsNullOrEmpty()方法的使用

    IsNullOrEmpty(string)是String类的一个有参的方法,方法需要类的调用,所以String.IsNullOrEmpty(string) IsNullOrEmpty是判断字符串的Nu ...

  8. Linux软件安装方式 - Tarball&RPM&YUM

    软件安装 简介 概念详解 # 概念详解 - 开放源码: 程序码, 写给人类看的程序语言, 但机器并不认识, 所以无法执行; - 编译器: 将程序码转译成为机器看的懂得语言, 就类似翻译者的角色; - ...

  9. vue 祖先组件操作后代组件方法

    前言:最近写代码遇到一问题:祖先级别的组件怎么操作孙子的儿子的组件方法(是不是已经绕晕了),在网上搜了半天都是父子传参,父子操作,晕晕乎乎的想起了bus(事件总线), 原理就是:是在vue原型上挂载( ...

  10. Oracle用户创建及删除

    偶尔会用到,记录.分享. 1. Oracle用户创建 #创建用户表空间create tablespace $username datafile '/u01/app/oracle/oradata/ufg ...