Utilizing a Compact IO Platform for Industrial Automation

Contributed By DigiKey's North American Editors

The increasing demand for sensing in industrial applications requires effective IO controller platforms that can accommodate a diverse collection of end-point devices and connectivity requirements. Although developers can respond to these requirements with IO racks, there is a more efficient approach that minimizes power dissipation and footprint, as well as cost.

This article will discuss the requirements of industrial sensing and control, and how it has been handled to date. It will then introduce the Maxim Integrated Pocket IO development platform and describe how it addresses the needs of developers in industrial sensing and high IO count applications. It will then show implementation techniques.

Flexibility and efficiency drive industrial IO

In the past, engineers could rely on hardwired connections to a programmable logic controller (PLC) due to the relatively few sensors deployed in earlier factory applications. The emergence of industry-standard interfaces such as IO-Link provided a more efficient connectivity option able to link multiple sensors and peripheral devices on a single connection. At the same time, the need for more flexible interface options continues to drive requirements for a wider range of analog and digital IO capabilities.

In this environment, engineers can find themselves facing a combination of requirements that include fieldbus communications and motor control, as well as support for additional specialized analog and digital IO devices. At the same time, engineers need to build this greater functionality into more compact, low-power designs that are able to operate on the factory floor where fans and vents for cooling are problematic. Maxim Integrated’s Pocket IO is designed to help engineers quickly address these requirements.

Multi-peripheral controller platform

Maxim's Pocket IO serves as both a development platform and a reference design (Figure 1). In particular, the reference design demonstrates the use of highly integrated ICs to support a diverse set of IOs including:

  • Four analog inputs, featuring the highly integrated MAX11254 24-bit analog-to-digital converter (ADC)
  • One analog output, using the MAX5216 16-bit digital-to-analog converter (DAC)
  • Eight digital inputs, based on the MAX31913, an octal switch/driver
  • Eight digital outputs, based on the MAX14913, an octal digital input device
  • Two Profibus-capable RS-485 interfaces, using the MAX14783E, a half-duplex RS-485/422 transceiver
  • Four IO-Link master channels, each based on a separate MAX14824 IO-Link master transceiver IC
  • Three motor encoder/control channels, each comprised of a MAX14890 encoder receiver IC and a MAX14870 motor driver IC

Diagram of Maxim Integrated Pocket IO platform

Figure 1: The Maxim Integrated Pocket IO platform leverages the high integration of Maxim IO devices to provide broad IO functionality. (Image: Maxim Integrated)

The Pocket IO platform provides isolated, low-noise 15 V and 3.6 V power rails as well as a 3.0 V reference for the DAC and a 1.5 V reference for the ADC. The design also includes a sophisticated set of processors including an Intel Edison and a pair of STMicroelectronics STM32 MCUs. An Intel Edison module hosts the control software that exercises overall control of the Pocket IO devices, all of which support SPI interfaces. A dedicated STM32F103RET6 MCU executes motor control routines and controls the MAX14890 encoder and MAX14870 motor driver ICs. Another dedicated STM32F103RET6 MCU runs the IO-Link stack and manages the master transceiver devices. A series of digital isolators protect processor IO channels.

