Are you planning on using the Viniculum? If you intend to seriously proceed with this use the Viniculums onboard micro controller are probably a good start.
seems I will have to use a seperate MCU. the vinculum can be set to simply transfer data from peripherals to a MCU. there are three interface options: serial UART,
parallel FIFO and SPI. Is any one interface better than the others?
Depends on the speed you need and number of I/O lines you have available. UART is probably not a good idea it's relatively slow but uses few pins, fast parallel fifo will use the most number of I/O pins but be very fast. Modern SPI is quiet fast and probably the best combination of number of I/O lines vs bandwidth. I'd go with SPI as it's a good thing to know how to use in general.
As far as the micro controllers themselves I personally use Atmels AVR line of chips. PICs are another popular MCU, there are a lot of resources out there for both, and there are other chip lines out there that are perfectly serviceable.
SPI shouldn't be too bad, there's plenty of code examples for it out there and all you have to do is follow the golden rule which is keep the SPI frequency at or bellow 1/4 of the main processors frequency. Above 1/4 of the system frequency and you can get aliasing effects and bit errors.
A good SPI test for yourself would be to access a SD(or MicroSD) card in SPI mode.
I've just been done some reading on the new vinculum II, its seems the new chip has quite a bit of processing power available for user applications. Do you think it will be able to run a software based USB slave port like V-USB? Then I would only need the vinculum chip which would simplify the design and I wouldn't have to worry about the SPI either.
I'm not sure Wrath, you after reading probably know more than I do about the chips, it's been almost a year since I've looked into them, I don't need. their capabilities. I thought the Viniculm hardware had HID support for slave devices available already. Just off the cuff I'd say their later model should be able to do it, though I'd have to read up again, and I just don't have the energy for that.
That's ok sceadwian I don't expect you to do research on my behalf. I appreciate the help you have given me.
I know the Viniculums do support host and slave ports on their 2 dedicated ports however I want to use both of those as hosts to recieve data from the HIDs. It's the output slave port that m concerned with, I was going to send the data via SPI to a atmel AVR that was running V-USB (a software based USB port). But after reading some more on the vinculum it has quite a bit of processing power and I am just wondering if it can support a software based USB port to compliment the two onboard ports.
Why? Just use two Viniculm modules together. You get real hardware/firmware based ports, you'll have an extra port, and you'll double the possible processing power, all that's needed is a high speed SPI interface between the two (got that) and you're all set. It's not gonna be simple by any means but parallel processing is being used more and more in modern architectures because it works damn good =) It makes more sense to me to use two communicating modules together with the chance of a little extra processing power overhead than it is to try to hack an extra USB port in software that probably won't work. implementing software based USB is... horrible. EVen worse than the horribleness of implementing the hardware/firmware solutions Viniculum provides =>
Feel free to go your own way, but I mentioned this early, I'm not sure you realized what I was getting at the time.
That makes alot of sense. I have already ordered two VNC2s because my original hardware design was to use both, then I was using one with a atmel AVR and then I was trying to simplify it further by using one. But what I didn't consider was that in simplifying the hardware I was making the firmware side of things much more complex.
Ok I now have confirmed my hardware layout and got the parts on order I'll start playing around with the programing (the hard part)
Good luck! Keep in touch, it sounds like a nice project to me. The possibilities for home gamers wanting to custom control remap different devices on a budget is solid thought I believe. It'd be a niche market, but I'm sure there is one, and even for learning it's great even if it's only for yourself.
Out of the box it functions as a flash memory stick, joystick and mouse, all in one. This sounds very much along the lines of what you want. It can function as both a client and host. Unfortunately I have not yet had time to play with it, but there is a wealth of information available and the compilers and debugging tools are all freely available. Also, check out the LUFA library: http://www.fourwalledcubicle.com/LUFA.php