Table of Contents

Analog Outputs


An analog output sets the voltage on its pin anywhere between 0 and the supplied voltage (maximum voltage) which is typically 3.3 volts. The output voltage is only a signal, not meant to drive any loads. An op-amp or similar circuit can be added to drive loads, such as a speaker.

The analog out on a micro has "precision:" the precision of a particular processor is in its manual or datasheet; consequentially, actual output values on the pin are an approximation. For example, a micro with an 8-bit (256 steps) analog out has a step precision of 3.3V/256.

In NETMF, the voltage to be output is specified as a percentage called the "level." So, on a processor with a maximum output of 3.3V, a level of 0.5 (50%) would output around 1.65V.

NETMF has two properties for the AnalogOutput class: Scale and Offset.

The final voltage on the output pin will be: Final voltage = maximum output * ( (level*Scale) + Offset))

Final voltages are clipped to fit in the range 0V to maximum pin voltage.

Example

The processor in this example has a maximum output of 3.3 volts.

The 50% voltage (level == 0.5) by default would generate 1.65V. Because of Scale, the actual percent will be 10 (0.5 * 0.2), which results in an output voltage of about 0.33V (3.3V * 0.1).

The following code requires the Microsoft.SPOT.Hardware assembly.

using Microsoft.SPOT.Hardware;

public class Program
{
    public static void Main()
    {
        //Setup Analog on the first analog output channel
        AnalogOutput output = new AnalogOutput(
            Cpu.AnalogOutputChannel.ANALOG_OUTPUT_0);
        output.Scale = 0.2;
        output.Write(0.5); //output approx. 0.33V
    }
}