Adaptador de teclado PS2 para MSX – Parte 4


Olá Galera;

Antes de iniciarmos nossa experiência de acender um led, para que possamos testar nosso gravador de PIC, gostaria de informar que alguns leitores me escreveram e tiveram algumas dificuldades.

Pergunta – Tenho Notebook / PC somente com saída usb, posso conectar um adaptador USB para Serial (RS232C – DB9) ?

R: Sim, mas atenção um PIC necessita de pelo menos 12V no sinal VPP para que ele possa ser gravado,a interface RS232C trabalha com voltagens de -12V a +12V atendendo perfeitamente a esse requisito, no caso da USB necessitamos que o adaptador utilizado respeite essa norma.

Cuidado ao adquirir esses adaptadores mais baratos, normalmente não funcionam. Um bom teste a ser feito é medir o pino 3 macho do adaptador DB9 para verificar se o mesmo possui uma tensão de +12V -12V.

Exemplo de um adaptador de USB para Serial

Vamos utilizar para nosso teste um programa que irá gravar o programa que iremos fazer no PIC, e como aqui no blog tudo funciona na base da econômia então vamos aderir a um programa gratuito cedido gentilmente por Wolfgand Buescher e o programa pode ser baixado aqui.

Após realizar a instalação do software, você deve acessar a seguinte opção;

Deixe as opções configuradas igualzinho a tela acima.

O Tipo de interface que usaremos é a “JDM (2) for serial Port”. Depois configure a porta serial onde o seu gravador está conectado.

Na maioria dos computadores, quando ele já vem com a porta serial esta tem o nome de COM1.

Caso você use um cabo adaptador, verifique no painel de controle do windows qual o número de COM seu cabo assumiu.

 No nosso caso usamos uma porta serial que existe no computador (COM1). Não se preocupe com o endereço. Veja abaixo;

 

Agora é só conectar o cabo na porta referida e apertar o botão “Initialize!”. Se tudo estiver certo, a seguinte mensagem aparecerá “Interface Tested OK”. Veja:

Acima, após tudo feito conforme o script a mensagem que o gravador foi encontrado;

Agora podemos avançar com nosso teste, pois já temos o nosso gravador construído, temos o microcontrolador a ser utilizado (16F628A) e temos o programa para gravar no PIC nosso programa (WINPIC Programmer).

Se você não entende nada de eletrônica, é hobbista, ou técnico, e simplesmente leu nosso blog apenas por curiosidade, pode concluir que com um mínimo de esforço é possível ter em mãos sem gastar quase nada toda a estrutura que precisamos.

Até o momento da postagem desse artigo gastei R$ 14,38 com todo o material necessário.

Claro que imagino que o pessoal já possua, um PC, ferro de solda, solda, sulgador de solda, alicates de bico e de corte e também um multímetro, caso contrário o custo sobe consideravelmente.

No próximo post, vou demonstrar como escrever e gravar nosso projeto no PIC.

Até breve;

MsxRevival

Fonte e agradeçimentos: www.robotizando.com.br

Anúncios

Projeto BR-X (Construa seu MSX) – Parte 3


Olá Galera,
Dando continuidade ao nosso projeto;
E como é a tal arquitetura do Z80 ?
Arquitetura de um Z80 – Clique no desenho para ampliar
A arquitetura do Z80 é frequentemente representada através do diagrama de blocos acima (que é igual ao usado na própria folha de características do componente), ora este diagrama passa com verdade aplicar-se à quase totalidade dos outros microprocessadores de uso genérico que possamos considerar.
É muito superficial olhar para o diagrama de blocos, mas por hora vai nos servir para o seu propósito, já que nos permite um enquadramento simples para a introdução dos aspectos de detalhe que irá tendo lugar nas seções seguintes.
O registro de instrução armazena o código de instrução extraído da memória, enquanto percorre a respectiva execução, proporcionando à unidade de decodificação e controle à informação necessária para a geração dos sinais de controle internos.
Todos os registros da CPU (unidade de central de processamento, central processing unit) estão incluídos no bloco com este nome (incluindo o apontador de programa ou program counter, PC), realizando-se na ALU todas as operações lógicas ou aritméticas. Arithmetic Logic Unit  ou mais conhecido nas terras tupiniquins como ULA (Unidade Lógica e Aritmética), para quem não conheçe foi proposta o conceito em 1.945 pelo matemático John Von Neuman.
Pense nela como uma grande calculadora eletrônica;
 Simbolo esquemático da ALU / ULA
