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.

  • 相关阅读:
    蒲公英 · JELLY技术周刊 Vol.29: 前端智能化在阿里的那些事
    蒲公英 · JELLY技术周刊 Vol.28: Next.js 10 发布
    蒲公英 · JELLY技术周刊 Vol 27: 平平无奇 React 17
    蒲公英 · JELLY技术周刊 Vol.26: 请问您这个月要来点肝么?
    《痞子衡嵌入式半月刊》 索引
    痞子衡嵌入式:恩智浦MCU集成开发环境与开发工具教程
    《痞子衡嵌入式半月刊》 第 21 期
    痞子衡嵌入式:了解i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点
    痞子衡嵌入式:深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程
    痞子衡嵌入式:一个奇怪的Keil MDK下变量链接强制对齐报错问题(--legacyalign)
  • 原文地址:https://www.cnblogs.com/shangdawei/p/4817767.html
Copyright © 2011-2022 走看看