Computer finestre Internet

Schema del connettore ps 2 della tastiera del PC. Codice sorgente del firmware

Martedì 04 Febbraio 2014 11:33 + nel blocco preventivi

Quindi il mouse PS / 2 non è riuscito. I difetti possono essere diversi, ad esempio il mouse inizia a produrre due clic con una pressione di un tasto. Perché ho dato questo difetto come esempio? Perché in questo caso è difficile dare la colpa al malfunzionamento del pulsante. E non puoi portare un mouse del genere in un'officina, poiché riparare un mouse costerà almeno il doppio rispetto all'acquisto di uno nuovo. Quindi cosa puoi buttare via il topo? Non è necessario se hai alcune abilità di riparazione (ad esempio, la capacità di saldare delicatamente) o se hai un amico che ha queste abilità e non si preoccupa di dieci minuti per te.

Cablaggio del connettore del mouse PS/2

P/p n.

Segnale

1 Dati
2 non coinvolto
3 Terreno
4 + 5V
5 Orologio
6 non coinvolto

Riparazione di un mouse per computer PS / 2

Il motivo principale di tutti i difetti riscontrati nel mouse è il deterioramento della conduzione del filo. Il difetto è facilmente calcolabile utilizzando un ohmmetro. Su un conduttore funzionante del filo, l'ohmmetro mostrerà 1-10 ohm e se il conduttore è difettoso da 150 ohm e oltre.

Ora come riparare. Il connettore PS / 2 stesso non è pieghevole, ma come si è scoperto, non ne abbiamo bisogno. Come si è scoperto, il malfunzionamento risiede nella sezione del filo dal connettore interno del mouse all'uscita del filo dal mouse. (Per qualche ragione, tutti i produttori hanno recentemente deciso che in questo luogo dovrebbe esserci una transizione dal cablaggio interno al cablaggio esterno + è nel punto in cui il filo esce dal mouse è enorme pressione sul filo). In generale, mordiamo questa sezione del filo (puoi procedere in due modi: mordi il bordo del filo dal lato del mouse e lo risaldiamo nel mouse o mordi la sezione e saldi il filo ( Preferisco la seconda opzione (il giunto sarà ancora all'interno del mouse))) puliamo e stagnamo il cavo delle vene e ripristiniamo l'integrità del filo. (A proposito, subito dopo aver morso, controlliamo l'integrità delle anime del filo)

Le apparecchiature informatiche non stanno ferme, vengono costantemente migliorate e spesso sostituite computer fissi arrivano i laptop. E per un laptop, hai anche bisogno di un mouse e cosa fare con un vecchio mouse con un connettore rotondo? E ancora di più se funziona alla grande e si adatta molto bene alla tua mano in termini di ergonomia ... Buttalo fuori?

No, perché, c'è una via d'uscita: deve essere rifatto per un connettore USB.

Ci sono 2 opzioni: puoi semplicemente creare un adattatore o rimuovere il vecchio cavo del mouse e collegarne uno nuovo, con una presa USB. Lo schema elettrico, come puoi vedere, è abbastanza semplice: solo 4 fili. È sufficiente prendere un vecchio cavo con una presa USB, da una fotocamera o cellulare ad esempio, oppure puoi acquistare un cavo del genere in un mercatino delle pulci e sostituirlo con un mouse.

E lo scopo dei fili del connettore USB, guidato da colore e numeri, è il seguente:

1.rosso - alimentazione, 5 Volt,
2.bianco (grigio) (D-) - trasferisce i dati dal computer al mouse,
3.verde - trasferisce i dati dal mouse al computer (D +),
4. nero - massa (corpo).

Guidato dai colori dei fili, puoi risaldare rapidamente il cavo, ma ti consiglio comunque prima di dissaldare il vecchio cavo: chiama il tester e assicurati ancora una volta che i colori dei fili corrispondano ai numeri sul connettore. Come dimostra la pratica, il fattore umano è ancora presente e ci sono anche errori.

Utilizzando questo schema elettrico, puoi anche rifare una tastiera con un connettore PS / 2 rotondo per un connettore USB. Tuttavia, collegando i fili necessari a i contatti giusti... Penso che questo articolo ti aiuterà a smaltire (adattare) utilmente le parti obsolete, ma ancora abbastanza buone e funzionanti dai vecchi PC.

Nel corso del tempo, sorge la domanda, come inserire i dati nel microcontrollore? La soluzione classica che più ci viene in mente è usa i pulsanti...incidere sulla lavagna traccia e pad di contatto per pulsanti, quindi il loro saldare, decidi come traccia premendo pulsanti - da interruzione o attraverso polling dello stato dei pulsanti per ciclo... Se i pulsanti molti, essi occuperà un ammontare significativo spilli microcontrollore. Il percorso è spinoso.

Suggerisco di usare quello che abbiamo a portata di mano - un semplice Tastiera per computer PS/2... Dai professionisti:

  • cosa non costoso;
  • venduto in qualunque negozio di computer
  • a nostra disposizione 101 tasti
  • prenderà la tastiera in totale 2-pin microcontrollore per clock e dati.



