LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: dvdt em 07 de Janeiro de 2015, 13:03
-
Estou a começar a desenvolver um projecto, agora que penso vou ter umas ferias jeitosas.
Neste projecto, que eu não quero desvendar ate ter algo que funcione, queria implementar um atmega328, ou ate mesmo um attiny13 (ao usar o attiny era ligado diretamente á pilha 2.7v<3,7v<5,5v)), tudo depende do decorrer do projecto que vai ter que estar muito tempo ligado e a sua alimentação vai ter que ser remota (possivelmente usando cr123 lion).
A minha ideia era, usar a função sleep para poupar energia e depois"acordar" o cpu usando um sensor, vamos imaginar que seja um botão (mas não é), correr o programa durante cerca de 30 segundos e voltar a entrar em sleep.
Nunca usei esta função, dai querer saber se esta funciona para este tipo de projecto e qual os procedimentos para usar a mesma.
-
Não queres aproveitar as "férias jeitosas" para aprender e considerar usar outra arquitectura sem ser "atmega"? :)
.. possivelmente uma mais adequada para funcionar a pilhas e melhores consumos em sleep.
-
Dá ai sugestões, para eu considerar. Tenho que ler dados por serial também por isso essa parte nao pode ser muito dificil
-
Por acaso nunca tive necessidade de utilizar atmega em aplicacoes low power mas eu aconcelhava a veres os xmega ou assim, se nao quiseres sair da atmel, pois estes ja possuem a possiblidade de usar um rtc para esse tipo de aplicacoes, isto e, um relogio com uma frequencia mais baixa e que consome menos.
No caso dos atmega, da para sair de sleep com o timer? ou tem que ser sempre uma interrupcao externa?
-
Pelo que percebi pode se usar os interrupts, pelo menos quando se esta a usar um arduino que foi o que apareceu no topo da pesquisa no google Exemplo para o arduino (http://playground.arduino.cc/Learning/ArduinoSleepCode)
O datasheet do Attyni13 (http://www.atmel.com/images/doc2535.pdf) mostra que o consumo a 1.8v em Power down mode é < 0.1 µA at 1.8V mas nao posso usar lo a 1.8v vai ter que interagir com um tal sensor serial a 3,3v, que eu tambem vou querer desligar quando o cpu entra em sleep
-
de que modos o attiny sai de sleep?
-
Como assim metRo_?
Queres saber isto?
Idle mode enables the MCU to wake up from external triggered interrupts as well as internal
ones like the Timer Overflow. If wake-up from the Analog Comparator interrupt is not required,
the Analog Comparator can be powered down by setting the ACD bit in the Analog Comparator
Control and Status Register – ACSR. This will reduce power consumption in Idle mode. If the
ADC is enabled, a conversion starts automatically when this mode is entered.
Power-down Mode
When the SM[1:0] bits are written to 10, the SLEEP instruction makes the MCU enter Powerdown
mode. In this mode, the Oscillator is stopped, while the external interrupts, and the Watchdog
continue operating (if enabled). Only an External Reset, a Watchdog Reset, a Brown-out
Reset, an external level interrupt on INT0, or a pin change interrupt can wake up the MCU.
Low Level Interrupt
A low level interrupt on INT0 is detected asynchronously. This implies that this interrupt can be
used for waking the part also from sleep modes other than Idle mode. The I/O clock is halted in
all sleep modes except Idle mode.
Note that if a level triggered interrupt is used for wake-up from Power-down, the required level
must be held long enough for the MCU to complete the wake-up to trigger the level interrupt. If
the level disappears before the end of the Start-up Time, the MCU will still wake up, but no interrupt
will be generated. The start-up time is defined by the SUT and CKSEL fuses as described in
“System Clock and Clock Options” on page 23.
If the low level on the interrupt pin is removed before the device has woken up then program
execution will not be diverted to the interrupt service routine but continue from the instruction following
the SLEEP command.
-
Nao diz nada referente ao xtal externo? Se desliga se nao? Ele diz que no idle mode consegue acordar usando o timer mas o mesmo nao acontece no powerdown mode que foi o que referiste anteriormente como tendo um muito baixo consumo.
-
Opa para eles o idle é o estado normal e o power-down é o "sleep mode". O que eu vou tentar fazer quando tiver o material todo em mao é tentar fazer é um reset, ele vai correr o programa e depois x tempo depois entrar em sleep. Penso que seja o modo mais viavel
-
Tens milhentos chips, muitos mais orientados para o ultra low power, um cortex Mx seja qual for, á partida consumirá menos que um atmega, simplesmente porque são feitos em processos mais recentes e mais pequenos.
-
Ok para verificar se o conceito funciona, vou usar atmega, depois logo se ve o rendimento do mesmo. Mas em todo o projecto nao vai ser o chip que vai consumir mais no meio de tudo
-
Se consumo é assim tão problemático porque não usas um MSP430 da série com FRAM? ::)
-
Opa para eles o idle é o estado normal e o power-down é o "sleep mode". O que eu vou tentar fazer quando tiver o material todo em mao é tentar fazer é um reset, ele vai correr o programa e depois x tempo depois entrar em sleep. Penso que seja o modo mais viavel
Energy Micro, EFM32, Gecko microcontrollers sao os ganhadores em termos de energia, consumos e modos de optimizacao.
Cores ARM Cortex M0+/M3/M4.
Ultimamente tive que pesquisar o mercado ah procura de novos micros low-power e das marcas todas, sao estes que sobresaem.
Nem a TI com os novos FRAM que soh estao a dar problemas de programacao e leakage. Estamos a usa-los aqui noutro projecto e vao ser abandonados.
Adoptamos core ARM Cortex com os EFM32 e nao vamso voltar atras, as vantagens estao a ser enormes.
-
Nem a TI com os novos FRAM que soh estao a dar problemas de programacao e leakage
So ... what else is new ? ;)
Depois do falhanço com o Stellaris era de esperar que a TI tivesse algum cuidado neste campo pois a
reputação da marca no que toca a MCUs anda pelas ruas da amargura.
Abraços,
PA
-
ooooh por acaso nao sabia sobre isso dos FRAM. Que se ha-de fazer com a TI :X
Ha sempre os MSP430 antigos
De ARM sei que a ST tem as familias L1 e L0 para baixo consumo. Não me lembro bem é que core são
-
Com os MSP tens o problema do brown-out que passa-se e corrempe a flash, muita gente usa brown-outs exteriores ligados ao pino de reset, se o tempo de subida da tensão de alimentação vs reset não estiver dentro de uma certa gama dá raia.