Os blocos responsáveis pelo controle dos barramentos contêm buffers com terceiro estado que permitem a colocação das respectivas saídas em alta impedância, quando tal for necessário.

Conhecendo, e identificando sua pinagem e barramentos;
Pinagem do Z80A
Os 40 pinos do Z80, com a exceção dos 2 pinos de alimentação, distribuem-se pelos três barramentos já conhecidos:
1. O barramento de endereços; dispõe de 16 pinos de saída (A[0:15]), todos com terceiro estado, de forma a permitir que outros dispositivos tomem conta deste barramento (por exemplo, quando se pretende efetuar um acesso direto à memória – dma).
2. O barramento de dados; inclui 8 pinos bidirecionais, também com terceiro estado, através dos quais se processa toda a troca de informação com os dispositivos de memória e periféricos.
3. O barramento de controle; é o que inclui o conjunto de sinais que são específicos deste microprocessador, e que na figura acima se encontram agrupados nos sinais de controle do sistema, de controle da CPU e de controle do barramento da CPU.

MSX Turbo R – Utiliza o microprocessador Risc 800.

 Até o próximo post;

MsxRevival

Projeto BR-X (Construa seu MSX) – Parte 2


Olá Galera;

Estamos de volta para falarmos sobre o projeto de construção de um MSX, e de início pude perceber que realmente a coisa é muito complicada, e o trabalho realmente vai ser longo.

Como prometi relatar minhas experíências a respeito, começei estudando o coração de nosso computador o famoso microprocessador Zilog Z80A.

Mas afinal de contas o quem é o Z80 ?

O microprocessador Z80 nasceu de uma cisão no seio da Intel, através da qual algumas das pessoas que estiveram ligadas à concepção do 8080 decidiram criar  a sua própria empresa e avançar com um projeto que conduziu ao microprocessador Z80, compatível com o 8080, mas representando ao mesmo tempo um enorme salto em frente, tanto na arquitetura como no conjunto de instruções.
A empresa que fundaram recebeu o nome de Zilog e em 1976 lançou um dos seus produtos mais bem sucedidos, precisamente o microprocessador Z80.
Tão bem sucedido que continua ainda a ser fabricado (2012), quer na versão original quer em variantes que dela descenderam, 36 anos depois de ter sido introduzido.
Para além de possuir um conjunto de instruções largamente mais poderoso do que qualquer dos seus contemporâneos, o Z80 apresenta ainda a vantagem de possuir um modelo de programação e uma arquitetura interna que se aproximam bastante da complexidade ideal para apoiar um curso de introdução aos microprocessadores, razão pela qual continua a ser largamente usado neste contexto.
Ideal para nosso propósito não acham ? 🙂
 Exemplos de processadores produzidos pela Zilog
Depois de um pouco de história que tal nos aprofundarmos no  Z80. ?
Mas isso é assunto para o próximo post; 🙂
Abraços
MsxRevival;

Adaptador de teclado PS2 para MSX – Parte 3


Olá Galera;

Dando continuidade ao nosso projeto do adaptador do teclado PS2 para MSX, finalizamos nosso gravador para nosso PIC gastando praticamente nada, é nisso que temos sempre que nos concentrar, pois em eletrônica as vezes pequenos centavos fazem a diferença para um sucesso de um projeto.

Nos posts anteriores falei a respeito do PIC16F628A como nosso principal componente na construção desse adaptador, mas na verdade o que é esse microcontrolador e como ele funciona.

Para explicar o funcionamento do microcontrolador usarei o datasheet ou o desenho dos pinos abaixo;

Representação de um PIC e seus pinos

