文章来源:成都浩然

与MCU的接口

W5100与MCU接口採用并行总线方式(假设要使用SPI接口,建议採用W5200),因此W5100与MCU的接口设计相对简单。以AT89C52为例,例如以下图所看到的。

外扩一个32K的SRAM(IS62C256),依照图示的硬件接口,地址线A15作为SRAM的片选信号。

因此32K的XDATA地址空间在0×0000~0x7FFF。

W5100作为外部接口也映射到89C52的XDATA空间。地址线A15反相(74AHC1G04)后作为W5100的片选信号。因此W5100的地址空间在0×8000~0xFFFF。

假设使用间接总线,地址线A2~A14必须接地。以保证间接总线初始化成功。

复位信号

W5100硬件设计中最重要的复位信号往往被我们所忽视。非常多project师採用RC复位,尽管能够达到复位的效果,但实际使用时非常不理想。

W5100的复位不好往往引起器件不能正常工作,尤其是以太网的物理层不能正常启动,也可能引起MCU对W5100初始化失败。

最理想的复位方法是使用MCU的IO口输出复位信号。这样能够绝对保证W5100与MCU之间的同步,并且一旦工作失败,也便于MCU对W5100进行控制。

假设MCU无法提供足够多的IO口输出复位信号。也能够採用专用的复位芯片(如IMP809T)。这样能够保证可靠复位,但在设计MCU软件时。注意MCU对W5100的操作同步问题。

怎样连接网络变压器或RJ45

HS-MAG1201是带网络变压器的RJ-45,以此为例,TCT和RCT是变压器发送端和接收端的中心抽头。中心抽头必须接3.3V拉高。

非常多project师在设计时忽略了这个细节。

另外。RJ-45的金属外壳最好不要接电源地,有条件的话最好接大地。

TXOP/TXON,RXIP/RXIN的PCB布线尽量等长,并且尽量平行走线。

RSET_BG的电阻

连接到W5100的第1脚的RSET_BG电阻最好用1%的精密电阻,尤其是在大批量生产时,使用普通精度的电阻(5%)会给你的产品调试带来意想不到的麻烦。

电感

数字电源到模拟电源之间的电感很重要。由于从该电感通过的电流比較大,假设电感质量不好,会产生较大的直流压降和交流噪声,严重影响W5100的工作。

有非常多project师在初期调试时都遇到过这样的问题。假设没有合适的电感,能够把电感去掉,直接用导线短路。

晶体振荡

晶体振荡出现的问题最多,也最难解决。

W5100(W5300和W7100与W5100同样)的晶体振荡器有问题,问题主要表如今:

1. 振荡频率偏差较大,远远偏离25MHz;

2. 振荡幅值不够,XTLN和XTLP的最大幅度仅仅有几百毫伏。

出现这样的现象,主要问题是晶体,WIZnet给出的晶体參数例如以下:

W5100的XTLN的正常波形和幅度例如以下:

W5100的XTLP的正常波形和幅度例如以下:

其他关于W5100的设计问题,请參考:http://www.hschip.com.cn/news_show.aspx?

id=110

