LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: Constantino em 22 de Agosto de 2011, 17:39

Título: LED
Enviado por: Constantino em 22 de Agosto de 2011, 17:39
Por que o Led 13 pisca quando o Arduino inicia ?


Obrigado!
Título: Re: LED
Enviado por: senso em 22 de Agosto de 2011, 17:48
É o bootloader a dizer que está á espera de dados.
Título: Re: LED
Enviado por: Constantino em 22 de Agosto de 2011, 17:51
Existe alguma forma de desabilitar isso ?
Título: Re: LED
Enviado por: CBX em 22 de Agosto de 2011, 17:54
uma resistência de 10k entre o VCC e o GND resolve
Título: Re: LED
Enviado por: Constantino em 22 de Agosto de 2011, 18:03
Podem me mandar o esquema ?
Título: Re: LED
Enviado por: amando96 em 22 de Agosto de 2011, 18:09
uma resistência de 10k entre o VCC e o GND resolve

 :o Essa é nova para mim, pensei que só modificando o bootloader...
Título: Re: LED
Enviado por: Constantino em 22 de Agosto de 2011, 18:14
Também pensei nisso!
Título: Re: LED
Enviado por: CBX em 22 de Agosto de 2011, 18:23
não é o bootloader que faz isso, é o conversor usb-serial, ao iniciar manda vário pulsos pela linha dtr, se cortarem o jumper "reset-en" o resultado é o mesmo
Título: Re: LED
Enviado por: senso em 22 de Agosto de 2011, 22:34
Não o led ligado ao pino 13 é controlado pelo bootloader.
Se cortas o pino reset-en nunca mais tens upload automático, passas a ter de carregar sempre no reset do arduino.
Para além de que o bootloader corre sempre que ligas a alimentação ao micro ou sempre que lhe fazes reset.
Título: Re: LED
Enviado por: CBX em 22 de Agosto de 2011, 22:54
eu tenho uma breakout com um conversor ligado, se desligar o dtr ele não faz isso...
Título: Re: LED
Enviado por: senso em 22 de Agosto de 2011, 23:01
Quem pisca o led é o bootloader, e não dá para saltar por cima do bootloader, a não ser que tenhas o optiboot, mas mesmo esse acho que pisca o led.
Título: Re: LED
Enviado por: CBX em 22 de Agosto de 2011, 23:40
o led a piscar é o micro controlador a fazer reset, amanha provo isso  ;D
Título: Re: LED
Enviado por: amando96 em 22 de Agosto de 2011, 23:47
Só se mudou para o UNO...

http://www.arduino.cc/en/Hacking/Bootloader (http://www.arduino.cc/en/Hacking/Bootloader)
Título: Re: LED
Enviado por: senso em 22 de Agosto de 2011, 23:49
Retirado do bootloader do Arduino:
Código: [Seleccione]

/* set LED pin as output */
LED_DDR |= _BV(LED);


/* flash onboard LED to signal entering of bootloader */
#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__)
// 4x for UART0, 5x for UART1
flash_led(NUM_LED_FLASHES + bootuart);
#else
flash_led(NUM_LED_FLASHES);
#endif


Linhas 416 a 426 do ficheiro ATmegaBOOT_168.c, isto é o bootloader antigo, agora no optiboot:

Código: [Seleccione]
#if LED_START_FLASHES > 0
  /* Flash onboard LED to signal entering of bootloader */
  flash_led(LED_START_FLASHES * 2);
#endif

Ficheiro optiboot.c linhas 247 a 250.
Título: Re: LED
Enviado por: CBX em 23 de Agosto de 2011, 00:00
pelos vistos estamos os dois certos...

liga o arduino num pc sem as drivers, o led não pisca, desactiva o dtr, o led não pisca... testa

mesmo sem bootloader o mesmo acontece, amanha gravo um vídeo a mostrar isso, com gráficos de um logic analyzer se for preciso  :P

edit: estava aqui a pensar e acho que descobri a pólvora: o bootloader precisa de uma interrupção (o reset) para ser iniciado, sem reset (DTR desligado) salta logo para o programa, não pisca. mistério resolvido  :P