Main Site Documentation

Fez Panda Digital Pins when not initally declared in progam register at 2.3volts


#1

Using a new Fez Panda Project which includes the LED blinking example I noticed when I plug my multimeter into the unused digital pins and the ground I get a voltage of 2.3v.

However when pin is assigned as in the little example I modified from the LED example (Fez Panda Project in Visual Studio 2010 Express), the selected Digital Pin 7 work as expected, but the remaining digital pins (ie 6,8 and 9) still output as a 2.3v or basically TRUE.

Is there a way to initialize all pins at start up as false (or less than 1.5v)?

I’m using NETMF library 4.1.3.0 and the Fez Panda is also updated to 4.1.3.0.

Here the code I used:
using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using GHIElectronics.NETMF.FEZ;

namespace FEZ_Panda_Application1
{
public class Program
{
public static void Main()
{
bool ledState = false;
bool digitalpin7state = false;
OutputPort digitalpin7 = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.Di7, false);
OutputPort led = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.LED, ledState);
Thread.Sleep(5000);
while (true)
{
Thread.Sleep(1000);
ledState = !ledState;
led.Write(ledState);
digitalpin7state = !digitalpin7state;
digitalpin7.Write(digitalpin7state);
}
}
}
}


#2

They are pulled up. If you need it low on power up, add a pull down resistor


#3

Hi Gus,

The reason I want the pins low is that at start-up before I used the LED sample to demonstrate my situation, I was using a L298 Motor Controller from DFrobot (not to be confused with the Arduino Shield version, this version has the hugh heat sink).

Digital pins 4,7 for direction control, and Digital pin 5,6 for PWM were connected via wire, and Ground on the Fez Panda was connected to the L298 motor controller’s ground.

When the Panda reboots both motors turn. Even when I was using the LED blinking program.

That’s what lead me to look for an answer for this situation.


#4

I have a similar problem with other controllers as well. Even the small 8-bit avr ones. It’s because on startup the software (or say “your software”) not running yet. It’s a few milliseconds, but you can notice this on motors.

How I dealed with that? Made a switch button on motor controller enable. When I knew, my micro is working - I switched on motor controller.
Or when I’m lazy (and in most cases I am) I just put my robot on stand where the weels hang in air.


#5

Hi Rimis,

So basically this situation is unavoidable?

I guess I could make my motor code enable if I when I press the LDR button, and keep the wheels off the ground until the boot is complete, or just re-adjust the orientation of my robot.

But have you had the same situation with Motor Control shields?


#6

I didn’t have exat controller You mentioned. But I had similar problems even with other controllers and other micros.

As Gus said, You can try resistor(s) to ground (I think on PWM lines). It is quick to try.

The restart problem is big when You adjusting Your code and need many restarts.


#7

pull downs are the way to go as Gus said, it will keep pins low on power up.