lunes, 7 de agosto de 2017

Leyendo GPS MikroElektronika Ublox LEA 6S con BusPirate

Hoy realizare un breve tutorial de como leer datos proveniente del GPS Ublox LEA 6S con Bus Pirate.

El Hardware
Para la comunicación utilizaremos el protocolo UART.

Lo primero que realizaremos es la conexión de los pines de alimentación 3.3v y GND a nuestra placa GPS, los pines los podemos visualizar en la Fig 1.
Fig 1. Distribución de pines de placa GPS

A continuación vamos a conectar los pines del Bus Pirate MISO y MOSI a TX y RX del GPS, respectivamente ver Fig 2.
Fig 2. Distribución de pines en Bus Pirate

Software
Para usar Bus Pirate en Linux debemos tener configurado el programa minicom, si no recuerdan pueden visitar esta otra entrada, entramos y configuramos los siguientes parametros: 
  • Presionamos m  escogemos opción 3 Fig 3.
  • utilizamos 9600 bps opción 5
  • 8, NONE *default opción 1
  • Stop bits 1 *default opción 1
  • Polarity Idle 1 *default  opción 1
  • Output Type Normal (H=3.3V, L=GND) opción 2


Fig3. Configuración inicial del modo en Bus Pirate
Una vez realizado esto debemos encender las fuentes de alimentación de Bus Pirate, esto se logra poniendo una W mayúscula en consola.

Una vez realizado esto debemos poner el macro de UART en modo Monitor, esto lo hacemos escribiendo en consola (2) y a continuación comenzaremos a tener salidas de este tipo:
 

$GNGSA,A,3,87,71,,,,,,,,,,,2.20,1.18,1.86*12
$GPGSV,4,1,15,02,61,05,26,05,3,138,32,0,15,054,1,09,02,01,*7F
$GGSV,4,2,1,12,52,16,32,19,00093,,20,0,180,,21,0,232,*7C
$GPGSV,4,,15,46,28148,,48,3,193,31,1,32,159,4531,22,07,18*7B
$GLGS,2,1,05,7,07,010,1,71,30,05,29,72,25114,21,7845,300,*6
$GLGSV2,2,05,8767,017,215B
$GNGL,3725.5402,N,1220508739,W,03123.00,AD*61
$GNRMC,023123.20,A,3725.54083,N,12205.08740,W,0.064,,240516,,,D*73
$GNVTG,,T,,M,0.064,N,0.118,K,D*32
$GNGGA,023123.20,3725.54083,N,12205.08740,W,2,09,1 
 
 
Y eso es todo amigos les dejo material extra, que deben encontrar interesante para desarrollar sus aplicaciones con GPS.
Saludos

martes, 11 de julio de 2017

Manual Básico GNU/RADIO UHD USRP


Hola amigos.
El día de hoy he subido a la red, un pequeño manual que hice sobre el uso de GNU-Radio[2] para principiantes, utilizando la opción de construcción por bloques, también contiene instrucciones para instalar los drivers UHD que son necesarios para manejar equipos USRP como en la Fig1.
Fig1. USRP B210 Ettus Research [1]
Espero que lo disfruten.

Descarga

Referencias

[1] https://www.ettus.com/product/details/USRP-B200-Enclosure
[2] https://www.gnuradio.org/

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!