La conexión USB de la placa Arduino, además de servir como alimentación eléctrica, sobre todo es un medio para poder transmitir datos entre nuestro computador y la placa, y viceversa. Este tráfico de información que se realiza entre ambos aparatos se logra gracias al uso del protocolo USB, un protocolo de tipo serie que tanto nuestro computador como la placa Arduino son capaces de entender y manejar. No obstante, el protocolo USB internamente es demasiado complejo para que el microcontrolador ATmega328P pueda comprenderlo por sí mismo sin ayuda, ya que él tan solo puede comunicarse con el exterior mediante protocolos mucho más sencillos técnicamente como son el I2C o el SPI y pocos más. Por tanto, es necesario que la placa disponga de un elemento "traductor” que facilite al ATmega328P (concretamente, al receptor/transmisor serie de tipo TTL-UART que lleva incorporado) la manipulación de la información transferida por USB sin que este tenga que conocer los entresijos de dicho protocolo.
La placa Arduino UNO R3 dispone de un chip que realiza esta función de "traductor” del protocolo USB a un protocolo serie más sencillo (y viceversa). Ese chip es el ATmega16U2. El ATmega16U2 es todo un microcontrolador en sí mismo (con su propia CPU, con su propia memoria -tiene por ejemplo 16 Kilobytes de memoria Flash para su uso interno.
En modelos de la placa Arduino anteriores al UNO (como el modelo NG, el Diecimila o el Duemilanove) el chip ATmega16U2 no venía: en su lugar aparecía un circuito conversor de USB a serie del fabricante FTDI, concretamente el FT232RL. Una ventaja de haber sustituido el FT232RL por el ATmega16U2 es el precio.
No hay comentarios:
Publicar un comentario