techpaul / PS2KeyAdvanced

Arduino PS2 Keyboard FULL keyboard protocol support and full keys to integer coding
GNU Lesser General Public License v2.1
140 stars 27 forks source link

pin/device burnout bugs #6

Closed dmkt closed 6 years ago

dmkt commented 6 years ago

you can't set output high on open collector interface, as if there some static error on bus, and you would got device output low (which is allowed) and you outputting high, so you will burn out controller pin or device. from ps/2 description: The Data and Clock lines are both open-collector with pullup resistors to Vcc. An "open-collector" interface has two possible state: low, or high impedance. In the "low" state, a transistor pulls the line to ground level. In the "high impedance" state, the interface acts as an open circuit and doesn't drive the line low or high. Furthermore, a "pullup" resistor is connected between the bus and Vcc so the bus is pulled high if none of the devices on the bus are actively pulling it low.

techpaul commented 6 years ago

Actually all PS2 keyboards I have tested have through resistors and their own internal pullups. I have not yet seen a problem with keyboards plugged in for many days.

This is due to fact that even though it should be open drain, most ports on PCs are not. When I get a moment I will review the requests

techpaul commented 6 years ago

A quick view over this and this does not work as you suggest as various stages have not been done.

Also the actual sending of data to keyboard is RARE for most people, unless you are doing things linke blinking the LEDs ata fast rate. For majority of users they spend at least 99.99% of their time JUST receiving, few need resend unless they have bad data transmission, not found anyone who uses the echo function even though fully supported.