Problema na programação do Mini Pro via Arduino como ISP

9

Acabei de pegar um par de placas de clone do Arduino Mini Pro 5v (Inland, vendido no Microcenter, atualmente US $ 4) e queria usar meu Uno como um provedor de serviços de Internet, como já fiz com os chips ATmega328 e ATtiny85. Programei o Uno com as instruções na página de tutorial do ArduinoISP e conectei o Uno ao Mini Pro usando as instruções nesta página . Não consigo obter o IDE do Arduino ou o avrdude na linha de comando para programar com êxito essas placas, não importa o que eu tente. Exceto que eu posso usar o Arduino IDE para gravar um novo gerenciador de inicialização no Mini Pro.

Também conectei os LEDs de status (pinos 7, 8 e 9) e posso ver que o programador tem uma condição de erro (pino 8) quando tento programar algo além do gerenciador de inicialização.

Aqui está minha linha de comando avrdude onde tentei definir os fusíveis no Mini Pro:

avrdude -P /dev/tty.usbmodema0121 -b 57600 -c avrisp -p atmega328p -U lfuse:w:0xff:m -U hfuse:w:0xdb:m -U efuse:w:0xfd:m

Recebo o seguinte da avrdude:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c

avrdude done.  Thank you.

Não tive nenhum problema em usar praticamente essa mesma configuração, mas com um chip ATmega328 ou ATtiny85 em uma placa de ensaio com avrdude no passado, por isso estou sem saber o que está acontecendo aqui.

Também dei uma olhada no código do ArduinoISP e não tenho muita certeza do que seja o resp = 0x1c. Não vejo um valor 0x1c definido na seção Definições STK do código, portanto, não tenho certeza do que pode estar causando isso.

Qualquer ponteiro aqui seria apreciado. E sim, eu sei que posso usar a placa Uno com o chip ATmega328 puxado para usar como programador também. Mas quero sobrescrever a área do carregador de inicialização com meu próprio código, como posso com um chip ATmega328 comum.

Obrigado!

Dennis Munsie
fonte

Respostas:

7

Depois de bisbilhotar um pouco mais, acontece que o meu problema era a taxa de transmissão. Eu poderia fazê-lo funcionar configurando-o para 19200, um pouco mais lento. Como alternativa, você pode modificar o esboço do ArduinoISP para permitir taxas de transmissão mais altas. Eu usei este post para ativar 115200 baud e consegui usar o avrdude com taxas mais altas.

Não tenho certeza de como eu perdi isso antes, mas pelo menos é fácil de resolver.

Dennis Munsie
fonte