FEZ Cerb Pin Assignments Do Not Match Schematic?

I hope I can clearly state my confusion so here it goes. I’ll use the pins I’m using as an example.

The schematic for the Cerbuino Bee shows that the processor pins PB0 and PB1 to be at pin location 26 and 27.

http://www.ghielectronics.com/downloads/schematic/FEZ_Cerbuino_Bee_SCH.PDF

This is consistent with the ST Micro documentation:

http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00037051.pdf

However, the Cerb mapping defines them to be Cpu.Pin 16 and 17.


namespace GHI.Hardware.FEZCerb
{
    // Summary:
    //     Pin definitions for FEZCerb.
    public class Pin
    {
        // Summary:
        //     A value indicating that no GPIO pin is specified.
        public const Cpu.Pin GPIO_NONE = -1;
        //
        //
        // Summary:
        //     Digital I/O.
        public const Cpu.Pin PB0 = 16;
        //
        // Summary:
        //     Digital I/O.
        public const Cpu.Pin PB1 = 17;
        //
        // Summary:
        //     Digital I/O.
        public const Cpu.Pin PB10 = 26;
        //
        // Summary:
        //     Digital I/O.
        public const Cpu.Pin PB11 = 27;

        public Pin();
    }

If you wire up a LED to PB0 on the Cerbuino Bee, referencing Cpu.Pin.PB0 will light up the LED.

So, I don’t understand the relationship of the Cpu.Pin to the actual hardware pins. I thought they should be the same (eg. PB0 should be Cpu.Pin 26).

The reason I’m trying to understand this is that I have a custom board that has a LED wired to pin 26 and I can’t get it to light up. I don’t know if it’s an electrical or code problem and whether I should reference the FEZCerb.Cpu.Pin.PB0 (pin 16) or hard coded pin 26. Neither work right now. To complicate things I need PWM and PWM 5 is assigned to PB0 so I hope that GHI is correct and that I have an electrical problem.

Did any of this make sense?

You are confusing “internal” pin numbering which is invariant from package to package with the physical number of a pin on a particular package. So the pin PB0’s internal number is 16 always. But it can be chip “leg” number 26 on one package and something totally different on a package of different size.

2 Likes

Thanks, I was hoping that was the case. So since my custom board won’t light up it is definitely a wiring problem right? We’re using the same chip as the Cerbuino Bee and have the LED wired up to PB0 (chip pin 26) so assuming everything is designed correctly my code that works on the Bee should work on the custom board, yes?

Yes, code should work.