A imagem acima retrata o  microcontrolador 16f628A, um chip de 18 pinos, as setas junto a cada pino mostra como esses pinos podem trabalhar, por exemplo, neste microcontrolador apenas os pinos 4, 5 e 14(na realidade tenho dúvida sobre o pino 5 mas até que me ensinem o contrario ele é apenas entrada de sinal) são apenas entrada de sinal ,todos os outros podem trabalhar como entradas ou saídas.
Agora não entrarei em detalhes sobre a função ou como configurar cada pino para entrada ou saída pois, isso será revelado aos poucos com o aprendizado, mas falarei dos grupos de pinos existentes.
Notem os pinos 5 e 14 são apenas entrada de sinal pois eles são responsáves pela alimentação de tensão ao microcontrolador em geral 5V. VDD é o positivo e VSS o Negativo ou GND como quiser chamar.
Os outros pinos são separados por grupos denominados Port A(Porta) e Port B(Portb). cada port possui 8 pinos ligados a eles que são identificados como;
Porta – Ra0, Ra1, Ra2, Ra3, Ra4, Ra5, Ra6 e Ra7.
Portb – Rb0, Rb1, Rb2, Rb3, Rb4, Rb5, Rb6, Rb7,
Cada Port na realidade é um byte (8bits) de memória onde cada bit deste byte se refere a um pino. por padrão quando o bit está em nível alto ou seja, há tensão do mesmo ele é representado em binário pelo número 1. caso o nível seja baixo ou seja, não há tensão sobre o mesmo ele é representado em binário pelo número 0
Ex;
Portb com todos os pinos em nível alto = 11111111 – Em binário é este o número que vai está literalmente estar gravado na parte da memória que se refere ao Portb.
Para os quem já conhecem de programação é só pensar que “Portb” é o nome da variável  que representa um espaço físico na memória do microcontrolador, esta variável possui 8 bit e é controlando o valor em cada bit que definimos se os pinos que estão ligados ao Portb estarão em nível alto ou baixo seja em grupo ou individualmente.
Ex;
 Portb     Rb0, Rb1, Rb2, Rb3, Rb4, Rb5, Rb6, Rb7
                 1      1      1       1       1       1      1      1    Todos os pinos  do Portb com nível alto.
                 0      0      0       0       0       0      0      0    Todos os pinos do Portb com nível baixo
                 0      1      0       1       0       1      0      1    Apenas os pinos Rb1, Rb3,Rb5 e Rb7 do Portb com nível alto.
A mesma situação ocorre para o Porta.

Assim podemos concluir que o que queremos quando programamos o microcontrolador é ter controle sobre suas portas, para exemplo note o desenho abaixo.

Representação de um circuito utilizando o PIC
Segue abaixo a descrição do circuito;
B1 – Quando apertado põe Ra2 em nível alto(1)
B2 – Quando apertado Põe RA4 em nível baixo (0) fazendo com que o processador Resete
Vss – Negativo para funcionamento do microcontrolador
Vdd – Positivo para funcionamento do microcontrolador (5v)
R1 e R3 – Resistor de controle de corrente
R2 Resistor Pull – UP (Mantém RA4 em nível alto enquanto B2 não é apertado e impede que haja curto quando B2 for apertado)
R4 Resistor Pull Down (Mantem o RA2 em nível baixo até que seja apertado o botão B1 e impede que haja curto quando B1 é apertado)
L1 – Led que acenderá quando Rb5 for para nível alto.
Talvez você se pergunte afinal eu também me perguntei, para que usar um microcontrolador para acender um led se eu posso liga-lo direto no botão? Lembra que eu pedi no post anterior para realizarmos a experiência de acender um LED para testar o nosso gravador e nossa habilidade de controlar o PIC ? Pois é…
Aconteçe que utilizando o microcontrolador eu posso além de ligar o led posso controlar o motivo para ligar, o tempo que leva para ligar, o tempo que vai levar para desligar ou posso simplesmente faze-lo piscar de forma intermitente e etc….
Como então programar para que o microcontrolador faça o que eu quero. Como eu disse iremos controlar na realidade os seus pinos e  é mais ou menos assim, no caso do circuito acima ,se eu quero que o led acenda ao apertar o botão
Eu diria o seguinte para ele.
Inicio
se Ra2 = 1 (nivel alto Botão apertado)
     Rb5 = 1 (nivel alto led acesso)
se não Rb5 = 0 (nível baixo led desligado)
volta para inicio
Claro isso tudo em linguagem de programação.
Bom galera, agora que sabemos os pinos, o que é o PIC, que temos o nosso gravador construido, vamos realizar a experiência de acender o LED e a partir daí partimos ir para o que nos interessa, o tão esperado adaptador.
Não sei se os leitores estão entendendo o propósito de tudo isso, pois nosso foco principal é aprender eletrônica junto com o MSX ! 🙂
Até +
MsxRevival

