Ir ao conteúdo
  • Cadastre-se

Plaquinha de Desenvolvimento para Atmega8 e 328


Posts recomendados

Olá pessoal!

Estou começando a estudar os uC Atmega, mais precisamente os Atmega8 e 328, que possuem a mesma pinagem e são montados em DILP. Isso facilita a troca do uC na placa.

Como ainda sou iniciante com uC Atmegas, resolvi subir um degrau por vez dessa escada.

Depois de ler um pouco do assunto, percebi que poderia usar o minha placa Arduino como programador AVR.

Apesar de poder usar uma Protoboard como hardware de desenvolvimento, considerei que seria útil colocar a parte comum do circuito em uma placa de circuito impresso. Desta forma não precisaria montar o circuito a cada novo projeto, ou então não precisaria manter a Protoboard sempre dedicada para aquele circuito.

A plaquinha dispõe de alimentação própria ou proveniente do gravador. Caso o projeto exija maiores correntes, uma chave faz a comutação entre as fontes. Em nenhum momento as duas fontes são conectadas em paralelo.

Daí fiz a placa seguinte.

 

http://www.4shared.com/zip/V8T-5p03ba/Placa_Teste_Forum.html

 

A senha é MOR_AL    ... Só acrescentei para ver como funcionava, nada mais...

 

Como ainda estou "preso" a outros projetos, ainda não tive oportunidade de determinar qual deveriam ser os aplicativos para poder gravar o arquivo .hex no uC.

Lembrando que apesar de me familiarizar mais com a linguagem Basic (até já instalei o BASCOM-AVR limitado) , estou decidido a usar a linguagem C, mesmo não tendo afinidade com ela.

Em função disso já instalei o Atmel Studio 6.1 e inclusive o Arduino. Não sei se a IDE Arduino poderia servir para transferir um arquivo .hex, gerado por outro aplicativo, para o uC.

 

Não sou adepto da utilização de aplicativos que usam a linha de comando, como já tenho observado na net.

Penso em usar o aplicativo do programador Khazama, mas tenho que saber se o hardware do Arduino e minha placa podem ser usados com o Khazama.

De qualquer modo, vou comprar o hardware recomendado no sítio do Khazama, que é o USBasp.

MOR_AL

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Como dizia aquela antiga propaganda da Vimave : Pois éééé .....

Subiu, desceu, foi prá esquerda, foi prá direita, e chegou no USBASP..... Que desde o início já se sabia que era a melhor opção de custo / benefício !

Se quiser pode montar o seu, o circuito básico está aqui :

http://www.fischl.de/usbasp/

Eu fiz o meu a partir daí, melhorado, com buffer tri-state e tensão de alimentação ajustável para poder trabalhar com 3.3v selecionavel por jumper, e acrescentei alguns resistores de proteção. E adaptei um soquete desses de gravador de 40 pinos, assim posso gravar direto nele um CI e gravar.

Paulo

Link para o comentário
Compartilhar em outros sites

Paulo!

Já conhecia este sítio e até tinha pensado em montar, mas:

a) Seria necessário gravar o firmware, o que recai na necessidade de um gravador para gravar o firmware do gravador. Estranho....

B) Não vale a pena montar um gravador deste, existindo um para vender a US$ 2.60 cada, com o cabo e montagem bem melhor que eu faria.

http://www.ebay.com/itm/USBasp-USBISP-3-3V-5V-AVR-Programmer-USB-ATMEGA8-L-/140763404046?pt=LH_DefaultDomain_0&hash=item20c627170e

c) Acho que meu Arduino pode servir como gravador. A vantagem é que eu já disponho dele aqui e ainda serve como hardware do Arduino.

De qualquer forma, minha próxima aquisição será o tal gravador.

 

 

Paulo. Como você gravou o seu?

 

Mas estava mesmo interessado em comentários sobre a funcionalidade da plaquinha que fiz. Apesar de já estar montada.

 

