Skip to main content

imp003 Pin Mux

The Functions Available From The imp003’s Pins

The imp003 (Murata part number LBWA1ZV1CD) offers a broad array of IO options.

Pin Mux

Pin
 
 
uart
FG
 
uart
QRPW
 
uart
UVGD
 
uart
WJ
 
uart
DM
 
i2c
FG
 
i2c
AB
 
spi
EBCA
 
spi
LGDK
 
DAC
 
 
ADC
 
 
PWM
 
 
Pulse
Count
 
Wake
From
Sleep
State
Change
Callback
PTPG
Trigger
 
A SCL CS* Yes Yes Yes
B SDA CIPO Yes Yes Yes
C SCLK Yes Yes Yes Yes
D CTS TX SCLK Yes
E COPI Yes Yes Yes For C
F TX SCL Yes Yes For K,X
G RX RTS SDA CIPO Yes
H Yes
J RX Yes
K CS* Yes Yes
L COPI Yes For G
M RX Yes Yes Yes For D
N Yes
P RTS Yes
Q TX Yes
R RX Yes
S
T Yes
U TX Yes
V RX Yes
W CTS TX Yes Yes Yes
X Yes
Y

*CS is driven by the SPI controller in certain SPI modes (byte sync) and may be used to implement SPI peripheral operation.

Notes

imp003 Identification

Call imp.info(). This returns a meta object with the property type, which is is a string containing the imp module name:

if (imp.info().type == "imp003") {
  // Code running on imp003/Murata LBWA1ZV1CD...
}

Default Pin States

All of the imp003’s pins are tri-stated (floating) by default, ie. on power on, after chip reset, or after deep sleep.

ADC

The imp003 has ten ADC-capable pins but can currently only sample from no more than eight of these at a time. This issue is scheduled to be addressed in a future impOS release.

Standard Buses

The imp003 provides five separate UART, two I²C and two SPI buses, in addition to being able to use space in the system-controlled SPI flash — in most cases, you will not need to use one of the GPIO pins’ SPI buses to attach extra storage to the imp003.

CIPO was previously referred to as MISO. COPI was previously referred to as MOSI.

Pin State-change Callbacks

Not all of the imp003’s pins, when assigned as digital inputs, can be supplied with callback functions that will be triggered when the pin’s state changes. The imp003 pins able to be configured with a callback — using the pin.configure() API call — are listed above. Attempts to nominate a callback for any of the remaining pins will cause an exception to be thrown.

Pulse Count Pin

The imp003 has a single Pulse Count pin: pin M.

Wakeup Pin

The imp003’s wakeup pin, pin W, can be used to wake the imp from a deep sleep, but only if the pin is configured with this capability before the imp goes into deep sleep. To configure the pin for this role, use the following code:

hardware.pinW.configure(DIGITAL_IN_WAKEUP);

Once the imp is in deep sleep — typically with a server.sleepfor() or server.sleepuntil() call — setting pin W to logic high will wake the device. The imp wakes when the pin is high, not on the rising edge. The external device responsible for triggering the wakeup pin should subsequently drive the pin low; the imp cannot return to sleep if the wakeup pin is already high. An internal pull-down is automatically enabled when wakeup is configured.