Main Site Documentation

FEZ Domino Digital Pin Voltage


#1

What is the Voltage suppose to be coming out of a Digital Pin on the Domino? Where is that specified in the documentation?

Thanks


#2

It is 3.3v. You can check lpc23xx datasheet and user manual for exact numbers if you need them


#3

Thanks Gus. Do you have a link for that? (sorry for asking)


#4

For details see the LPC23xx user manual:
http://ics.nxp.com/support/documents/microcontrollers/pdf/user.manual.lpc23xx.pdf


#5

And data sheet http://www.nxp.com/documents/data_sheet/LPC2388.pdf

You got to love google :slight_smile:


#6

This will be in the datasheet under Vcc, not “pin voltage” or somesuch, FYI :slight_smile:


#7

It seems that only 2.2 come out of a pin when connected to PC via USB. IS that normal?


#8

That is the pull up, set the pin high in code and you will get 3.3V


#9

Please post code of Your pin initialization.
Datasheet says that pin output (when high) should not be lesser than 3.3-0.4 = 2.9

Maybe You messure pin in tristate or input?


#10

I am using PWM code so i am not sure what you mean by setting it high. Does’nt the PWM set it high by? This is the code.


// Blink the LED if a button is pressed.
				if (FEZ_Components.Wii.Nunchuk.ButtonC == true || FEZ_Components.Wii.Nunchuk.ButtonZ == true)
				{
					if (FEZ_Components.Wii.Nunchuk.ButtonC == true)
					{
						int _herz = 60;

						byte _dutyCycle;

						// Set the _pwm1 value to _analogX
						if (_analogX < 0)
							_dutyCycle = (byte)(_analogX * -1);
						else
							_dutyCycle = (byte)_analogX;

						if (_dutyCycle > 100) _dutyCycle = 100;

						_pwm1.Set(_herz, _dutyCycle);

						Debug.Print("Hertz=" + _herz + " Duty Cycle=" + _dutyCycle);

					}
					if (FEZ_Components.Wii.Nunchuk.ButtonZ == true)
					{
						_pwm1.Set(false);
						Debug.Print("PWM OFF");
					}

					
					OnboardLED.TurnOn(); 
				}

				else
				{
					OnboardLED.ShutOff(); 
				}


#11

Please read the book or search the web fro PWM info. PWM toggles the pin. it is never high or low.


#12

I am not familiar with the difference between toggling and hi/low. I understand hi and low are the presence or absence of a voltage on a pin but I don’t know what you mean by toggling.

I would assume that if the toggle turns the pin hi or low for a duration of the toggle. Am I wrong? Please help me understand.

Thanks


#13

The thread title is about voltage levels and then we are talking about PWM…I am not exactly sure how to help.

What exactly are you trying to accomplish?


#14

I was trying to operate an n channel Mosfet using the PWM pin. The voltage from the pin does not seem to be enough to do that however.

From the info on this thread is seems that it should be 3.3 volts but mine is 2.2 according to my Oscilloscope. So thats basically it. I want to operate a MOSFET or NPN transistor.


#15

With PWM, the “apparent voltage” that a “slow” digital multimeter will show is the AVERAGE voltage.

A 50% duty PWM wave looks like:

|–||–|__

(well you get the idea :slight_smile: It’s high level 50% of the time, transitions down to low for an equal amount of time, then back to high etc)

If you measure the voltage on that pin you’ll see something like 50% of 3v3, so 1.65v.

So go back to basics and start simple. Turn a pin ON and OFF. Measure the voltage when high. Then low. Just to check :slight_smile: Then try a different pin. That way you know the electrical characteristics, and you know you can have one of thise pins turn your transistor on and off.

Start a new Fez Domino project. Copy the LED outputport line and change the variable name and the pin to say Di13.

            OutputPort somepin = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.Di13, ledState);

Change the thread.sleep to sleep for 10 secs (10,000).

Add a new line after the led.Write() that does:

                somepin.Write(ledState);

(oh and by the way, this is “toggle”; it just means change it’s value from off to on, or on to off; like you would flick a light switch )

Run that app and measure the voltage on Di13; you should see 3v3 when the LED is lit and 0v when the led is off.

This kind of activity, running a transistor on PWM, does work; I have used this myself to run a LED backlight on a text LCD, thru a BC548 (IIRC).


#16

That is on low scale but are you trying to do on high level? Control a motor? Dim a light?


#17

yes I am trying to run an array of LED lights.

p.s. somehow I got logged into this site with my other, not often used, account.


#18

…almost there, I am still guessing on what you are doing :frowning:

Here are my guesses…

You have few LEDs and they are connected to FEZ using a FET? By why FET? LEDs are too big? Then you need to control these using PWM? Why? Because you want to be able to dim the LEDs? How many LEDs? Have you tried one LED? What are you measuring the output voltage then?

See? I need to know better in order for me to help you better.


#19

Oh you want all the details…

I want to run multiple arrays of LED’s each array is dedicated to a color. The FET will be used to get power each array. The FEZ PWM will be used to control the brightness. Each array will have about 18 LED’s.

I have been trying to test one led using the transistor but I have yet to get the transistor to turn on. I think this is because the transistor gate is not working right on account of the voltage from the FEZ being too low for the transistor. I need to find the right transistor that will work properly.

Thanks again.


#20

I’ve used 2SK3065 before, but it’ll be more than you need. Switches at ~1.5-2V.

You can also try Darlington NPN’s to sink your 5V, 900mA load (18 LEDs, ~50mA each) with less than 5mA base current. Careful picking the bias resistor.

If it really is .9A for each string of 18, how many strings are you running (power considerations)?