domingo, 27 de abril de 2014

Comunicacion Serial PC - PSoC 4, implementando un programa en Visual Basic y usando el módulo UART de PSoC. Texto en LCD




 En este proyecto estará un ejemplo breve y sencillo de como usar el módulo UART del PSoC 4, y como conectar la tarjeta CY8CKIT-042, directamente al PC y un ejemplo sencillo en visual basic de envio de datos.




Tendremos que tener algún conocimiento sobre el manejo de Visual Basic.

Para quienes no tienen conocimiento en visual, y quieren hacer una comunicacion serial, este video puede ayudar.

Necesitaremos lo siguiente :

- Tener cableada y configurada nuestra LCD Custom, que explicamos en detalle aquí.
- Dos cables largos que usaremos para hacer el puente de PSoC 4 - PSoC 5


Un poco de teoría...

Una comunicación serial se trata básicamente de enviar datos contenidos en una trama de tipo serial de forma síncrona. De otra manera, enviar pulsos a una determinada velocidad los cuales pueden ser interpretados como datos por el receptor quien tiene que estar a la misma velocidad que el emisor.


una trama serial se compone de la siguiente manera:



Un bit de inicio, el cual determina el inicio de la trama serial.

8 Bit de datos, es en donde se contienen nuestro dato, de forma binaria, interpretada por el receptor

un bit de paridad, se encarga de decirnos si los datos enviados están correctamente o no.

Un bit de parada, el cual determina el final de la trama serial.


Comencemos por el programa del micro en creator.


Abrimos un proyecto nuevo, y en nuestra biblioteca de componentes buscamos un bloque UART y lo ponemos en nuestro esquemático.

también traeremos un "logic low '0' " que se encuentra en nuestra biblioteca de componentes/digital/logic.


Luego en nuestra biblioteca vamos a /system y alli escojemos "interrupt" y lo traemos a nuestro esquematico.
Este "interrupt" lo ocuparemos para la llegada de datos, una interrupcion de recepcion de dato.

Luego de esto, cablean de la siguiente manera:



ahora damos doble clic a nuestro componente UART

Aquí se muestran las configuraciones de nuestra comunicacion serial.



Le pondremos el nombre que queramos a nuestro componente.

En mode lo dejaremos como Full UART (TX+RX), así nuestro programa de visual no visualice los datos enviados, vamos a usar el envió de datos, solo como explicación.

Bits per second, mas conocido como Baud Rate:
Mas arriba en el proyecto hablabamos de que tanto como el transmisor y el receptor teninan que enviar y recibir datos a la misma velocidad los dos, para eso es nuestro baud rate, para definir a que velocidad queremos que se envien los datos, por lo general se usa ese 9600 bit/sec.

Data bits:
Aqui definimos lo largo del dato que estara contenido en nuestra trama serial, por lo general se usan solo 8 bits de datos.

Parity type:
Podremos definir si quieremos que se compruebe si hubo errores en nuestra trama serial, en mi caso no lo haré.

Stop bits:
definimos cuantos Bits de parada tenemos en nuestra trama serial, una trama serial de datos generica contiene un solo bit de parada, lo pondremos de esa manera.


Luego de tener configurado nuestro bloque UART, aplicamos y aceptamos.

Ahora damos doble clic sobre nuestra interrupción y la configuramos de la siguiente manera.




le pondremos a nuestra interrupcion el nombre que queramos, y en interruptType, cambiaremos de DERIVED que es el que viene por defecto a RISING_EDGE.

aplicamos y aceptamos.

En nuestro esquemático añadiremos nuestro componente LCD_CUSTOM_CHAR y configuramos. (para añadir y configurar nuestra LCD custom vamos aquí).

terminado esto podremos pasar a nuestro código.

Abrimos nuestro archivo con extensión .c y agregaremos nuestro código. Está comentado para explicar cada línea.









Luego de tener nuestro codigo, pasamos a asignar nuestros pines, yo los asigne de esta manera, ya que con facilidad me permite hacer el puente descrito en el manual de usuario.





terminado esto podemos compilar nuestro archivo, si lo tienen todo igual que yo, les va a salir 0 errores y 0 advertencias.

Como sabemos, en nuestra tarjeta CY8CKIT-042, existe un PSoC5LP que se encarga de ser el programador de nuestro PSoC 4, en el manual de usuario está descrito, que se puede hacer un puente entre el PSoC 4 y el PSoC 5 para lograr enviar los datos por medio del cable USB que se usa para programar.

Cuando nostros conectamos nuestra tarjeta de CY8CKIT-042 al PC, por defecto este nos reconce un puerto COM que casi siempre es el COM3, es este el puerto que podemos ocupar para hacer nuestra comunicación serial.

El puente que se indica es el siguiente:





este montaje se encuentra en la pagina 23 del manual de usuario de nuestra tarjeta.

Ya tenemos lista y configurada nuestra tarjeta para que empiece a recibir los datos que enviemos desde el PC.


Ahora nos vamos a el diseño del programa que nos enviara los datos hacia nuestra tarjeta, de forma serial.

Para esto usamos Visual Basic  Express 2010.

Recuerden que deben tener conocimientos previos sobre el uso del puerto serial en Visual Basic para esto les dejo este video en donde explican muy bien como hacerlo.

Abrimos un proyecto nuevo en visual y escojemos New Windows Form.

aquí importamos tres botones, un text box, un ovalo, dos labels, un serial port y un timer y los organizamos y cambiamos nombres de la siguiente manera:




Recuerden, deben tener conocimientos previos sobre visual basic para poder hacer todo esto, igual, en el video que les deje anteriormente, explican como hacerlo.

Adjunto dejare el Codigo que Use en Visual Basic para lograr esta comunicación.
dejara todos los archivos de visual basic asi como el instalador del programa y en el video descriptivo esta como usarlo.




Para abrir el programa, tienen que tener Visual Basic 2010 Express y desde allí abrir el proyecto que les dejo adjunto, y ya pueden trabajar con su tarjeta.

-Programa ejecutable .exe (abrir archivo setup.exe)
Proyecto Visual Basic





Brayan Andres Bermudez B

Estudiante.



2 comentarios:

  1. Hola por favor puedes compartir las otras dependencias para el LCD , son 4 en total, gracias por compartir tu experiencia

    ResponderBorrar