segunda-feira, abril 01, 2024

Microcomputador Z80 - Oscilador

Como primeiro passo do meu microcomputador didático com Z80, vamos examinar as opções de oscilador. O projeto em que estou me baseando, o CEDM-80, utiliza um oscilador RC (encontrei também uma versão aperfeiçoada que usar um cristal de 3,5MHz).

Circuito original. O "7414" na verdade era um 74LS14

Montando este circuito na protoboard, o resultado foi o abaixo:

Oscilador RC funcionando!

A forma de onda não é das mais bonitas e a frequência parece exagerada (lembrando que o projeto original usava um Z80A, especificado para operação até 4MHz).

O oscilador em si do circuito é o primeiro inversor. Para sermos precisos, o inversor usado é um Schmitt Trigger, que se caracteriza por ter limites diferentes para a detecção de nível alto e baixo conforme o sinal está subindo ou descendo. A teoria completa pode ser vista neste artigo.

De forma simplificada:

  • Supondo que inicialmente a entrada está em nível baixo, a saída estará em nível alto.
  • O capacitor C é carregado através de R até atingir o nível VT+ do inversor. A tensão durante a carga segue uma curva exponencial, com fator 1/RC
  • Com a entrada agora em nível alto, a saída vai para o nível baixo.
  • O capacitor é agora descarregado através de R, até atingir o nível VT-. A tensão seguem também uma curva exponencial, com fator 1/RC.
  • O processo se repete
A frequência depende, portanto, de R, C, do nível alto de saída do inversor e dos limites VT+ e VT- do Schmitt Trigger. Destes fatores, R é o que podemos controlar com mais precisão. Capacitores costumam ter variação significativa e as tensões do inversor dependem do seu tipo e podem ter variações grandes. O projeto original usava um 74LS14, eu usei um 74HC14 (circuitos LS estão cada vez mais difíceis de achar nas lojas).

Fonte: datasheet Texas

Resumindo, embora um oscilador RC seja barato, o resultado é meio imprevisível.

Minha opção é por um oscilador a cristal. Eu já montei alguns e escrevi a respeito neste post. O interessante é que, naquela ocasião, só consegui fazer o cristal de 2MHz oscilar incluindo um resistor em série com o cristal. Repetindo os testes, verifiquei que o circuito também funciona com um cristal de 4MHz, sem precisar mudar os valores dos componentes. Inesperadamente, o oscilador funcionou mesmo retirando (substituindo por um curto) o resistor em série.
O circuito do oscilador a cristal

Vou adotar no meu projeto o oscilador a cristal, com um cristal de 4MHz (e o resistor em série, para ter certeza que funciona também com um cristal de 2MHz).

Teste do oscilador com cristal de 4MHz


2 comentários:

Ronaldinho disse...

Acompanhando seus vídeos e textos aqui, já tem um tempo que estou brincando com um Z80 e tenho certeza que terei informações úteis. Acompanho seu blog a bastante tempo e acho ótimo os textos. Daniel, seria possível mudar o tema do blog para uma leitura melhor em dispositivo moveis? O tema Contempo do próprio Blogger por exemplo é uma boa opção.

Daniel Quadros disse...

Obrigado pelos elogios! Em minha defesa, quando criei o blog não tinha esta coisa de acessar de dispositivos móveis... A última troca de tema foi há treze anos (6/6/2011). Vamos ver se me animo a dar uma mexida, lembro vagamente que tem uma gambiarra para ter o Syntax Highlighter funcionando. De qualquer forma, a prioridade é retomar o ritmo dos posts, pois está começando a juntar pó no blog.