USB-IO Interface Adapter - GPIO-24

USB-IO Interface Adapter GPIO-24 allows connecting various hardware devices to you PC. Easy installation and plug-and-play support turns GPIO-24 adapter into ideal solution to add USB interface to your HW.


PWM (Pulse Width Modulation)
  • Pulse Width Modulation (PWM) Overview

    Pulse width modulation (PWM) is a method for binary signals generation, which has 2 signal periods (high and low). The PWM signal has a fixed frequency. The width (W) of each pulse varies between 0 and the period (T). The duty cycle (D) of a signal is the ratio of pulse width to period. The following figure shows a PWM output waveform:

    pwm waveform

    The following figure shows three different PWM waveforms with 33%, 50% and 75% of duty cycle:

    PWM signals

    Pulse Width Modulation can be used for controlling analog circuits with the digital outputs of the processor. PWM is employed in a wide variety of applications, ranging from measurement and communications to power control and conversion.

    Pulse width modulation is also used to reduce the total power delivered to a load without resulting in loss, which normally occurs when a power source is limited by a resistive element. The underlying principle in the whole process is that the average power delivered is directly proportional to the duty cycle modulation.

  • USB-IO Adapter (GPIO-24) Pulse Width Modulation Interface

    Each of 24 USB-IO Adapter GPIO pins can be configured into low-frequency PWM mode with high pulse and low pulse periods in a range from 1 millisecond to 65.535 seconds. A.5 and B.5 pins can also generate high-frequency PWM (HPWM) with period and high pulse time in a range from 1 µs to 340 µs.

    With USB-IO Adapter Pulse Width Modulation interface you can control wide range of analog circuits from your PC. Some of them are listed in the following articles:

  • Low Frequency USB-PWM Interface

    Low frequency pulse width modulation is implemented in USB-IO Adapter firmware. Any of 24 IO pins can output PWM signal with high pulse(T1) and low pulse(T0) periods varying from 1 millisecond to 65.635 seconds:

    low-frequency PWM mode

    You can configure the low-frequency USB-PWM interface with the GPIO SET PWM CFG command, specifying the high pulse and low pulse periods. Then switch the preconfigured GPIO pin to PWM mode with the GPIO SET CFG command.

    The software based USB-PWM interface configuration doesn’t use frequency, period and duty cycle parameters, but they can be easily represented by the following expressions:

    • f (frequency) = 1 / (T0+T1)
    • T (period) = T0+T1
    • D (duty cycle) = T1 / (T0+T1) * 100
  • High Frequency USB-PWM Interface

    High-frequency pulse width modulation interface is based on the PWM module of PIC18F4455 microcontroller. The high-frequency PWM signal can be generated on A.5 and B.5 pins. The PWM period (T) and high pulse length (T1) can vary from 1 µs to 340 µs, generating PWM signal with frequencies in the range from 1470 Hz to 500 kHz.

    high-frequency PWM mode

    You can configure high-frequency USB-PWM interface with the GPIO SET HPWM CFG command. The PWM duty cycle and frequency can be represented by the following expressions:

    • f (frequency) = 1 / T
    • D (duty cycle) = T1 / T * 100
  • Separate Pulse Sending

    Sometimes it is more convenient to send separate pulses of specified width and polarity on demand. You can achieve this by sending the GPIO MAKE PULSE command. The pulse width can be in the range from 1 ms to 65.535 seconds (65535 ms). The pulse can be either positive or negative.

  • Customization and New Features Addition

    Our highly professional team of hardware and software engineers continuously works to enhance current and add new functionality to the GPIO-24 USB-IO Adapter. All updates can be easily uploaded into the previously ordered adapters.

    Don’t hesitate to contact us if you need some additional functionality from the USB-IO Adapter. If this functionality is generic in nature and can be useful for other customers we would be happy to add it free of charge.

    If you need some very specific functionality or customized software or hardware development, we can make it for a very low price. We can even make it for free if you can place a large order.