Cerb40: Setting output true on PB5 results in 2.2v, not 3.3v

I have 8 LEDs hooked up to eight pins on the Cerb40 with a matching resistor inline each. I can light/blink/extinguish the LEDs at will. However, when on, PB5 reads 2.2 volts, whereas the other seven read 3.3 volts. This is true whether PB5 is the only LED lit or all eight are lit. Anyone know why?

Is this an I2C pin?

PB5 has 10K pullup resistor

@ Gus - By the way why is that pull-up needed on that pin?

I don’t understand why that results in a lower voltage, but I’ll look it up in the datasheet. I thought turning the output on would provide a path bypassing the pull-up. I’m learning slowly by exposure. Just a software developer playing with hardware :).

@ Gus - It’s SPI1 MOSI

It shouldn’t. I just pointed out what is different about that pin. Mine Cerb40 reads 3V3. Check you soldering on that pin.

By the way are you running the latest firmware (just in case)?

1 Like

Yep, very latest firmware. I had other issues with I/O pins (http://www.tinyclr.com/forum/topic?id=8144) and couldn’t proceed until that was fixed. I’ll be rechecking that solder joint, but it should be good. I’ll let y’all know.

The datasheet lists few pins to be required to be in a specific state on power up! No explanation why. I think they are not needed but it is better to follow the datasheet.

Resoldered joint looks good, same results. Incidentally, when I pull reset low, this same pin outputs 2.2v. Is that the required state on startup Gus is talking about?

I have seen it before where specific pins get damaged due to static where the rest of the system functions just fine.

Are you able to control any pin but this one?

I am currently successfully sourcing current from PC6, PA7, PC7, PA8, PB4, PB3, PB8. PB5 is controllable, just underpowered.

Help! I’ve rearranged my outputs (so that all my inputs had individual interrupts) and I find that PB6 is only pushing 1.76V, and I am still getting 2.2V on PB5. I get appropriate voltage on the rest of my output pins (PC3, PC2, PC1, PC0, PB8, PB7, PA8, PA7, PA6, PA14, PB4, PB9, PB3, and PD2). Before I order yet another Cerb40, does anyone know a reason why my outputs could have low voltage (other than damaged pins)? I don’t have a problem buying more Cerb40, as I plan to buy many before it’s all over, but I would hate to end up with the same problem for lack of knowing the precise cause.

I’ve rechecked the pins and soldering. Solid contact with breadboard and solder a nice volcano shape. Same resistors and LEDs work fine with other output pins. I think I’ve eliminated everything but MCU pin damage or something I don’t understand well enough to quantify.

From your posts, I assume you’ve been over the whole board with a magnifier to look for manufacturing defects? One out of 100-1,000 of these coming out only 99% working is not worth your time/stress to figure out. Request an RMA and be done with it.

For discussions sake (since I’m still new), is it possible that:
[ul]PB5 is putting out the correct voltage
PB6 is semi-shorted within the chip and not sourcing enough
PB6 is also semi-shorted to PB5, acting like a voltage divider
(3.3V + 1.76V) / 2 = ~2.2V (2.53V)[/ul]
?

Thanks, Kerbal. I’m not sure I have the energy, no pun intended, to check for semi-shorts. Bought another Cerb40. What is it with PB5? This one puts out nada on PB5. My boards arrive next week and I have no working Cerb40 to plug into it. Looking into RMA…

@ Gregg - PB5 has a 10K pullup resistor. I think it may be open drain. If so, it can not source current, and your load would be sharing VCC with the 10K resistor.

Check the schematic. There might be nothing wrong with the board.

I noticed this recently. Does anyone know what the purpose is of that pull-up resistor?

Recommended by MCU user guide.

If PB5 is open drain and I can’t source from it, how does that affect it’s usage as an input? My goal is to have 16 input, all interrupt capable, and 16 output all source capable as they will most often be used to drive darlington arrays. Add in two pins for the COM port and I’m out of pins. PA5 is noted as not being 5v tolerant. Anything else I should know before switching PB5 to input and PA5 to output? Here come the green wires…

Am I looking in the wrong place? I just searched the data sheet for pb5 and I see no mention of a pull-up resistor in the results… I do see this resistor in other boards using this chip, so I am really just curious about the original source and purpose… Perhaps it’s in an errata?

This is where I am looking… http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00037051.pdf

P.S. let me know if you get that Pebble to work with Windows Phone

I based it of Gus’s answer in another thread:

http://www.tinyclr.com/forum/topic?id=11048&page=1#msg112845

P.S. I will. :wink: