Instalación de drivers y prueba de la placa

stellaris

Para instalar los drivers de la placa en el ordenador que se va a usar para el desarrollo de su programa, se ha seguido esta guía.

Lo primero es descargar los drivers de aquí.

Como no están firmados digitalmente, es necesario habilitar las directivas de grupo local (en Windows 8) para permitir la instalación de este tipo de drivers.

Para usar el entorno de desarrollo Energia primero hay que descargar los drivers. Una vez descargado el entorno de desarrollo escribimos un programa de prueba que haga parpadear el LED que lleva integrado la placa.

#define LED RED_LED
void setup() {                
  pinMode(LED, OUTPUT);     
}

void loop() {
  digitalWrite(LED, HIGH);   
  delay(1000);               
  digitalWrite(LED, LOW);    
  delay(1000);
}

Para conectar correctamente el IDE con la placa conectada por USB, seleccionamos el puerto de comunicación COM4 y como placa de desarrollo la Launchpad (Stellaris) w/ lm4f120 (80MHz). Una vez cargado el programa funciona correctamente.

Comunicación I2C

Pese a que esta placa y la Arduino Mega son de fabricantes distintos, podemos usar la misma librería en ambos, la Wire.h para realizar la comunicación I2C de forma sencilla.

Lo primero es realizar la conexión física entre la placa Texas Instrument y la Raspberry Pi. En el caso de esta SBM, los pines son:

Pin PD_0 => SCL

Pin PD_1 => SDA

El programa que cargamos en la placa de Texas Instrument es similar al realizado anteriormente, pero cambiando la dirección I2C que quiere utilizar el dispositivo.

#include 

#define LED RED_LED
#define SLAVE_ADDRESS 0x08

int number = 0;
int state = 0;

void setup() {                
  pinMode(LED, OUTPUT);     
  Wire.begin(SLAVE_ADDRESS);
  Wire.onReceive(receiveData);
  Wire.onRequest(sendData);
}

void loop() {}

void receiveData(int byteCount) {
  while(Wire.available()) {
    number = Wire.read();
    if (number == 1) {
      if (state == 0) {
        digitalWrite(LED, HIGH);
        state = 1;
      }
      else {
        digitalWrite(LED, LOW);
        state = 0;
      }
    }
  }
}

void sendData() {
  Wire.write(number);
}</pre>

Para probar que funciona, reutilizamos el script **i2c.cgi** de la Raspberry Pi modificando la dirección del Arduino (0x04) por la de la Texas Instrument (0x08). Comprobamos que la Raspberry Pi detecta la placa TI.

> i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- 08 -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
## Documentación consultada * [[1]](http://dronespersonalizados.blogspot.com.br/2014/06/stellaris-tiva-i2c-leds.html) Para ver el esquemático de la comunicación física entre la TI y la Raspberry Pi * [[2]](http://www.energia.nu/) El entorno de desarrollo usado para la placa * [[3]](http://www.ti.com/ww/en/launchpad/launchpad.html) Documentación acerca de como instalar los drivers * [[4]](http://www.ti.com/tool/Ek-LM4F120XL) Imagen