É bastante fácil usar um chip Arduino independente. A única coisa complicada sobre o chip usado para as placas oficiais é que elas são fundidas para usar o oscilador externo mais rápido (e mais preciso) que é montado na placa. Isso se aplica mesmo quando você compra os chips soltos, já que a maioria é revendida com a intenção de ser instalada em uma placa Arduino para substituir uma placa queimada, com exceção talvez das da Digikey.
Advertências: O Arduino foi projetado como uma placa de prototipagem e poucas coisas se saem melhor do que nesta tarefa. Você pode deixar o chip na placa do Arduino até terminar de projetar e testar seu circuito. Somente então você o conecta diretamente. Ele pode ser usado no local se você tiver um circuito de relógio no lugar ou alterar os fusíveis (veja mais adiante) e reprogramar o Arduino com um adaptador ISP e uma velocidade de clock de 8 mhz (o PlatformIO permite fazer isso ( e permite a conexão direta). importações de um esboço do Arduino) - verifique a página de documentos para o plug-in Atmel AVR, mas você também pode consultar vários guias sobre como adicionar um arquivo de placa ao Arduino para instruí-lo a usar a opção de 8 mhz para um chip vazio)
Se você remover o chip para uso em um circuito diferente, ele precisará que o circuito do relógio seja adicionado novamente ou que seus fusíveis sejam trocados (eu chegarei a isso em um minuto). Também será difícil programar, por várias razões, portanto, você desejará comprar um hardware bastante barato:
Programando um chip autônomo: A CPU do Arduino não é projetada nativamente para conversar com um computador. Você precisa de um intermediário. No Uno, isso é feito através de um segundo chip Atmel que possui capacidade USB e um gerenciador de inicialização no chip principal. O que isso faz é que ele usa o UART para carregar o programa enquanto o chip USB converte as mensagens do PC em sinais UART. Como o carregador de inicialização é um pouco problemático quando o chip é por si só (como o UART é exigente e a instalação o define para usar um relógio externo como resultado), convém comprar um programador de ISP para o Arduino (ou siga o esboço e as instruções do Arduino como ISP para criar o seu, o que requer um Arduino com chip presente, para que você precise de um segundo para ser programado).
Eles podem programar o ATMega 328 diretamente no SPI, sem um gerenciador de inicialização (existem muitas instruções na Internet; pesquise "programe o ATMega 328P com USBAsp", por exemplo). Isso torna muito mais fácil alterar e depurar seu programa fora da saída do chip e voltar à placa original do Arduino. Você também precisa de um para alterar as configurações do relógio, se não quiser usar um cristal externo.
Se você deseja depurar o chip, é útil comprar também um adaptador FTDI ou outro conversor USB-UART. Observe que, sem a parte do circuito de redefinição da placa (ou novamente, adicionando a sua), isso ainda não permitirá que você programe o ATMega mesmo com o gerenciador de inicialização. Para isso, conecte os pinos terra, RX e TX ao adaptador. Você pode ou não querer conectar a linha VCC, mas é aconselhável que não o faça se houver muitas coisas conectadas ao chip e / ou se tiver sua própria fonte de alimentação. Observe que o RX e o TX precisam ser trocados quando você os conecta; ou seja, RX para TX e TX para RX - você deseja que o chip RX (receba) o que o adaptador é TX (transmitindo) e vice-versa.
O circuito do relógio não é difícil de construir, mas requer alguns componentes que você pode não ter. Portanto, para alterar a fonte do relógio , acesse http://www.engbedded.com/fusecalc/ e selecione o ATMega 328P. Os padrões são bons, mas convém ativar a EEPROM e apagar o relógio dividir por 8 ou ajustar as configurações de interrupção. Não toque em mais nada (desabilitando a redefinição ou SPI ou habilitando o resultado do DebugWire em "diversão" que requer a correção de um programador de alta tensão). Quando terminar, cole o comando que ele fornece ao comando AVRDude. Você precisará alterar as opções -c (-p já está definido para o ATMega 328P, mas falhará para não-P 328s - não compre) - e talvez adicione a opção -P (para Port). Não omita a opção -u em minúscula ou ela se recusará a atualizar os fusíveis.
avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]
Observe que, se você compra um USBASP (verifique se ele possui três conjuntos de jumpers!), Apesar de todos serem meus programadores favoritos, eles podem não ter o firmware atualizado que suporta a opção -B (que você provavelmente precisará). Isso significa que você precisa conectá-lo a um Arduino por meio da porta de programação de seis pinos, exatamente da mesma maneira que o utilizaria para programar o gerenciador de inicialização do Arduino, mas depois usar o esboço Arduino como ISP para programar o novo firmware para o programador (procure "atualize o firmware usbasp via arduino-as-isp")! Para referência, isso geralmente significa que o cabo está voltado para longe do corpo da placa, e você provavelmente terá que programar o esboço antes deconectar o cabo. Ative também o jumper de energia do programador no USBASP (5V) e o "auto-programa". (consulte https://forum.arduino.cc/index.php?topic=560719.0 para obter a localização dos jumpers de potência e de programa (JP2)).