PFG – Comunicación I2C de la placa TI Stellaris Launchpad
Instalación de drivers y prueba de la placa
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 <Wire.h> #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); }
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: -- -- -- -- -- -- -- --
Recent Comments