Jste zde

I2C Klavesnice

I2C_klavesnicep.png

Pracujete s I2C a potřebujete klavesnici?

Pokud vám stačí standartní číselná klávesnice s hvězdíčkou a mřížkou(F-KV12KEY->www.gme.cz/cz/index.php),

máme pro vás řešení,které pořídíte za cca 251Kč(samotné součástky-neni započítano:DPS,konektror a mechanické prvky(delatační sloupky,atd.)).


Celé zapojení je uspořádané okolo IC3 PCF8574P,který zajištuje komunikaci po I2C s možností generování přerušení pří stisku klávesy.

Klávesnice je standartní(jeden společný vývod pro všechny tlačítka),který je připojen na VDD,

výstupy jsou připojeny přes snižovací odpory na vstupy IC1 CMOS4532 a IC2 CMOS4030.

IC1 a IC2 jsou zapojeny podle katalogového zapojení CMOS4532.

Jediný rozdíl oproti katalogovému zapojení je úprava detekce tlačítka,tak,aby detekce probíhala

pro všechny číselná tlačítka.

Hvězdička a mřízka jsou přes tranzistorové invertory připojeny přímo na IC3.

Napájení je taktéž standartní:5V/max 15mA.

Je provedeno přes ochranou diodu(proti přepólování) a stabilizační kondenzátor.

Zapojení má dvě indikační LED,první slouží k indikaci správně připojeného napětí a

druhá je ovládána přes I2C(je vhodná ke kontrole komunikace,po power resetu zhasnutá).

 

Obsazení datového bajtu:

 0.bit až 3.bit - obsahuje BCD kód stisklého tlačítka

 4.bit - příznak stisknutého tlačítka(0 - stisknuto číselné tlačítko)

 5.bit - příznak tlačítka hvězdička(0 - tlačítko stisknuto)

 6.bit - příznak tlačítka mřížka(0 - tlačítko stisknuto)

 7.bit - Indikační led I2COK(0 - svítí)

 

 POZOR:za žádných okolností neměňte hodnoty 0.bitu až 6.bitu(po power resetu jsou na log.1-pro PCF8574 == vstup)

              ,pokud byte tam zapsali log.0(PCF8574 == výstup log.0),mohlo by dojít k poškození všech IC,

               protože by došlo ke zkratu IC na VSS přes Px IC3(v tomto ohledu pomůže katalog PCF8574 dostupný na:

                 www.datasheetcatalog.com/ - zapojení vstupně/výstupního "kvazi" portu)

Schéma:

 fie no found

 verze pro EAGLE viz.: Poznámka

Potřebné součástky:

 R1-vicenásobný odpor typ A hodnoty 100K/2% nebo 5%

 R2,R3 - 100K/1%

 R4,R5,R6 - 510R/1%

 R7,R8 - 1K/1%

 D1,D2,D3 -1N40007

 C1- 220mikroF/25V

 LED - 3mm LED oranžové(NAPOK) a zelené(I2COK) barvy

 T1,T2,T3 - BC337-40 nebo BC547C(možná náhrada)

 IC1-CMOS 4532

 IC2-CMOS 4030

 IC3 - PCF8574P

 KLAVESNICE - F-KV12KEY(GME)

 K-záleží na vás(pamatujte:konektor musí mít pět pinů),já jsem použil šroubou svorkovnici ARK 500/2 a ARK 500/3

 

 Omezení zapojení:

  Zapojení nemá žádný pamatovací prvek,takže je potřeba mít dostatečně rychlý řídící prvek,jinak nedojde k detekci stisku.

  Poznámka:

Bylo zjištěno uživately,že může dojít k poškození všech IO,pokud se odešle do PCF8574 špatná data.

Řěšením je osazení odporů o minimální hodnotě 1K do datových cest (IC1 - Q1(7) a Q2(6) ; IC2 - QA(3) a QC(10)) vedoucích k IC3 - PCF8574.

Pokud odešlete do PCF8574 na špatné pozice log 0,dojde ke zkratu mezi IC3 a IC1 nebo IC2.

Za tuto chybu se omlouvám.

 

 

Komentáře

Neni nahodou PS/2 klavesnice o neco malinko vetsi nez ona ciselna s 12ti klavesami? Nekomu by se to treba nemuselo az tak hodit ;-)

"Hardware, ktory sa da znicit pomocou software si nic ine ani nezasluzi."
Co tak do signalnej cesty zapojit 1k rezistory? Pri tej uvazovanej dynamike signalu to nic neposkodi a pri nespravnom nastaveni to ochrani porty. - HM?

Nebylo by jednodušší použít dva PCF8574 a připojit je přímo ke klávesnici. Když se COM připoji k zemi, nebudou potřeba ani odpory. Zbyle vystupy můžou ovládat až čtyři LED.