Paso 7: El otro protocolo, CDC-serie
¿Recuerdas cuando te dije hay dos métodos para cargar software a un Arduino? Bueno, yo puedo haber fibbed un poco. Aquí es un tercero. Algunos modelos de Arduino, como Leonardo, Pro Micro, Micro, Robot, Esplora, tienen un procesador ATmega32U4. Tiene pines para el protocolo de USB y se lógica de bajo nivel diseñado específicamente para interfaz USB. Lo que esto significa es no hay ningún adaptador de USB a serial o chip en todos, y el ATmega32U4 está conectado directamente al USB del ordenador.
La información se pasa entre el ordenador y el Arduino mediante un protocolo que imita o representa en TTL serial, pero no es patillas expuestas para RX y TX involucrados. Los pines RX y TX en el Leonardo y otros Arduinos ATmega32U4 basado no participan en absoluto en el gestor de arranque o subir proceso. La conexión USB es una especie de UART0 implementado por el firmware que utiliza en sus bocetos con declaraciones como Serial.print. Los pines RX y TX están conectados a un secundario UART, que es la UART1, y se utilizan en su sketch con declaraciones como Serial1.print.
Puesto que la interfaz USB serial CDC no tiene pines físicos tales como RX y TX y el otro relacionado con TTL-232 pines, no tenemos acceso a un perno DTR para restablecer el Arduino y hacerlo correr el gestor de arranque. Las clavijas USB simplemente son D + y D-. ¿Qué hace que? Los diseñadores de Leonardo pensaban largo y tendido sobre esto y subieron con una solución interesante. Aunque la interfaz de serie de CDC en el procesador ATmega32U4 no utiliza realmente baudios como líneas serie, es consciente de Cuándo el ordenador está solicitando establecer una tasa de baudio particular. Programó el IDE de Arduino para hacer un cambio de tasa de baudios 1200 por solo un segundo y luego cambiar a 57600. Esto se llama un 1200bps_touch y se puede ver la configuración si estudias el archivo boards.txt que es parte del paquete de software IDE de Arduino. Leonardo detecta y Resetea el procesador utilizando un método de vigilancia. Continuación, se ejecuta el gestor de arranque. El gestor de arranque se llama Caterina. Es diferente de los Arduinos ATmega328P basado en que no acepta el bosquejo utilizando las líneas RX y TX. Caterina utiliza el USB ingles y D-líneas.
Así, Leonardo y otros Arduinos ATmega32U4 basado no restablece al abrir a monitor serial o iniciar otro proceso serial con ellos. Sólo restablece cuando el IDE la 1200bps_touch justo antes de subir un dibujo. Por esta razón no necesita desactivar reinicio automático con un condensador cuando se utiliza como un programador.