SolderCore Platform

This is the Platform Library implementation for the SolderCore.

http://www.soldercore.com/

Mass Storage

Examples use the built-in microSD socket.

Networking

Examples use the built-in Ethernet port.

Graphics

There are no built-in graphics. You can enable graphics by editing example_plugin_graphics.c and selecting an appropriate graphics adapter.

I2C

The platform I2C bus routing is:

SPI

The platform SPI bus routing is:

API
/* Copyright (c) 2004-2013 Rowley Associates Limited.
*/

#ifndef __SOLDERCORE_PLATFORM_H
#define __SOLDERCORE_PLATFORM_H

#include "libplatform/platform.h"
#include "libplatform/platform_lm3s_gpio.h"


// ===========================================
// Arduino footprint to port pin mapping
// ===========================================

#define ARDUINO_D0  LM3S_PORT_PIN(LM3S_PORT_D, 0)  // can be PWM0                         U1RX          Analog.15
#define ARDUINO_D1  LM3S_PORT_PIN(LM3S_PORT_E, 4)  //                                                   Analog.3
#define ARDUINO_D2  LM3S_PORT_PIN(LM3S_PORT_E, 5)  //                                                   Analog.2
#define ARDUINO_D3  LM3S_PORT_PIN(LM3S_PORT_E, 6)  // can be PWM4           Arduino PWM                 Analog.1
#define ARDUINO_D4  LM3S_PORT_PIN(LM3S_PORT_G, 1)  // can be PWM5* or PWM1
#define ARDUINO_D5  LM3S_PORT_PIN(LM3S_PORT_G, 0)  // can be PWM0* or PWM4  Arduino PWM
#define ARDUINO_D6  LM3S_PORT_PIN(LM3S_PORT_D, 1)  // can be PWM1           Arduino PWM   U1TX          Analog.14
#define ARDUINO_D7  LM3S_PORT_PIN(LM3S_PORT_F, 1)  // can be PWM1

#define ARDUINO_D8  LM3S_PORT_PIN(LM3S_PORT_C, 7)  //                                     U1TX
#define ARDUINO_D9  LM3S_PORT_PIN(LM3S_PORT_C, 4)  // can be PWM6
#define ARDUINO_D10 LM3S_PORT_PIN(LM3S_PORT_D, 2)  // can be PWM2           Arduino PWM   U1RX          Analog.13
#define ARDUINO_D11 LM3S_PORT_PIN(LM3S_PORT_A, 5)  // can be PWM7           Arduino PWM          MOSI
#define ARDUINO_D12 LM3S_PORT_PIN(LM3S_PORT_A, 4)  // can be PWM6                                MISO
#define ARDUINO_D13 LM3S_PORT_PIN(LM3S_PORT_A, 2)  // can be PWM4                                SCK

#define ARDUINO_A0  LM3S_PORT_PIN(LM3S_PORT_D, 7)  //                                                   Analog.4
#define ARDUINO_A1  LM3S_PORT_PIN(LM3S_PORT_D, 6)  //                                                   Analog.5
#define ARDUINO_A2  LM3S_PORT_PIN(LM3S_PORT_D, 5)  //                                                   Analog.6
#define ARDUINO_A3  LM3S_PORT_PIN(LM3S_PORT_D, 4)  //                                                   Analog.7

// Mapping of A4 and A5 as digital, typically I2C
#define ARDUINO_A4  LM3S_PORT_PIN(LM3S_PORT_B, 3)   // Configured by solder jumper PB3
#define ARDUINO_A5  LM3S_PORT_PIN(LM3S_PORT_B, 2)   // Configured by solder jumper PB2

// Mapping of A4 and A5 as analog
#define ARDUINO_A4_ANALOG          LM3S_PORT_PIN(LM3S_PORT_E, 3)   // Configured by solder jumper PB3
#define ARDUINO_A5_ANALOG          LM3S_PORT_PIN(LM3S_PORT_E, 2)   // Configured by solder jumper PB2

// SD connections
#define SOLDERCORE_SD_SCK          LM3S_PORT_PIN(LM3S_PORT_H, 4)
#define SOLDERCORE_SD_MISO         LM3S_PORT_PIN(LM3S_PORT_F, 4)
#define SOLDERCORE_SD_MOSI         LM3S_PORT_PIN(LM3S_PORT_F, 5)

// I2C header
#define SOLDERCORE_I2C1_SCL        LM3S_PORT_PIN(LM3S_PORT_J, 0)
#define SOLDERCORE_I2C1_SDA        LM3S_PORT_PIN(LM3S_PORT_J, 1)


// ===========================================
// Internal device to port pin mapping
// ===========================================

// LEDs.
#define SOLDERCORE_USER_LED        LM3S_PORT_PIN(LM3S_PORT_C, 5)
#define SOLDERCORE_MICROSD_LED     LM3S_PORT_PIN(LM3S_PORT_J, 4)
#define SOLDERCORE_RUN_LED         LM3S_PORT_PIN(LM3S_PORT_E, 7)

// LEDs controlled by the PHY.
#define SOLDERCORE_ETH_LED0        LM3S_PORT_PIN(LM3S_PORT_F, 3)
#define SOLDERCORE_ETH_LED1        LM3S_PORT_PIN(LM3S_PORT_F, 2)

// SPI memory site selects.
#define SOLDERCORE_MEM1_SELECT     LM3S_PORT_PIN(LM3S_PORT_J, 3)
#define SOLDERCORE_MEM2_SELECT     LM3S_PORT_PIN(LM3S_PORT_J, 5)

// microSD socket select.
#define SOLDERCORE_MICROSD_SELECT  LM3S_PORT_PIN(LM3S_PORT_G, 7)

// Platform API LED indexes in LED catalog.
#define SOLDERCORE_USER_LED_INDEX     0
#define SOLDERCORE_RUN_LED_INDEX      1
#define SOLDERCORE_MICROSD_LED_INDEX  2


// ===========================================
// Platform limits
// ===========================================

#define PLATFORM_PIN_COUNT      (9*8)  // 9 ports, 8 bits/port.
#define PLATFORM_LED_COUNT      3
#define PLATFORM_BUTTON_COUNT   0
#define PLATFORM_UART_COUNT     2
#define PLATFORM_SPI_BUS_COUNT  2
#define PLATFORM_I2C_BUS_COUNT  2
#define PLATFORM_UEXT_COUNT     0


#endif