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. 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). 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!!!). 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:
Analisando cada uma das situações a resposta para cada uma delas ajudou na escolha final:
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.
|