Home >> Solutions >> Port Expansion
Port Expansion
Application processors / baseband processors have fixed peripheral sets often limiting the designer's ability to integrate new functions / features. For example, most processors only have one SDIO host controller. If a designer wants to add an additional SDIO port or different storage interfaces, they can easily do so by implementing these functions in an iCE65™ mobileFPGA™ device from SiliconBlue. By doing so, the designer can add functionality to their existing system without having to upgrade their applications processor.
Figure 1 - Illustrates how an iCE65 mobileFPGA device can perform port expansion to an applications processor.
SPI to UART Port Expansion
SPI to UART expander provides a cost-effective solution for communicating from host processor's SPI bus to multiple UART devices. SiliconBlue's design example acts as an SPI port expander, multiplexing and demultiplexing read/write data through SPI slave to multiple UARTs using an iCE65 mobileFPGA device.
Figure 2 - iCE65 mobileFPGA device as a SPI slave port expander.
I2C to GPIO Port Expansion
I2C, or Inter-Integrated Circuit is a popular serial interface protocol that is widely used in almost every handheld device. The I2C interface is a 2-wire interface capable of half duplex serial communication at moderate to high speeds of up to few mega bits per second. SiliconBlue's I2C to GPIO expander design example implemented in an iCE65 mobileFPGA serves as a I2C slave to GPIO bridge.
Figure 3 - iCE65 mobileFPGA device as a I 2C slave port expander.
Multifunction Port Expansion
This design example consists of four UART ports, eight level shifters, and 16 general purpose outputs with a SPI slave attaching to the host processor's SPI master port. This type of integration of multifunction is a very typical use case for FPGAs. The flexible, programmable fabric of iCE65 mobileFPGA devices allow designers to add whatever multifunction ports they require.
Figure 4 - iCE65 mobileFPGA as a SPI slave port expander implementing multiple functions. |