Mudanças entre as edições de "Placa KC89C72"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
 
(10 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 14: Linha 14:
 
* [http://playground.arduino.cc/Main/AY38910 Exemplo no Arduino Playground]
 
* [http://playground.arduino.cc/Main/AY38910 Exemplo no Arduino Playground]
 
* [http://map.grauw.nl/resources/sound/generalinstrument_ay-3-8910.pdf Datasheet (pdf)]
 
* [http://map.grauw.nl/resources/sound/generalinstrument_ay-3-8910.pdf Datasheet (pdf)]
  +
* [http://bulba.untergrund.net/AY-3-8910.rar Manual com dicas de uso (rar contendo o pdf)]
   
 
==Circuito==
 
==Circuito==
  +
  +
Circuito montado (atualizado em 20/jan/14):
  +
  +
[[Arquivo:Circuito_KC89C72.png]]
  +
  +
Obs.:
  +
  +
* Transistor é o [http://www.fairchildsemi.com/ds/SS/SS8050.pdf S8050]
  +
  +
Placa:
  +
  +
[[Arquivo:Placa_KC89C72.jpg|640px]]
  +
  +
==Estudos do Circuito==
   
 
Será montado em uma placa padrão, contendo um soquete para o KC89C72 e os seguintes circuitos de apoio:
 
Será montado em uma placa padrão, contendo um soquete para o KC89C72 e os seguintes circuitos de apoio:
   
* 595 (conversor serial para paralelo) para reduzir o número de interconexões com o microcontrolador
+
* 74HC595 (conversor serial para paralelo) para reduzir o número de interconexões com o microcontrolador
  +
** [https://www.sparkfun.com/datasheets/IC/SN74HC595.pdf datasheet]
 
* LM386 (amplificador de audio) para reproduzir o som diretamente em um alto falante
 
* LM386 (amplificador de audio) para reproduzir o som diretamente em um alto falante
  +
** [http://www.ti.com/lit/ds/symlink/lm386.pdf datasheet]
 
** Circuito básico: http://web.mit.edu/6.s28/www/schematics/lm386.htm
 
** Circuito básico: http://web.mit.edu/6.s28/www/schematics/lm386.htm
  +
** Alternativa: amplificador com transistor [http://www.fairchildsemi.com/ds/SS/SS8050.pdf S8050]
 
* Oscilador de 2MHz
 
* Oscilador de 2MHz
 
** Ideia inicial oscilador a cristal com 74HC00 - cristal de 2MHz não é muito comum
 
** Ideia inicial oscilador a cristal com 74HC00 - cristal de 2MHz não é muito comum
** [http://www.simandl.cz/stranky/zxs/zxs_a.htm Spectrum ZX] e [http://8bit.yarek.pl/upgrade/zx.ay/ Timex 2048] usam oscilador RC @ 1.7MHz - parece ser a melhor opção
+
** Expansões para [http://www.simandl.cz/stranky/zxs/zxs_a.htm Spectrum ZX] e [http://8bit.yarek.pl/upgrade/zx.ay/ Timex 2048] usando oscilador RC @ 1.7MHz - parece ser a melhor opção
  +
*** Nos testes o circuito acima não funcionou
  +
*** Funcionou com o circuito desta [http://www.electronics-tutorials.ws/waveforms/generators.html página], com R1=330 ohms, R2=3.3K e C=470pF (dois capacitores de 1nF em série). A fórmula na página não dá o resultado correto (porque não considera o tempo de propagação das portas?).
  +
*** Outro circuito é descrito [http://www.fairchildsemi.com/an/AN/AN-118.pdf neste application note] (pdf).
 
** Ideia maluca: usar uControlador de 8 pinos para gerar o sinal a partir do oscilador interno
 
** Ideia maluca: usar uControlador de 8 pinos para gerar o sinal a partir do oscilador interno
  +
** Pode ser outros valores entre 1 e 2MHz. Tenho um cristal de 1,8432MHz
  +
** 11/jan/14: trocado o oscilador RC por um oscilador a cristal de 2MHz com 74HC00
   
 
A conexão da placa com o microcontrolador será através de um conector com os seguintes sinais:
 
A conexão da placa com o microcontrolador será através de um conector com os seguintes sinais:
Linha 34: Linha 57:
 
* Sinais BC1 e BDIR do KC89C72
 
* Sinais BC1 e BDIR do KC89C72
   
  +
==Teste em 22/9/13==
More to follow....
 
  +
  +
Montagem em protoboard
  +
* Conexão Arduino + KC89C72 + 74HC595 conforme [http://playground.arduino.cc/Main/AY38910 exemplo no Arduino Playground]
  +
* Oscilador de 1,7MHz composto de 74HC00 + RC
  +
* Código copiado do [http://playground.arduino.cc/Main/AY38910 exemplo no Arduino Playground]
  +
** Pendente acertar valores para 1,7MHz ao invés de 2MHz
  +
* Testados amplificador c/ LM386 e S8050 - ambos funcionaram a contento
  +
  +
[[Arquivo:Protoboard_KC89C72.jpg|640px]]
  +
  +
CIs, no sentido horário a partir do alto à esquerda: 74HC00 (NAND, para geração do clock), KC89C72 (Gerador Programável de Sons), 74HC595 (Conversor serial p/ paralelo), LM386 (amplificador de áudio).
  +
  +
==Teste em Out e Nov/13==
  +
  +
Feita a montagem em placa padrão. Som gerado muda muito de frequência quando encosto a ponta de prova do osciloscópio na saída do oscilador, cálculo da frequência não está funcionando. Feitas experiências para montar um oscilador usando um cristal de 2MHz.
  +
  +
==11 e 12/jan/14==
  +
  +
Substituído o oscilador RC por um com cristal de 2MHz. Som gerado continua mudando de frequência quando encosto a ponta de prova do osciloscópio na saída do oscilador, mas agora o cálculo de frequência funciona (não encostando a ponta de prova no oscilador).
  +
  +
==13 a 19/jan/14==
  +
  +
Várias experiências feitas com sucesso, documentadas no [http://dqsoft.blogspot.com.br/search?q=KC89C72 meu blog].
  +
  +
==20/jan/14==
   
  +
Projeto considerado concluído.
   
 
[[Categoria:Projetos]]
 
[[Categoria:Projetos]]

Edição atual tal como às 07h28min de 20 de janeiro de 2014

Placa para Experiências com Chip de Som AY-3-8910 / KC89C72

O CI AY-3-8910 é um gerador programável de sons, usado em jogos arcade e microcomputadores pessoais como o ZX Spectrum e MSX. O objetivo deste projeto é fazer uma placa para facilitar experiências em conjunto com o Arduino e outros microcontroladores.

Será usado o chip KC89C72 que é um clone chinês do AY-3-8910.

Responsáveis em ordem alfabética

Referências

Circuito

Circuito montado (atualizado em 20/jan/14):

Circuito KC89C72.png

Obs.:

Placa:

Placa KC89C72.jpg

Estudos do Circuito

Será montado em uma placa padrão, contendo um soquete para o KC89C72 e os seguintes circuitos de apoio:

  • 74HC595 (conversor serial para paralelo) para reduzir o número de interconexões com o microcontrolador
  • LM386 (amplificador de audio) para reproduzir o som diretamente em um alto falante
  • Oscilador de 2MHz
    • Ideia inicial oscilador a cristal com 74HC00 - cristal de 2MHz não é muito comum
    • Expansões para Spectrum ZX e Timex 2048 usando oscilador RC @ 1.7MHz - parece ser a melhor opção
      • Nos testes o circuito acima não funcionou
      • Funcionou com o circuito desta página, com R1=330 ohms, R2=3.3K e C=470pF (dois capacitores de 1nF em série). A fórmula na página não dá o resultado correto (porque não considera o tempo de propagação das portas?).
      • Outro circuito é descrito neste application note (pdf).
    • Ideia maluca: usar uControlador de 8 pinos para gerar o sinal a partir do oscilador interno
    • Pode ser outros valores entre 1 e 2MHz. Tenho um cristal de 1,8432MHz
    • 11/jan/14: trocado o oscilador RC por um oscilador a cristal de 2MHz com 74HC00

A conexão da placa com o microcontrolador será através de um conector com os seguintes sinais:

  • Gnd
  • +5V
  • Dado, Clock e Latch para o 595
  • Sinais BC1 e BDIR do KC89C72

Teste em 22/9/13

Montagem em protoboard

  • Conexão Arduino + KC89C72 + 74HC595 conforme exemplo no Arduino Playground
  • Oscilador de 1,7MHz composto de 74HC00 + RC
  • Código copiado do exemplo no Arduino Playground
    • Pendente acertar valores para 1,7MHz ao invés de 2MHz
  • Testados amplificador c/ LM386 e S8050 - ambos funcionaram a contento

Protoboard KC89C72.jpg

CIs, no sentido horário a partir do alto à esquerda: 74HC00 (NAND, para geração do clock), KC89C72 (Gerador Programável de Sons), 74HC595 (Conversor serial p/ paralelo), LM386 (amplificador de áudio).

Teste em Out e Nov/13

Feita a montagem em placa padrão. Som gerado muda muito de frequência quando encosto a ponta de prova do osciloscópio na saída do oscilador, cálculo da frequência não está funcionando. Feitas experiências para montar um oscilador usando um cristal de 2MHz.

11 e 12/jan/14

Substituído o oscilador RC por um com cristal de 2MHz. Som gerado continua mudando de frequência quando encosto a ponta de prova do osciloscópio na saída do oscilador, mas agora o cálculo de frequência funciona (não encostando a ponta de prova no oscilador).

13 a 19/jan/14

Várias experiências feitas com sucesso, documentadas no meu blog.

20/jan/14

Projeto considerado concluído.