LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: Marvin em 29 de Agosto de 2012, 17:10
-
Esta pergunta pode ser parva mas aqui vai...
Nos arduino (ou seja atmega) os GPIO's e ADC trabalham numa logica de 5V, isso é devido a serem alimentados com essa tensão certo? Se eu quiser que os portos passem para 3.3V (ou outra) "basta" alimentar com essa tensão, correcto? Ou existem step-ups internos que passam sempre para uma logica de 5v?
Tentei procurar nas datasheets e não consegui perceber isso, talvez nabice...
Agora para justificar esta duvida, estou a desenhar um circuito com um atmega que vai trabalhar maioritariamente com sensores que trabalham com uma logica de 3.3v, e para evitar um segundo regulador se calhar o melhor é colocar o atmega logo a trabalhar com uma tensão de 3v.
Ou seria melhor pratica colocar logic level shifting no circuito e deixar o atmega a 5v?
-
Todo o micro-controlador funciona com a voltagem com que o alimentas, não esquecer de ligar todos os pinos de alimentação e de massa, se o alimentares a 3.3v os pinos trabalham a 3.3v, assim como o core, cuidado com a frequência que queres usar, não podes por exemplo usar um atmega328p a 16Mhz a 3.3v, quer dizer puder podes, mas é overclock sobre o que a datasheet recomenda.
-
acho k n convem é ultrapassar os 10MHz...
vê se esta info ajuda-te:
http://www.kerrywong.com/2012/02/19/atmega328-fuse-bit-setting-for-3-3v-vcc/ (http://www.kerrywong.com/2012/02/19/atmega328-fuse-bit-setting-for-3-3v-vcc/)
-
Alguns dispositivos de 3.x V são "5V tolerant", que quer dizer que toleram sinais de 5V nas entradas, embora sejam alimentados por menor tensão.
A 5V de alimentação, se quiseres garantir que o atmega328 interpreta uma tensão como um "high", essa tensão tem que ser superior a 3V.
Com um pouco de sorte (o teu dispositivo de 3V3 é 5V tolerant) e se a aplicação não for critica, não precisas de alimentar o ATmega a 3V3. Se não precisares de chegar aos 16MHz o mais garantido mesmo é alimentar o mega com 3V3, mas só se não tiveres outros dispositivos de 5V ligados a ele...
3V3 dá para chegar a ~12.5MHz. Há quem os use à mesma a 16MHz, mas é out-of-spec e fora de questão se queres algo "a sério".
-
Obrigado! eu tambem imaginava que assim fosse, mas não ha nada como confirmar.
Por acaso tenho um misto de sensores alguns não são 5V tolerant e todos são alimentados a 3.3 V por isso é que fiquei com duvidas se não seria melhor colocar logo o atmega a 3v e não precisava de ter 2 regs no circuito (menos componentes = menor footprint = melhor preço final)
Uma duvida em relação aos osciladores, que ainda n vi a datasheet acerca disso, tal como o NJay diz o maximo a 3.3V é 12mhz, se eu colocar a 5V posso usar um 12mhz ou so pode ser 16mhz? Já agora o bootloader do arduino é esquisito em relação a frequencia? Não estou a pensar em usar o bootloader mas é uma questão que me ocorreu agora
-
Tens uma gráfico com esses dados, a 5v podes usar qualquer coisa entre 0hz e 16/20Mhz dependendo do modelo, a 3.3v, limitas a 12Mhz, se passares para 5v, não estás limitado, o bootloader fala serial, e o serial tem baud-rates, tens de alterar esses valores e recompilar o bootloader conforme a frequência do cristal que usares.
-
Ohhh yeah, está tudo nas datasheets! No caso dos AVR só há uma coisa que não está na datasheet, e que apanhei numa Application Note: a corrente máxima que se deve usar nos diodos de protecção de pinos é 1mA.