Resumen el Arduino sketch carga proceso y ISP (1 / 10 paso)

Paso 1: FTDI o subir serial

FTDI es realmente una marca de patatas fritas. La empresa FTDI se especializa en virutas usadas para conectar vía USB. En tierra de Arduino, se utilizan chips USB to serial para un equipo que ejecuta el IDE de Arduino al procesador principal de tu Arduino para subir nuevos bocetos y para interactuar con sus dibujos a través de una ventana de monitor serie. Las interfaces de chip USB to serial con la interfaz UART del procesador ATMEL en su Arduino.

En orden para el Arduino aceptar un boceto de la interfaz serial, funciona un programa llamado un gestor de arranque, que acepta el dibujo y escribe en la memoria Flash. El gestor de arranque reside realmente en una pequeña porción de la memoria Flash en la gama superior de direcciones de memoria, que es reservada para el uso del gestor de arranque. Como el programa bootloader recibe el bosquejo, almacena en la parte inferior de la memoria Flash.

Esta programación serial utiliza un protocolo llamado TTL serie. Se basa en un antiguo protocolo de comunicación llamado RS-232. Comunicaciones RS-232 utilizan tensiones que cambian rápidamente de un voltaje positivo de 3 a 25 voltios, a una tensión negativa de -3 a-25 voltios. Computadoras personales por lo general no vienen con interfaces RS-232, pero ellos hace unos años. Un PC con una interfaz tan típicamente utiliza tensiones que oscilan entre 12 y-12 voltios para enviar una señal RS-232. El procesador de ATMEL en un Arduino utiliza señales en el rango de 0 a 5 voltios. La versión de este protocolo RS-232 que es compatible con los voltajes en el rango que puede manejar el procesador de Arduino se llama TTL serial, o a veces puede escuchar llamado TTL-232, o a serie.

Arduinos la mayoría tienen un integrado de chip adaptador USB a serial, para que pueda conectar el Arduino directamente al ordenador sin ninguna interfaz especial o programador. Algunos Arduinos, LilyPad, Mini y Mini Pro, no vienen con un adaptador de USB a serie y debe proporcionar su propio uno externo. Los adaptadores externos muy a menudo se llaman adaptadores FTDI, incluso si la marca de la viruta no es FTDI.

Hay varias conexiones o cables de comunicación serial. Los más importantes se llaman RX (corto para recibir) y TX (corto para transmitir).

Como su nombre indica, el cable RX o pin recibe de otro dispositivo. Escucha para la comunicación entrante. El cable TX o pin transmite datos a otro dispositivo. El cable TX desde el adaptador de USB a serial rápidamente cambia entre 0 y 5 voltios en un patrón, y está conectado al pin RX en el procesador de Arduino, que es escuchar a esos patrones.

La comunicación es bidireccional, por lo que procesador de Arduino puede enviar señales hacia el adaptador de USB a serie. Las aplicaciones de procesador es propio TX pin para enviar una señal al pin RX del adaptador USB a serie. El adaptador de USB a serial traduce las señales de ida y vuelta entre el Arduino y el ordenador mediante el cable USB.

El ordenador envía el dibujo a tu Arduino y recibe el sketch de Arduino para que el equipo puede verificar que el programa está bien cargado. La misma conexión serial puede utilizarse por su sketch en Arduino para comunicarnos con usted a través de la ventana del monitor serie. Es común utilizar este método para depurar tus bocetos, porque puede espolvorear Serial.print declaraciones en el código en lugares estratégicos para informar el valor de las variables o para contar lo que está haciendo el código en el momento. Y puede enviar datos a su computadora, como el sensor o lecturas de pin de entrada. También puede enviar datos desde el ordenador al dibujo en su Arduino usando al monitor serie.

¿Usted puede preguntarse cómo el Arduino sabe cuando comunicación serial es tratando de enviar un bosquejo para cargar, o simplemente comunicarse a través del monitor serial con el bosquejo que ya se está ejecutando en el Arduino? La respuesta es sencilla. El programa gestor de arranque que acepta bocetos y reprograma el Arduino sólo funciona en los dos primeros segundos después de que se reinicia el procesador del Arduino. Si el programa bootloader de Arduino no recibe una cierta secuencia de caracteres que indica un dibujo es intentar subir, sale corriendo y empieza el boceto que ha cargado previamente.

