Raspberry Pi GPIO Protection
2015-09-17 21:46
871 查看
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.
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.
相关文章推荐
- 在ASP.NET中使用一般处理程序生成验证码
- asp.net动态设置标题title 关键字keywords 描述descrtptions
- Spring AOP - AspectJ - @AfterThrowing example
- asp.net mvc 5 web api 关于Requested resource does not support options 问题
- ASP.NET MVC5网站开发显示文章列表(九)
- asp.net 根据dataset获取大字符串(直接转出json)
- ASP.NET - List<> 绑定 DropDownList
- asp.net 处理F5刷新页面重复提交页面的一个思路
- ASP.NET - TreeView 增删
- ASP.NET站点导航应用详解
- ASP.NET MVC3 通过URL路由传多个参数方法
- [C#/ASP.NET]List<>中Sort()、Find()、FindAll()、Exist()的使用方法
- ASPX页面传值
- ASP CDONTS.NEWMAIL组件发送电邮(附下载)
- Asp.net Response.Redirect with post data
- Spring AOP - AspectJ - @AfterReturning example
- [ASP.NET]谈谈IIS与ASP.NET管道
- Spring AOP - AspectJ - @After example
- Spring AOP - AspectJ - @Before example
- ASP.NET实现级联下拉框效果实例讲解