En esta sección aprenderás a utilizar un convertidor de USB a Serial, el objetivo es establecer comunicación entre una computadora y un microcontrolador PIC para enviar y recibir datos mediante la comunicación serial.
Convertidor FT232RLÂ
El FT232RL es un chip de interfaz USB a UART desarrollado por la compañÃa FTDI (Future Technology Devices International). Este chip es comúnmente utilizado en dispositivos electrónicos para proporcionar una conexión USB a una interfaz UART.
El convertidor FT232RL puede ser utilizado para varios propósitos, incluyendo la programación de microcontroladores, la comunicación con dispositivos electrónicos que utilizan una interfaz UART, y la depuración de sistemas electrónicos.
CaracterÃsticas:
Voltaje de Operación: 5 volts.
Puede obtener acceso a señales GND, CTS, VCC, TX, RX y DTR.
La interfaz UART soporta 7 u 8 bits de datos, 1 ó 2 bits de parada, y paridad par/impar/marca/espacio/sin paridad
Operación a 3.3 V o 5 V configurable mediante jumper
USB 2.0 Full speed
Buffer de recepción de 128 Bytes y de transmisión de 256 bytes
LED indicador de señal de transmisión y recepción
Monitor serial
Para realizar la comunicación entre el microcontrolador y la computadora, se utiliza un monitor serial para enviar, recibir, graficar los datos.
Se envÃa un texto por el puerto Rs232 para mostrarlo en el monitor serie.
printf("ESCRIBIR TEXTO:\r\n");
Se reciben los datos enviados por el monitor serial y se guardan en la variable de caracteres «recibido», la variable debe tener el tamaño de registros suficientes para recibir los datos enviados del monitor serial.
char recibido[200];
void recive()
{
memset(recibido, 0, sizeof(recibido)); //limpia los registros de la varible
while(true)
{
if (kbhit())//espera el primer caracter
{
int8 i=0;
while(true)
{
recibido[i]=getc();//RECIBE EL CARACTER
if(recibido[i]=='\n')//busca el salto de linea \n
{
return;
}
i++;
}
}
}
}
Se muestran la cadena de caracteres recibidos y guardados en la variable «recibido».
OLED_ClearDisplay();
OLED_DrawText(1,1,recibido,1);
OLED_Display();//Muestra la información en pantalla;