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

LED

Started by Constantino, 22 de August de 2011, 17:39

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Constantino

Por que o Led 13 pisca quando o Arduino inicia ?


Obrigado!

senso

É o bootloader a dizer que está á espera de dados.
Avr fanboy

Constantino

Existe alguma forma de desabilitar isso ?

CBX

uma resistência de 10k entre o VCC e o GND resolve

Constantino

Podem me mandar o esquema ?

amando96

Quote from: CBX on 22 de August de 2011, 17:54
uma resistência de 10k entre o VCC e o GND resolve

:o Essa é nova para mim, pensei que só modificando o bootloader...

Constantino

Também pensei nisso!

CBX

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

senso

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.
Avr fanboy

CBX

eu tenho uma breakout com um conversor ligado, se desligar o dtr ele não faz isso...

senso

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.
Avr fanboy

CBX

o led a piscar é o micro controlador a fazer reset, amanha provo isso  ;D

amando96


senso

Retirado do bootloader do Arduino:


/* 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:


#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.
Avr fanboy

CBX

#14
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