Comunicación serial
El microcontrolador CH552 ofrece una amplia gama de capacidades y aplicaciones, y una de sus características destacadas es la capacidad de comunicación USB. Esto te permite crear dispositivos que pueden ser controlados y monitoreados desde tu computadora, lo que es esencial en proyectos de desarrollo, prototipado y automatización.
En esta sección se detalla la configuración paso a paso para establecer la conexión USB a TTL con el CH552
Verificación de código
Abre el ejemplo USBSerilalAdaptor.ino desde File -> Examples -> Unit_SketchLab -> USBSerilalAdaptor.ino
extern __xdata uint8_t LineCoding[]; //lineCoding of CDC is located in this array
__xdata uint32_t oldBaudRate = 9600;
void setup() {
Serial0_begin(9600);
}
void loop() {
if (USBSerial_available()) {
char serialChar = USBSerial_read();
Serial0_write(serialChar);
}
if (Serial0_available()) {
char serialChar = Serial0_read();
USBSerial_write(serialChar);
}
__xdata uint32_t currentBaudRate = *((__xdata uint32_t *)LineCoding); //both linecoding and sdcc are little-endian
if (oldBaudRate != currentBaudRate) {
oldBaudRate = currentBaudRate;
Serial0_begin(currentBaudRate);
}
}
Compilar y correr un programa
Para poder cargar el archivo, configura el entorno con las siguientes especificaciones:
Reloj: 16 Mhz.
Método de carga: USB.
Ajuste de carga a: "Default CDC".
Carga un programa ingresando al modo de BOOT (cargador de arranque). Desconecte el cable USB, presione el botón BOOT en la tarjeta de desarrollo y luego vuelve a conectar a la PC.
Comunicación uno a uno: Explorando la Comunicación entre Dispositivos Seriales
En el contexto de la comunicación uno a uno entre dispositivos seriales, se presenta un ejemplo ilustrativo que utiliza el CH552 en combinación con un convertidor USB TTL. Este enfoque resulta especialmente útil en situaciones donde no se disponga de otros dispositivos USB seriales para facilitar la comunicación, esta solución adquiere un valor significativo. Permite que dos dispositivos se comuniquen entre sí sin depender de recursos externos, facilitando el intercambio de información y datos de manera eficiente.
Por ello se propone el uso de una interfaz de comunicación para la verificación del funcionamiento, un chat a partir de la comunicación serial.
\\ _______________ _______________
\\ | ___________ | | ___________ |
\\ | | | | CH552 FTDI | | | |
\\ | | >Hola | | ------+ +------- | | >Hola | |
\\ | | | | | | | | | |
\\ | | | | RX|___ ____|RX | | | |
\\ | |___ ___| | | \/ | | |___________| |
\\ |_____|\_/|_____| TX|___/\____|TX |_______________|
\\ _|__|/ \|_|_ | | _|________|_
\\ / ********** \ ------+ +-------- / ********** \
\\ / ************ \ / ************ \
Prueba de Funcionamiento
Antes de adentrarse en la comunicación serial, es necesario configurar el entorno. Para ello, sigue los siguientes pasos:
Instalar Python: Verifica la instalación en una consola o shell con el siguiente comando:
python --version
Instalar el paquete de pruebas: Este paquete contiene una interfaz para la comunicación serial. Instálalo con:
pip install chatos
Abrir una consola o shell y ejecutar el siguiente comando:
python -m chatos
La funcionalidad de la interfaz es simple: actualizar las conexiones disponibles y conectarse al dispositivo CH552, para lo cual necesitas conocer el puerto COM.
Nota: Para usar otro “Chat” en el mismo dispositivo para pruebas, abre una nueva consola y escribe el comando python -m chatos
. Esto abrirá una nueva interfaz que permitirá comunicar dos dispositivos COM.
Si bien no solo se puede usar como un convertidor USB a TTL, sino también puede introducir ciertas secciones de código para realizar ciertas funciones independientes.
Abre el ejemplo USBSerilalAdaptor2.ino desde File -> Examples -> Unit_SketchLab_Advance -> USBSerilalAdaptor2.ino
Agregando funcionalidad al CH552 adaptador
El convertidor USB a TTL CH552, permite elaborar rutinas internas como secuencia de encendido de led o respuesta de algún parámetro se desee visualizar, ejecutar internamente del microcontrolador.
El código de ch552-USB-TTL permite establecer las rutinas personalizadas realizando las adecuaciones necesarias al código ejemplo dado por el desarrollador.
Nota: Ten en cuenta que este código es un ejemplo y puede que necesites ajustarlo según tu configuración específica y tus necesidades.
⌨️ con ❤️ por UNIT-Electronics 😊