Come microcontrollore, userò ATmega328P o Arduino UNO.

Un po' di teoria

Se apri la guaina del cavo della tastiera, troverai 4 fili:

  • il cavo nutrizione(5V)
  • il cavo terra
  • il cavo segnale di sincronizzazione (CLK)
  • il cavo dati (DATI)

Ogni chiave sulla tastiera ha mio 8 bit codice chiamato scansione del codice ed è scritto in forma esadecimale (HEX), vedi sotto.


Quando fai clic su chiave, Su SLK trasmesso impulsi rettangolari e da DATI codice a 11 bit:


I bit di dati vengono letti dal computer durante la transizione CLK insieme a alto livello Su breve.

Primo bit sempre uguale 0 - questo è inizia un po' seguito da po scansione del codice, poi bit di parità e alla fine fermati un po' che è sempre uguale 1 .

Come collegare la tastiera PS/2 al microcontrollore?

In realtà il porto PS / 2 tastiera del computer questo è una sorta di connettore Mini-DIN, sua 6 pin opzione.
La tastiera è installata spina min-din 6 pin (maschio), l'abbiamo visto tutti all'estremità del cavo della tastiera.

Nido min-din 6 pin (femmina) situato sopra scheda madre, per connettersi al microcontrollore, dovremo saldarlo dalla vecchia tastiera, il che è scomodo.

Ti consiglio di prendere una presa normale min-din 6 pin per cavo, ad esempio su ebay.ru sta in piedi ~ 1$ ... Sembra così:


(sinistra montata, destra smontata)

Ad esempio, mi collegherò tastiera del computer Per Arduino UNO(controllore ATmega328P), ci viene richiesto di collegare il cablaggio secondo il seguente pinout.

Non è necessario l'aiuto di un saldatore, i fili sono crimpati con una pinza in morsetti metallici, di conseguenza ho ottenuto il seguente adattatore.


Nel tuo caso, le estremità dei fili puoi saldare al consiglio microcontrollore, userò spilli Arduino UNO.

  • GND connettersi a GND Arduino UNO
  • Vcc connettersi a Arduino UNO 5V
  • DATI Collegare Arduino UNO a 2 pin
  • CLK connettersi a Arduino UNO a 3 pin


Codice sorgente del firmware

Su Internet con cui lavorare PS / 2 utilizzare la libreria con la tastiera in più della metà dei casi tastiera ps2, dove tramite il loop viene verificato lo stato dello scambio "variabile - appunti" con la tastiera. Non sono un sostenitore del controllo di qualcosa attraverso un ciclo, il firmware sarà impegnato solo a lavorare con la tastiera. E se avessimo bisogno di fare calcoli o lavorare con qualche attrezzatura lenta? Ci sarà qualcosa da soffrire, oi nostri calcoli o la velocità di reazione alla tastiera.

Suggerisco di usare l'interruzione ...

Ricezione del PIN del controller CLK(sincronizzare gli impulsi) dalla tastiera di cui hai bisogno configurare come interrupt esterno quando ci si sposta da stato alto a basso e nel gestore leggi il bit di dati da DATI. L'algoritmo del gestore di interrupt deve poco a poco accumulare b inviato scansiona il codice dalla tastiera.

Codice Arduino, connetti DATI Per calcio, CLK connettersi a calcio.

const int DataPin = 2; // Canale DATA della tastiera const int IRQpin = 3; // CLK canale della tastiera int count = 1; // contatore del bit corrente del codice a 11 bit da tastiera int m = 0; // contatore del bit corrente dello scan code uint8_t scan_code = 0; // scan code del tasto premuto void ps2interrupt (void) (/ * gestore di interrupt dalla tastiera CLK * / / * legge il codice di scansione dalla tastiera bit per bit nella variabile scan_code * / if ((count> 1) e (contare<11)) { /* вырезаем из 11-и битного кадра, 8-и битные скан код */ scan_code |=(digitalRead(2)<11) (Serial.print (scan_code, HEX); / * PRINT * / Serial.println (); m = 0; count = 1; scan_code = 0;)) void setup () (delay (1000); Serial.begin (9600); pinMode (DataPin, INPUT); pinMode (IRQpin, INPUT); attachInterrupt (1, ps2interrupt, FALLING); // imposta l'interruzione dal pin 3 (canale tastiera CLK) gestore ps2interrupt Serial.begin (9600);) ciclo vuoto () (ritardo (1000);)

const int DataPin = 2; // Canale DATA della tastiera

const int IRQpin = 3; // canale CLK della tastiera

int conteggio = 1; // contatore del bit corrente del codice a 11 bit dalla tastiera

intm = 0; // contatore del bit corrente del codice di scansione

uint8_t = 0; // scansiona il codice del tasto premuto

void ps2interrupt (void) ( / * Gestore di interruzioni da tastiera CLK * /

/ * legge il codice di scansione dalla tastiera bit per bit nella variabile scan_code * /

if ((count> 1) e (count< 11 ) ) { / * ritagliato da frame a 11 bit, codice di scansione a 8 bit * /

| = (lettura digitale (2)<< m ) ;