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 |
|
|