collapse

* Links de Robótica

* Posts Recentes

Preços e fabricantes de pcb por vasco
[Hoje às 23:18]


Palavras Cruzadas por LVirtual
[Hoje às 20:54]


[Projecto] Bomba Airsoft por jm_araujo
[Hoje às 19:01]


Apresentação por Tech_JA
[23 de Setembro de 2017, 09:19]


Medir Agua que está no Poço por filjoa
[21 de Setembro de 2017, 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]

Autor Tópico: Atmega ISP  (Lida 1732 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.505
    • GrcByte - Projectos
Atmega ISP
« em: 27 de Junho de 2015, 10:50 »
Desde ontem que ando a tentar gravar um ATMega168\328 através de 1 arduino, não tenhno nenhum programador AVR.

Tenho sempre erro, já testei usar como Master um Arduino normal, outro original (UNO), como Slave um Atmega168, ou um 368, ou mesmo até o UNO.

O Master com boards normais meto uma resistência de 120R 1/2W entre o Reset e o 5v (tb já testei com um cap 10uF),  com o UNO meto tb o CAP mas tenho sempre erros...:

arduino avrdude: verification error, first mismatch at byte 0x0100 0x83 != 0x80
ou
avrdude: Yikes! Invalid device signature.
ou
avrdude: stk500_getsync(): not in sync: resp=0x00

A board está corretamente seleccionada no IDE, um dos chips por acaso era 'virgem' e supostamente trazia o Bootloader mas não.., fiz o Burn Bootloader e correu bem e depois para fazer o ISP já não dá na mesma.. os mesmos erros. Alguém costuma usar um Arduino para fszer isto? costuma resultar?  Já não sei o que raio posso fazer..

O meu objectivo era gravar um Atmega168 através de um Arduino com o objectivo de fazr upload de um .hex, mas se não consigo efetuar esta comunicação não dá..



Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.127
  • NERD!
Re: Atmega ISP
« Responder #1 em: 27 de Junho de 2015, 12:30 »
Se não ocupar até ao bootloader, podes carregar um hex diretamente no Arduino com o xloader.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.390
  • Helpdesk do sitio
Re: Atmega ISP
« Responder #2 em: 27 de Junho de 2015, 12:49 »
O signature mismatch tipicamente indica problemas de ligações, tipicamente MISO e MOSI cruzados.

Pergunta, os chips vieram de onde?
Ebay?
Podes ter ai chips queimados, ou semi-queimados, ou um core semi-compativel com atmega, sei que havia pelo menos a fazer uma cópia dos atmega328p na china que eram praticamente compativeis, mas não na totalidade..

Se não tiveres 30 ou 40€ para comprar um Avr ISP original, compra um USBASP, custa 1-2€ no eBay, até deves encontrar por cá.
Avr fanboy

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.089
    • Tróniquices
Re: Atmega ISP
« Responder #3 em: 27 de Junho de 2015, 14:48 »
O Master com boards normais meto uma resistência de 120R 1/2W entre o Reset e o 5v
Isso "estraga" tudo, assim ninguém consegue meter o chip em reset (puxar a linha para o GND). Minimo aí uns 10K.

Citar
(tb já testei com um cap 10uF),  com o UNO meto tb o CAP mas tenho sempre erros...:
Para quê o cap (como não diseste suponho que é entre o reset e os 5V como a resistência)? Nunca usei nem vi isso.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.390
  • Helpdesk do sitio
Re: Atmega ISP
« Responder #4 em: 27 de Junho de 2015, 15:13 »
O Master com boards normais meto uma resistência de 120R 1/2W entre o Reset e o 5v
Isso "estraga" tudo, assim ninguém consegue meter o chip em reset (puxar a linha para o GND). Minimo aí uns 10K.

Citar
(tb já testei com um cap 10uF),  com o UNO meto tb o CAP mas tenho sempre erros...:
Para quê o cap (como não diseste suponho que é entre o reset e os 5V como a resistência)? Nunca usei nem vi isso.

A resistência é no Arduino, para quando começa a mandar dados via serial para o atmega para ele fazer de ISP não fazer um auto-reset e saltar para o bootloader.
Avr fanboy

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.505
    • GrcByte - Projectos
Re: Atmega ISP
« Responder #5 em: 27 de Junho de 2015, 15:42 »
exacto é isso mesmo, no entanto meti uma de 10k mas o resultado é o mesmo:

Binary sketch size: 1.082 bytes (of a 14.336 byte maximum)
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


Acho que vou desistir, será que com um programador terei o mesmo problema? Que treta, queria fazer isto já hoje e assim terei de esperar 1 mês..  >:(

Está tudo bem ligado:

MASTER ARDUINO 328: Pino 11 -> Pino11 Atmega168 | Pino 12->Pino12 168 | Pino 13 -> Pino 13 168 | Pino 10 -> Pino 1 168

Não sei se o problema está no IDE, no Chip Master ou no Slave.. já fiz várias tentativas e com outros chips e inclusivé o UNO é mesmo oficial made in italy.. os outros sim são do ebay.





Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.390
  • Helpdesk do sitio
Re: Atmega ISP
« Responder #6 em: 27 de Junho de 2015, 15:47 »
O Miso tem de ligar ao Mosi do outro chip e o Mosi ao Miso..
MISO = Master In Slave Out
MOSI = Master Out Slave In
Avr fanboy

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.505
    • GrcByte - Projectos
Re: Atmega ISP
« Responder #7 em: 27 de Junho de 2015, 15:54 »
O Miso tem de ligar ao Mosi do outro chip e o Mosi ao Miso..
MISO = Master In Slave Out
MOSI = Master Out Slave In

Tem? De acordo com isto não:



Mas tb já fiz isso e deu erro à mesma..

Código: [Seleccione]
Binary sketch size: 1.082 bytes (of a 14.336 byte maximum)
avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.089
    • Tróniquices
Re: Atmega ISP
« Responder #8 em: 27 de Junho de 2015, 16:17 »
Esse ATmega é virgem? É que depois de programares uma vez "para arduino", ele passa a precisar sempre do cristal e condensadores no cristal.

Os cabos fazem bons contactos? Também não podem ser muito compridos (20cm máximo dos máximos, < 15cm melhor, mas qto mais curtos menor a probabilidade de problemas).

Sendo um chip virgem tb podes ter que reduzir a velocidade de programação, não sei que sw tás a usar como programador mas deve ter alguma opção para isso.
« Última modificação: 27 de Junho de 2015, 16:21 por Njay »

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.505
    • GrcByte - Projectos
Re: Atmega ISP
« Responder #9 em: 27 de Junho de 2015, 16:21 »
Os cabos são aqueles de ligações para breadboard, não são muito grandes mas posso testar com outros mesmo pequenos.
O Atmega já foi programado várias vezes no Arduino, já testei agora na breadboard e sem cristal mas tb já o liguei noutro arduino e mesmo assim nada..

Vou testar isso dos cabos.. 

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.505
    • GrcByte - Projectos
Re: Atmega ISP
« Responder #10 em: 27 de Junho de 2015, 16:59 »
Com cabos pequenos o erro passa a ser:

Código: [Seleccione]
Binary sketch size: 1.082 bytes (of a 30.720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00

Neste momento estou a testar o Master o UNO oficial e o Slave um 328 também com o bootloader UNO.

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.089
    • Tróniquices
Re: Atmega ISP
« Responder #11 em: 27 de Junho de 2015, 17:49 »
Se já o programaste 1 vez então tens que usar *sempre* o cristal e respectivos condensadores. Não vai funcionar sem eles.

O que se passa é que, mesmo em modo de programação, o AVR tem que ter clock. Um AVR virgem vem configurado (nos "fuses") para usar o clock RC interno e portanto é sempre programável pois tem um clock, mas quando programas o bootloader do arduino ele muda a configuração (fuses) para usar cristal externo, e a partir daí ele tem sempre que ter um cristal para poder ter clock e poder ser programado.
« Última modificação: 27 de Junho de 2015, 17:51 por Njay »

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.505
    • GrcByte - Projectos
Re: Atmega ISP
« Responder #12 em: 28 de Junho de 2015, 17:26 »
Bom, quanto a programar o 168 ou 328 com 1 Arduino não consegui, montes de erros e não saía dali. Como neste caso tinha o .hex optei pela sugestão do  jm_araujo e o XLoader funcionou na perfeição.

Quanto a comprar 1 programador AVR se calhar vou mandar vir um, mas é coisa que não devo usar todos os dias, por isso um USBASP deve chegar.

Já agora, o objectivo disto era ligar um GLD 128x64 via Serial, tenho de usar o ATMega168 na receção dos comandos e com o Firmware, depois é só enviar via serial o pretendido com outro micro.

Isto veio no seguimento de ter visto a placa SparkFun LCD Backpack, algo cara, pensei em pegar nos ficheiros Eagle e comprar os componentes, mas tb saía caro e estava difícil de arranjar alguns. Por isso adaptei o esquema para o meu LCD e para o ATMgea168 DIP em vez do SMD: