Será possível a ligação de um Único Cristal em Dois Atmega328?

Olá Pessoal,

Alguém com mais experiência pode dar uma dica de como ligar apenas um cristal de 16Mhz em dois Atmega328 na protoboard para sincronismo perfeito entre os dois?

Agradeço sugestões.

Exibições: 1720

Responder esta

Respostas a este tópico

Olá Milton,

Já fiz isso com PIC, usando o clock de um em outro.

Olhando no datasheet do ATmega328 link podemos ver na página 33 que é possível usar o clock externo.

Abraço.

Veja o item 9.9 do datasheet, é mostrado sobre a configuração para saída do sinal de clock. No item 9.8 a configuração para o entrar com o clock externo.

Olá Wiechert,

Agradeço pela informação, vou pesquisar como interligar os dois Atmega328, o cristal e os capacitores.

Quero utilizar dois kits de Garagino desmontados pra realizar os testes.

Abraço,

Será que fazendo a ligação comum dos dois XTAL1 e dos dois XTAL2 entre os dois Atmega328 ligados com o cristal e os dois capacitores está correto?

No caso, os dois Atmega328 serão dois Garaginos e terão em comum apenas o circuito do clock, mas a utilização dos dois será independente.

Veja uma experiência semelhante nos vídeos dos links abaixo:

http://www.youtube.com/watch?feature=player_embedded&v=VwBoaKIWMDI

http://www.youtube.com/watch?v=3zSUM4CAFwk

Será que utilizando as conexões como mostradas na figura abaixo o clock vai funcionar para os dois Atmega328?

Esquema adaptado do link: http://arduinolabs.in/como-montar-um-arduino-standalone/

Olá Milton,

Nunca testei uma configuração como esta, pode ser que funcione.

Mas acho pouco provável, visto que temos dois circuitos osciladores (um em cada MCU) que terão que compartilhar o mesmo cristal, sendo que provavelmente um irá atrapalhar o outro, causando instabilidades e ou travamentos.

Acho que talvez o caminho mais confiável (no sentido da estabilidade do sistema) seria montar um circuito oscilador  composto por um cristal e portas inversoras em um CI CMOS e da saída deste circuito distribuir os sinais de clock aos MCUs conforme mostra o datasheet no item 9.8. Lembrando que deve ser alterado o registrador de configuração do oscilador, e é preciso verificar se para tanto é preciso alterar o bootloader do MCU.

Abraço.

Olá Wiechert,

Encontrei uma discussão tratando do assunto no link:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic...

Conforme indica o item 9.8 do datasheet o "CKSEL Fuses" deve ser programado para “0000” no Atemega328 que vai receber o sinal externo.

Nesse caso, imagino que a ligação deverá ser do pino 10 (XTAL2) de um Atmega para o pino 9 (XTAL1) do outro Atmega.

Encontrei no Forum Arduino um projeto que funcionou mas, não consegui acessar o link do esquema que o autor disponibilizou.

http://forum.arduino.cc/index.php/topic,7894.0.html

Agradeço pela ajuda,

Até +

Como o Wiechert disse, o circuito oscilador tem um sinal critico. Se vc medir com o osciloscopio vai ver que eh quase senoidal. Ja uma entrada de clock espera um sinal bem quadrado.

Um sinal quadrado seria conseguido com o oscilador externo, ja citado, que pode ter ainda um aporta inversora como quadrador. Um 74LS04 faria o servico. Mas compensa ? Um cristal nao seria mais barato ?

Resumindo: Pode ser que funcione, mas sera que compensa ???

Em termos cientificos/escolares/domesticos vale a brincadeira, vc conseguirá todas as suas respostas. Mas profissionalmente diria que a entrada no modo sem crisal deve receber um sinal com niveis logicos bem definidos e o mesmo pino quando ligado a um cristal tem sinais tipicos de oscilador (quase senoidais) e por isso nao é recomendado. 

Se vc precisa diminuir o espaco na placa e o preco e a precisao pra vc nao eh tao fundamental uma boa opcao sao os ressonadores, como alguns Arduino usam. Eles sao minusculos e muito baratos. Só nao da pra montar em protoboard.

Olá Eduardo,

Agradeço pelos comentários.

Você sabe me dizer até quanto a frequência prática medida num Atmega com cristal de 16Mz pode ser diferente de outro com montagem idêntica?

O que estou buscando é zerar a diferença de frequência entre dois Atmega.

Ainda não sei quanto essa diferença pode representar na prática devido às tolerâncias das partes envolvidas.

Melhor achar um PDF de cristal, mas a ordem eh de partes por milhao.

Se forem 10ppm da de 15.999.995 a 16.000.005 por ex, se nao errei nas contas.

Isso eh bastante precisao..

Vc pode fazer o sincronismo ligando um no outro por um pino.

Quando vc der inicio a um ciclo em um deles pulsa esse pino e no outro aguarda o pulso.

Nesse caso a precisão da frequência de clock entre duas montagens idênticas é bem precisa mesmo!

Agradeço muito pela dica de utilizar o controle através de dois pinos, boa idéia.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço