Gostaria de usar um ATMega328P para o meu projeto, espero fazê-lo sem a placa Arduino.
Eu sei que com o Arduino IDE e uma placa Arduino posso programar o microcontrolador. No entanto, seria possível, depois de programar e depurar o programa com a placa Arduino IDE + Arduino, retirar o microcontrolador da placa Arduino e usar o ATMega328P separadamente, sem a placa?
Em caso afirmativo, que configurações adicionais devo fazer no ATMega328P para funcionar corretamente na placa de ensaio?
arduino-ide
atmega328
George
fonte
fonte
Respostas:
Você pode remover um ATMEGA de um Arduino e usá-lo em sua própria placa, no entanto, quando usado em uma placa Arduino típica, o chip será fundido para um cristal externo como fonte de relógio, em vez do relógio interno (mais simples, mas menos preciso).
Você não pode alterar a fonte do relógio pelo ISP, a menos que a fonte do relógio que o chip está atualmente esperando esteja operacional; portanto, se você quiser alterar a seleção do relógio, faça isso antes de remover o chip do Arduino.
No entanto, você também pode fornecer um cristal de clock e seus dois capacitores (ou um ressonador substituto que geralmente possui esse recurso) na sua placa externa.
Normalmente, os chips (mesmo aqueles pré-flashados com um gerenciador de inicialização como conveniência) são mais baratos que as placas; portanto, não está claro por que você deseja mover o mesmo chip do Arduino, em vez de usar outro. De qualquer maneira, você precisará de um adaptador serial de nível lógico USB e, depois disso, poderá desenvolver o chip básico em sua placa, mesmo que faça testes iniciais no Arduino. Se não tiver o conversor USB, você pode puxar o chip para fora de uma placa Arduino e passar os fios dos D1 e D0 ou manter o chip on-board em redefinição para permitir que você empreste essas linhas seriais sem interferência.
fonte
Sim, você pode usar
ATMega328P
sem placa de arduino. Eu sempre uso o IC sem arduino. Existem duas maneiras de fazer isso.16MHZ Oscillator
com capacitores.USBasp
programar o seuAtmega328p
. Nesse caso, não use o botão de upload direto. Em vez disso, use o upload usando as opções do programador no menu Arquivo. Não esqueça de selecionar o quadro comoArduino Pro or Pro Mini (5v, 16mhz) With ATmega328
e o programador comoUSBasp
.NOTA : Consulte Atmega328p Pin Mapping e programe seu dispositivo de acordo. Desfrutar!
fonte
Procure por "Construir um Arduino" - você encontrará vários artigos com instruções sobre como fazer exatamente isso. Você precisaria ser capaz de soldar as conexões em uma placa de circuito impresso (e nem isso se você quisesse usar uma tábua de pão sem solda), mas é realmente simples. Você pode até construí-lo primeiro e programar o MCU na PCB usando um cabo FTDI. Eu uso uma placa Arduino e uma placa de ensaio sem solda para experimentar peças desconhecidas, mas geralmente vou imediatamente para uma placa feita à mão quando estiver familiarizada com todos os componentes que vou usar.
A criação de protótipos com a placa Arduino permite reunir várias partes e fazer com que algo funcione rapidamente, e se o Arduino for mais capaz do que seu objetivo final - f / ex, um Mega 2650 - você poderá ignorar temporariamente as restrições de memória e E / S do dispositivo menor.
fonte
É 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.
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)).
fonte