Cerb40 digital out and pwm pins

I have checked for the digital output and all available pwm ports. Attached the list of IO ports that I have tested and the available pwm ports. I noticed some of the pins having 3.3V even after erasing the program or program the pwm output. I have highlighted in yellow. Also PA8 pin seem to be having some noise with the 1.63Volt. Is this normal for having these 3.3 volts and 1.63V?

If you erase the chip then only the flash gets erased, anything that is still written to peripheral registers stays there until explicitely cleared or the chip reset or power removed.

The PWM registers for example are probably left alone by mfdeploy, so PWM will keep going untill reset…

That said, the startup code of tinyclr should probably clear all the peripheral registers on startup…

After program for pwm output and power reset the board ( Cerb40) the PB5, PB4, PA13 and PA8 still having 3.3V and 1.62V. Probably this is the firware issue.

Hate to revive a 3 month old thread, but I am experiencing a similar/same problem. I have PB5 and PA13 hooked up to LEDs w/resistors. Actually I have 10 pins hooked up to LEDs, but only PB5 and PA13 are of concern at the moment. Regardless of what I set, I get a weak glow from the LED hooked up to PB5, doesn’t brighten on output high, doesn’t dim on output low. On PA13, I get a steady bright LED; on output low, the LED turns off, then immediately comes back on! Same behavior if I set the pin to an input pin pulled up, down or sideways. For anyone interested in reproducing, or refuting, this, here is a demo program:


using System;
using System.Text;
using System.Threading;

using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;

namespace Cerb40_IOTest
{
    public class Program
    {
        public static void Main()
        {
            //InputPort ip = new InputPort((Cpu.Pin)13, false, Port.ResistorMode.PullDown);
            //ip.Dispose();

            OutputPort[] _Output;

            _Output = new OutputPort[] {
                new OutputPort((Cpu.Pin)38, false), //PWM0
                new OutputPort((Cpu.Pin)7,  false), //PWM1
                new OutputPort((Cpu.Pin)39, false), //PWM2
                new OutputPort((Cpu.Pin)8,  false), //PWM3
                new OutputPort((Cpu.Pin)21, false), //PWM6
                new OutputPort((Cpu.Pin)20, false), //PWM7
                new OutputPort((Cpu.Pin)19, false), //PWM8
                new OutputPort((Cpu.Pin)24, false), //PWM14
                new OutputPort((Cpu.Pin)25, false), //PWM15
                new OutputPort((Cpu.Pin)13, false),
                new OutputPort((Cpu.Pin)0,  false),
                new OutputPort((Cpu.Pin)1,  false),
                new OutputPort((Cpu.Pin)30, false),
                new OutputPort((Cpu.Pin)31, false),
                new OutputPort((Cpu.Pin)40, false),
                new OutputPort((Cpu.Pin)41, false) };

            string[] _Names = new string[] { "PC6", "PA7", "PC7", "PA8", "PB5", "PB4", "PB3", "PB8", "PB9", "PA13", "PA0", "PA1", "PB14", "PB15", "PC8", "PC9" };

            for (int i = 0; i < 16; i++)
            {
                OutputPort o = _Output[i];
                string oid = _Names[i];

                Debug.Print("Output " + oid + " Initial state = " + o.InitialState.ToString());
                Debug.Print("Output " + oid + " = " + o.Read().ToString());
            }

            for (int i = 0; i < 16; i++)
            {
                OutputPort o = _Output[i];
                string oid = _Names[i];

                Debug.Print("Turning off " + oid);
                o.Write(false);
            }

            Thread.Sleep(5000);

            for (int i = 0; i < 16; i++)
            {
                OutputPort o = _Output[i];
                string oid = _Names[i];

                Debug.Print("Turning ON " + oid);
                o.Write(true);
                
                Thread.Sleep(5000);

                Debug.Print("Turning OFF " + oid);
                o.Write(false);

                Thread.Sleep(2500);
            }
        }
    }
}

@ Gregg - Do not worry about opening an old thread for an issue related to it’s topic :slight_smile:
This issue has been logged and is awaiting status verification.

@ James - Thanks. I’m reading 3.75v and 3.00v on PA13 and PB5 respectively. All other pin readings seem negligible.
Any progress on this front?