chipKIT® Development Platform

Inspired by Arduino™

Uno32 J7 pin anomaly

Created Sun, 15 Jul 2012 09:34:38 +0000 by PanKata


Sun, 15 Jul 2012 09:34:38 +0000


I made a display for ChipKIT Uno32 from a NOKIA 3310. (Actually, I kept the original case, keyboard, speaker and made a new backlight and PCB with two connectors, 8 pins at the back and 18 pins at the bottom edge that together made a handy "multimedia terminal" for chipKit.)

For software library I use CK_LCD5110_Basic and Graph of Henning Karlsen: All the tests were running fine, first from ChipKIT pins 8...12, then from pins 29...33, of J5 and J6. The speaker and keyboard was well functioning too.

Since I wanted to keep connectors J5 and J6 free for other purposes, I changed the pins to ones on connector J7. I tried several combinations of pins but from most of them the display was not functioning. I tested all J7 pins to switch LEDs, and all of them was correcly working. Finally, after several tests I found five pins from which the display was working, but even this five were not interchangeable.

I tried further three chipKit Uno32 cards, and found the same fenomenon. After a lot of experimenting, in each card I found a set of five pins, from where the display could be driven. However these sets were different from card to card. In all sets four pins were the same, but even them could not be used for the same purpose and were not interchangeable. Besides, all J7 pins on all cards passed LED tests.

The cards in tests, and working pin sets were as follows:

#include <CK_LCD5110_Graph.h>

//LCD5110myGLDC(SCK,MOSI,DC,RST,CS) display signal pins

LCD5110 myGLCD(21,14,15,20,23); //card S/N D386353 LCD5110 myGLCD(14,15,20,19,21); //card S/N D410561, 19 unstable, may need RESET LCD5110 myGLCD(21,14,15,20,24); //card S/N D402130 LCD5110 myGLCD(14,15,20,18,21); //card S/N D386447

Any idea, what may be a reason for this anomaly, and how could it be overcome?

Thanks Andras


Thu, 19 Jul 2012 21:55:02 +0000

The pins on J7 are the ones that connect to analog inputs on the PIC32 microcontroller. The digital only pins on the PIC32 are 5V tolerant, but the pins that connect to analog inputs are not. To provide protection from 5V signals, there is a 200ohm series resistor and a clamp diode to VCC3V3 on each pin on J7.

Depending on how you are connecting from the Uno32 to your display, it is possible that the additional series resistance and junction capacitance of the diode is slowing the signals down enough to cause problems.

Gene Apperson Digilent


Fri, 20 Jul 2012 08:11:19 +0000

Hello Gene,

thanks for the most probable explanation, I expected something like this.

I presume the resistors and diodes in question are R22...R32 and D4...D7, respectively.

The Nokia 3310 display is driven by a PCD8544 integrated on it, which needs 3.3V power supply. Since it is supplied from POWER 3V3 pin, there is no danger of overvoltage, therefore no protection is necessary, in my case.

I think, series resistors in themselfs wouldn't mean considerable increase in pin delay and, anyhow, I couldn't short them. But I could remove the diodes.

What do you think about this?

(If this would be a useful idea, an additional jumper between the diodes and 3V3 could be a possible option for the next version of Uno32 .)

Thanks Andras


Wed, 25 Jul 2012 06:43:30 +0000

I have just realized, that because of the 200Ohm series resistors the analog pins can source much less current than the specified 18mA; they would drop 3.6V of the available 3.3V. On the other hand, these pins can drive LEDs without additional series resistors. Am I right?


Mon, 13 Aug 2012 21:21:00 +0000

The 200 ohm series resistors on the analog pins will have a large effect on the amount of current that those pins can source. There will be 200mV drop per 1mA of current sourced. For driving high impedance digital inputs, this normally won't be a problem, but it does limit using those pins to drive low impedance loads.

The effect on rise time/fall time of the analog pins as digital outputs shouldn't be that extreme. If you assume 100pF of capacitive load on the pins (you shouldn't see this much unless you're driving a long wire), the corner frequency of the low pass filter formed by the source resistance and load capacitance is 50Mhz.

Viewed from the perspective of the analog pins as digital inputs: The junction capacitance of the diode and the 200 ohm resistor produces a critically damped input (this was modeled and analyzed by an engineer at Microchip during the development of the boards).

If the resistors are causing a problem, they can be removed. You need a fairly fine tipped soldering iron. Once the resistor has been removed, a solder blob can be used to short across the pads. Be aware that if you do this, it is no longer safe to apply 5V signals to the pin.

Gene Apperson Digilent