Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Problems with PC Keyboard at bootstrap

Status
Not open for further replies.

mk3

Member level 2
Joined
Dec 31, 1999
Messages
42
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
298
PC Keyboard at bootstrap

I'm interfacing a device acting as an AT keyboard to a PC.
After reading all the docs I was able to find on the 'net I've made a board with a micro that try to emulate a pc at keyboard. The circuit and program seems to work, except for the emulated keyboard at PC bootstrap.
So I disabled keyboard check in the BIOS at startup. This works on some computer, but not with others. Also with keyb. test disabled, the PC hangs at startup waiting for something forever after the BIOS screen and the memory check...
Anyone has info on this or can explain better to me? How can I find more info about timings in keb<->pc comm. at bootstrap, or a working example includingthe bootstrap and keyboard test phase? :?:
 

Re: PC Keyboard at bootstrap

First thing to check is that your 'keyboard' is sending the Basic Assurance Test result - code AA for good, FC (or anything else) for failure. This should be sent not sooner than 600ms or later than 900ms after the end of Power-On-Reset, which lasts between 300ms and 9s after power-on. These figures are from the original IBM AT reference manual, and may be slightly different for modern motherboards ;-) The BAT result must not be sent (indeed cannot be sent, if complying with the interface spec) until the motherboard has allowed both clock and data lines to go high.

I'd have expected any code you picked up to comply with this, though.

HTH
barny
 

Re: PC Keyboard at bootstrap

Infact it should work as code follows keyboard protocol specs. Anyway if I disable keyboard test in the bios, the PC should go on as if there isn't any keyboard... :( In the AT reference manual, or other doc, is stated how much current a keyboard can sink from the motherboard?
 

Re: PC Keyboard at bootstrap

You can eliminate whether this is a motherboard issue simply by starting your mbd with your 'keyboard' disconnected, set to ignore the keyboard.

Assuming that the problem of startup is only present when your device is attached, you should check your clock/data interface circuit; make sure that your device isn't defaulting to pulling either clock or data low during it's reset time. I seem to remember having to use non-inverting open-collector drivers to c & d to ensure that while the micro in the keyboard is in power-on reset the clock and data can both float high. The manual says the keyboard must let them float high during BAT.

Also need to make sure your device gets a clean reset as the 5V comes up, because this may be quite slow, and speed of rise will vary with different PC power supplies, or different loads presented by different motherboards.

Available current? No, but the manual talks about size and weight, though, if that helps :)
 

Re: PC Keyboard at bootstrap

PC motherboard boots normally without any device attached. It locks with my interface. The interface sinks 22.5mA max. clock and data are configured open collector high. Now I'll check with a logic analizer and let you know. Thanks! :winks:
 

Re: PC Keyboard at bootstrap

Yes, the interface should be open-collector, but you need to ensure that when your micro is in reset the clock and data lines are released so they float high, and the initialisation should then not pull them low until it wants to transmit the BAT code.

22mA shouldn't be a problem; I'd have thought that the average mbd should be able to provide 100-200mA at least.

LOL
barny
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top