quarta-feira, outubro 23, 2013

Chip de Som AY-3-8910 / KC89C72 - Parte 1

O AY-3-8910 é um gerador programável de sons, que era usado em jogos arcade e microcomputadores pessoais como o ZX Spectrum e MSX. Embora o chip original não seja mais fabricado, existe um clone, o KC89C72, que é encontrável no eBay e em outros locais mais obscuros .



Internamente este CI possui:
  • Três geradores de tons, que produzem ondas quadradas dividindo um sinal de clock.
  • Um  gerador de ruído, que produz pulsos com largura pseudo-aleatória.
  • Três mixers, que permitem combinar as saídas dos geradores de tons e ruído, gerando até três sinais separados.
  • Três conversores Digital Analógico (DACs) que convertem as três saídas do mixer em três sinais analógicos. A amplitude destes sinais pode ser determinada pelo processador ou gerada pelo Gerador de Envelope.
Temos portanto um número bastante grande de combinações, que possibilitam desde gerar tons simples até efeitos sonoros.

Todos estes elementos são controlados através de 16 registradores de 8 bits:
  • Seis registradores determinam a frequência das ondas produzidas pelos geradores de tons  (dois para cada um) .
  • Um registrador determina a frequência dos pulsos gerados pelo gerador de ruído
  • Um registrador controla o mixer. Para cada canal é possível selecionar se será usado o gerador de tom., o gerador de ruído, ambos ou nenhum.
  • Três registradores controlam a amplitude dos canais, indicando se ela é fixa (e seu valor) ou se deve seguir o gerador de envelope.
  • Dois registradores controlam a frequência do envelope.
  • Um registrador controla o formato do envelope
  • Dois registradores controlam pinos auxiliares do chip (permitindo que ele seja usado como expansão de E/S).
 A interface entre o AY-3-8910 e o processador é paralela, através de 8 bits de dados e alguns sinais de controle. Tipicamente são feitas duas escritas para programar um registrador: uma para selecionar o endereço e o outra para enviar o novo conteúdo do registrador.

O datasheet do AY-3-8910 pode ser baixado daqui (pdf).

No próximo post veremos um circuito básico para podermos fazer algumas experiências ligando um KC89C72 a um Arduino.

Nenhum comentário: