博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Raspberry Pi GPIO Protection
阅读量:5267 次
发布时间:2019-06-14

本文共 3052 字,大约阅读时间需要 10 分钟。

After damaging the GPIO port on our raspberry pi while designing a new solar monitoring system we decided that it might be a good idea to build a buffer/level translator to protect the GPIO pins from over voltage and ESD spikes.  The board would need to protect all of the data pins we normally use which are i2c, SPI and UART, it would also need to work at all of the data rates which those pins can support.  Protection for the other GPIO pins would also be useful in case we want to connect anything directly to the Raspberry Pi without using a serial bus.  Support for 5 volt logic would also be a bonus as some of the devices we use do not support 3.3V.

After damaging the GPIO port on our raspberry pi while designing a new solar monitoring system we decided that it might be a good idea to build a buffer/level translator to protect the GPIO pins from over voltage and ESD spikes.  The board would need to protect all of the data pins we normally use which are i2c, SPI and UART, it would also need to work at all of the data rates which those pins can support.  Protection for the other GPIO pins would also be useful in case we want to connect anything directly to the Raspberry Pi without using a serial bus.  Support for 5 volt logic would also be a bonus as some of the devices we use do not support 3.3V.

All of the major IC manufacturers sell level translators and buffer ICs so after comparing several different devices I decided that the TXS0108E from Texas Instruments would do what I needed.  The TXS0108E is an 8-bit bidirectional voltage level translator designed for open drain and push pull applications, it supports data rates up to 60Mbps and has built in ESD protection.  It can translate between 1.2 V to 3.6 V on port A and 1.65 V to 5.5 V on port B so connecting port A to the Raspberry Pi would allow me to connect 3.3V or 5V devices to the Raspberry Pi.   The Raspberry Pi has 17 GPIO pins so two of these ICs would protect all but one pin. GPIO23 is only used as an SD command signal so that one could be left disconnected.

The schematic below shows the design for the buffer board.  The two TXS0108E ICs are connected to the Raspberry Pi GPIO pins on one side and a header connector on the other.  100nF decoupling capacitors are connected to the power pins on the ICs and ESD protection diodes were fitted between the Raspberry Pi power lines and ground.  Polyfuses were used on both the 3.3V and 5V rails to protect the Raspberry Pi against short circuits.

When we first developed our ADC Pi expansion boards we found a problem with testing them on the Raspberry Pi.  The ADC Pi has two 10uF smoothing capacitors and plugging the board into the Raspberry Pi when it was switched on would cause a voltage drop as the capacitors charged, this would in turn reset the Raspberry Pi.  To get around this a 470uF capacitor was fitted into the buffer board, this would store enough energy to allow the capacitors on the ADC Pi to charge without dropping the voltage on the Raspberry Pi.

 

转载于:https://www.cnblogs.com/shangdawei/p/4817767.html

你可能感兴趣的文章
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【SVM】libsvm-python
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
Leetcode Balanced Binary Tree
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>