Introducción
Existen en el mercado distintos tipos de placas Arduino para la realización de infinidad de proyectos. Puedes consultar nuestra entrada de "iniciación a Arduino" para obtener más información acerca de los distintos modelos y características. Hasta ahora, nosotros hemos trabajado con Arduino Uno sin excesivos problemas. Sin embargo, últimamente nos topamos con que determinados tipos de placa no funcionaban correctamente en Windows y sobre todo en Linux, principalmente los Arduino NANO. Nos pusimos a investigar hasta que encontramos el problema y posteriormente la solución.
Arduino nano, pequeño y funcional |
Arduino uno, para proyectos más voluminosos |
Raíz del problema: controlador CH340 versus RS-232
Los controladores RS-232 y CH340 son dos tipos diferentes de chips utilizados para comunicar distintos aparatos mediante el puerto serie, y por tanto incluido en todas las placas Arduino para que estas puedan "hablar" con el PC. Aquí están las diferencias entre ellos:
El RS-232 es un estándar de comunicación serial ampliamente utilizado en la industria y su creación se remonta al año 1962 (aunque se ha ido revisando y actualizando constantemente hasta el día de hoy). Por otro lado, el CH340, mucho más moderno y barato, es un controlador USB a UART que permite la comunicación entre la placa Arduino y un puerto USB en la computadora. No sigue el estándar RS-232, sino que utiliza una comunicación UART (Universal Asynchronous Receiver-Transmitter).
Existen muchas diferencias entre RS-232 y CH340. Por ejemplo, el RS-232 utiliza voltajes positivos y negativos relativamente altos (hasta ±15V) para transmitir datos, lo que permite una mejor inmunidad al ruido y una mayor distancia de transmisión. En cambio, el CH340 utiliza niveles de voltaje TTL (Transistor-Transistor Logic) de 0V y 5V para representar los bits de datos.
El CH340 es un chip conversor USB a UART, lo que significa que se encarga de convertir la comunicación USB de la computadora en una señal UART que la placa Arduino pueda entender. Por otro lado, el RS-232 no requiere una conversión USB a UART, ya que utiliza un estándar de comunicación diferente.
Cuando comenzaron a crearse las primeras placas Arduino (italianas), se incluyó en su diseño al antiguo controlador estándar RS-232. Esto tenía la ventaja de proporcionar una comunicación más básica y directa a costa de un mayor consumo y un mayor precio. Posteriormente se diseñaron nuevas placas Arduino más económicas (procedentes principalmente de China) que hacían uso del controlador CH340. La diferencia de precios entre una placa que utilizada el estándar RS-232 y otra que usa el CH340 puede ser de entre 10 y 15 euros en el mercado (las placas Arduino UNO originales tienen un precio de unos 15 euros frente a los 4 euros de las placas chinas con controlador CH340). Aquellas siguen usándose por razones de compatibilidad para determinados equipos antiguos que usan puertos serie estándar. La elección entre comprar una y otra por tanto depende de las necesidades específicas de comunicación, la compatibilidad de la placa Arduino que estés utilizando y del del precio.
La placa superior incluye el controlador RS-232. La placa inferior incluye el controlador CH340. |
Detalle del controlador CH340 |
Problema a la hora de utilizar los Arduino CH340
Hemos podido comprobar que cuando conectamos una placa Arduino con controlador CH340 al puerto USB del PC, este no siempre la reconoce. Y cuanto esto ocurre, el IDE de programación de Arduino no se comunica correctamente con la placa, con lo que genera errores como el siguiente:
Windows no dispone de forma nativa de los controladores necesarios para usar CH340. No entendemos la razón, pues hoy en día se trata de un controlador estándar usado en miles de productos. Por tanto, cuando conectamos una placa Arduino "china", esta no es reconocida y al intentar subir el programa a la misma se generan los errores antes mencionados.Soluciones encontradas
En Windows la solución es simple. Solamente debemos instalar el driver que maneja el controlador CH340. Podemos encontrarlo fácilmente en Internet, o descargarlo de este enlace.
Driver para instalación en Windows. Una vez descargado debemos ejecutarlo. |
Durante la ejecución aparecerá esta pantalla. Es posible que Windows, durante el proceso, nos solicite permiso para la instalación, en cuyo caso debemos aceptar. |
A continuación se mostrará esta pantalla. Entonces deberemos pulsar "Install" |
Cuando finalice la instalación, se nos mostrará el siguiente mensaje. Ya podremos usar Arduino sin problemas |
Ahora, cuando conectemos la placa Arduino aparecerá el siguiente mensaje en Windows |
Aparato Braille con controlador CH340 que entra en conflicto con Arduino NANO |
Configurar IDE para usar el Arduino correcto
Parámetros de configuración de Arduino NANO en Linux |
Pablo Díaz Márquez
No hay comentarios:
Publicar un comentario