Sometimes you find something

Often when I am developing a system, I run across something that does not work right.  It is almost always (99.9999%) something I have done wrong.  I’ve either read the data sheet wrong (or not at all), designed the circuit wrong, forgot to take account for an obvious situation, or any of a hundred other things.  However, sometimes I am not at fault and I have actually found a problem with an I.C.  I recently stumbled into this very situation.

I am working on a internal SECRET project right now and I recently started having problems.  After messing with it for a couple of hours and stripping everything out of the system but the offending parts, I still had the problem.  I contacted the manufacturer and went through another round of testing and stripping the system down to its bare essentials – I actually bread-boarded a single microcontroller with a couple of pull up resistors connected to scope probes.  The schematic below shows the schematic of the test I I came up with.

Basically, I am testing the open-drain capabilities of the RB10 and RB9 I/O lines. The system runs at +3.3V and both of the I/O lines are supposed to be +5V tolerant and configurable as open-drain so that they can read and write +5V signals. The problem I am having is demonstrated in the scope capture shown below.  KP10 is only being pulled up to +3.9V while KP9 is pulled up to +5V.  I just got confirmation from the manufacturer that this is, indeed a problem on their end.  I am the first to report it.  It’s like I am the Lewis and/or Clark for microcontroller errata.

Unfortunately for me, the KP10 pull-up problem is also exhibited on I/O pin RB11.  Doubly unfortunate, I need RB10 and RB11 to pull up to +5V.  The system I am interfacing to will not accept +4V for a logic high.   Triply unfortunate, I cannot use any other I/O pins on the micro to accomplish this task.  I am locked in on that front.  So the only option is to specify a different micro.    Doing this will add another 40 approximate hours of work to get this accomplished.  So although I wasn’t doing anything wrong, and have the satisfaction of finding something no one else had, I still have to pay the price.  Sometimes that’s just engineering.

open drain test schematicKP10 open drain problem


  1. Very interesting….and a bummer….can you remap the pins?….Just a hobbyist here.

  2. RC –

    No I can’t. Although the micro I used allows for the remapping of pins, some of the functionality I need is tied directly to pins KP10 and KP11. It can’t be remapped. Basically, I need to research a whole new family of micros to get going again.


  1. […] years ago, I found an issue with the open drain performance of one of the I/O lines of a PIC24FJ32GB002 microcontroller.  […]

Speak Your Mind


This site uses Akismet to reduce spam. Learn how your comment data is processed.