jueves, 23 de marzo de 2017

Probando protocolo SPI con LCD DOGM163 y BusPirate V3.6

Saludos amigos hoy me dispuse a probar esta "navaja suiza" para electrónica llamada BusPirate un dispositivo electrónico que permite manejar distintos  protocolos con el mismo equipo.
Necesitaba utilizar el LCD Dogm163 mediante protocolo SPI para un proyecto que estoy realizando.
A continuación les dejo los pasos que seguí en caso de que sirva a alguien.

Hardware:

Primero vamos a observar como se numeran los pines del DOGM163  según el datasheet.

Numero de pines
Los pines superiores se numeran a partir del numero 21 y corresponde al pin de la esquina superior derecha visto frontalmente como la imagen a continuación.
DOGM163 visto frontalmente




 Una vez identificado el numero de pines procedemos a realizar las conexiones como se encuentra en el datasheet, en mi caso utilizo la configuración de 5V.
Configuración de pines DOGM163 (SPI)
 Ahora unas pequeñas aclaraciones sobre las conexiones de pines con el BusPirate:
PIN-DOGM163      PIN-BusPirate
28(SI)                    MOSI
29(CLK)                CLK
38(CSB)                0V
39(RS)                  0V para config del DOGM y 5V para Escribir Datos al DOGM

A continuación una imagen de los pines del BusPirate y sus respectivos colores y protocolos.

BusPirate ProbeKit available at Seeed Studio


Para iniciar RS lo vamos a poner en 0V
 Y listo con eso hemos terminado el hardware. :)

Software

Primero vamos a configurar nuestra comunicación con el BusPirate, para eso utilizo la herramienta Minicom en Debian (GNU/Linux)

  1. Abrimos consola y escribimos: "sudo minicom -s" nos dirigimos a "serial port setup" y configuramos los parámetros hasta que nos queden igual que en la imagen a continuación.
    Archivo configurado de minicom
    Luego de eso vamos a donde dice "Save setup as dfl" y guardamos el archivo.
  2.  ahora ya tenemos configurado minicom lo iniciamos simplemente escribiendo en consola "minicom" una vez ingresamos damos un enter para que nos aparezca la opción HiZ>
    Imagen de comunicación con BusPirate
  3. Existen muchas posibilidades que se pueden explorar con BusPirate pero nosotros solo nos vamos a centrar en los pasos para comunicarnos mediante protocolo SPI por lo tanto escribimos "m" y le damos enter nos aparecerán varias opciones y escogeremos SPI (por puesto jeje)
  4. Luego de eso nos dirá como deseamos configurar el protocolo SPI, yo lo configure de la siguiente manera: SET SPEED-->(1)30KHz, Clock Polarity --->(1)Idle low, Output clock edge ---> (2)Active to idle, Input sample phase ---->(1)Middle, CS --->(2)/CS, Select output type ---> (2)Normal
  5. Estamos casi listos para iniciar la comunicación. En lo personal para esta practica hice de fuente de energía al mismo BusPirate pero hay que activar las salidas para eso ponemos la opción "W" en mayúsculas, y luego "v" en minúsculas para observar si efectivamente tenemos energía, la salida debe ser similar a continuación.
    BusPirate como fuente de Energía
  6.  Ahora recordemos que para enviar hexadecimales en BusPirate debemos escribirlo en el siguiente formato "0x00", "0xff" una vez sabido esto vamos enviar los comandos para iniciar el LCD, estos se encuentran en el datasheet, en la columna Hex
    Comandos de Arranque para DOGM163

Comandos enviados a DOGM163 mediante BusPirate

 Finalmente podemos escribir en nuestro LCD cambiando el pin 39(RS) del DOGM163 a 5V
String en BusPirate se hace entre comillas dobles.
Resultado Final

 Muchas Gracias amigos nos vemos en otro momento!