zoukankan      html  css  js  c++  java
  • Raspberry Pi GPIO Protection

    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.

  • 相关阅读:
    Thoughtworks的技术雷达
    Stackdump: 一个可以离线看stackoverflow的工具
    我最喜欢的visual studio 2013的新特性
    把用octopress最新发布的博文同步到提供metaweblog API的博客(例如博客园)上
    博客搬家到 http://fresky.github.io/
    runnable:在线IDE+代码片段分享
    用LINQPad加上Tx驱动来分析log
    编码规范
    数论欧几里德定理的运用
    uva 11806 容斥原理+dfs
  • 原文地址:https://www.cnblogs.com/shangdawei/p/4817767.html
Copyright © 2011-2022 走看看