Contiki-NG

Header file with definitions related to the I/O connections on the Zolertia's Orion Ethernet Router, Zoul-based. More...

#include "dev/gpio.h"
#include "dev/nvic.h"

Go to the source code of this file.

Macros

Orion Ethernet Router LED configuration

LEDs on the eth-gw are connected as follows:

  • LED1 (Red) -> PD5
  • LED2 (Green) -> PD4
  • LED3 (Blue) -> PD3
#define LEDS_ARCH_L1_PORT   GPIO_D_NUM
 
#define LEDS_ARCH_L1_PIN   5
 
#define LEDS_ARCH_L2_PORT   GPIO_D_NUM
 
#define LEDS_ARCH_L2_PIN   4
 
#define LEDS_ARCH_L3_PORT   GPIO_D_NUM
 
#define LEDS_ARCH_L3_PIN   3
 
#define LEDS_CONF_RED   1
 
#define LEDS_CONF_GREEN   2
 
#define LEDS_CONF_BLUE   4
 
#define LEDS_CONF_COUNT   3
 
UART configuration

On the eth-gw, the UARTs are connected to the following ports/pins:

  • UART0:
    • RX: PA0, connected to CP2104 serial-to-usb converter TX pin
    • TX: PA1, connected to CP2104 serial-to-usb converter RX pin
  • UART1:
    • RX: PC1
    • TX: PC0
    • CTS: not used
    • RTS: not used

We configure the port to use UART0 and UART1, CTS/RTS only for UART1, both without a HW pull-up resistor. UART0 is not exposed anywhere, UART1 pins are exposed over the JP9 connector.

#define UART0_RX_PORT   GPIO_A_NUM
 
#define UART0_RX_PIN   0
 
#define UART0_TX_PORT   GPIO_A_NUM
 
#define UART0_TX_PIN   1
 
#define UART1_RX_PORT   GPIO_C_NUM
 
#define UART1_RX_PIN   1
 
#define UART1_TX_PORT   GPIO_C_NUM
 
#define UART1_TX_PIN   0
 
#define UART1_CTS_PORT   (-1)
 
#define UART1_CTS_PIN   (-1)
 
#define UART1_RTS_PORT   (-1)
 
#define UART1_RTS_PIN   (-1)
 
Zolertia Orion Router button configuration

Buttons on the eth-gw are connected as follows:

  • BUTTON_USER -> PA3, S1 user button, shared with bootloader
  • BUTTON_RESET -> RESET_N line
#define BUTTON_USER_PORT   GPIO_A_NUM
 BUTTON_USER -> PA3.
 
#define BUTTON_USER_PIN   3
 
#define BUTTON_USER_VECTOR   GPIO_A_IRQn
 
#define PLATFORM_HAS_BUTTON   1
 
ADC configuration

These values configure which CC2538 pins and ADC channels to use for the ADC inputs.

There pins are suggested as they can be changed, but note that only pins from PA can be configured as ADC.

The Zolertia eth-gw, as it is, only allows 3.3VDC sensors.

The internal ADC reference is 1190mV, use either a voltage divider as input, or a different voltage reference, like AVDD5 or other externally (AIN7 or AIN6).

The ADC1 is exposed over the JP9 connector

#define ADC_SENSORS_PORT   GPIO_A_NUM
 ADC GPIO control port.
 
#define ADC_SENSORS_ADC1_PIN   2
 ADC1 to PA2, 3V3.
 
#define ADC_SENSORS_ADC2_PIN   4
 ADC2 to PA4, 3V3.
 
#define ADC_SENSORS_ADC3_PIN   5
 ADC3 to PA5, 3V3.
 
#define ADC_SENSORS_ADC4_PIN   6
 ADC4 to PA6, 3V3.
 
#define ADC_SENSORS_ADC5_PIN   (-1)
 Not used.
 
#define ADC_SENSORS_ADC6_PIN   (-1)
 Not used.
 
#define ADC_SENSORS_MAX   4
 PA2, PA4, PA5, PA6.
 
SPI (SSI0) configuration

These values configure which CC2538 pins to use for the SPI (SSI0) lines, reserved exclusively for the CC1200 RF transceiver.

TX -> MOSI, RX -> MISO

#define SPI0_CLK_PORT   GPIO_B_NUM
 
#define SPI0_CLK_PIN   2
 
#define SPI0_TX_PORT   GPIO_B_NUM
 
#define SPI0_TX_PIN   1
 
#define SPI0_RX_PORT   GPIO_B_NUM
 