Cuando Arduinos fueron desarrollados en primer lugar, la persona cargando un sketch en Arduino tuvo que presione el botón de reset en el Arduino en el inicio del proceso de carga, tiempo correctamente y vuelva a intentarlo. Las versiones posteriores de Arduino hace uso de un cable adicional protocolo serial llamado DTR para restablecer automáticamente el Arduino. Puesto que la señal DTR va de 5V a 0 en el momento que se inicia una nueva conexión con Arduino, si usted envía esta señal a la línea de reset del procesador de Arduino, se pone a cero. Si la razón que se establece la nueva conexión serial es porque el IDE de Arduino envía un boceto para el gestor de arranque, el gestor de arranque sigue adelante y acepta el bosquejo y la almacena. Si razón que se establece la nueva conexión serial es porque estás abriendo al monitor serie del IDE de Arduino, luego la restablece de Arduino, el gestor de arranque ejecuta sólo lo suficiente para darse cuenta del que IDE no está tratando de enviar un boceto y el dibujo que previamente subido comienza a correr.

Es útil conocer estas señales como la señal DTR usado para reajuste automático, especialmente si usted quiere conectar correctamente un adaptador USB a serial a un Arduino que no tiene el adaptador construido en, como LilyPad, Mini o Mini Pro. O, si desea solucionar problemas con un Arduino, o programa de uno Arduino con otro. He mencionado en el párrafo anterior que la señal DTR va de 5V a 0 en el momento que se establece una conexión nueva. Bien, esta señal baja y permanece baja durante todo el tiempo que está conectado. Si esa señal se une directamente al pin de reset del procesador, el procesador se quedaría en un estado de reset y nunca empezar ejecutando el gestor de arranque o el boceto que has subido previamente.

Así que, aquí está el truco: DTR la señal es enviada a través de un pequeño condensador al pin de reset del procesador. El condensador convierte el voltaje de la señal DTR (que baja y se mantiene la baja) en un punto temporal que baja a 0V y sube hacia atrás a 5V. Esto restablece el Arduino y permite que se inicie el gestor de arranque, que más tarde comienza el bosquejo.

Un adaptador de USB a serial requiere un conductor para ser cargado en su computadora, para que su equipo entienda cómo comunicarse con él. Arduinos originales use específica y finita lista de modelos de adaptadores de USB a serie para que el IDE se puede empaquetar previamente con todos los drivers que necesites. Si está usando un clon, falso, derivado, hecho en casa o junta de desarrollo compatible de lo contrario no hecha por alguien distinto de arduino.cc o uno de sus socios fabricantes, está realmente bien ya que es software y hardware de código abierto. Cualquiera puede hacer uno. Pero la junta puede utilizar un adaptador de USB a serial que necesita un controlador para su equipo y que no está incluido en la descarga de software para el IDE de Arduino. Un ejemplo de esto es el chip de CH340G USB a puerto serie que es muy común en placas Arduino-compatible vendidos en eBay y Amazon. Es bueno tener conocimiento de esto por lo que preparar el ordenador con el driver adecuado.

Esta comunicación serial pasando con procesador de Arduino generalmente sucede a través de pernos especializados en el procesador en el que están específicamente diseñados para la comunicación serie TTL. El procesador tiene hardware especial llamado un UART, que se encarga de enviar los datos por el pin TX o recepción de datos en el pin RX. La lógica para el manejo de estas señales es incorporada en el procesador a un nivel muy fundamental. Si no utiliza los pines RX y TX en el procesador para comunicación serial con el UART, los pernos están disponibles para hacer otras cosas, como la activación de relés, transistores, LEDs, o recibe señales digitales de los sensores. Ellos simplemente pines digitales si no ocupaban con las señales de serie. Algunos chips de procesador tienen múltiples UARTs y por lo tanto varios conjuntos de pines RX y TX. Los pernos son pines digitales llano si no se utiliza por la parte de la UART del procesador para comunicación serial.

