chipKIT® Development Platform

Inspired by Arduino™

Digital pins with an output voltage of 5V

Created Sun, 10 Feb 2013 14:40:47 +0000 by tsalzmann


tsalzmann

Sun, 10 Feb 2013 14:40:47 +0000

I have some sensors that I want to use with the max32 and the input voltage of them is 5V. To make them work, I have to use a digital pin instead of the 5V pin. Is there any way of making the digital pins use 5V instead of just 3.3V?


jmlynesjr

Mon, 11 Feb 2013 01:20:19 +0000

Search Microchip.com for "3V Tips 'n Tricks". It's chapter 8 of a document that I don't have the title of. I have the pdf file however.

Also Sparkfun sells two different level converter break-out-boards($1.95 & $6.95). Check out the references on their product pages.

The chipkit pins are 5v tolerant and many devices' VH is below 3.3v and may work fine at that level. I've had no trouble using an UNO with several 5v Sparkfun products. See my other posts on Sparkfun LED, LCD, & Rotary Encoder BOBs.

James


RobertCarlRice

Mon, 11 Feb 2013 04:26:53 +0000

Glad they fixed the web site!

I have used 74ABT244 line driver ICs to raise my chipKit output voltages to 5 volts. They will also raise you current capacity from 18ma source and sink to 32ma source and 64ma sink. Also, the chipKit has a max total source and sink output current of 200ma. You get 8 drivers in a 20 pin package. One chip can easily sink up to 8 solid state relays or current-loop inputs.

But the easiest way to get a 5 volt signal, assuming you don't need high current capacity, is to configure the output for open-collector and use an external pull-up resistor to the +5 volt rectifier output. This involves setting bits in the Open Drain Control (ODC) registers corresponding to the outputs.

My problem is that MPIDE hasn't made this easy yet. Arduino boards with 5 volt µPs don't have an open-collector output mode so there is no Arduino compatible instruction to set the ODC registers. Looks like I have to do my own pin abstraction to come up with the port and bit position given the chipKit pin number.

What I really need is another constant for the pinMode command to set open-collector output mode something like:

pinMode( ckPin, OUTPUT_OC )

This would use the built-in pin abstraction logic and set both the TRIS and ODC registers.

Thanks, Bob Rice