Eu não entendo o conceito do Arduino


8

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?


1
nenhum circuito externo é uma alegação absurda ... para falar com um computador através de uma porta serial, você precisa pelo menos de um transceptor RS232, como um MAX232 de algum tipo; ou como o arduino, você pode conversar com TTL UART diretamente em um chip de interface USB como FTDIs.
vicatcu

Respostas:


12

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.


Então você está dizendo que, se eu tiver um chip atmega8 com um gerenciador de inicialização queimado, posso remover todos os circuitos do ISP e conectar os pinos apropriados da serial ao arduino? Além disso, você pode me dizer como eu vou ligar a série com o ATmega8
Rick_2047

2
Depois de ter o gerenciador de inicialização, aqui está um circuito Arduino muito mínimo. Conecte seu PC (através de um conversor de nível TTL) aos pinos TX / RX / GND. profmason.com/wp-content/uploads/2008/09/arduinopins.jpg Veja esta pergunta para obter mais detalhes: chiphacker.com/questions/2512/ftdi-basic-breakout-5v
Toby Jaffey

1
O max232 converte sinais seriais de nível RS232 (como vem do conector de 9 pinos em um PC) em sinais de nível TTL (5v) adequados para conversar com o Arduino / AVR. O circuito max232 pode ser substituído por um chip serial FTDI USB to TTL para conectar-se a um PC.
Toby Jaffey

2
Uma pequena observação aqui: O carregador de inicialização do Arduino apenas escuta na porta serial novos códigos por um período muito curto na inicialização. Os carregadores de inicialização mais antigos do Arduino aguardam alguns segundos antes do início da execução do código. Carregadores de inicialização mais recentes iniciam muito rapidamente e precisam ser redefinidos pela linha DTR a partir de um FT232. Se você planeja usar um max232, faça upload do gerenciador de inicialização mais antigo. Verifique também o Sparkfun ( sparkfun.com/commerce/tutorial_info.php?tutorials_id=104 ) para obter alguns ótimos tutoriais sobre AVR.
Bpijls

2
É o código do objeto AVR real. O Arduino vence algumas plataformas rivais (por exemplo, carimbo básico), na medida em que executa código de objeto compilado e não um intérprete.
Toby Jaffey

3

Você pode comprar chips ATmega328 com o carregador de inicialização neles aqui .


Eu só ordenou 4 hoje (a partir do site ZA embora) :)
leppie

1

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.


0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.