UEXT
Universal EXTension (UEXT) is a connector layout which includes power and three serial buses: Asynchronous, I2C, and SPI. The connector layout was specified by Olimex Ltd and declared an open-project that is royalty-free.[1]
Physical characteristics
The UEXT connector consists of 10 pins, in a two row by five male pin configuration, with a plastic keyed-shroud. All pins have a spacing of 0.1 inch (2.54 mm).[1][2] The socket is mated with a 2x5 (10-pin) IDC female connector, and typically connected to a Ribbon cable. The UEXT cable assembly is referred to as a 10-pin IDC Connector Ribbon Cable. These cables are readily available and cheap.[3]
Electrical characteristics
The UEXT connector presents power and three serial buses: Asynchronous, I2C, SPI.[1] All pins conform to 3.3 volt digital logic. The asynchronous serial bus requires additional level-shifting circuits and connectors to support RS-232, RS-422, RS-485, DMX512, or MIDI.
Pin | Name | I/O | Logic | Primary Use |
---|---|---|---|---|
1 | 3.3V | S | S | +3.3 volt |
2 | GND | S | S | Ground |
3 | TXD | O | PP | Transmit Data for Async Serial bus |
4 | RXD | I | PP | Receive Data for Async Serial bus |
5 | SCL | O | OD | Clock for I2C bus |
6 | SDA | I/O | OD | Bidirectional Serial Data for I2C bus |
7 | MISO | I | PP | Serial Data In for SPI bus |
8 | MOSI | O | PP | Serial Data Out for SPI bus |
9 | SCK | O | PP | Clock for SPI bus |
10 | /SSEL | O | PP | Slave Select for SPI bus |
Notes:
- Direction is relative to host board.[1] I = Input, O = Output.
- S = Power Supply, PP = Push-Pull logic, OD = Open-Drain logic, all pins conform to 3.3 volt digital logic
Alternate pin uses
The functionality of most microcontroller pins are multipurpose, thus allowing the engineer to redefine the purpose of the pin. It is fairly common that a pin will have a choice to be either a general purpose I/O or a peripheral.
If a microcontroller pin is connected to the UEXT connector and redefined to be something other than Asynchronous Serial Bus / I2C Bus / SPI Bus, then some thought should be given to the design before making the changes. To minimize the chance of damaging various UEXT boards or the microcontroller, redefined pins should continue to adhere to the direction of the data in this table or alternately redefined as an input. For a safe design, it is recommended that you don't redefine pins 4 or 7 to be outputs, and use pin 6 as an output with caution.
User concerns
If a person is concerned about damaging the data lines of the microcontroller, additional over-voltage protection diodes and/or separate drivers should be added between the microcontroller and UEXT connector. Additionally, a resettable fuse might be added between the host power and pin 1 to protect against over-current conditions. Open source UART dongles are available that are explicitly designed to be pin compatible with UEXT,[4] and may be used to interface a UEXT device directly with a computer over USB.
5V warning
Some boards might provide 5V output on UEXT pins if they are configured for operation at 5V. For example, OLIMEXINO-328 and OLIMEXINO-32U4 have a 3.3V/5V PTH jumper that changes the power mode of the board. If the 3.3V/5V jumper is set to 5V, this jumper also changes the voltage available at pin #1 of UEXT as well as the voltage levels of all data signals available there (UART, SPI, I2C). As the UEXT standard only defines 3.3V, many UEXT modules may not be 5V tolerant, and thus get damaged if the board has such jumper set to 5V. Users are advised to verify their boards are configured for 3.3V before connecting UEXT hardware to prevent damaging said hardware.
Parallel cables
It is possible to connect multiple UEXT devices in parallel by clamping additional IDC connectors onto the same ribbon cable. This will result in a correct distribution of power (3.3V and ground) and allow data communication over I²C. However, the SPI bus will not work since all the SS lines are tied together (and thus all slaves addressed simultaneously, scrambling data on the MISO line), and neither will UART work since multiple devices are transmitting and receiving on the same lines. Series resistors are necessary on conflicting SPI and UART pins to limit short circuit currents due to conflicts, if compatibility with other UEXT devices is desired.
Similar connectors
Some devices use a layout based on the UEXT connector but have chosen not to implement all of the functionality. In particular the asynchronous serial connection may have been omitted. In these cases the spare pins are usually assigned other purposes, such as connecting to a device reset line, so care should be taken to check the exact connector layout on the schematic of a particular device.
Implementations
- UEXT I/O Boards
- Host Boards
- Olimex Olimexino-328, 16 MHz ATMEGA328 (Atmel AVR)
- Olimex Olimexino-STM32, 72 MHz STM32F103RBT6 (ARM Cortex-M3)
- Olimex LPC-P1114, 50 MHz NXP LPC1114 (ARM Cortex-M0)
- Olimex DuinoMite, 80 MHz MicroChip PIC32MX795 (PIC32)
- Olimex STM32-P207, 120 MHz ST STM32F207 (ARM Cortex-M3)
- Olimex Pinguino[5]
- 3rd-party
- LibreSolar[6]
See also
- IDC connector and Ribbon Cable.
- Asynchronous serial bus, using a UART, such as RS-232 and RS-422.
- I2C serial bus.
- SPI serial bus.
- Pmod Interface
References
- ^ a b c d Universal EXTension connector (UEXT) specification; Olimex Ltd.
- ^ "Olimex LPC E2214 schematic (Page 4)" (PDF). Retrieved 2009-04-02.
- ^ 2x5 (10-pin) IDC Connector Flat Ribbon Cable; MicroController Pros; 2011-09-12.
- ^ Verbelen, Yannick (2017). "UART USB Dongle". CircuitMaker. Retrieved 16 April 2017.
All pins are broken out on a 10 pin IDC connector. Compatible with UEXT if you don't need SPI or I2C support.
- ^ https://makezine.com/2011/10/04/meet-the-pinguino/
- ^ https://hackaday.com/2020/10/24/let-the-solar-free/