Estou tendo problemas ao gravar um ATMEGA8 com o USBASP pelo AVRDUDE, alguém tem alguma idéia que possa me ajudar?

Abaixo estão o código programa e também os comandos do AVRDUDE.

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
   DDRB = 0x1;

   while(1)
   {
      PORTB |= (1 1);
      _delay_ms(1000);
      PORTB &= ~(1 1);
      _delay_ms(1000);
   }

   return 0;
}

Resultado do AVRDUDE

avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.


avrdude done. Thank you.

Resultado do AVRDUDE 2° opção

 

D:\Documents\Projetos\AVR\ATMEG8A\Release>avrdude -p m8 -c usbasp -e -U flash:w:ATMEGA8A.hex -F -V -B8

avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA8 is 1E 93 07
avrdude: erasing chip
avrdude: error: programm enable: target doesn't answer. 1
avrdude: reading input file "ATMEGA8A.hex"
avrdude: input file ATMEGA8A.hex auto detected as Intel Hex
avrdude: writing flash (102 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 102 bytes of flash written
avrdude: verifying flash memory against ATMEGA8A.hex:
avrdude: load data flash data from input file ATMEGA8A.hex:
avrdude: input file ATMEGA8A.hex auto detected as Intel Hex
avrdude: input file ATMEGA8A.hex contains 102 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x12 != 0x00
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK

avrdude done. Thank you.

 

Alguém tem alguma ideia?

Exibições: 2608

As respostas para este tópico estão encerradas.

Respostas a este tópico

Olá DFURLA 

Você já conseguiu, alguma vez comunicar com esse Atmega8, ou modificou os fusebits?

O fio  terra na parte de baixo da protoboard está desconectado (pino 8).

Uma dica, não ligue um LED diretamente no pino do microcontrolador, use um resistor em série.

Boa tarde Flávio, obrigado pela resposta rápida.

Nunca recebeu código, esse M8 é novo.
Percebi a questão do ground após bater a foto pra postar aqui, mas já conectei novamente.

Como a alimentação é feita pela USB (500ma) deixei sem o resistor, seguindo a sua dica adicionei um agora.

Oi D, boa tarde.

Você está usando um USBasp?

Se for, como está o jumper de alimentação dele?

http://eecs.oregonstate.edu/education/docs/ece375/USBASP-UG.pdf

Rui

Boa tarde Rui, obrigado a você também pela rápida resposta. Estou usando a alimentação da própria USB, da seguinte forma;

USBasp    ATMEGA8
------------    ---------------
MISO ----- 18
SCK ------  19
RST ------  1
NC --------
MOSI ----  17
VCC   ----  VCC-PROTO
GND   ----  GND-PROTO

ATMEGA8
----------------
7  ------------ VCC-PROTO
21 ----------- VCC-PROTO
20 ----------- VCC-PROTO
8 ------------- GND-PROTO
22 ----------- GND-PROTO

Você verificou se a alimentação está correta, tem 5v?

Olhando pela foto está ok.

Sim, está correta, 5v...

Você só tem esse Atmega? Seria bom testar outro.

Seu gravador está funcionando? (Nessas horas eu desconfio de tudo)

No datasheet do atmega8, pagina 230, mostra quais pinos são usado para a gravação serial.

http://www.atmel.com/images/atmel-2486-8-bit-avr-microcontroller-at...

Flavio, testei com um atmega88ap e o comportamento foi o mesmo.... as ligações estão corretas.

DFURLA, eu posso fazer algumas recomendações

  1. verifique se não há jumper quebrado, faça um teste de continuidade, pois as ligações estão corretas.
  2. Tente atualizar o driver do USBASP, no link que passei tem um tutorial, para instalar os drives.
  3. Atualize o AVRDUDE

Você está utilizando o WINAVR? Se estiver qual a versão? e a versão do AVRDUDE?

http://www.webring.org/l/rd?ring=avr;id=59;url=http%3A%2F%2Fwinavr%...

Tive uma ideia, tente programar o atmega8 usando a IDE do Arduino, use a opção de gravação pelo gravador externo (USBASP)

Fiz um código bem simples, testei aqui e funcionou muito bem, no Atmega8

void setup() {

DDRB |= _BV(PB5); // configura o pino como saida.
PORTB |= _BV(PB5); // so para garantir um estado inicial
}

void loop() {
PORTB ^= _BV(PB5); // faz toggle no pino 13 do Arduino
delay(500);
}

Bom dia Flavio. Você uaou usbasp para gravar pela ide do arduino? Eu fiz esse teste também e o comportamento é o mesmo.

Sim, funciona bem, lembrando que as primeiras placas do Arduino usaram o Atmega8.

Na IDE, a placa é a Arduino NG or older.

O Processador, você deve trocar para Atmega8.

Só tive um problema para gravar o bootloader, mas isso é outra historia.

Se o problema continua, seria bom fazer um teste de continuidade, nos fios e na protoboard, ou testar com outra protoboard como sugeriu o José Gustavo.

Se nada der certo, então pode ser problema no seu USBASP.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço