On 1/18/2012 4:14 PM, Curt Vendel wrote:
I can use a $1.00 Atmega8A and easily implement a USB
keyboard and connect an Atari 800 keyboard in a row/column matrix very easily. Now going
the other way around requires the port pins to be outputs and you would use the same
amount of pins for talking to a ps/2 keyboard as talking out as a USB device, you'll
still need 2 pins for clock lines and run at 12mhz for best results... You don't need
to throw a lot at this situation.
matrix KB to USB is indeed very easy. As you
note, M8 is easily doable
(LUFA + the KB connector of choice and some glue code).
The other way requires host mode functionality. Chuck, I'll admit I did
not see the limited Host mode support in LUFA, but I did see the EE
project. I dloaded the code, and it's definitely a college project
:-). I decided against trying to refactor the code into something usable.
In my case, as I redesign C=Key, I have some other goals in mind:
* field upgradable via USB port
* Support for hose and device mode (current C=Key operates in both
directions as well)
* Minimal parts count (I'm aware of the VNC1L and such, but they are
pricey for what they offer)
Since DIP/TH packaging is not a requirement for me, and minimal parts
count and small size is, I am leaning towards a small OTG-capable ARM
variant for the new design. They are reasonably inexpensive, and offer
all of capabilities I feel are needed.
I would enjoy a cheaper Xpoint switch option, but perhaps that is asking
too much. Dual Port RAM is cheaper, but some apps depend on the
interesting effects of "n" key rollover, which is harder to replicate in
a dual port RAM setup. Of course, I think the C64, which can scan
either way, dual purposes the row and column lines for joysticks, and
uses two of the lines to select paddles, is an extreme case, but it's a
challenging case nonetheless. TRS-80 M4 does indeed seem easier to support.
Jim