MOR_AL

Link para o comentário
Compartilhar em outros sites

@MOR,

Eu tenho um amigo que montou o Mjoy que está aqui no Fórum, e ele tinha esse USBASP, antigo mas funcional, e ele gravou para mim. Aí montei exatamente esse do site para mim, mas depois resolvi fazer algo mais útil, e fiz um que tem o soquete ZIF de 40 pinos, posso ligar quase tudo que existe em DIP nele, para Attiny ou Atmega. Incluí um gerador de clock de 8 Mhz também para poder regravar qualquer Atmega que estivesse setado para clock externo, coisa que o USBASP não faz.

Acabei de ver a plaquinha, ficou bem legal ! É um projetinho bem fácil para os principiantes !

Caso voce pretenda fazer uma versão mais avançada, tenho algumas sugestões :

- coloque uma opção para usar oscilador externo, tipo aquele que parece um CI. O Atmega328p roda tranquilamente a 32 Mhz com clock externo !

- uma opção para usar um valor externo para Vref do conversor A/d.

- mais alguns pontos de acesso ao GND e ao VCC perto dos pinos de I/O . Fica complicado ligar varios circuitos em um só pino de VCC ou de GND.

No restante, está muito bom !

Paulo

Link para o comentário
Compartilhar em outros sites

MOR

 

 Interessante sua plaquinha, muito bem feita.

 Que interface vai usar para gravação?

 Se for o USBASP você vai ter que montar um adaptadorzinho para fazer a pinagem da sua placa encaixar com o conector P10 do USBASP na posição correta. O USBASP que eu comprei trabalha somente com 5 volts, se colocar em um uC 3.3V ele vai torrar o uC..... heheh. Mas o bom é que ele alimenta o circuito alvo através da porta usb, assim não tem necessidade de chave comutadora (de gravador para fonte externa) pois o limite de corrente é o que a USB do PC pode entregar (uns 500mA segundo o fabricante) ai já da para comandar displays, LED's, RFID, Bluetooth,... etc. O interessante, é que ele tem até um sisteminha de proteção contra sobre corrente, que evita que você torre a porta do PC ou danifique o gravador caso ligue algo errado ou ocorra algum curto no circuito alvo, acho até melhor que usar uma fonte externa.

 O bom é que o USBASP comanda o pino de reset do ATmega, você pode estar com o software rodando no AVR se você der o comando para gravar, o USBASP dá um reset e transfere o programa, ao termino da gravação, ele dá outro reset e instantaneamente o uC começa a executar o programa recém gravado, com 2 cliks você pode atualizar o programa o uC sem retirar-lo do circuito, desligar o circuito,, nem ficar conectando e desconectando nada ou mudando chaves comutadoras, pode parecer um detalhe simples, mas acredite, é muito mais comodo.... hehe

 

aphawk

 

 Tive um problema parecido com o que você citou. Comprei um ATmega328P gravado com o bootloader do arduino, conectei o gravador mas ele simplesmente não entendia o ATmega, não lia nem escrevia (mas parecia detectar o uC), eu estava a ponto de xingar a mãe do cara que me vendeu o gravador achando que estva ruim, mas ai caiu a fixa, eu estava usando um cristal de 4Mhz.... Troquei o cristal por um de 16Mhz e funcionou, tratei logo de apagar o bootloader do Arduino e configurar os fuses para o clock adequado (entre 3 e 8 Mhz com partida lenta..... huahsuashuah)... Agora uso por padrão 4Mhz de clock e nunca tive mais esse problema, só quando pego ATmegas com fuses préconfigurados para clock acima de 8Mhz, mas na configuração que eles vem padrão de fabrica o USBASP aqui lê e grava de primeira..... hehe

 

Grato Luiz Gustavo.

Link para o comentário
Compartilhar em outros sites

@LuizGBarrio,