Un gestor de arranque puede ser diseñado para aceptar bocetos a través de cualquier protocolo usando casi cualquier pines del procesador. El procesador tiene una gran variedad de pernos que llano pines digitales pero esos pines se pueden utilizar opcionalmente para protocolos especializados. Por ejemplo, hay un grupo de pines que puede ser utilizado para el protocolo IIC o I2C, que es un protocolo de bus serie especial capaz de comunicarse con varios dispositivos. Y hay otro grupo de pines que puede ser utilizado para el protocolo SPI, que es sin embargo, otro protocolo de bus serie diferentes utilizado para comunicarse con dispositivos. El procesador posee hardware especial diseñado para implementar estos protocolos diferentes en los varios pernos dedicados, y la lógica para el manejo de estas señales es incorporada en el procesador a un nivel muy fundamental.

Twister #1: Estos diversos protocolos como TTL serial, I2C y SPI tienen la lógica de bajo nivel integrada en el procesador para el manejo de los protocolos si los pines específicos para el protocolo están conectados a otro dispositivo, pero los protocolos pueden ser implementados para trabajar en cualquiera de los pines digitales del procesador por escribir software que emula el comportamiento de los circuitos de lógica incorporado del procesador. Esto se denomina bit de autoagresión. Puede escribir un programa que impulsa los pernos en un patrón que cumpla con los requisitos o especificaciones del protocolo. Por ejemplo, puede escribirse un protocolo serial de software que utiliza pines UART no del procesador. El software entonces toma el lugar de los circuitos UART hardware. Esto es útil si los pasadores que se emplean habitualmente para un protocolo concreto se ocupan de lo contrario, y es necesario utilizar otros pins. O, si usted quiere tener más que la incorporada con una interface serie. Por ejemplo, el procesador ATmega328P tiene solamente una UART y utiliza los pines digitales 0 y 1. Normalmente sólo se comunica con un otro dispositivo serial a la vez. Si usted quiere conectar otro dispositivo serial en las patillas 2 y 3, puede hacerlo con un programa serial que bit-bangs el protocolo. El bootloader Optiboot puede compilarse para comunicarse a través de software serie en pines UART no.

Arduinos vienen comúnmente con un bootloader serial instalado, que utiliza el hardware UART a bordo el procesador ATMEL, y el IDE de Arduino ejecutándose en el equipo está diseñado para comunicarse con ese bootloader.

Twister #2: Usted no necesita un gestor de arranque! Lea a continuación sobre ISP.

Artículos Relacionados

Táctil teclado / controlador con Arduino y el proceso del juego

Táctil teclado / controlador con Arduino y el proceso del juego

este instructable describe de una manera rápida y sencilla para crear un teclado táctil o un controlador de juegos con-cartón,-papel de aluminio,- y un Arduino.También proporciona los códigos de Arduino y el proceso para comenzar a jugar inmediatamen
LC-2000 (PA)-P2P 2.4GHz RF remoto Arduino Sketch cargar Demo

LC-2000 (PA)-P2P 2.4GHz RF remoto Arduino Sketch cargar Demo

Este documento da un ejemplo de cómo utilizar LC-2000 (PA)-P2P para terminar de cargar Wireless. El módulo serie LC-2000-P2P está trabajando en por a por el modo, una pares de LC-2000-P2P ha contenido dos unis, uno es maestro y otro esclavo, puede up
Apagado de un Arduino Sketch usando el interruptor de alimentación del chip

Apagado de un Arduino Sketch usando el interruptor de alimentación del chip

si usted necesita un Arduino para cerrar desde dentro de tu bosquejo, esta es la solución.Exploraremos el chip pulsador interruptor, programar el Arduino para apagar la energía y el unidad "poder sobre" sólo de cableado.El interruptor del pulsad
Célula de carga de Arduino / escala

Célula de carga de Arduino / escala