Projeto BR-X (Construa seu MSX) – Parte 1


Olá Galera;

Muito se tem falado sobre um novo MSX no mercado, infelizmente não vemos nada de novo no mercado e faz muito tempo.

Pensando nisso, e em preservar a história do nosso querido MSX, imaginei em iniciar um projeto nesse sentido, que seria reconstruir um MSX do zero.

Já recebi emails solicitando um estudo de viabilidade disso para que possamos ter um MSX Open Source com tecnologia desenvolvida por nós.

Vi que temos o projeto http://www.ccas.ru/brychkov/gr8bit/ , feito por alunos, mas é um projeto extremamente caro ($ 499 dólares) e provavelmente de difícil acesso a quem tem um poder aquisitivo muito baixo.

Passeando pela internet pude observar que temos inúmeros projetos para a linha Sinclair principalmente os ZX´s Spectrum. Mas não vi nada para MSX.

Foto do projeto Z80

Sendo um entusiasta da retrocomputação, quero levantar a bandeira de iniciar um projeto nesse sentido, e ir mais além, ampliar as capacidades de processamento e a comunicação com os últimos dispositivos existentes no mercado.

Para a idéia não virar vaporware, vou colocando aqui no blog minhas experiências nesse sentido, e espero que a galera MSXzeira, entre também nessa briga.

A principal ideia desse projeto é torna-lo compatível com todas as versões do MSX (1,2,2+ e Turbo R).

É isso ai galera, vamos ver no que vai dar, tomara que dê certo….e caso não dê..vale pelo conhecimento que teremos adquirido.

T+

MsxRevival;

Projeto dos Leitores – Teclado PS2 no MSX – “FINAL”


Olá pessoal;

Dando continuidade ao projeto do adaptador, nosso colaborador Robledo (Florianópolis), fez algumas alterações em seu projeto utilizando o microcontrolador PIC16F628A, assim como atualizou o esquema de montagem do mesmo.

Abaixo segue o link para download do código fonte (hex) para ser baixado e gravado no microcontrolador;

http://www.sendspace.com/file/s3mczl

Segue também o link para download do esquema utilizando o cadsoft eagle;

http://www.sendspace.com/file/7ze8st

Se por ventura o link não estiver disponível ou quebrado, pode solicitar o mesmo para msx@silicomsoft.com.br.

Acima segue a pinagem da PPI 8255 que é a responsável pelo controle do teclado no MSX.

Tendo em mãos o projeto de nosso leitor, agora temos que colocar a mão na massa e construi-lo, afim de relatarmos nossas experiências.

Lembrando que a PPI 8255 faz a seguinte função de teclado no MSX, os 4 pinos da porta C enviam o número da linha em binário para o teclado e 8 pinos da porta B recebem a tecla pressionada.

O teclado original do MSX é muito simples, sendo uma matriz de 8 x 10 ( sendo 80 teclas ). No teclado original do MSX temos o CI 74LS145, conforme mencionado em um post anterior, esse cara faz a decodificação das linhas as enviando pela porta B da PPI.

Exemplo de um conector de teclado

Uma última informação: o terra do circuito (GND) deve ser ligado ao gabinete do Expert (existe um parafuso na parte de trás do gabinete para esta finalidade) e isto deve ser feito através de um fio que esteja soldado em uma das extremidades ao sinal GND do circuito e com a outra extremidade (desencapada) em contato com o gabinete do expert (soldada ou amarrada àquele parafuso -citado anteriormente) de outro modo o circuito NÃO FUNCIONARÁ !

Esquema das pinagens do teclado no Expert e da ligação do teclado PS2 no PIC.

(Atualizado em 30/03/2012).

Fica aqui um desafio, como esse projeto foi criado utilizando a saída de teclado do próprio MSX, quem conseguiu fazer um plugue de 13 pinos para encaixar no MSX, por favor compartilhar conosco. 🙂

Caso alguém também saiba aonde adquirir esse tipo de conector aqui mesmo no Brasil, também seria legal compartilhar conosco, pois tem muita gente querendo construir esse adaptador.

Grande abraço a todos;

MsxRevival;