Página 1 de 1
Comunicação PIC 18f452 c/ teclado PS2

Enviado:
23 Mar 2007 10:08
por filipespc
Tenho que comunicar um pic 18f452 com um teclado PS2 mas eu não consigo achar de jeito nenhum na internet qual o protocolo de comunicação que o teclado usa.
Na minha pesquisa já descobri que ele é síncrono, tem 1 bit de partida, 8 de dados, 1 de paridade e 1 de stop, mas não sei coisas como:
- Quanto tempo a tecla deve permanecer apertada para ficar gerando várias vezes o mesmo caracter?
- O teclado gera um sinal somente na descida da tecla ou gera um na descida e na subida?
Enfim, queria saber se alguém tem algum documento que possa me dizer exatamente o que acontece.
Grato desde já pela ajuda, Filipe

Enviado:
23 Mar 2007 10:32
por fabim
OOOOOLOCO MEU..
Vc esta falando teclado comum de PC.... ??
Se for, só da uma zoiada no santo "google", tem um caminhão de coisa..
Enquanto ficar enviando dados pro PIC.. craro fruxo de dados é continuo, o que vc tem que fazer é um debounce, ou seja.
que dado chegou (65)."A". para sei lá 100mS, le de novo.. ainda é A....? sim quer dizer que foi pressionado 2Vzs. e por aí vai.. use a imaginação use sempre livre..rs
Abraços
Fabim

Enviado:
23 Mar 2007 12:38
por msamsoniuk
jah existe um microcontrolador dentro do teclado para fazer debounce, entao, quando vc aperta e solta uma tecla, em principio, esse microcontrolador envia um unico codigo da tecla. obviamente, se vc segura a tecla, apos um certo tempo inicial (programavel), ele passa a enviar sucessivamente o mesmo codigo, com uma certa taxa (tambem programavel).
isso significa que vc nao apenas recebe codigos do teclado, como tambem pode enviar parametros (ativar os leds do teclado eh um outro bom exemplo dessa necessidade).
a melhor fonte de referencia quanto a conversao do codigo de teclas para ascii e a programacao dos parametros de repeticao creio que seria procurar no kernel do linux.

Enviado:
23 Mar 2007 13:45
por mastk
A comunicação com o teclado PS2 é simpleszinha, o mais dificil é implementa todos os recursos na sua aplicação.
é algo assim:
Aguarde uma condição start na linha.
Receba os dados tipo I2C
Espere o(s?) stop na linha
Cheque a paridade

Enviado:
23 Mar 2007 14:24
por andre_luis
Eu postei recentemente num outro tópico, um arquivo zipado, contendo uma coletanea de informacoes a respeito disso, obtido numa época que pesquizei a respeito. De uma busca nesse fórum....