• Welcome to LusoRobótica - Robótica em Português.
 

O meu Arduino morreu?

Started by almamater, 20 de November de 2010, 18:29

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Njay

O mega que vem com o arduino vem configurado para usar o cristal externo para clock, mas internamente continua a ter um gerador de clock de 8MHz, só que não está selecionado.

Se ele está com o clock interno e não consegues programá-lo com o programador que tens, pode ser que esse programador esteja a tentar programar demasiado depressa (bit rate). A velocidade a que enfias bits no AVR durante a programação tem que ser inferior a 1/3 da do clock do AVR; normalmente o software dos programadores permite controlar a velocidade de programação.

Cynary

Duvido que o problema seja do programador, visto conseguir programar outros microcontroladores a 8MHz perfeitamente ...
CBX: Pelo que vi na datasheet, o único bit dos fuses que podia desactivar o ISP é SPIEN. No entanto, este continuou programado ...
O micro-controlador deixou de responder após alterar os fuses com este comando:

Quoteavrdude -p m8 -P /dev/ttyUSB0 -c avrisp -b 19200 -e -U lock:w:0x3F:m -U lfuse:w:0xc4:m -U hfuse:w:0xd9:m

deste site: http://ntsdt.net/2009/08/22/burning-the-arduino-bootloader/

CBX

já agora qual é o atmega?

pelo comando deduzo que seja um atmega8, se for tenta gravar estes fuses:

-U lfuse:w:0xe1:m -U hfuse:w:0xd9:m

é o default

Cynary

Oops, copiei directamente do site xD
O atmega é o atmega328p, e coloquei o -m328p para corrigir isso, esqueci-me foi de alterar aqui.
E já tentei alterar os fuses para o default, mas como disse, ele não responde ao programador!

CBX


Cynary

Quoteavrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): unknown status 0xc9
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.

(dá-me este erro quando uso a flag -F para ignorar a assinatura do aparelho)

CBX

estas a usar windows ou linux?

confirma a porta

Cynary

Estou a usar linux.
A porta confirma-se porque programei lá outro atmega e funcionou bem (além disso, acho que o erro seria outro se tivesse posto a porta errada).
É assim, eu lembro-me de ler que o atmega do arduino não tem oscilador interno ... não me lembro é onde li isso, e faz sentido, visto que a única coisa especial daqueles fuses é o facto de passar a usar o interno ...

Njay

Todos os AVR têm oscilador interno. Como disse, no arduino ele não está é selecionado (está seleccionado o oscilador com cristal externo).

senso

#24
Atenção que não dá para mudar fuses usando bootloader, só com um programador a sério.
Pois, como já disseram baixa para o minimo a velocidade de programação, o fuse que activa e desactiva o botão do reset tambem não se pode mexer se não o ISP deixa de funcionar pois precisa do pino do reset para colocar o avr no modo de programação.
Avr fanboy

almamater

Ah !!! Já chegou o meu Arduino Uno!!   ;D  ;D a ver se não o estrago desta vez!

Entretanto caiu-me a moedinha relativamente ao que está estragado..  há uns dias estava a montar o Arduino + Motorshield + 4Pilhas e liguei-o à USB para afzer Upload do programa, azar dos azares, o fio + das pilhas soltou-se da breadboard e sem ninguem lhe tocar vai cair exatamente no buranco do arduino dos +5v  ??? 

O arduino parece que "foi abaixo" mas depois testei o programa e correu tudo bem... por isso nem liguei! mas deve ter sido disso... enfim, acontece

Orion

Já vi essas mensagens também. O led verde de PWM ligava, mas o rx e o tx, pouco ou nada faziam. E o pc não detectava o arduino ou quando detectava dizia "dispositivo desconhecido". Experimentei noutro pc e nada... Experimentei num terceiro pc e simplesmente deu... Fez automaticamente a pesquisa e instalação das drivers. Fiz o upload de mensagens simples como
void setup() {}
void lood() {}

e pronto, começou a funcionar na boa... Sinceramente ainda não sei o que de facto se passou, mas...

senso

Isso provavelmente são drivers mal instalados e depois fazem loops infinitos sempre a mandar coisas por serial que entope o USB e o vosso computador fica todo baralhado, isso regra geral carregar no reset para fazer o upload do programa chega bem.
Avr fanboy

Henriqueneves

desculpem lá estar outra vez a falar do tópico, mas aconteceu exatamente o mesmo ao meu arduino UNO, quais são realmente os procedimentos?

GnGz

Quote from: Henriqueneves on 08 de January de 2011, 14:59
desculpem lá estar outra vez a falar do tópico, mas aconteceu exatamente o mesmo ao meu arduino UNO, quais são realmente os procedimentos?

Antes funcionava ?