Eu tenho trabalhado em um projeto Arduino. Depois que tudo estiver funcionando com o Arduino, gostaria de passar para uma solução que NÃO use o Arduino. Ou seja, eu gostaria de usar um microcontrolador sem envolver a placa Arduino. Isso permitirá uma única placa, sem solução de blindagem.
Eu sei que existem métodos para criar meu próprio Arduino em uma placa de ensaio, mas não é exatamente isso que estou tentando fazer.
Não tenho muita certeza de como fazer isso.
A menos que haja uma opção melhor, estou inclinado a usar o ATmega328, que é usado pelo Arduino. Entendo que as ferramentas de desenvolvimento estão disponíveis gratuitamente ou pelo menos não são muito caras.
Para o propósito desta pergunta, suponha que eu possa obter + 5V no meu circuito.
Minha primeira pergunta é como programar o MCU. Eu acredito que existem duas opções:
- Compre um programador, programe o MCU e coloque o chip no meu circuito.
- Projete meu circuito para incluir suporte para programação em circuito.
Estou assumindo que, se eu for com a opção 1, é tão simples quanto inserir um chip programado no meu circuito; Eu não preciso de mais nada. É claro que mudar o software seria inconveniente.
Mas para a opção 2, não tenho certeza do que preciso. Pela leitura que fiz, acho que preciso de um cabo de programação e um conector na minha placa (que tipo?). Então eu acho que (corretamente) conecto o conector a certos pinos do ATmega.
De qualquer forma, vou precisar do estúdio Atmel.
Segundo, além da fonte de alimentação, há alguma coisa no Arduino que eu absolutamente precise? Eu acho que talvez um botão de reset?
fonte
Respostas:
Bem-vindo ao maravilhoso mundo de Atmel. Deixe-me oferecer algumas respostas para suas perguntas com base no meu hobby e experiência profissional.
Não se preocupe com nada, mas a programação em circuito. A menos que você seja um codificador perfeito, remover um chip sempre que quiser programar é um pesadelo. Eu recomendo o AVRISPmkII como uma ferramenta de programação básica. A desvantagem é que não há depuração de hardware suportada. Uma alternativa é o dragão, mas não tenho experiência com isso. Posso dizer que o JTAGICEmk3 é uma boa ferramenta de depuração capaz.
Atmel studio é bom para programação. Na verdade, é o meu ambiente de desenvolvimento incorporado favorito. Você pode usar ferramentas da CLI, como AVRDUDE e AVR-GCC, mas o IDE cuida disso para você.
EM SUMA:
Compre um AVRISP apenas para programação (mais fácil, plug & play) ou um DRAGON (não posso oferecer conselhos).
Em sua placa, traga os pinos do ICSP para um cabeçalho de 6 pinos, fileira dupla de 0.100 "- as conexões são descritas nesta folha de dados .
As chaves de redefinição não são necessárias.
fonte
Você não precisa "se formar" de uma só vez. Aqui está como eu converti:
Para começar, continuei usando um Arduino, mas converti chamadas para a biblioteca do Arduino em registros e leituras e gravações, uma linha de cada vez, para ver se meus programas ainda funcionavam. Dessa maneira, eu me acostumei a usar registros e vi que eles não eram radicalmente descontínuos com a maneira de fazer as coisas no Arduino. As funções do Arduino como digitalWrite () simplesmente manipulam os registros - você é livre para ler e escrever neles diretamente em seus esboços.
Meu próximo passo foi colocar um ATTiny 85 em uma placa de ensaio e programá-lo com o Arduino como ISP ( http://highlowtech.org/?p=1695 ). Se você comprar uma fonte de alimentação de placa de ensaio e usar o oscilador interno do ATTiny, isso exigirá pouca fiação. Eu usei o Arduino IDE para compilar, mas continuei usando os registros o máximo que pude.
Em seguida, instalei a cadeia de ferramentas de linha de comando gratuita Crosspack e compilei um programa intermitente. Após mais algumas tentativas e erros, consegui programar o ATTiny apenas com avrdude, permanecendo completamente fora do ecossistema Arudino.
Depois de atingir o piscar de olhos apenas com as ferramentas de linha de comando, você estará livre do Arduino. Explore os vários periféricos e seus registros e em breve será totalmente natural.
Depois de tudo isso, muitas vezes me vejo usando o Arduino porque é mais rápido. Descobri que examinar as descrições dos registros é meio chato; não faz sentido fazer isso se você não precisar. É bom saber como, no entanto.
fonte
Eu concordo com o comentário do HL-DSK acima. Eu gastaria o dinheiro extra e conseguiria um programador com recursos de depuração. Eu uso o JTAGICE3, cerca de US $ 110 na digi-key.
Leia aqui a programação do provedor de serviços de Internet . Ele mostrará como fazer as conexões SPI. As conexões SPI no seu chip estarão na folha de dados do ATmega. Procure na página 2 os pinos MISO / MOSI / SCK / RESET. O programador precisa ser capaz de controlar a linha de redefinição. Lembre-se de usar um resistor pull-up na linha de redefinição para que seu chip funcione depois que o programador for desconectado.
Arranja um cabeçalho 2x3 aqui . Ou faça o seu próprio usando cabeçalhos separatistas.
fonte
A diferença entre um Arduino e um ATmega328 vazio é apenas duas coisas. O Arduino Bootloader e as bibliotecas do Arduino. Você pode codificar um Arduino com C ou C ++ simples sem usar nenhuma das bibliotecas. Você também pode usar a montagem. O gerenciador de inicialização permite que você carregue um novo código por meio da série sem passar pela (um pouco) mais complicada programação em série do circuito (basicamente SPI).
Você pode usar bibliotecas de programação padrão e o avr-gcc com quase qualquer ide. Ao contrário do que os outros possam dizer, codificar um Arduino é basicamente como codificar um microcontrolador simples, com algumas conveniências adicionais à custa de algum desempenho.
fonte
Eu compro ATmega328P pré-bootloaded chips e programa-los no circuito com um cabo FTDI e avrdude, de forma idêntica à forma como eu programar o Arduino. Gosto do Eclipse IDE, mas você pode usar qualquer ambiente que preferir - Atmel Studio, Arduino IDE, emacs ou descalço na linha de comando.
Esta placa está em construção no ponto em que está completa o suficiente para testar com um programa Hello, usando o cabo para programação, energia e terminal. Ele ainda precisará de sua fonte de alimentação - regulador de tensão quiesciente ultra baixo LM2936 e um conector de bateria, no meu caso - e quaisquer outros componentes integrados e conexões externas que o projeto precisará:
Como você possui um Arduino, você pode economizar um pouco de dinheiro e usar chips não programados, usando o Arduino para instalar o gerenciador de inicialização. As lindas etiquetas azuis com pin-out ajudam a manter minha taxa de bobagem baixa! Eu uso um cristal de 16MHz, mas se você puder rodar com o oscilador interno, sua contagem de peças diminui em 3 (o xtal e 2 capacitores).
fonte
Para sair do Arduino, onde o hardware é fornecido e o software é uma sobreposição da linguagem C, gostaria de fazer algumas sugestões. Vejo que as pessoas postaram algumas respostas úteis, mas estive onde você está e eu faria as coisas um pouquinho diferentes.
Tenho algumas idéias esquemáticas que aprendi por conta própria, para que você tenha uma interface limpa e suave para o seu micro. Deixe-me saber se você precisar de ajuda.
fonte
Conselho Honesto
O Arduino é para iniciantes, existem duas maneiras de sair daqui
Caminho 1: Entendendo como um microcontrolador / processador funciona (abordagem preferível)
Com isso, quero dizer arquiteturas de aprendizado e código de montagem (ou bare metal) para o micro p / c. Se você precisar de um ponto de partida para isso, sugiro o Atmel 8051, que é um micro controlador de 8 bits com o conjunto de instruções de arquitetura e montagem mais simples. Qualquer outro processador moderno de 32 ou 64 bits possui uma forma derivada de arquitetura. Esse microcontrolador ainda está sendo usado como parte dos meus cursos de pós-graduação, porque é um bom ponto de partida e muita literatura está disponível.
Ah, e os kits para criar sua placa ISP são vendidos (kits completamente montados com processo, componentes de solda em kits de placa e você pode montar a placa de desenvolvimento requer apenas alguns cabos / soquetes de IC e RS-232)
Por ser de baixa tecnologia, todos os componentes serão baratos.
Caminho 2: Salte para uma abordagem de hardware / software (menos preferível)
Essa é a abordagem para preguiçosos que mergulharam em um pouco de montagem e "escolheram" OU pessoas que desejam mudar para mais software que hardware. Eu sugeriria a mudança para outro quadro amador como o Raspberry Pi ou o BeagleBoneBlack com processadores ARM e começaria a fazer projetos em sua criatividade.
fonte
Você pode usar a placa Arduino, sem usar as bibliotecas e o ambiente sandbox, pode programar tudo diretamente. Se você deseja usar o gerenciador de inicialização via serial / uart para programar, isso funciona bem. Mas a maioria / todas as peças avr também podem ser programadas de outra maneira, com a peça mantida em redefinição, o que significa que não é possível tijolos. é muito fácil bit bang spi de um arduino ou outro microcontrolador ou com um ftdi de algum sabor. O sparkfun possui placas arduino e não-arduino (a 32u por exemplo) que o cabeçalho spi é óbvio. e ftdi breakout boards que você pode facilmente usar com bitbang usando a biblioteca do ftdi ou a biblioteca do ftdi que acompanha o linux.
A documentação de cada parte mostra as opções de inicialização e as opções de programação em flash. Sim, não é difícil apenas comprar algumas peças também e fazer sua própria placa de apoio. Eu não faria isso até você ter usado uma fuga existente ou uma placa de avaliação simples e depois cloná-la, se necessário. Idealmente, comece com uma peça com um oscilador rc interno, basicamente pinos de alimentação, terra e programação ...
fonte