![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| General Electronics Discussion Discuss basic electronics, power supplies and anything else electronic related here. |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| |||
| |||
The attached drawing shows my attempt at making a keypad by chopping off an old PS2 keyboard. I added a 7405 (open collector) buffer inside the original keyboard connected to a PS2 socket on the rear. The buffer prevents the PC from talking to the keypad yet allowed the keypad to send to the PC. That part of it worked because I could use the numbers, arrows and page-up/down keys inside an editor. Something else is happening however because after some keying at the keypad the 'keyboard' goes into 'hyperdrive' and starts issuing key codes repeatedly. i.e. the editor was receiving continuous character e.g. 444444444's yet there was no traffic on the keypad side of the buffer. Looking at the keyboard signalling process I didn't think the keyboard would respond to the keypad data because it wouldn't make a long enough start pulse but maybe some of the data signals are low long enough to fool it. Any ideas? |
|
#2
| |||
| |||
| The PC keyboard works by sending a "key pressed" keycode when a key is pressed and another keycode when it is released. The keyboard driver software in the PC maps this into the ascii outputs and adds the shift, control or auto-repeat as appropriate for the keys it thinks are pressed. It sounds like one of the "key released" keycodes is getting lost or corrupted, and the key is being auto-repeated. You might be able to turn it off by pressing the stuck key and releasing it on either keyboard. The method you used to combine the keyboard data streams was not clear to me, but it does not look right. It looked to me like you are forcing the primary keyboard output low with the 7405 output when driven by the keypad. Combining the keypad output signals with open collector inverters on both keyboards followed by another inverter to get the polarity correct would be a better way. Also, there should be a pull-up resistor on the output data stream. Simultaneous transmissions will still result in corrupted data though. A microcontroller with 3 UARTS and software to combine the keyboard data streams would be the cleanest way to insure that pressing a key on the keypad and one on the main keyboard at the same time would always result in a valid data stream. Good Luck, BobH |
|
#3
| |||
| |||
| Thanks Bob, you might have hit the nail on the head saying there is a key up code that might be corrupted. If the repeat function is inside the PC then that would explain why I see no repeat traffic yet the PC does. I wasn't concerned about collisions because I would only be at one or the other. I used open collector because the standard DATA line is driven from both ends. I believe a long break on DATA from the PC tells the KB to transmit a CLK signal so the PC can send it some data. That's probably how the PC knows the KB is working at startup. As long as the KB responded correctly I didn't care if the KP wouldn't. I used to play a similar trick with RS232 keyboards where a couple of diodes and a pull up would allow two KBs on the same line, even two PC to the same modem. That was the good old ASCII days when you could open up the DB25P connector and hack away with a soldering iron! |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Keypad as Pendant? | SPEEDRE | Mach Software (ArtSoft software) | 19 | 03-31-2008 10:59 AM |
| Experimental Airplanes? | Lionclaw | Hobby Discussion | 6 | 11-12-2007 09:39 AM |
| Can't use keypad arrows | bcnc | Mach Mill | 1 | 10-24-2007 07:28 PM |
| Keypad blues | Sprew | Haas Mills | 2 | 07-01-2006 12:40 AM |
| Experimental Shop | larry53 | Employment Opportunity | 0 | 07-27-2005 01:35 PM |