De las mentes en http://arduinotronics.blogspot.com/Actualización importante!Ya que muchas personas estaban teniendo problemas con el INA125P, ahora tenemos una nueva y mejorada versión que utiliza el módulo de amplificador de 24 bits ADC Hx711. http
Usar Arduino para comunicarse con el controlador de carga Indicador MT5

Usar Arduino para comunicarse con el controlador de carga Indicador MT5

Compré un rastreador MPPT 3215RN controlador de carga Solar, hecho por EP Solar (también he visto SainSonic mencionado como el fabricante, pero es el mismo producto). Yo quería usar mi ordenador para monitorear el panel fotovoltaico y la batería en v
Reloj de Arduino Etch-A-Sketch

Reloj de Arduino Etch-A-Sketch

he visto varios Arduino por Etch-A-Sketch relojes en la web, pero ninguno con las instrucciones (¿es algún tipo de secreto? Es alguien pensando en hacer rico en el mercado global de reloj Etch-A-Sketch?). He usado Arduino, pero nunca utilizar motores
Arduino Bluetooth programación escudo (código de carga inalámbrica)

Arduino Bluetooth programación escudo (código de carga inalámbrica)

Este proyecto le mostrará cómo hacer un código de Arduino de carga inalámbrica de tu ordenador via Bluetooth.Paso 1: Paso #1: protoboard el circuito de instalación del módulo de Bluetooth. •El módulo de Bluetooth utilizado en este proyecto es el HC-0
Sketch de Arduino X-Mass

Sketch de Arduino X-Mass

X masa de Arduino sketch con 8 modos (de izquierda a derecha, de centro, dos pivotes, barra, invertida izquierda derecha, paso a paso, de progreso tetris, incrementor).Bosquejo de código fuente:https://GIST.github.com/1508578
Mano Pong invasores y en barato (Arduino compatible)

Mano Pong invasores y en barato (Arduino compatible)

Un sistema de juegos portátil retro lo suficientemente barato como para proyecto infantil. ¿Posible? Absolutamente! Solo trae la alimentación de Arduino y componentes chinos baratos!Este proyecto fue diseñado como un proyecto de soldado para un grupo
Hacer un Tracker de globo de la alto-altitud (Arduino)

Hacer un Tracker de globo de la alto-altitud (Arduino)

Uno de los mejores proyectos que he hecho hasta ahora con mis hijos es un globo de "cerca de espacio". Que no es absolutamente en el propio espacio (100 Km +), pero tan alto que el cielo se ve negro y puede empezar a ver la curvatura de la tierr
Cómo hacer un control remoto inteligente web-títere por hacking Twitter, Google, Skype, Arduino y procesamiento!

Cómo hacer un control remoto inteligente web-títere por hacking Twitter, Google, Skype, Arduino y procesamiento!

Cómo manipular un objeto físico en la web sólo mediante el uso de servicios comunes de la web y sus datos de acceso se alimenta, con alguno añadido abrir cosas fuente para decodificar y manipular los datos y, en definitiva, utilizar los datos para mo
Escudo de programación de Arduino AVR

Escudo de programación de Arduino AVR

Necesita una manera rápida y fácil programa AVR virutas. ¿Sabías que puedes usar el Arduino y el IDE de Arduino? Este escudo Arduino hace el proceso mucho más fácil.Puedes:Quemar un bootloader en un reemplazo Atmega328 para su UNO.Hacer un proyecto i
Sensorino inalámbrico iluminación casera con Arduino

Sensorino inalámbrico iluminación casera con Arduino

Domótica existe por un tiempo (desde los años 90?) y ha sido bastante cara pero con el advenimiento de Arduino y sobre todo baratos sensores, relés, componentes de Ebay hay ya no de cualquier razón inherente de un fabricante no automatizar su hogar.
Quema de bosquejo Atmega328P-PU en un protoboard utilizando Arduino Uno como programador

Quema de bosquejo Atmega328P-PU en un protoboard utilizando Arduino Uno como programador

Ya hay varios instructables sobre cómo quemar Arduino sketch Atmega328P-PU en un protoboard utilizando diferentes USB - UART módulos. Sin embargo, como la mayoría de dichos módulos se hacen en China, son pobremente documentadas, etiquetados incorrect