PIC16F with MAX3421E or MAX3420E
Has anyone here done any work with the MAXIM USB Peripheral/host controllers (MAX342x) ?
The MAX3421E is controlled via SPI, and can act as either a USB2 host or device. They've been around for years, and you can now get very cheap boards on eBay with one already mounted.
A work colleague asked if there was an easy way to sniff the data flowing from an HID controller to a USB host, and I think it could be done fairly simply using a pair of these MAXIM chips, one acting as a host and the other as a device.
I could then implement a "man in the middle" to accept data from the controller (with one interface acting as "host"), and pretend to be that same device, passing the data through the second controller acting as a device.
There's an app note on the Maxim website showing how to act as an HID device using the MAX3420 chip. That is an older device which can only act as a peripheral. The MAX3421 emulates a MAX3420 when in device mode, so the code should be perfectly usable, it just needs a little massaging to compile with XC8 and control a PIC SPI port.
I haven't yet found the equivalent code to act as a host, and I'm hoping not to have to reinvent too many wheels.
So, I'm looking for anyone else who may have already gone down the same road. :)
To get a useful answer, always state which PIC you are using!