Eu tenho lutado para criar um Arduino por um tempo (foi bem-sucedido em fazer uma versão de placa de ensaio usando um cabo de programador ISP ). Eles dizem que o carregador de inicialização do Arduino é feito para que nenhum circuito externo seja necessário para programar o ATmega8 . Mas, quando examinei os esquemas, há o circuito normal necessário para a conexão serial. Então, o que o gerenciador de inicialização realmente faz?
arduino
bootloader
Rick_2047
fonte
fonte
Respostas:
O gerenciador de inicialização é um pequeno programa no flash do AVR que nunca é sobrescrito e é executado na inicialização. O trabalho do carregador de inicialização é ler os dados do programa do UART e gravá-los no flash interno. Sem um carregador de inicialização, a única maneira de carregar o código é usando o ISP.
O AVR ATMega8 vem sem código no flash. O código pode ser carregado através dos pinos do ISP (na programação do sistema), usando um programador AVR ISP (ou mesmo outro Arduino).
Para o Arduino, o ISP é usado apenas uma vez (na fabricação) - para carregar um pequeno carregador de inicialização. Na energização, o carregador de inicialização é executado e se comunica com o UART serial (pinos TX + RX). Agora, o Arduino pode ser programado através dos pinos seriais usando o protocolo STK500.
Como os pinos seriais são (normalmente) conectados a um chip USB para serial FTDI, o Arduino também pode ser programado por USB.
fonte
Você pode comprar chips ATmega328 com o carregador de inicialização neles aqui .
fonte
Eles provavelmente significam que, se você compra um Arduino Uno pré-construído e montado, também não precisa comprar um programador. Como com muitos outros starterkits eletrônicos. Você pode programar a placa Arduino Uno com apenas um cabo usb (A> B).
No entanto, se você for construir seu próprio Arduino, é claro que precisará de um circuito externo (por exemplo, um programador AVR ISP) ou o tipo de material Max232 ou FTDI.
fonte
A idéia por trás do carregador de inicialização do Arduino é que você não precisa de nenhum hardware ou circuitos especiais para reprogramá-los, em comparação com a programação inicial, ou um microcontrolador antigo, que geralmente precisa de um programador dedicado (como PicKit2 para PIC MCUs). O gerenciador de inicialização permite a programação através de uma conexão serial básica.
Obviamente, na época, você precisava do link serial, normalmente um conversor rs232 de TTL para RS232. Em seguida, as portas seriais sendo eliminadas gradualmente, usb para serial se tornou onipresente, permitindo que isso substituísse um max232 ou similar. E agora, o uso do microcontrolador Atmel habilitado para USB permite que isso seja desnecessário; portanto, um único ic com partes passivas mínimas pode fornecer as funções do Arduino e o USB para Serial. Agora você só precisa de um cabo USB e alguns passivos para fazer o upload de um esboço. A programação inicial do gerenciador de inicialização ainda requer programação ICSP tradicional.
fonte