Cartucho RS-232 para MSX


Desde que iniciei no mundo dos computadores, sempre fiquei fascinado ao ver um computador se comunicando com o mundo exterior seja no controle de cargas, seja lendo entradas digitais e claro, trocando informações com outro computador e/ou dispositivo eletrônico "diverso". Lembro-me quando vi pela primeira vez um computador recebendo dados de um decodificador de código de barras via porta serial. Percebi na hora que essa porta era muito boa já que permitia a comunicação entre dois dispositivos tão diferentes entre si. Desde então passei a usar essa porta em vários projetos e aplicações.

A seguir apresento o projeto do meu cartucho RS-232 para MSX, "saga" que começou ainda em 2019. O projeto ainda está em pleno desenvolvimento e em breve quero postar algumas melhorias no mesmo.
 
Então, sem enrolar mais, abaixo apresento um breve histórico da experiência que foi desenvolver essa placa/cartucho RS-232.


PRIMEIRA VERSÃO

Essa (abaixo) foi a minha primeira versão (ou tentativa) no desenvolvimento de uma placa/cartucho RS-232.



Clique na imagem para aumentá-la

Eu usei nessa versão uma USART Intel 16C550, primeiro com cristal 18.432MHz depois com um cristal de 1.8432MHz.

Uma coisa que fiz e que não considerei
posteriormente como certo foi usar CI's drivers para a RS232 um tanto quanto antigos, o famoso par 1488/1489. Mas espera, o que nesse projeto pode ser considerado "novo" se a própria plataforma tem mais de 30 anos?! ;P. O grande problema desse "par" é que ele precisa de 3 tensões distintas na sua alimentação: 5VDC, +12VDC e -12VDC.

Nos testes com a minha antiga placa
de estudos Z80 (abaixo) tudo foi bem, mas eu achava que poderia ficar melhor e foi ai que parti para uma segunda versão.


Clique para ampliar

Obs.: A placa acima foi criada entre 1994/95 e eu a usava em conjunto, primeiro com um gravador de EPROM Megatel EPP-01 (porta paralela) e depois com um Emulador de EPROM Hi-Lo 512k, em ambiente DOS com um IBM PC 386. Em tempo atualizarei umas imagens aqui, pois ainda tenho esses equipamentos.


SEGUNDA VERSÃO

Essa segunda versão (foto abaixo) foi a que deslanchou efetivamente. Resolvi passar tudo para um pront-o-board (nossa alguém ainda chama assim uma "matriz de contatos"?!). Fiz isso porque encontrei em meu gaveteiro de componentes "3" peças do 8250 UART Intel DIP40 (uma versão anterior ao 16C550, mas totalmente compatível).


Clique para ampliar

Achei muito mais interessante testar dessa forma e antes até mesmo de ligar o circuito ao MSX, resolvi testar a coisa toda com um Arduino UNO. Sim, usei um Arduino simulando o MSX inclusive com linhas de endereço(A0,A1,A2 e A7), dados (D0 a D7), /IORQ, /RD, /WR e /INT! As imagens disso estão mais abaixo.

Nessa versão eu também troquei o par 1488/1489 por um MAX232. Isso faciliou muito, já que este último não precisa de +12VDC/-12VDC para fazer o drive entre o padrão RS232 e TTL. Ele recebe apenas 5VDC e faz o resto sozinho! A placa que você vê junto ao pront-o-board na imagem acima é um outro projeto meu, o Conversor RS-232/TTL duplo (disponível neste site).

Claro que usando aquele "velho" par que já citei eu tinha simplesmente todas as linhas necessárias devidamente conectadas. Com um MAX232 passei a ter apenas TX/RX e RTS/CTS, o que para os meus propósitos seriam mais que suficientes.



Clique para ampliar

Acredito que um detalhe interessante a respeito do trabalho com essa versão foi um cartucho de "extensão" que eu preparei a partir de uma placa/cartucho de desenvolvimento comprado com o Daniel Ravazzi (Fractal). Nesse cartucho além do barramento de extensão eu também inseri uma barra de pinos (50 no total) seguindo exatamente a mesma pinagem do barramento/conector. Assim ficou mais fácil trabalhar com o MSX, tanto que eu usei esse mesmo cartucho em outros projetos que descrevi nesse site (sim, a placa RS-232 veio primeiro em relação a todos os outros!!!).


Clique para ampliar


PROTÓTIPO FINAL

Após finalizar os testes da 2ª versão me convenci que a mesma era estável e bastante tranquila de lidar. Sendo assim, havia chegado a hora de transformar isso em um cartucho de verdade e para isso eu tinha algumas opções:

  1. Desenhar a placa e prepará-la em casa?
  2. Desenhar a placa e solicitar a uma empresa nacional a sua confecção?
  3. Mandar o desenho para a China para a sua confecção?
  4. Preparar o primeiro protótipo usando uma placa padrão de desenvolvimento?

Analisando cada uma das situações a resposta para cada uma delas ajudou na escolha final:
  1. Preparar uma placa dupla face em casa não é nada fácil e comodo, além de um tanto chato. As dificuldades são muitas e o resultado final pode não ficar muito bom.
  2. Cotei a confecção da mesma em empresas aqui no Brasil e como já era esperedo, "sem chance!!!" Fica caro demais e demoraria uns 20 dias!!!!
  3. Cotei na China e o valor, apesar do dolar a expressivos "cinco paus e lá vai pedrada" e  um despacho via DHL que ficou mais caro que as 10 placas, ainda me custaria metade do que foi orçado aqui no Brasil o que achei "meio" caro e ainda demorado.
  4. Fazer a mesma usando uma placa de desenvolvimento by Fractal (disponível nas "tralhas") e neste caso com custo zero e com prazo contabilizado em algumas horas! Yeah!!!.
Abaixo algumas imagens do protótipo tanto na bancada durante a sua montagem como também já pronta!!!





Clique na imagem para aumentá-la

Bom, muito legal, mas você deve estar se perguntando: "e o software de controle?" Calma, eu não esqueci disso! Desenvolvi, primeiro, uma versão usando Assembly Z80 com o compilador Pasmo e em seguida uma outra usando Linguagem C e Assembly Z80 com o compilador SDCC. Mas ao invés de mostrar apenas algumas imagens sobre, convido você a ver dois vídeos bem curtos mas que monstram a operação da placa 2ª versão (tanto no pront-o-board como também a placa protótipo).





CONCLUSÃO

O projeto não está 100% concluído e eu preciso agora partir para o desenvolvimento do programa que vai permitir a transferência de arquivos, como numa rede, entre dois MSX e um PC (chamo isso de "a rede do pobretão!"). Por enquanto posso dizer apenas que essa foi uma experiência muito legal. Aprendi muitas coisas sobre o MSX. Além disso acabei desenvolvendo ferramentas que me auxiliaram no desenvolvimento de outras projetos para o MSX e creio que me ajudarão em muitos outros que estão por vir. Vamos em frente!!!



Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.