I am trying to use a keyboard with my basys 3. I am able to get the demo program up and running and displaying keycodes to a putty terminal on my pc. The problem is the fpga seems to recognize as soon as the keyboard is not sending data and then fpga goes into some idle state (for example, the "busy" led next to the USB port slowly turns on and off). If I try to press another key on the keyboard then the keyboard freezes for a second then sends code 0xAA, the self-test response. My understanding is that this means the fpga issues an FF reset command to the keyboard each time and has to wait for the keyboard to respond.
I have read every square inch of the documentation Digilent has and cannot understand how to prevent this. There is a sentence in the keyboard section that states "(if the host device will not send data to the keyboard, then the host can use input-only ports)" however I cannot find information on how commands are sent TO the keyboard; they only list what those commands are.
Has anyone worked with a keyboard before and have some wisdom to share? How can I stop the fpga from sending commands to the keyboard and how does sending commands to the keyboard work in the first place? Is it even possible to stop this behavior or is the PS/2 converter in the basys 3 hardwired to send commands to the keyboard without your explicit instruction for it to do so?
Reference to digilent basys documentation: https://digilent.com/reference/programmable-logic/basys-3/reference-manual
Question
name9006
Hi,
I am trying to use a keyboard with my basys 3. I am able to get the demo program up and running and displaying keycodes to a putty terminal on my pc. The problem is the fpga seems to recognize as soon as the keyboard is not sending data and then fpga goes into some idle state (for example, the "busy" led next to the USB port slowly turns on and off). If I try to press another key on the keyboard then the keyboard freezes for a second then sends code 0xAA, the self-test response. My understanding is that this means the fpga issues an FF reset command to the keyboard each time and has to wait for the keyboard to respond.
I have read every square inch of the documentation Digilent has and cannot understand how to prevent this. There is a sentence in the keyboard section that states "(if the host device will not send data to the keyboard, then the host can use input-only ports)" however I cannot find information on how commands are sent TO the keyboard; they only list what those commands are.
Has anyone worked with a keyboard before and have some wisdom to share? How can I stop the fpga from sending commands to the keyboard and how does sending commands to the keyboard work in the first place? Is it even possible to stop this behavior or is the PS/2 converter in the basys 3 hardwired to send commands to the keyboard without your explicit instruction for it to do so?
Reference to digilent basys documentation: https://digilent.com/reference/programmable-logic/basys-3/reference-manual
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now