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.

Raspberry Pi GPIO Protection的更多相关文章

  1. Raspberry Pi & GPIO

    Raspberry Pi & GPIO pinout === pin out / p in out pi@raspberrypi:~ $ pinout ,------------------- ...

  2. Pi# - Raspberry Pi GPIO Library for .NET

    Project Description Pi# (pronounced “Pi Sharp”) is a library to expose the GPIO functionality of the ...

  3. (0)开始 Raspberry Pi 项目前需要知道的 10 件事

    https://www.digikey.cn/zh/articles/techzone/2017/feb/10-things-to-know-before-starting-a-raspberry-p ...

  4. (RaspBerry Pi) Python GPIO 基本操作

    目前打算由潛入深慢慢學習RaspBerry Pi, 所以先由最容易下手的Python進入樹莓派的世界 首先要使用 GPIO 需要利用RPI.GPIO package想當然爾必須先安裝 所以先執行下列命 ...

  5. 树莓派 Raspberry PI之GPIO

    树莓派 Raspberry PI之GPIO 树莓派各版本硬件原理图:https://www.raspberrypi.org/documentation/hardware/raspberrypi/REA ...

  6. RASPBERRY PI 外设学习资源

    参考: http://www.siongboon.com/projects/2013-07-08_raspberry_pi/index.html Raspberry Pi         Get st ...

  7. Raspberry Pi UART with PySerial

    参考:http://programmingadvent.blogspot.hk/2012/12/raspberry-pi-uart-with-pyserial.html Raspberry Pi UA ...

  8. Hello Raspberry Pi

    Raspberry Pi 入手好一段时间了,原意是想撸 linux,但是后来一整年都在忙孩子房子户口本子的事,这玩意也就搁了一年尘. 最近终于被生活折腾到了尾声,开始找一些东西来折腾折腾. 一.什么是 ...

  9. 三大主流开源硬件对比:Arduino vs BeagleBone vs Raspberry Pi

    个人总结: Arduino就是个AVR单片机,个人觉得更适合玩电子的,社区也很活跃. BeagleBone是ARM Cortex-A8,属于嵌入式,价格高于Pi,但是许多方面拥有超越 Pi 的优 势, ...

随机推荐

  1. C++ code:指针类型(pointer types)

    #include <iostream> using namespace std; int main() { float f = 34.5; int *ip = reinterpret_ca ...

  2. 白化(Whitening): PCA 与 ZCA (转)

    转自:findbill 本文讨论白化(Whitening),以及白化与 PCA(Principal Component Analysis) 和 ZCA(Zero-phase Component Ana ...

  3. openstack基础环境准备(一)

    一.环境介绍 操作系统 ip地址 主机名 服务 centos7.5 192.168.56.11 linux-node1 控制节点 centos7.5 192.168.56.12 linux-node2 ...

  4. BZOJ5090 组题 BZOJ2017年11月月赛 二分答案 单调队列

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ5090 11月月赛A题 题意概括 给出n个数. 求连续区间(长度大于等于k)最大平均值. 题解 这题 ...

  5. BZOJ2669 [cqoi2012]局部极小值 状压DP 容斥原理

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ2669 题意概括 有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次.如果一个格子比所 ...

  6. Spring bean加载多个配置文件

    除了写很简单的加载一个xml,加载多个的情况一直没用到,在公司里也不会由自己处理这个问题,现在需要用到了,就研究验证一下. 使用的案例还是上面的例子. 只有,将原来的beans.xml分成两个部分. ...

  7. Storm消息可靠机制

    一:介绍 1.介绍 默认情况是,Spout每获取一条数据,封装后发送给后面的组件,不再管后面是否处理完成或成功接收,不再考虑. 这种的情况是不用太精确,没有启用可靠性消息机制. 2.方面的体现 spo ...

  8. linux shell cut 命令

    cut命令 cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出. 截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field,并提取 ...

  9. JavaScript开发区块链只需200行代码

    用JavaScript开发实现一个简单区块链.通过这一开发过程,你将理解区块链技术是什么:区块链就是一个分布式数据库,存储结构是一个不断增长的链表,链表中包含着许多有序的记录. 然而,在通常情况下,当 ...

  10. fmod()函数 (对浮点数取模)

    头文件:#include <math.h> fmod() 用来对浮点数进行取模(求余),其原型为:    double fmod (double x); 设返回值为 ret,那么 x = ...