Amiga.org
Amiga computer related discussion => Amiga Hardware Issues and discussion => Topic started by: techie on September 22, 2007, 11:36:21 PM
-
So Recently I have been going through some of the Minimig threads and I've noticed that whenever the topic of adding USB to the Minimig is brought up people seem to jump to the conclusion that it would be impossible to add. Now this really made me start to ask the question -
Just what really is preventing us from adding this feature into future revisions?
A lot of people seem to say it's the 68000 cpu that is the biggest hurdle but according to an Article entitled
'USB Stack for AmigaOS 1.3 (http://aminet.net/package/driver/other/anaiis)' in Amiga Future (NR.67) there already is a solution for running USB on 68000 equipped Amiga's. Now granted this USB stack does not support the one thing I'm really interested in (i.e. USB joysticks/gamepads) but it does at least appear (to me anyway) to be a step in the right direction.
Now don't get me wrong here, I'm not assuming that we could just tack this stack onto the MiniMig and BOOM instantly have access to USB devices. But I do think it would be helpful if people could just explain to us non-hardware people just what else is stopping us from having USB in future designs?
Edit:
Please Note: I do understand that the current design of the MiniMig was not built with USB in mind but I am curious about the possibility in future versions.
Edit Edit:
Also Note: I'm also aware that some people don't feel that USB is worth the effort of adding. Now while I respect that some people feel this way (and I can sort of understand the reasons behind this opinion) I still think it's important for us to at least discuss the possibility of adding USB without necessarily delving into the debate of whether or not it is worth adding.
-
IMO USB isn't suitable for Minimig, but lets consider it:
To be of any use the USB-stack would need to run outside of the emulation in the first place (this is kind of obvious if you think about it: How would you go on about launching the USB-stack if you're booting from a game floppy? You obviously want to be able to use the keyboard and mouse in games...)
IMO the only sensible way would be to have some sort of independent USB-on-chip solution that'd give PS2-like signals easily, without actual need to have custom USB-stack. That'd be "easy" (relatively speaking) to wire to the current Minimig design.
However, once the USB is outside of the emulation itself, it means that the running system will not get any real benefits from the USB in the first place (actually, it won't see USB at all, just keyboard and mouse/joystick thru the CIA/Custom registers).
In fact, you'd get much of the same (except amiga joystick) by connecting some external USB-to-PS2 bridge to current minimig.
-
Piru wrote:
IMO USB isn't suitable for Minimig, but lets consider it:
To be of any use the USB-stack would need to run outside of the emulation in the first place (this is kind of obvious if you think about it: How would you go on about launching the USB-stack if you're booting from a game floppy? You obviously want to be able to use the keyboard and mouse in games...)
IMO the only sensible way would be to have some sort of independent USB-on-chip solution that'd give PS2-like signals easily, without actual need to have custom USB-stack. That'd be "easy" (relatively speaking) to wire to the current Minimig design.
However, once the USB is outside of the emulation itself, it means that the running system will not get any real benefits from the USB in the first place (actually, it won't see USB at all, just keyboard and mouse/joystick thru the CIA/Custom registers).
In fact, you'd get much of the same (except amiga joystick) by connecting some external USB-to-PS2 bridge to current minimig.
Okay so let's consider this option for a moment.
The benefits:
1) Access to a wide variety of USB based joysticks.
- Which could also include Amiga joysticks too if you happen to convert them to USB with something like this RetroUSB Atair/Commodore Adaptor Kit (http://www.retrousb.com/index.php?productID=125)
2) Access to multiple USB Mice for two player games (examples: Marble Madness, Lemmings, etc...)
3) Access to USB Keyboards and Mice.
The Downside:
1) Most USB Keyboards and Mice can already be converted to PS/2 so there really is little to gain.
2) Still no access to USB storage devices
- To me this really isn't a big loss as since we already have an SD Card reader built into the MiniMig. Plus it has been stated before that EIDE could be added to the MiniMig which would also give us access to harddrives and other storage media.
3) No Access to other USB technologies (i.e. Printers, Camera's, Misc devices...)
- Again to me this really isn't a big loss either since there is little reason to run these devices on the MiniMig in the first place.
Hmm...so the only REAL benefit from this particular solution would seem to be:
A) USB joysticks
B) Multiple Mice (which I must say I would LOVE to see again but that's just me :-) )
Admittedly this doesn't seem to make a strong case for adding USB to the MiniMig (using this solution anyway). Can anyone else think of reasons I have missed for Adding USB to the MiniMig design? Or other solutions which could bring added benefits?
-
Alright, let's crunch the numbers:
USB is a CPU-driven, not DMA driven, system. That means for every batch call, the CPU must be utilized.
For a single mouse, you will, at peak, utilize 12Mbps, roughly 1.5MB/sec. Now, the Amigas RAM speed is only 7MB/sec. So, for a single, solitairy mouse, you'd be tying up 40% of RAM access.... just imagine adding a keyboard.
-
downix wrote:
For a single mouse, you will, at peak, utilize 12Mbps, roughly 1.5MB/sec. Now, the Amigas RAM speed is only 7MB/sec. So, for a single, solitairy mouse, you'd be tying up 40% of RAM access.... just imagine adding a keyboard.
...but non-insane_laser_2-trillion_DPI mice are low-speed devices operating at 1.5m*bits*/s, yes?
Still bothersome but somewhat less so.
-
downix wrote:
Alright, let's crunch the numbers:
USB is a CPU-driven, not DMA driven, system. That means for every batch call, the CPU must be utilized.
For a single mouse, you will, at peak, utilize 12Mbps, roughly 1.5MB/sec. Now, the Amigas RAM speed is only 7MB/sec. So, for a single, solitairy mouse, you'd be tying up 40% of RAM access.... just imagine adding a keyboard.
How do you come up with such a kind of calculation? That's just plain wierd.
You still could add a simple USB 1.1 core into the minimig that would probably be able to handle mice and keyboards well enough. The enumeration is a bit tricky to do in firmware I suppose, but the polling would be a no-brainer. So maybe an external microcontroller with USB-host (such as AT90USB) would do the trick and could provide the minimig some raw Ps/2 signals as Piru proposed.
Sure you could implement an USB 1.1 core into some unused custom chip registers, but if you have the "stack" part on the Amiga emulation side, it would not benefit for games and such. (Well, thinking about it, you maybe do the enumeration stuff during kickstart boot time and hardwire the joysticks and then let the minimig fill in the port data, but you'll lose the hot plugging capabilities.)
-
That does make sense. Let's keep in mind that it'd be nice to have USB, but it'd also be a great effort. I'm sure it will eventually be added, but probably much later on.
No matter how great the effort, essentially someone has to actually do it, not much sense in just discussing the possibilities. I'd vote for SATA but if that also is a long way to go, good ol' PATA (IDE) will do.
-
@Piru
if Winuae 'removable drive automounting on the fly (USB memory, USB HD, memory cards, any removable drive that mounts as a drive letter in Windows)' can do it, why such approach wouldn't do?
-
WinUAE has the support of Windows' USB stack which is why it can utilise USB devices. MiniMig doesn't.
--
moto
-
@pixie
if Winuae 'removable drive automounting on the fly (USB memory, USB HD, memory cards, any removable drive that mounts as a drive letter in Windows)' can do it, why such approach wouldn't do?
Well it does if you put Windows to minimig.
-
If you eventual point in all this is that you want to use a USB gamepad to play Speedball 2, then this is nigh-on impossible.
Yes, you can attach a USB port to a 68000, the rest of the system is just code. However due to the nature of the software part of USB, you would need to run what is probably quite a heavy duty bit of software alongside the game that already probably uses >90% of the 68000's available power. Alongside that you would need to map the USB gamepad input into standard Amiga joystick inputs. And then you'd realise that Amiga games boot from ADFs on the MiniMig, and that there's no way to stick the USB stuff into that.
The only way it could be done would be to have a second CPU that runs the USB stack transparently, and also does the mappings to classic Amiga hardware transparently. Here, of course, you start seeing the level of work that would be required.
-
you want a 50 button with thumbsticks etc.etc. gamepad take one, gut it, hook up wires to the switch pads and make a wiring setup to make it compatible to the minimig.
that would be way better than trying to make a usb interface.
for some of the other stuff like mass memory an ide interface would be easier as well and would work with simple adapters to many modern mass memory cards
there are schematics and software for ide stuff online
-
Floid wrote:
downix wrote:
For a single mouse, you will, at peak, utilize 12Mbps, roughly 1.5MB/sec. Now, the Amigas RAM speed is only 7MB/sec. So, for a single, solitairy mouse, you'd be tying up 40% of RAM access.... just imagine adding a keyboard.
...but non-insane_laser_2-trillion_DPI mice are low-speed devices operating at 1.5m*bits*/s, yes?
Still bothersome but somewhat less so.
Nope, not bits, Bytes. Even if you're only sending one pip of information, requiring only a byte, it sends a full 32-bit word down the pipe. Very inefficient.
-
HIDs run at Low Speed (http://en.wikipedia.org/wiki/Usb#USB_signaling) - 1.5 Mbps.
-
Well it does if you put Windows to minimig.
To be of any use the USB-stack would need to run outside of the emulation in the first place (this is kind of obvious if you think about it: How would you go on about launching the USB-stack if you're booting from a game floppy? You obviously want to be able to use the keyboard and mouse in games...)
-
As before in another thread on MiniMIG, the issue with USB host on the present Minimig PCB would be the lack of CPU MIPs (the slow clock speed of the 68SEC000 CPU) and lack of spare FPGA I/O pins. A seperate CPU on a USB HOST controller such as the FTDI Vinculum USB HOST controller might work becasue it has a seperate CPU of its own running the USB stack although we would have to use a SPI interface to connect to it since we only have 4 spare FPGA I/O pins on J9 Spare I/O header. The speed of a serial SPI connection from 68K/Xilinx_FPGA would most likely limit the bandwidth/transfer rate. Data sheet has Vinculum SPI port max SPI Clock = 10Mhz => 10Mbits/sec Max SPI transfer rate (if no signal integrity issues arise). A FTDI Vinculum USB HOST controller small daughtercard that connected to MiniMIG1 Spare I/O header J9 could be built. We may have enough 68K CPU MIPS to handle this kind of implementation. Would anyone be willing to provide some Amiga driver software for MiniMIG/FTDI Vinculum USB HOST controller to support such a scheme ?
http://www.vinculum.com/
:-)
-
Or go with Coldfire instead of a 68K for a TNG Minimig?
Dammy
-
Coldfire isn't code compatible asfair.
-
Coldfire would be cool for a next generation projet, they have released v5 that runs at a nice 400mhz, add some PowerVR SGX for the graphics and you have some pretty competent hardware.
But for a project with emphasis in running 16-bit software it is not the right solution since it is not 100% compatible with the 68000.
-
downix wrote:
Alright, let's crunch the numbers:
USB is a CPU-driven, not DMA driven, system. That means for every batch call, the CPU must be utilized.
For a single mouse, you will, at peak, utilize 12Mbps, roughly 1.5MB/sec. Now, the Amigas RAM speed is only 7MB/sec. So, for a single, solitairy mouse, you'd be tying up 40% of RAM access.... just imagine adding a keyboard.
Sorry I'm probably just being Thick here but if this is the case then I have to ask; How does the Anaiis USB stack work then??? :-?
Because it claims to be working on a pretty much stock Amiga 2000 with ZorroII Highway USB and 68000 processor (7.14 Mhz).
(http://aminet.net/package/driver/other/anaiis (http://aminet.net/package/driver/other/anaiis))
Hattig wrote:
If you eventual point in all this is that you want to use a USB gamepad to play Speedball 2, then this is nigh-on impossible.
Yes, you can attach a USB port to a 68000, the rest of the system is just code. However due to the nature of the software part of USB, you would need to run what is probably quite a heavy duty bit of software alongside the game that already probably uses >90% of the 68000's available power. Alongside that you would need to map the USB gamepad input into standard Amiga joystick inputs. And then you'd realize that Amiga games boot from ADFs on the MiniMig, and that there's no way to stick the USB stuff into that.
The only way it could be done would be to have a second CPU that runs the USB stack transparently, and also does the mappings to classic Amiga hardware transparently. Here, of course, you start seeing the level of work that would be required.
Agreed, this does sound like it would undoubtedly be a project in and of itself but that doesn't necessarily mean it's impossible (just improbable :-))
So my next question would be; would the Vinculum solution that jkonstan mentioned make such a project any easier? If so what would this solution do to the overall cost of the minimig?
-
@pixie
You had a point there somewhere?
-
techie wrote:
downix wrote:
Alright, let's crunch the numbers:
USB is a CPU-driven, not DMA driven, system. That means for every batch call, the CPU must be utilized.
For a single mouse, you will, at peak, utilize 12Mbps, roughly 1.5MB/sec. Now, the Amigas RAM speed is only 7MB/sec. So, for a single, solitairy mouse, you'd be tying up 40% of RAM access.... just imagine adding a keyboard.
Sorry I'm probably just being Thick here but if this is the case then I have to ask; How does the Anaiis USB stack work then??? :-?
Because it claims to be working on a pretty much stock Amiga 2000 with ZorroII Highway USB and 68000 processor (7.14 Mhz).
(http://aminet.net/package/driver/other/anaiis (http://aminet.net/package/driver/other/anaiis))
wouldn't know, as the source to both products is quite closed it appears. Could be that there's an embedded controller. Could be that the guy went "fsck it" and ate the performance loss. Don't forget, you too can render Toy Story on your Amiga 1000.... it just would take centuries.
But it does not make things a practical solution.
-
techie wrote:
So my next question would be; would the Vinculum solution that jkonstan mentioned make such a project any easier? If so what would this solution do to the overall cost of the minimig?
Yes, the Vinculum would make things easier. You can buy an assembled board from them for a reasonable price. They even have one with a MP3 decoder chip for playing music. So all you'd need to do is make a cable..... oh yeah.... and write the software. ;-)
Personally, I'm beginning to more into the "USB is pointless" camp. It would be cheaper to just use the SD cards... after all to use a minimig you'll need to put an SD card interface in your PC....
-
I still don't get what the huge focus is for using USB for classic gaming. I would want to see USB for use from the Workbench. I'm perfectly happy using a 9-pin joystick and adfs (hopefully, someone will eventually make an open IPF replacement) for gaming.
I want USB to be able to hook up a scanner, or drawing tablet, or mp3 player, or any other device I haven't thought of. The explanation I keep hearing for why this can't/shouldn't be done is that you can't use it to replace the joysticks and floppy drives for classic gaming.
So, my question is, given that we have already established that the processor speed is not an issue due to solutions with there own built in processor, what prevents USB from working from Workbench?
-
JimS wrote:
techie wrote:
So my next question would be; would the Vinculum solution that jkonstan mentioned make such a project any easier? If so what would this solution do to the overall cost of the minimig?
Yes, the Vinculum would make things easier. You can buy an assembled board from them for a reasonable price. They even have one with a MP3 decoder chip for playing music. So all you'd need to do is make a cable..... oh yeah.... and write the software. ;-)
I'm sure it wouldn't be just plug'n play but it could be an asset.
Personally, I'm beginning to more into the "USB is pointless" camp. It would be cheaper to just use the SD cards... after all to use a minimig you'll need to put an SD card interface in your PC....
Which is probably right if all you wanted out of USB is access to storage devices but if you also wanted to use USB joysticks and mice then access to SD cards doesn't really help :roll:
More and more it sounds to me like there are really two groups of people who are asking for USB 1) You have people who want access to USB Mass Storage devices and other high tech gadgetry and 2)You have people who just want access to USB joysticks, mice, keyboards. Now I think it's safe to say that it is looking more and more unlikely that the first group will ever see this functionality without redesigning the MiniMig completely but what about the second group?
What if we only focused on making USB joysticks, mice (2x), and keyboards compatible with the minimig for classic gaming? Would that help reduce the complexity of this sort of project and would that be enough to satisfy most people when it comes to USB?
-
So, my question is, given that we have already established that the processor speed is not an issue due to solutions with there own built in processor, what prevents USB from working from Workbench?
Hear, hear!
If people really want to use their USB joysticks with 16bit era machines then the solution is to make an usb to de-9, this could also of interest users of msx, commodore 64, sega genesis, etc. You can already connect some USB keyboards to the ps/2 interface with an included adaptor.
I think the best use for an USB interface is to connect cd-roms and there will be people interested in scanners, external hard disks, etc.
As a side query, does anybody know if the PIC controller could be used for the USB interface or if using a more powerful/bigger PIC would allow such functionality? This would have the side benefit of allowing transparent use by games of USB joysticks :-p an also would keep the cost and simplicity of the design.
-
Belial6 wrote:
I still don't get what the huge focus is for using USB for classic gaming. I would want to see USB for use from the Workbench. I'm perfectly happy using a 9-pin joystick and adfs (hopefully, someone will eventually make an open IPF replacement) for gaming.
I want USB to be able to hook up a scanner, or drawing tablet, or mp3 player, or any other device I haven't thought of. The explanation I keep hearing for why this can't/shouldn't be done is that you can't use it to replace the joysticks and floppy drives for classic gaming.
So, my question is, given that we have already established that the processor speed is not an issue due to solutions with there own built in processor, what prevents USB from working from Workbench?
I guess the focus on USB for classic gaming is partially because people like to have choices when it comes to input devices. I for one would like to have the option of using either a classic joystick or a USB gamepad to play different Amiga games.
There's also the fact that classic controllers simply won't last forever. I have at least two joystick in my apartment which have simply stopped working on me because the cords got a little mangled during my last move (the box they were in got crunched a bit :S). So having access to USB joysticks and mice would give me a lot more options.
I also like the idea of being able to use two mice at the same time in games like lemmings and marble madness without having to resort to using my Amiga 1000 angle mouse + a PS/2 mouse :-(
-
More and more it sounds to me like there are really two groups of people who are asking for USB 1) You have people who want access to USB Mass Storage devices and other high tech gadgetry and 2)You have people who just want access to USB joysticks, mice, keyboards. Now I think it's safe to say that it is looking more and more unlikely that the first group will ever see this functionality without redesigning the MiniMig completely but what about the second group?
The whole point is that (2) is really difficult, requires a lot of extra hardware and why not just use PS2 keyboards, mice and 9-pin joysticks?
(1) is a lot more possible, if you just want to run USB within Workbench. It might be slow given the 68k, but once you have the software stack, you can attach whatever USB devices you want - including keyboards, mice, gamepads (they just won't work in a non-AmigaOS environment).
-
Hattig wrote:
The whole point is that (2) is really difficult, requires a lot of extra hardware and why not just use PS2 keyboards, mice and 9-pin joysticks?
Like I said before, partly because 9-pin joysticks won't last forever and also because it doesn't let you use multiple PS/2 mice for those few games that have two player mice support.
I get the whole PS/2 keyboards and mice argument and I kind of agree since there are already adapters that let you hookup USB mice and keyboards to PS/2 but it still doesn't solve the joystick problem.
(1) is a lot more possible, if you just want to run USB within Workbench. It might be slow given the 68k, but once you have the software stack, you can attach whatever USB devices you want - including keyboards, mice, gamepads (they just won't work in a non-AmigaOS environment).
Wait doesn't this solution STILL require "a lot of extra hardware" to implement as well? Wouldn't this also require a higher end CPU to be integrated to really get anything out of all those high end peripherals?
Sorry it still sounds to me like option two would be easier (albeit a lot of work) to implement in the current minimig design.
little wrote:
If people really want to use their USB joysticks with 16bit era machines then the solution is to make an usb to de-9, this could also of interest users of msx, commodore 64, sega genesis, etc.
While I would still prefer an on board solution this type of adapter would probably be enough to satisfy people like me as long is it could be used with both USB joysticks and mice.
-
Coldfire isn't code compatible asfair.
Last I heard, they had libs out for a work around.
Dammy
-
I still don't get what the huge focus is for using USB for classic gaming.
IMO, it's more of an "amiga lego" then a retro game machine. One could just use EUAE for OCS/ECS games, or one could use a Minimig and expand it beyond what the creator's initial intentions were for it. I think it's the latter that have the eye for USB capability. Like what the C64 folks do, take their machine far beyond what it was doing in 1980s.
Sure do have fond memories of my upgrade ECS A500 with baseboard RAM, Supra 28MHz Accelerator, Dataflyier SCSI with RAM.
Dammy
-
USB on minimig 1, it's not going to happen. ps2 devices are cheap and easy to obtain. Who cares?
If you want USB on minimig 1, talking about it is useless, you will have to do it your self or perhaps hold out for minimig 2.
-
The whole point is that (OS transparent USB) is really difficult, requires a lot of extra hardware and why not just use PS2 keyboards, mice and 9-pin joysticks?
As I have said before, I think an USB to DE-9 adapter for joystick and mice would suffice, but there is another reason for an OS transparent USB interface. It would enable transparent emulation of the CDTV/A570 and later on it would be posible to create verilog code to run other CD-ROM/68000 based hardware. This will be beyond the capacities of minimig 1, but I think we all agree USB 1.1 is all about minimig 2.0 :-)
-
koaftder wrote:
USB on minimig 1, it's not going to happen. ps2 devices are cheap and easy to obtain. Who cares?
If you want USB on minimig 1, talking about it is useless, you will have to do it your self or perhaps hold out for minimig 2.
Which is pretty much what I said in my first post:
techie wrote:
Edit:
Please Note: I do understand that the current design of the MiniMig was not built with USB in mind but I am curious about the possibility in future versions.
little wrote:
As I have said before, I think an USB to DE-9 adapter for joystick and mice would suffice, but there is another reason for an OS transparent USB interface. It would enable transparent emulation of the CDTV/A570 and later on it would be posible to create verilog code to run other CD-ROM/68000 based hardware. This will be beyond the capacities of minimig 1, but I think we all agree USB 1.1 is all about minimig 2.0 :-)
I think we're on the same page here I agree that such an adapter would suffice for now (provided it can work with both Joysticks and Mice). But like you say it would still be nice to have transparent onboard USB in the future as it would open up more possibilities.
-
While I still believe that a USB port would be valuable (and feasible) for use from the Workbench, let me throw out another solution that could solve the problem without USB.
What do you think about some kind of USB over Ethernet? Given that Ethernet is a given on some future revision of the MiniMig, this would make the 'USB' a completely software solution.
Again, my concern is getting access to modern devices on the Workbench. While having a stand alone solution would be best, I think it would be safe to say that 99.5% of all MiniMig users will also have a network at home, and a full PC with USB already implemented.
I would think that this would allow the MiniMig side of things to be very light weight. It could be a two driver system. One driver on the PC side to export the interface, and one on the MiniMig side to access the interface. This would put 100% of the USB stack on the PC side. It actually wouldn't even need to be a USB device on the PC side. I guess it would just be a 'Virtual Device' driver.
One question on behalf of the 'Classic Gaming USB' (as opposed to the 'Workbench USB') crowd would be do you think the over head of sending commands across the network would introduce more latency than would be acceptable for things like keyboards and joysticks. I ask this because wireless keyboards and mice are pretty common these days, so the CG-USB crowd could get benefit from this kind of solution as well. They could even use an old laptop with WiFI as a wireless USB adapter. It seems that it would also be possible to implement a version of the Ethernet to keyboard/mouse/joystick driver directly in the FPGA, so that it would default to those devices if you were loading directly to a classic game, instead of to the workbench.
While this solution is not perfect, it seems like it would be simpler to implement in the short run with the limited resources that the MiniMig has at it's disposal. It would also address the problems posed by both the CG-USB and WB-USB crowds. We are after all looking for a solution to a problem. Not a problem for our solution.
So, to those that can plan these things out in there head with little to no effort, does this sound like a feasible solution to the USB problem?
-
@Piru
You had a point there somewhere?
No point made by me, they're all yours...
-
Coldfire isn't code compatible asfair.
Coldfire has a 68K at it's core and is about 99.8% instruction set compatible with say a 68020 when also using the free developer 68Klib library. Carefully written source would compile and run on either. However, the remaining incompatible instuctions would be a chore to trap and redirect. Also trying to tie a Coldfire into a classic chip set (or emulated chip set) will have it's challenges when working out the differences in the I/O's and timing issues between a Coldfire and 68K. If I recall the V2 coldfire is the most I/O compatible and has a top speed of 33mhz.
Tough, but not impossible. Who want's to help me work it out? :-)
Plaz
-
@dammy
Last I heard, they had libs out for a work around.
Last I heard the compatibility was for user level code only. Supervisor side is totally different beast.
Plus even the user level side isn't 100% compatible.
-
@pixie
No point made by me, they're all yours...
Good, because I'd hate to have any inconsistency in my comments. ;-)
-
an USB to de-9 adapter would suffice (provided it can also work with Mice)
I think that since mice are quite simple (2-5 buttons/0-1 rudder wheel) would make more sense to make a ps/2 to de-9 adapter just for mice? I am quite surprised that no one has made such an adapter already, since most amiga mice must be quite worn out by now and such adapter would be quite cheap to produce.
-
techie wrote:
Sorry I'm probably just being Thick here but if this is the case then I have to ask; How does the Anaiis USB stack work then??? :-?
Because it claims to be working on a pretty much stock Amiga 2000 with ZorroII Highway USB and 68000 processor (7.14 Mhz).
Anaiis is only the USB stack itself, (Think Windows Driver).
You still need the USB HARDWARE itself, for the stack/Driver to control.
Now, In THEORY, you could have a ZorroII bus USB card, but we are back to the CPU USAGE of USB. One way around, is to have the CARD ITSELF handle all the MIPS required to handle the transfer's. But to do this, you still need DMA, Otherwise, the CPU cops all the work. Back to square 1.
Modern PC's have several advantages, CPU Speed (Raw grunt), as well as DMA Channels, which means CPU doesn't get bogged down.
-
Modern PC's have several advantages, CPU Speed (Raw grunt), as well as DMA Channels, which means CPU doesn't get bogged down.
But the amiga has a bus architecture and utilizes direct memory access (DMA) technique. (http://www.amigahistory.co.uk/patent.html) If I undestand correctly it should be feasible to do a USB interface that used DMA to fetch the data.
As I side note that no one has mentioned, another advantage of USB is that you can add a WiFi interface (http://www.pcdomino.com/page/PROD/CWD854.html) to the amiga thru a USB port (it would require an amiga driver, but anything network related is done thru the workbench anyway).
-
I am very pro WB-USB, but if I were going to try to get WiFi on a MiniMig, I would be looking a Ethernet Port, and a bridge. Wired networking is cheap, available, simple, and well understood. WiFi on the other hand has a bunch of chips with closely guarded secrets.
On the other hand, this is a perfect example of why USB would be good. It would only take one guy that knows how to port device drivers from Linux to add WiFi support. He wouldn't need to know how to build the WiFi into the MiniMig directly.
-
this is a perfect example of why USB would be good.
As a side note, doing some web-surfing I found out that the PIC18F2550, PIC18F2553 and PIC18F2580 have built in USB 2.0 ports, so there is no need of a complete redesing of the minimig to add USB, just replace the PIC18LF252-I/SP with one of his three "big brothers" and write the required code.
-
@little,
That won't work,those PIC's aren't USB host controllers.
-
There got to be free room to store the associated USB driver code aswell. Besides the stuff that has to be there presently.
-
So what can we conclude from all this?
1) That USB for classic gaming (i.e. USB joysticks and Mice in games only) is probably not going to happen without some sort of external adapter (Most likely in the form of USB to 9pin adapter) to do the work.
and 2) USB for a Harddrive/Flashdrive based MiniMig running AmigaOS is possible but impractical :-(
Does that about sum things up :-?
-
Last I heard the compatibility was for user level code only. Supervisor side is totally different beast.
Plus even the user level side isn't 100% compatible.
What if you took AROS ported it to Coldfire as Minimig-coldfire. Could the user apps survive with that library for what's missing?
Dammy
-
techie wrote:
Sorry I'm probably just being Thick here but if this is the case then I have to ask; How does the Anaiis USB stack work then??? :-?
Because it claims to be working on a pretty much stock Amiga 2000 with ZorroII Highway USB and 68000 processor (7.14 Mhz).
(http://aminet.net/package/driver/other/anaiis (http://aminet.net/package/driver/other/anaiis))
Hello. As you see, I'm the author of this *fabulous* stack... ;-)
ANAIIS is nothing without the uhc124 die (TransDimension), and the help of Michael Boehmer (The conceptor of Subway and Highway).
This non-PCI die can easily manage transactions between the 68000 and the usb world. The only limitation of ANAIIS is the lack of isochronous support (can't use audio, video,...) but a simple 68000 can't manage interrupt each millisecond, and for my own usage, I don't use these peripherals on my 'miga: only hub, mouse, keyboard, printer. For games, it's better to use the original gameport. This stack seem to be closed and limited: normal still in dev, and I'have no time to improve it (maybe a Subway version will be available *soon*)!
On Minimig, it will be good to implement this kind of die (like uhc124, non PCI chip...), and map register with a PIC (or other way), to keep compatibility with original hardware.
-
The only limitation of ANAIIS is the lack of isochronous support (can't use audio, video,...) but a simple 68000 can't manage interrupt each millisecond,
Very interesting. Do you think that if the 68000 is overclocked to 28mhz (instead of the stock 7 Mhz) it would be feasible to support isochronous mode?
This chip seems pretty marvelous, more info here (http://www.transdimension.com/products/usb/UHC124.html) and here (http://www.embedded-computing.com/products/search/fm/id/?18150). IMHO is this is added to minimig 2.0 it would allow cd/dvd drives, hard drives, memory sticks, mouse, keyboard, printers, wifi connections, network connections, joysticks and maybe floppy drives (I have no idea if it is feasible to read amiga formatted and copy protected disks), albeit I have no idea if the PIC has enough memory to control the uhc124 and many drivers for amigaos would need to be written.
edit: The uhc124 is only $4.80 retail (http://www.semiconductorstore.com/pages/asp/item.asp?ItemNumber=TDUHC124-0F0C) O_o;
-
Gilloo wrote:
techie wrote:
Sorry I'm probably just being Thick here but if this is the case then I have to ask; How does the Anaiis USB stack work then??? :-?
Because it claims to be working on a pretty much stock Amiga 2000 with ZorroII Highway USB and 68000 processor (7.14 Mhz).
(http://aminet.net/package/driver/other/anaiis (http://aminet.net/package/driver/other/anaiis))
Hello. As you see, I'm the author of this *fabulous* stack... ;-)
ANAIIS is nothing without the uhc124 die (TransDimension), and the help of Michael Boehmer (The conceptor of Subway and Highway).
This non-PCI die can easily manage transactions between the 68000 and the usb world. The only limitation of ANAIIS is the lack of isochronous support (can't use audio, video,...) but a simple 68000 can't manage interrupt each millisecond, and for my own usage, I don't use these peripherals on my 'miga: only hub, mouse, keyboard, printer. For games, it's better to use the original gameport. This stack seem to be closed and limited: normal still in dev, and I'have no time to improve it (maybe a Subway version will be available *soon*)!
On Minimig, it will be good to implement this kind of die (like uhc124, non PCI chip...), and map register with a PIC (or other way), to keep compatibility with original hardware.
Thank you very much for your input :-)
So I guess the only hope for USB joysticks is if someone out there creates a USB to 9-Pin adapter but on the plus side at least it sound like USB mouse and keyboard support is feasible (if only from within Amiga OS).
-
I was toying with the idea whether it would make sense to put an ARM processor with USB master capability on the board.
This could run software that is able to control a multitude of devices (USB mass storage, USB HID, USB imaging, etc), then map the device to the Amiga's official PCMCIA memory area.
If I'm not mistaken there were network cards, CD-ROMS, flash memories, serial ports and scanners for the A600/A1200 PCMCIA slot back in the old days, therefore drivers on the Amiga should be doable.
The Philips LPC2468 would seem to be up to the job as it's able to run uCLinux (which means ready made drivers for just about any USB peripheral). This of course would mean taking the Minimig to a whole new dimension, also as a very interesting tinkering platform for FPGA and MCU development.
What do you guys think? Personally, I have a feeling that it would shift focus away from the Amiga in Minimig, but would enable relatively easy implementation of USB.
-
I was toying with the idea whether it would make sense to put an ARM processor with USB master capability on the board.
Would it be expensive?
-
Would it be expensive?
Depends on what is expensive to you. If you look at the hardware alone, the processor by itself is around 15 USD. It could replace the PIC micro and could also allow use of SDRAM instead of the present SRAM, thus not increasing the cost of the system by much, if at all. You then need to add costs for connectors, ethernet + USB phy and other stuff.
On the other hand, minimig, as it is, already comes up to around 160 USD in parts alone.
I am not even considering the time frame to implement such a beast. It would need people with various experiences in different fields (Linux, Amiga driver programming, Amiga hardware experts/hackers).