The Functions Available From The imp001’s Pins
If you are using the Electric Imp Developer Kit, which is based on the imp001, you can also download a handy GPIO function chart and printable pin mux card.
Pin |
uart 1289 |
uart 57 |
uart 12 |
i2c 89 |
i2c 12 |
spi 257 |
spi 189 |
DAC |
ADC |
PWM |
Pulse Count |
Wake From Sleep |
PTPG Trigger |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | CTS | TX | SCL | SCLK | Yes | Yes | Yes | Yes | Yes | ||||
2 | RTS | RX | SDA | CIPO | Yes | Yes | |||||||
5 | TX | SCLK | Yes | Yes | Yes | For Pin 7 | |||||||
7 | RX | COPI | Yes | Yes | |||||||||
8 | TX | SCL | COPI | Yes | Yes | For Pin 5 or 9 | |||||||
9 | RX | SDA | CIPO | Yes | Yes | For Pin 2 |
All of the imp001’s pins are tri-stated (floating) by default, ie. on power on, after chip reset, or after deep sleep.
CIPO was previously referred to as MISO. COPI was previously referred to as MOSI.
In GPIO mode pins may source or sink up to 4mA.
Pins 1 and 2 have higher coupling than other pin pairs; if one pin is used for high-speed signalling, it is recommended that the other not be used for analog sampling.
Pin 6 is reserved for the ID chip and may not be used for any other purpose.
The wakeup pin, pin 1, can be used to wake the imp001 from a deep sleep, but only if the pin is configured with this capability before the imp001 goes into deep sleep. To configure the pin for this role, use the following code:
hardware.pin1.configure(DIGITAL_IN_WAKEUP, callbackFunction);
Once the imp001 is in deep sleep — typically with a server.sleepfor() or server.sleepuntil call — setting pin 1 to logic high will wake the device. However, Squirrel is started afresh so the registered callback request will be lost. The callback function will be called if the imp001 is already awake when the pin is triggered.
The imp001 wakes when the pin is high, not on the rising edge. The external device responsible for signalling the wakeup pin should subsequently drive the pin low; the imp001 cannot return to sleep if the wakeup pin is high. An internal pull-down is automatically enabled when wakeup is configured.
All of the imp001’s pins are tristated (floating) by default, ie. on power on, after chip reset, or after deep sleep.