Less than 10 cubic inches in volume, the Pocket IO (named for its ability to fit in a shirt pocket) can run off batteries and requires no fan while delivering high throughput on its many peripheral channels. The ICs are packed onto two small boards (designated MAXREFDES150MAIN# and MAXREFDES150LED#), which are packaged within the Pocket IO case.

The Intel Edison module and the majority of components are mounted on the MAXREFDES150MAIN# board. The MAXREFDES150LED# board holds the DC-motor driver circuits and their controlling STM32F103RET6 MCU, as well as the IO-Link circuits with their controlling STM32F103RET6 MCU. A third board provides external connectors and attaches to the boards in the Pocket IO case through two 40-pin cable assemblies. Factory application software can connect through the Pocket IO's USB interface or through the Intel Edison module's Bluetooth or Wi-Fi connectivity options.

For development, engineers create software to run on the Intel Edison with the Arduino IDE, using the comprehensive library and routines provided with the Pocket IO software package. Maxim Integrated provides detailed schematics for each IO subsystem and an application programming interface (API) for developing associated software routines.

Reference design

The digital IO devices used in the Pocket IO such as the MAX31913 and MAX14913 require little additional circuitry beyond their SPI connections to the host Edison processor. In contrast, analog IO devices require supplemental circuits to buffer or otherwise provide additional signal conditioning.

For example, the reference design schematic for the DAC output functionality uses a Maxim Integrated MAX9632 op amp to buffer the output of the MAX5216 (Figure 2).

Diagram of Maxim Pocket IO reference design schematics

Figure 2: The Pocket IO reference design schematics demonstrate use of signal-conditioning circuits on input channels and buffers on outputs such as the digital-to-analog channel shown here. (Image: Maxim Integrated)

The reference design goes even further in the circuit for the Pocket IO's analog input functionality based on the MAX11254. For this subsystem, the schematics include detailed signal-conditioning circuits to support the Pocket IO's separate voltage and current input channels.

The MAX11254 integrates a complete signal-processing path including programmable gain amplifier (PGA), analog filter, 24-bit delta-sigma ADC, and digital filter. In addition, an analog multiplexer supports the device's six differential input channels, while a digital sequencer automates functions such as analog-channel scanning and sensor monitoring. The device even includes GPIOs that can serve as sources for sensor excitation required in resistive-type sensors. The device's SPI serial interface simplifies connectivity and control by a host processor (in this case, the Pocket IO's Edison processor).

For the developer, the highly integrated MAX11254 device requires few additional components to implement a complete sensor data acquisition system. Typically, engineers will include buffer circuits at a minimum, or provide more extensive signal-conditioning circuits as warranted by the application. In the case of the Pocket IO reference design, it provides separate conditioning circuits for the two voltage inputs and for the two current input channels. Each conditioning circuit includes a pair of op amps for signal buffering and gain adjustment. The current input channels also precondition their inputs with pair of MOSFETs and a transient-voltage suppression diode to protect the op amps.

Developing code for complex IO transactions using low-level SPI commands would be slow at best, and also prone to error. Maxim therefore provides developers with a C++ class for each IO device, including the MAX11254 ADC, and provides an easy abstraction of the complex sequences involved in operations such as analog data conversion. For converting analog input, developers simply instantiate an instance of the class

adc = new Max11254();

and then use class methods to reset the device, perform a self-calibration sequence, and capture data:

adc->reset();

adc->selfCal();

adc->singleConvert(channel, rate);

Another Pocket IO C++ library, PioAi, hides even these details, reducing analog data sampling to a single call of PioAi.readcode(). The PioAi library routines in turn use the PioSpi class provided in the PioSpi library, which converts IO transactions to the corresponding series of SPI command sequences.

Along with the specific device-support libraries, Maxim provides sample code that illustrates basic design patterns for IO operations such as motor control (Listing 1).

#include <PioMtr.h>

 

PioMtr pioMtr;

 

uint8_t motor = M1;

 

void setup() {

  // put your setup code here, to run once:

 

  pioMtr.writeEnable(motor, 1);

  pioMtr.writeDirection(motor, COUNTERCLOCKWISE);//

 

}

 

uint8_t spd = 0;

bool shouldDecrease = false;

 

void loop() {

  // put your main code here, to run repeatedly:

 

  if(spd == 255)

  {

    shouldDecrease = true;

  }

  else if(spd == 0)

  {

    shouldDecrease = false;

  }

 

  if(shouldDecrease)

  {

    spd--;

  }

  else{ spd++; }

  pioMtr.writeSpeed(motor, spd);

  delay(50);

 

}

Code listing 1: The Pocket IO software package includes sample code such as this snippet demonstrating basic motor-control operations. (Code source: Maxim Integrated)

Per the code: After setup, an endless loop causes the motor speed to ramp continuously between minimum and maximum values. The PioMtr library referenced in the snippet contains the writeSpeed() routine, which in turn uses a low-level Arduino routine to manipulate the appropriate hardware registers.

Developers can extend these code snippets into full-fledged applications by writing Arduino sketches for the Intel Edison using the Arduino IDE, and the class library included in the API for each Pocket IO peripheral device. Maxim Integrated provides software packages for the Edison toolchain and Intel Edison tools as well as the Pocket IO library suite.

Conclusion

Industrial automation depends on detailed measurements from a growing array of sensors that monitor and control the details of each production step. While accommodating more diverse types of input and output devices, developers need to utilize compact, low-power, cost-effective solutions able to withstand the rigors of the factory floor.

The Maxim Integrated Pocket IO platform meets these requirements with a complete hardware/software reference design that can accelerate development of specialized controllers for emerging industrial automation applications.

 
DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this publisher

DigiKey's North American Editors