W5100硬件设计和调试要点的更多相关文章

  1. 关于AD9516芯片的硬件设计和FPGA程序编写心得

    最近在做一个项目,其中有涉及时钟芯片AD9516的硬件设计和软件编程,有些使用心得,供大家参考讨论. AD9516,这是一个由ADI公司设计的14路输出时钟发生器,具有亚皮秒级抖动性能,还配有片内集成 ...

  2. SLAM+语音机器人DIY系列:(四)差分底盘设计——1.stm32主控硬件设计

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  3. Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)

    在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的.写那篇文章的目的,是想彻底的了解从硬件到驱动 ...

  4. USB2.0学习笔记连载(六):USB2.0硬件设计需要注意事项

    笔者在设计USB2.0时找到了一个官方给的硬件设计正确设计指南,其中有些内容还挺nice的.不单单只是USB的设计,其中有些思想可以应用到其他的场合中. 对于USB2.0而言,全速状态下可以达到480 ...

  5. HDMI接口基础知识及硬件设计

    参考资料:http://blog.csdn.net/u013625961/article/details/53434189: http://blog.csdn.net/u014276460/artic ...

  6. 实时人工智能:微软发布Project Brainwave预览版 现场可编程门阵列(Field Programmable Gate Array,简称FPGA) 硬件设计可以迅速演进

    https://mp.weixin.qq.com/s/bAPiPURZd-YsbV5PbzwpQQ 编者按:随着各大公司对于数据计算的要求越来越高,实时AI成为了研究者们关注的重点.在美国西雅图举行的 ...

  7. 硬件设计--DC/DC电源芯片详解

    本文参考:http://www.elecfans.com/article/83/116/2018/20180207631874.html https://blog.csdn.net/wangdapao ...

  8. usb工业相机之硬件设计-双缓冲-双端口sdram-fpga

    usb工业相机之硬件设计-双缓冲-双端口sdram-fpga 在前期的产品设计中,采用cb提供的结构,68013直接操作摄像头,iic配置摄像头寄存器,板载晶振提供时钟,摄像头的pclk直接接ifcl ...

  9. C#硬件开发业务流程调试技巧

    C#硬件开发,一种是调用厂家提供的api;另一种就是通过com口,发送命令,和硬件通信.这2种方法,如果有硬件,业务流程很好调试.但是大部分硬件,只有和客户联调才会有硬件调试的机会.那业务流程没有硬件 ...

随机推荐

  1. Tomcat的类加载器

    看完了Java类装载器,我们再来看看应用服务器(Tomcat)对类加载器的使用,每个应用服务器都有一套自己的类加载器体系,从而与Java的类加载器区别开以达到自己与应用程序隔离的目的.Tomcat的类 ...

  2. 28. Search a 2D Matrix 【easy】

    28. Search a 2D Matrix [easy] Write an efficient algorithm that searches for a value in an mx n matr ...

  3. python 转化文件编码 utf8

    使用visual studio最大的一个问题就是文件编码问题,当文件中有中文时,visual studio 会默认为区域编码,也就是gb2312,如果想跨平台或者不用vs编译的话,就会因为编码问题导致 ...

  4. 查看文件内容- 删除某个运行程序的所有进程-nohup后台执行程序

    1 查看文件内容: tail -f test.txt 2 查看端口 netstat nlp 3 删除某个运行程序的所有进程 ps -ef|grep translateService.py|grep - ...

  5. Vsphere笔记07 Vcenter 部署流程 2

    7.Vcenter 部署流程 2   Vcenter 安装需求   1.硬件要求 CPU:支持VT-X技术并开启内存:4G或4G 以上   2.系统要求 Windows 2008 R2 x64 Vsp ...

  6. redis常用数据类型 HyperLoglog

    1.HyperLoglog简介 HyperLoglog是redis新支持的两种类型中的另外一种(上一种是位图类型Bitmaps).主要适用场景是海量数据的计算.特点是速度快.占用空间小. 同样是用于计 ...

  7. opus 规范 与参数解析

    bytestream_put_buffer(&p, "OpusHead", 8); bytestream_put_byte(&p, 1); /* Version * ...

  8. AV1视频编码标准资源汇总

    一直不看好HEVC,总觉得这东西绝对不可能再恢复像h264那么辉煌了,如此高昂的授权费,被淘汰估计也就这一两年了,有必要预研一下AV1,马上进去二进制码流冻结流程了,感觉aom越来越近了,毕竟goog ...

  9. [转]Netbeans IDE默认UTF-8编码

    NetBeans是一款优秀的开源集成开发环境,可以用于Java,C/C++,PHP等语言的开发.同时它也是一个可扩展的开发平台,可以通过插件来扩展官方版本没有的功能. NetBeans有一个很弱智的地 ...

  10. 关于Linq to Sql 中的left join 中defaultifempty的相关注意事项

    在使用Linq to Sql的时候,进行两个表的左连接的时候要注意defaultifempty的使用,这个函数本来的意思即是:如果为空则使用默认值代替,默认值为 NULL ,当然也可以使用defaul ...