Programmable Analog: Maxim Creates Swiss Army Knife

There have been several attempts at devices that might be called field-programmable analog arrays (FPAAs) over the years, but most have failed to establish a significant market presence.

One reason may be that these devices have tried to do too much. One early architecture boasted an array of programmable analog cells, where each cell could be configured to perform a desired function, such as an amplifier, a filter, a comparator, an adder, an integrator, or a differentiator. There are several downsides to this approach, including the fact that each cell ends up performing a less-than-optimal implementation of the desired function. Also, there is a lack of determinism, because it's difficult to work out overall delays when signals can be routed through different paths.

Maxim has taken a step back. Instead of creating a FPAA, it has created the analog equivalent of a simple programmable logic device (PLD). The key elements of simple PLDs in the digital domain are that they are robust, precise, and fully deterministic. These are all attributes that can be ascribed to Maxim's new MAX11300 Programmable Mixed Signal I/O (PIXI) device.

The 6x6 mm MAX11300 features a serial digital interface (SPI or I2C) and digital control core, which can be used to configure the device, to read values from the input ports, and to write values to the output ports. Speaking of which, the MAX11300 boasts 20 ports, as illustrated below.

Also, the MAX11300 supports an internal temperature sensor and two external temperature sensors, whose values can be accessed by the digital control core and passed to the larger system via the SPI/I2C interface.

Each of the 20 input/output ports is individually configurable with up to four selectable voltage ranges within -10 V to +10 V. (The examples quoted by Maxim are 0 V to +10 V, -5 V to +5 V, -10 V to 0 V, and 0 V to +2.5 V).

Each port can be configured to be a single-ended analog or digital input or output. Each port that is configured as an analog input is fed to its own 12-bit analog-to-digital converter (ADC) that can support up to 400 Ksps. Similarly, each port that is configured as an analog output is driven by its own 12-bit digital-to-analog converter (DAC).

In the case of ports configured as analog inputs, any adjacent pair of ports can be used to form a differential ADC. Furthermore, any port of such a differential ADC can be internally biased to form a pseudo-differential ADC. (Multiple ADCs can share a common bias point.)

It really seems as though Maxim thought all this out. It has identified a selection of common use cases and addressed the associated end-user requirements.

In the case of ports configured as analog outputs, for example, the analog output values can be read back using an internal ADC for correction and calibration. This means that, if the user specifies an output of 6.2 V but the load pulls this down, the user's application can rectify the issue.

The use cases mentioned above assume that values from any ports configured as analog or digital inputs are read by the MAX11300's digital control block and passed via the SPI or I2C interface out to the larger system. Similarly, the use cases assume that values from the larger system are passed via the SPI or I2C interface to the digital control block and written to the ports configured as analog or digital outputs.

In reality, any two PIXI ports can be connected together and used as a uni-directional logic-level translator. The switching threshold of the input may be configured; also, the output can be inverted with respect to the input if required. Alternatively, any two adjacent PIXI ports can be used as a bi-directional logic-level translator. These uni-directional and bi-directional functions are not clocked, so any change on the port acting as an input will be reflected almost immediately on the corresponding port acting as an output.

The MAX11300 is complemented by an intuitive graphical user interface that supports drag-and-drop operation to generate the desired configuration. The output is a *.csv register configuration file that is used to program the PIXI.

If you are interested in evaluating one of these devices, the MAX11300 Pmod board, shown on the right side of the image below, can be used with a Xilinx ZedBoard or any Pmod-compatible board. The MAX11300 Pmod board is only $25.

Alternatively, the MAX11300 Pmod board can be used in conjunction with an optional Maxim USB2PMB board -- shown on the left side of the image above -- which is available for $55.

Click here (registration required) for more information about the MAX11300 PIXI device, including free design software and a Quick Start Guide.

In the case of ports configured as analog outputs, any adjacent pair of ports can be used to form a differential ADC. Furthermore, any port of such a differential ADC can be internally biased to form a pseudo-differential ADC. (Multiple ADCs can share a common bias point.)

Simple RC anti-aliasing on the ADC channels may be all that is needed in many cases. It's true if the system is reconfigurd 'on-the-fly' then the user would eed to know where the ADC input channels are if they are deploying anti aliasing filters. You could get creative with the internal switch to enable 'R-C' filtering on an as needed basis...ut this may not be the best use of Pixi pins. product details and datasheet can be found here....http://www.maximintegrated.com/en/products/analog/data-converters/analog-to-digital-converters/MAX11300.html