基于MOSFET的双向电平转换电路

电路图如下: 这个图是使用MOSFET将3.3V的IO与5V的IO作双向电平转换. 当IO_IN=3.3V时, Vgs=0, MOSFET截止, IO_OUT被拉高到5V 当IO_IN=0V时, vgs=3.3v, MOSFET导通, IO_OUT接近0V (应该Vds的降压, 参考 MOSFET手册) 如果反过来右边作为输出,左边作为输入: 当IO_OUT=5V时, 因为IO_IN被拉高到3.3V, 且MOSFET体内二极管是截止的, 所以IO_IN是3.3V 当IO_OUT=0V时, MOSFET体内二极管导通, 导致IO_IN被拉低到接近0V (应该是二极管降压 0.7V左右) 这种电路适合其它电压的电平转换,但左边的电压必须低于右边的电压, 不能超过MOSFET的上限. 另外是频率不能太高,要参考MOSFET的参数, 对于高于几十KHz频率的信号不合适. 另外有专业的芯片如 TXS0108是8路的电平转换芯片,很多场合也是可以使用的.

搞了个网络继电器的开发板

我的网络继电器用起来真的挺顺手的,特别是软件方面,现在还抽了一个简单的嵌入式操作系统出来,已经支持针对不同平台仅开发驱动就可以直接使用,所以特地搞了个继电器的开发板,主要用于移植软件到其它平台时开发测试使用。有了这个开发板,只需要买其它硬件平台的开发板就可以做软件测试了,软件差不多了再来做电路板这样效率高很多。 目前已经支持了4款芯片,以太网和wifi都可以了,接下来准备弄一个4G的主控芯片了。

对74HC573的理解更正

74HC573我经常用在控制设备里锁存状态的, 虽然一直用起来没有问题,但最近还是发现不同型号的芯片逻辑有点不一样。 我对74HC573常用的方式是, OE直接下拉, LE下拉后接入单片机IO口, 由单片机控制对输入进行锁存, 但我以前一直以为它就一定是这个逻辑: 在OE下拉的情况下, 如果LE为低电平,不管输入是什么样的,对输出是没有影响的. 这个理解来自于网络上的一个关于74HC573真值表的说明上,那个图如下: 这个图片中显示,如果OE和LE都为低电平 , 不管输入为任何情况,输出不变. 这个其实是不一定的.我根据我对另一批74HC573的实际测试,再看了这种74HC573官方Datasheet后, 实际的结果应该如下: 这批芯片真实的真值表应该如上图, 如果OE和LE都为低电平时, 输出端根据输入端变化 ,但不会锁存. 这个地方还是很重要的,因为如果OE和LE直接下拉,如果输入接入到单片机默认是上拉或下拉(非高阻态)的IO口上时, 上电的时候会导致输出部分不确定. 所以这个芯片也不能乱买,要看好它的行为逻辑符合自己的需要才行。

W5500发热严重问题解决

最近做的网络485控制器,  焊好上电后发现W5500发热非常严重, 手摸就很烫, 但芯片可以正常工作。 按照以往的经验, W5500是不可能这样发热的, 所以, 首先猜测是焊接问题, 然后对引脚重新进行了焊接,发现依然发烫严重。 接下来猜测是外围元件用错了, 然后把w5500的外围元件拆了一些后, 发现果然不发烫了, 对比电路图, 终于找到原因, 原来我把20号引脚(ToCAP) 的 4.7uf电容, 用成4.7uH电感了, 明明用于稳压的电容变成了一个通路电感, 导致电流过大芯片发烫。 修改元件后, 一切正常, W5500芯片也基本不发热了。

最近做的三款电路板

最近一口气设计了三款电路板 这一款是433MHz遥控器学习设备, 使用SYN480学习无线码, SYN115发送无线码, 现在我用它控制我们家客厅的吊扇。这一款其实可以更换部分元件后实现315MHz遥控的学习发送, 但因为我没有315MHz的家电, 所以暂时也还没弄。 这个是RFID读卡器, 读卡后通过网络将RFID卡中指定区(可设置)的内容读出并通过网络(HTTP协议)发送到指定服务器, 服务器可通过返回设置板上的2个IO口电平,并按服务器指定的方式响蜂鸣器、服务器也可以返回时要求读卡器再读一次卡的另一个块内容提交。 芯片使用的是MFRC522, 这块板我失败了一次,问题出在天线设计上, 天线在PCB布线时一定要按照Datasheet上的原理图走线, 因为所有连线都是接到GND的, 布线要尽可能的让电流按照正确的路线走。 还有一点问题是这块板在做geber的时候没有设置过孔盖油, 导致所有孔都是开窗的, 下一次生产的时候得注意。 这一块是GPRS的继电器开关, 我使用的是A9模块, 直接用的AT来控制网络, 发现这个模块的AT功能并不能满足要求, 如果服务器几个数据包来得比较快, AT的通知很容易出现丢包(因为我收到一个包处理完后会向服务器回发消息, 可能是因为回发, 导致另一个数据包AT压根也不通知了)。另外, 虽然这个模块正常时可以连续几个小时在线不掉线, 但当断线后, 很容易出现再次重连不上的情况,虽然我的主控芯片会在检测到多次失败后重启模块的逻辑,但这个逻辑要长达1分多钟才触发,这并不是我想要的效果, 我想要的是, 断线后能尽可能快地连上服务器,模块要尽可能少地重启。 好在这个模块提供C的开发包, 到时候自己直接在芯片上写通信功能, 希望能改善这个问题.

网络继电器

这是一款四路的网络继电器, 本来之前设计好的那款, 没有加锁存, 这一款是前几天拿去重新生产的带锁存的版本,通过网络控制四路继电器的开和关。 最近电路板做的频率有点高,这款出来后会暂时降低电路板的出品频率,因为软件的框架还需要继续完善。