Posted By: wraggster
gr8npwrfl has posted some exceedingly interesting news:
Well here is the proof of concept you have been waiting for
This is the prototype USB Host to serial interface
This is a AT90USB1287 chip from Atmel. IT has not only a
standard USB device interface but it has the USB Host
interface.
This is their prototype board that sells for $34.00 and
is ready to run as it comes from Digikey, Mouser, or
Arrow.
I placed it in a box to make it easier to handle as the
entire proto board is only 3 inches by 1 inch.
The two connectors on the front of the board allow me to
plug in cables. One to the PSP and another to a RS232
converter so I can send data to the PC.
I currently have completed the USB mouse driver and a
USB Keyboard driver. I am currently debugging the gamepad
drivers for the XBOX 360 wireless gamepad, the PS2/PS3
wireless gamepad, and the Logitech Wingman wireless gamepad.
All of the interfaces require the installation of Pikey
onto your PSP.
THERE ARE NO HARDWARE MODS TO THE PSP AT ALL!
IT works on both the Phat and the Slim
Here is a picture of the cables that I have made up to
work with the PSP Phat.
Again there are no hardware mods to anything. The keyboard,
mouse, joysticks are stock USB devices. That means when you are
not using them with your PSP you can use them other places.
I am working on the Pikey software to make the key mapping work
with my system. The external keyboard or gamepads will be able
to map to ANY PSP internal button or joystick. You will be able
to have multiple mapping files, one for each game of your choice
and map the buttons/sticks any way you want.
Enough talk, here is a video showing the system in action. The
final design will not have a battery, I am putting together a
2.5/1.8 volt to 5 volt converter so everything is powered from
the PSP.
If you want a real leg up with working with the AT90USB familly processors then you need to go to MyUSB. It gives you a fully functional USB host stack for these processors.
All my code is built on these as a base. There are fully functional demos of several HID devices as well as mass storage devices. They also have a software development board to help you with developing your own USB applications.
Between this board and the standard documentation on USB device drivers you can start writing your own drivers for USB devices.
Another hint, if you want to write a device driver for something there is not a driver for then check out to see if there is a driver for it in the linux community. You can use it as a template to develop your own driver around and make your life much simpler.
With these resources, even if you have never written a device driver you are well on your way.
MyUSB support list:
http://groups.google.com/group/myusb-support-list
AT90USB developers forum:
http://www.avrfreaks.net/
There are two approaches to using an external processor through the serial port.
1. Interface to the USB device and send the raw data in the serial port
and interface to the data on the PSP side.
2. Interface to the USB device, process and configure the data and send
only the results to the PSP.
Since I am sending my keyboard data to Pikey on the PSP side, I did not want to modify that software and put more overhead on the PSP which can cause other side effects and problems.
My keyboard interface reads the USB scan codes from the keyboard and then in flash memory I maintain the translation table to Ascii. The only app that I am writing for the PSP is to be able to send custom translation
tables to be stored in the remote cpu flash.
Also like remotejoy that allowed the gamepad to be mapped to keyboard keys, I am interfacing the external gamepads to the keyboard translation table so you can have button reassignment to your hearts content.
All the burden and overhead does not consume resources on the PSP and does not slow down the system.
After the keyboard and gamepad is done, I have so much more power left in the external cpu I was thinking about taking two of the A/D converters and building a frequency discriminator so I can build a micro based sub woofer amp for the speaker output that is already being sent to my interface.
Awesome news