Start z STM32 VL Discovery – Klawiatura PS/2

Start z STM32 VL Discovery – Klawiatura PS/2
Razem głosów: 2 co stanowi: 90% całości.

rock-kbf-4000b-foldable-usbps2-keyboard-black

Nawi?zuj?c do rozmowy na Czacie na temat u?ycia klawiatury PS/2 postanowi?em ustrojstwo pod??czy?

do naszego Discovery.

Jak wiadomo z??cze PS/2 w klawiaturze jest 6 pinowym m?skim z??czem typu MiniDIN.

Klawiatura u?ywa tylko czterech przewodów  VCC, GND, CLOCK i DATA.

Oczywi?cie nic nie stoi na przeszkodzie by u?y? klawiatury AT czyli z typowym gniazdem 5 pinowym

DIN.

Free Image Hosting at www.ImageShack.us

Pinouty wida? powy?ej .

Oczywi?cie dobrze by by?o gdyby?my nie musieli si? bawi? w ci?cie kabli i dysponowali

gniazdem PS/2 na ?ledziu od PC znacznie by nam u?atwi?o to ?ycie :)

Free Image Hosting at www.ImageShack.us

Pod??czenie do naszej Discovery  jest proste :

VCC – +5V

GND – GND

CLK –  Pod??czymy do PA1

DATA – Pod??czymy do PA2

Nie musimy si? martwi? ?e przeci??ymy Discovery gdy? klawiatura PS/2 nie jest pr?do?erna i maksymalnie

pobiera ok. 30mA. Do klawiatury mo?emy te? wysy?a? informacje o stanie diodek.

Klawiatura wysy?a zawsze okre?lon? ramk?. Po naci?ni?ciu klawisza zaczyna generowa? zegar , nast?pnie

wysy?a 11bitów  (1bit startu – zawsze warto?? 0, 8 bitów danych, 1 bit parzysto?ci i 1 bit stopu).

Problemem jest skanowanie kodów ASCII gdzie sygna? nie jest równy i musimy stosowa?

przekszta?cenia.  Najprostszym sposobem jest u?ycie przerwania podczas zbocza opadaj?cego

sygna?u CLK i narastaj?cego sygna?u danych. 

Przyk?adowo mo?emy testowa? sobie na klawiszu Q, którego kod ma warto?? 0x15, a jego dane

s? przesy?ane w nast?puj?cy sposób:  

0 (start) 10101000 (kod) 0 (parity) 0 (stop bit)

PROGRAM ??

W skrócie odczytuje klucze klawiatury PS/2  i pcha je do bufora, z którego s? pobierane do

programu g?ównego main.c poprzez funkcj? keyboard_getchar (). 

Funkcja wysy?a 0 (zero), je?li nic nie jest w buforze, lub wysy?a kod ASCII o warto?ci naci?ni?tego

klawisza. Naci?ni?ty klawisz b?dzie wy?wietlany na wy?wietlaczu LCD. 

Po naci?ni?ciu klawisza Enter, ekran LCD zostanie wyczyszczony i mo?na pisa? od nowa. 

Czyli jak wida? wszystko banalnie proste … hmmm no tak , ale jednak trzeba to jako? zrealizowa?

w naszym TrueStudio. Zrobimy wi?c sobie obs?ug? przerwania w naszym stm32f10x_it.c

nast?puj?cym kodem:

Jak wi?c wida? zarezerwowane mamy ju? przerwanie dla PS/2 realizowane funkcj? Przerwanie_PS2();

Dekodowanie odbywa si? za pomoc? klucza tabeli kodów w funkcjach FLASH MCU w pami?ci

odno?ników. Oczywi?cie mam te? obs?u?y? klawisz SHIFT:

która wygl?da nast?puj?co:

Dzi?ki czemu po naci?ni?ciu klawisza SHIFT wy?lemy kolejny klucz w kodzie ASCII (np. „A zamiast „a”).

Cz??? Programu g?ównego :

 

Inicjowanie przerwa?:

No i zosta?o nam tylko zainicjowanie przerwa? które powinno wygl?da? tak:

Konkluzja 


Dzi?ki pod??czeniu STM32VLDiscovery do LCD i klawiatury mo?na skonstruowa? stosunkowo

wiele nieograniczonych projektów, a wszystko zale?y od waszej inwencji twórczej. 

Klawiatura jest zdecydowanie bardziej wygodna ni? pilot podczerwieni. 

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay

Jedna myśl nt. „Start z STM32 VL Discovery – Klawiatura PS/2

  1. Pingback: Kurs programowania STM32 VL Discovery | SunDuino – Nowy wymiar elektroniki

Możliwość komentowania jest wyłączona.