#define SPI0_RX_PIN   3
 
SPI (SSI1) configuration

These values configure which CC2538 pins to use for the SPI (SSI1) lines, reserved exclusively for the ENC28J60 ethernet module.

These pins should not be used for other use, unless you really know what you are doing TX -> MOSI, RX -> MISO

#define SPI1_CLK_PORT   GPIO_C_NUM
 
#define SPI1_CLK_PIN   4
 
#define SPI1_TX_PORT   GPIO_C_NUM
 
#define SPI1_TX_PIN   5
 
#define SPI1_RX_PORT   GPIO_C_NUM
 
#define SPI1_RX_PIN   6
 
I2C configuration

As default there is not a default pin assignment for I2C, change this values accordingly if mapping either pin to the I2C controller.

#define I2C_SCL_PORT   GPIO_C_NUM
 
#define I2C_SCL_PIN   3
 
#define I2C_SDA_PORT   GPIO_C_NUM
 
#define I2C_SDA_PIN   2
 
#define I2C_INT_PORT   GPIO_D_NUM
 
#define I2C_INT_PIN   2
 
#define I2C_INT_VECTOR   GPIO_D_IRQn
 
Dual RF interface support

Enables support for dual band operation (both CC1200 and 2.4GHz enabled).

#define REMOTE_DUAL_RF_ENABLED   1
 
CC1200 configuration

These values configure the required pins to drive the CC1200 None of the following pins are exposed to any connector, kept for internal use only

#define CC1200_SPI_INSTANCE   0
 
#define CC1200_SPI_SCLK_PORT   SPI0_CLK_PORT
 
#define CC1200_SPI_SCLK_PIN   SPI0_CLK_PIN
 
#define CC1200_SPI_MOSI_PORT   SPI0_TX_PORT
 
#define CC1200_SPI_MOSI_PIN   SPI0_TX_PIN
 
#define CC1200_SPI_MISO_PORT   SPI0_RX_PORT
 
#define CC1200_SPI_MISO_PIN   SPI0_RX_PIN
 
#define CC1200_SPI_CSN_PORT   GPIO_B_NUM
 
#define CC1200_SPI_CSN_PIN   5
 
#define CC1200_GDO0_PORT   GPIO_B_NUM
 
#define CC1200_GDO0_PIN   4
 
#define CC1200_GDO2_PORT   GPIO_B_NUM
 
#define CC1200_GDO2_PIN   0
 
#define CC1200_RESET_PORT   GPIO_C_NUM
 
#define CC1200_RESET_PIN   7
 
#define CC1200_GPIOx_VECTOR   GPIO_B_IRQn
 
Ethernet ENC28J60 configuration

These values configure the required pins to drive an external Ethernet module.

The implementation can be SPI or GPIO-based, for the first the SPI1 controller should be used

#define ETH_SPI_INSTANCE   1
 
#define ETH_SPI_CLK_PORT   SPI1_CLK_PORT
 
#define ETH_SPI_CLK_PIN   SPI1_CLK_PIN
 
#define ETH_SPI_MOSI_PORT   SPI1_TX_PORT
 
#define ETH_SPI_MOSI_PIN   SPI1_TX_PIN
 
#define ETH_SPI_MISO_PORT   SPI1_RX_PORT
 
#define ETH_SPI_MISO_PIN   SPI1_RX_PIN
 
#define ETH_SPI_CSN_PORT   GPIO_A_NUM
 
#define ETH_SPI_CSN_PIN   7
 
#define ETH_INT_PORT   GPIO_D_NUM
 
#define ETH_INT_PIN   0
 
#define ETH_RESET_PORT   GPIO_D_NUM
 
#define ETH_RESET_PIN   1
 
On-board external WDT

The Orion Ethernet Router has an external WDT and battery monitor, which adds more robustness and prevents the mote to run wild if any unexpected problem shows-up.

The external WDT requires a short pulse (<1ms) to be sent before a 2-second period. The battery monitor keeps the device in Reset if the voltage input is lower than 2.5V.

#define EXT_WDT_PORT   GPIO_D_NUM
 
#define EXT_WDT_PIN   5
 
Device string used on startup
#define BOARD_STRING   "Zolertia Orion Ethernet Router"
 

Detailed Description

Header file with definitions related to the I/O connections on the Zolertia's Orion Ethernet Router, Zoul-based.

Note
Do not include this file directly. It gets included by contiki-conf after all relevant directives have been set.

Definition in file board.h.