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.
W - Escrita Abaixo, a tabela demonstra as palavras de comando/programação e seus efeitos nas portas.
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:
E para ler um byte de
uma porta, basta usar:
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 |
|
|