Brasil

SETI@Home: units

  Seti@Home

 
.
Mail

.


você esta em: / hardware -> projetos

>> OPL3 - "Moonsound de pobre"

Por: Luciano Sturaro

.

Back
   O circuito descrito abaixo, é idéia original de Leonard Silva de Oliveira. Trata-se de um cartucho de som para o MSX baseado no OPL3 da Yamaha. O circuito provê compatibilidade parcial com o MSX-Audio (Y8950) e com a Moonsound (OPL4, YMF278b)

   Programas que não tentem detectar o MSX-Audio ou a Moonsound através do sampler, devem funcionar, desde que não façam uso do sampler ou da wave table. O circuito já provê a simulação dos registros legíveis do OPL4, já que vários programas detectam o OPL4 através das leitura destes registros. O que o circuito faz é fingir que existe o registro, enganando o programa para pensar que existe um OPL4 conectado ao barramento.

opl3
(clique sobre a figura para o download)

   Para ouvir uma demonstração do áudio do cartucho, clique aqui.

   Veja aqui uma foto do meu cartucho OPL3 aberto, a parte do emulador de registros foi montada do lado debaixo da placa. Pode falar a montagem é uma baita gambiarra, né? (haja fiozinho de wire-up) Mas o importante é que ela funciona. 

op3 cartridge

     Update 05/04/2008

   Com os picuás na lua de tanto mal-contato e tanta gambiarra que já tinha feito nesse meu cartucho OPL3 ai de cima e e precisando enfiar mais um upgrade nele, a coisa chegou em um ponto que compensa(va) fazer uma placa nova, já abrigando todas as novidades. Uma dessas novidades é a inclusão de uma memória com um BIOS para ele, usando o mesmo circuito do upgrade de BIOS do Music-Module.

   E como eu já havia feito a placa da Harukaze que é face dupla, resolvi por mãos a obra e encarar mais este desafio, porem agora a placa é muito, mas MUITO mais complexa e praticamente usa somente componentes SMD. Logo a dificuldade será muito maior.

   Primeiro passo, é desenhar o esquema no editor esquemático do P-CAD 2002 (ou vocês acham que eu iria rotear essa placa face-dupla e apinhada de componentes SMD na unha?):


Esquema do OPL3 na versão com BIOS inclusa

   Uma consideração digna de nota. Ao invés de usar uma eprom, eu optei por usar uma memória flash e coloquei um jumper soldável que permite ligar o /WR da memória no barramento do MSX, assim teoricamente será possível gravar a memória dentro do próprio cartucho no caso de uma atualização. A flash usada é muito maior, escolhi uma flash que não seja difícil de comprar, assim sendo a maior parte da memória não será usada. Não será usada porque seria necessário um mapedor para usar o restante e isso só complicaria muito mais o circuito desnecessariamente.

   Com o esquema na mão, gera-se o netlist no modulo SCH, carrega-se o netlist no editor PCB e distribui-se da maneira que achar melhor e tenta rotear automaticamente. Ai é que começam os problemas. Eu precise de mais ou menos 10 dias arrastando peça pra prá e prá lá pra poder rotear uma placa que fosse minimamente viável de se fazer em casa. Na maioria das vezes, a placa roteava até 95% e parava. Ou quando roteava era com trilhas muito finas ou um numero absurdamente grande de vias.

   O resultado foi esse ai abaixo. Mas tem muitas vias por ser uma placa quase que 100% SMD, mas não tem outro jeito. Eu até tentei usar alguns componentes PTH, mas simplesmente não cabe no cartucho pequeno, e uma das minhas metas é que todo o circuito coubesse no cartucho pequeno. E ainda tinha o problema de usar uma trilha que não fosse muito fina (13 ou 14 mils já esta no limite pra fazer em casa com processo de transferência de toner) e uma via de tamanho razoável que pudesse ser soldada com fios ao invés de metalização.


Placa Revisão B, numero de vias: 248, trilhas de 15 mils.


   Enfim era hora de tentar fazer a placa, pelo mesmo processo que já expliquei no texto da Harukaze. Depois de perder uma placa por uma bobeira banal, consegui fazer esta placa ai de baixo.


 


© 2004 by MSXPró

.
Esta página é melhor visualizada em
resolução de 1024x768 @ True Color
Utilizando o navegador Mozilla

Visitante:

.

Valid HTML 4.01 Transitional   Valid CSS!