Using General Purpose Inputs and Outputs (GPIOs) on the Telit GE863 / GE863-GPS
The GE863 device offers 18 GPIO channels which are all configurable as either input or output. All channels are 2.6V CMOS type, and by default all pins are set as inputs on power up to prevent damage to connected equipment.
The following GPIO pins have no pull-up resistors or alternate functions and are the focus of the sections below:
The following sections provide examples of how control and feedback of various external components can be achieved by connecting them to this device. Section 2.1 discusses using some of these as outputs, and section 2.2 shows their use as inputs.
2.1 GE863 GPIO Outputs
When configured as outputs, all GPIO have maximum ratings of 0-1mA at 2.6VDC. Because this is a relatively low voltage level, typically some buffer device will be required. Sections 2.1.1 and 2.1.2 show two ways these outputs can be used.
2.1.1 GE863 GPIO Output Connected to a MOSFET
Figure 2.1 gives an example of how one or more of the GPIO outputs may be used to control a high power device (such as a lamp, heater, or motor) using a MOSFET. In this example GPIO1 is used, however the same circuit could be connected similarly to any or all of the other outputs listed in Table 2.1. The part specified in this example (Maplin N10AH) is a commonly available N-channel MOSFET which is capable of driving 30A at up to 100VDC. The motor shown is wired to a suitable power source within the ratings of the MOSFET.
The resistor R1 pulls the MOSFET gate voltage low to ensure the device remains off when the output is not turned on, or when the pin is set as an input (for instance during power-up or reset). When the GPIO output turns on, the gate voltage is raised and the MOSFET allows current to flow through the load. The power used to drive the load can be at any voltage suitable for the MOSFET, and is not restricted by the GPIO output ratings.
The load in this case is a 12VDC motor and since it is inductive, the flyback diode D1 is used to prevent high-voltage transients from damaging the MOSFET, the GE863, and any other connected components.
If an AC load needs to be switched, or one in excess of the MOSFET ratings, a relay may be added. The relay coil would be used in place of the motor in this example and the controlled load would then be switched by the relay contacts.
2.1.2 GE863 GPIO Output Connected to an LED
Figure 2.2 shows a simple method of attaching an LED to an output for testing purposes. Because the output rating on the GE863 GPIO pins is only 1mA, care must be taken to avoid directly connecting a common LED (which typically use 10-50mA). The one used in the example (Digi-Key 516-1311-ND) is designed for low current applications, and R1 is selected to limit the current to an acceptable level. As the LED is a rectifier, connecting it backwards will cause it to not light.
If higher brightness or current is desired, a solid-state driver such as the MOSFET shown in section 2.1.1 would have to be used. The LED and resistor (or alternatively a lamp), would be used in place of the motor and diode.
2.2 GE863 GPIO Inputs
When configured as inputs, all GPIO have maximum ratings of 0-1µA and 0-3.3VDC. A high state is achieved with voltage above 2.1V and the inputs are designed to operate at typical 2.6V CMOS levels, but can accept input voltages up to 3.6VDC. Section 2.2.1 provides a simple example.
2.2.1 GE863 GPIO Input Connected to a Switch
Figure 2.3 shows the connection of an input to a basic SPST toggle switch (Maplin part FH97F). Because neither this GPIO channel nor any of those listed in Table 2.1 include pull-up resistors, R1 is added externally. When the switch is in the closed position it ties the pin to ground so the input reads a low level. When the switch is opened, the input will read a high level because R1 will pull up the voltage.
TModSoft provides a range of Python software (including GPIO SMS Remote Control and Monitoring Software) suitable for the Telit embedded hardware modules that takes advantage of the inbuilt Python interpreter negating the need and extra integration cost of an additional micro controller. For more information see http://www.tmodsoft.com/.