TK

TK90X I/O EXPANDER


Se você acompanha ou acompanhou meus artigos ao logos dos anos de 2002-2010 (período em que tive o prazer de ser um colaborador ativo da saudosa Editora Saber - Revista Saber Eletrônica, Revista Eletrônica Total e Revista Mecatrônica Fácil) deve se lembrar que uma das linhas editorias que eu costumava explorar eram artigos utilizando um PC no controle de alguma automação. Eu acredito que isso começou no ano de 1984 durante a feira de eletrônica de final de ano do meu do curso técnico (eletrônica), quando ví pela primeira vez um pequeno microcomputador, o TK85 também da Microdigital, controlando LEDs em uma maquete que simulavam as lâmpadas numa casa e ao pressionar o número presente no desenho da maquete feito na tela, o LED acendia ou apagava. Isso hoje pode parecer muito trivial, mas em 1984 para um garoto de 15 anos, pode acreditar, não era!

E desde que comprei meu primeiro computador, um MSX, a ideia sempre foi fazer algum tipo de controle "externo". Um dos primeiros projetos que montei usando um microcomputador como base foi o Braço Robótico p/ MSX publicado na Revista Saber Eletrônica nr 215 de Dezembro de 1990. E desde então não parei mais. Muitos foram os controles que desenvolvi utilizando o MSX e posteriormente PCs sendo muitos deles inclusive utilizados durante a década de 1990 em "chão de fábrica".

E se você já leu um outro artigo meu presente neste site, Projeto Hardware - Revista CPU MSX vai perceber que basicamente o que temos é a adptação deste projeto para o TK90X. Decidi usar o mesmo "conceito" para testar as possibilidades do TK90X, que eu confesso, conheço muito pouco (ainda!).


O circuito


A figura acima mostra o circuito do TK90X I/O Expander. Ele é bem simples e usa apenas 4 CI's, sendo 3 deles  (U2, U3 e U4) utilizados para o endereçamento do circuito através do barramento do TK90X. Quando inserido no barramento um dado para I/O (portanto com ativação do pino IOREQ) com os endereços 0BH, 1BH, 2BH ou 3BH o pino CS de U1 é ativado (LOW) acionando U1. Eu não vou ficar aqui demonstrando "logicamente" como esse endereçamento é feito, mas se você tiver curiosidade é só  estudar um pouco o circuito e verificar as saídas de acordo com cada "estímulo" nas respectivas entradas ("0" ou "1" lógicos).

Voltando ao circuito, temos como CI principal U1, um PPI8555 da Intel, ou "Programmble Peripheral Interface". Esse CI foi muito utilizado em conjunto com microprocessadores como 8085, Z80, 6502, etc. Se o circuito requeria entradas e saídas digitais, as chances desse "cara" aparecer seriam grandes!

O LED1 (ON) juntamente com seu resistor limitador de corrente serve para demonstrar "circuito ligado". Também é possível, através de V_SEL, selecionar de onde será retirada a alimentação para o circuito. Se do TK90X ou do conector CN2 (+5VDC Externo). O circuito conta também com pontos extras para GND e +5VDC, sendo que este último estará sempre conectado a CN2 (eveitando assim sobrecarregar o regulador interno do TK90X). O capacitor C8 serve com filtro para o circuito.


A montagem

O layout que preparei para a minha placa está abaixo e eu enviei a mesma para a JLCPCB para a sua confecção (deve chegar em breve e assim que chegar atualizarei essa parte do artigo).


O protótipo foi montado e testado utilizando um "protoboard" e pode ser visto na figura abaixo.


Obs.: Na imagem acima é possível ver um CI a mais conectado a PPI8255. Trata-se de uma experiência com o ADC0804. Essa experiência foi desmonstrada no vídeo abaixo e está presente no meu canal do YouTube. Inscreva-se!!!


Se você decidir montar esse projeto, poderá optar por montá-lo em uma placa padrão, num "protoboard" (como foi o caso do meu protótipo) ou até mesmo preparar a sua própria placa. Apenas lembre-se de que os CIs são polarizados e se montados invertidos queimarão irremediavelmente, assim como o capacitor eletrolítico (esse pode até estourar fazendo aquela lambança!). O conector que será ligado ao TK90X também segue uma "pinout" e deve estar de acordo com o barramento. Recomendo consultar o manual do micro sempre que houver qualquer dúvida!


Prova e uso

O circuito utiliza basicamente 4 portas para seu endereçamento e a tabela abaixo mostra o uso destas e seus respectivos controles.

Endereços para acesso a PPI8255 da placa via MSX
0BH
W/R Controle da  Porta A
1BH
W/R Controle da Porta B
2BH
W/R Controle da Porta C
3BH
W Configuração

W - Escrita
R - Leitura


Abaixo, a tabela demonstra as palavras de comando/programação e seus efeitos nas portas.

Palavra
de
comando (Hexa)

Porta A

Porta B

Porta C
PA0 a PA7 PB0 a PB7 PC0 a PC3
PC4 a PC7
80
OUT
OUT
OUT
OUT
81
OUT
OUT
IN
OUT
82
OUT
IN
OUT
OUT
83
OUT
IN
IN
OUT
88
OUT
OUT
OUT
IN
89
OUT
OUT
IN
IN
8A
OUT
IN
OUT
IN
8B
OUT
IN
IN
IN
90
IN
OUT
OUT
OUT
91
IN
OUT
IN
OUT
92
IN
IN
OUT
OUT
93
IN
IN
IN
OUT
98
IN
OUT
OUT
IN
99
IN
OUT
IN
IN
9A
IN
IN
OUT
IN
9B
IN
IN
IN
IN

OUT - Saída
IN - Entrada

Observando a tabela vemos que é possível programar as portas de I/O da PPI8255 de várias maneiras, permitindo várias configurações.

Para testar o funcionamento, basta conectar a placa ao barramento do seu TK90X e ligar o microcomputador. Quando ligado o TK90X simplesmente não faz nada, pois não temos nenhuma ROM na placa com um programa que ira rodar durante a sua inicialização ou ainda acrescentar algo ao BASIC, por exemplo. Essa é simplesmente uma placa de I/O que para operar corretamente precisa receber os comandos para tal.

Para escrever um byte em uma porta qualquer da PPI8255 você precisa usar o comando "OUT" do BASIC como segue:

OUT endereço, dado

E para ler um byte de uma porta, basta usar:

PRINT IN endereço

Lembrando que a leitura ou escrita em uma porta depende da palavra de comando enviada a PPI através do endereço 3BH (registrador de configuração - apenas escrita). Ou seja, primeiro é preciso configurar a PPI8255 para somente então utilizar suas portas.


Conclusão

Eu estava já há um tempo esperando para fazer algo interessante com o meu TK90X. Essa placa é apenas o começo. Tenho a intenção de em breve trazer mais artigos demonstrando o uso dessa placa e também de outras que estou desenvolvendo. Espero com isso ajudar de alguma forma todos aqueles que curtem esse "micrinho" e também eletrônica e que gostariam de alguma forma utilizá-lo não apenas para jogos (o jogo fica para o final, para relaxar ;) ). Até a próxima!


Downloads:

- Circuito eletrônico
- Layout da placa - top layer - invertido (método transferência térmica - clique aqui)
- Layout da placa - botton layer - não invertido (método transferência térmica)
- Lista de materiais - use o circuito eletrônico e as informações contidas nesse artigo para saber o que é necessário
!




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.