É, eu tive esse mesmo problema quando comprei alguns chips na Sta. Ifigênia aqui em SP.... Demorei um tempão prá descobrir que me venderam chips usados como se fossem novos , eita bando de espertos... Eu tinha planejado usar o clock interno, que era default, aí tive de arrumar o cristal e os dois capacitores e mudar o projetinho.

Mas depois de um tempo comprei 20 atmega328p no Ebay, e uns 5 também vieram gravados, pior que eles devem até dar um banho novo nos pinos porque juro que não dá para perceber que já tinha sido usado antes.

Ou seja, tem esperto em tudo que é lugar kkkkk !

Com o gerador de 8 Mhz consigo regravar qualquer um deles sem importar os Fuses de clock.

Paulo

Link para o comentário
Compartilhar em outros sites

Bom.

Quanto a plaquinha.

Sabe como é, né? "Gato escaldado tem medo de água fria".

Depois que queimei minha porta serial COM1 do meu PC, não forço mais nada dele.

Escolhi colocar uma alimentação extra de 5V para não carregar os 5V da USB. Como está, só o uC e um led com cerca de 2mA estão sendo alimentados pela USB.

Depois de gravar o programa, retiro o conector e comuto a chave para a fonte externa.

Todos os pinos do uC tem acesso aos conectores. Isso foi feito para complementar o circuito na Protoboard.

Realmente poderia colocar um pino para a entrada da tensão de referência do CAD. Caso se deseje maior precisão, pode-se retirar o indutor de 100uH e colocar um pino em seu lugar. Aí pode-se inserir a tensão de referência mais estável e precisa por meio de um CI 431.

Mas a placa é apenas para testes simples e para gravação do firmware. Para projetos mais sofisticados deve-se retirar o uC e colocá-lo na placa do projeto.

Também poderia colocar mais pinos terra, o que facilitaria na montagem.

 

O que eu pensava em fazer era aproveitar o meu Arduino como gravador de arquivo .hex, mas não consegui ter sucesso em minhas pesquisas.

Apesar do Arduino possuir o sketch ISP, mas na IDE não há opção de placa puramente com Atmega. Todas as opções possuem o prefixo Arduino.

Com isso eu nem saberia como introduzir o arquivo .hex no Arduino, para ser enviado ao uC.

Parece que essa plaquinha vai ser melhor aproveitada no próprio Arduino, apesar dele já possuir tudo que seja necessário para funcionar.

De qualquer forma acabei de comprar dois programadores USBasp no Ebay. Em cerca de 2 meses eles devem chegar. Até lá fico estudando um pouco mais.

Pretendo utilizar o aplicativo Khazama para programar o arquivo .hex e o hardware do USBasp.

 

É.... Rodei, subi, desci, voltei e acabei fechando com o USBasp...

 

MOR_AL

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Também acabei de baixar e funcionou beleza.

Vou colocar um tópico com minha peripécia que ocorreu para gravar um ATmega.

Em tempo:

Como havia feito a plaquinha para funcionar com o Arduino, não me preocupei em deixar os pinos de gravação do uC na sequência correta. Usei um cabo com fios paralelos. O conector ao final deste cabo possui as 6 ligações postadas em matriz 2 x 3. Nessa matriz fiz os pinos coincidirem com o conector do Arduino. Com isso reduzi o número de fios cruzando a plaquinha.

Como não consegui transformar o Arduino em gravador de ATmega (sem Arduino), a sequência dos pinos de gravação passaram a ser importante, já que há conectores com a sequência padronizada. Como só consegui gravar o ATmega via gravador via porta serial COM, fiz com que os fios que saem deste gravador fiquem dispostos no conector com sequência semelhante ao conector da plaquinha.

Outro detalhe é com o gravador pela serial COM. Ele precisa de fonte externa para gravar. Neste caso pode-se retirar a chave (de um polo e duas posições) e curto circuitar as duas posições.

MOR_AL

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...