21 September 2021, 06:24 | #21 | |||
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
Quote:
Quote:
Another thing I am thinking of including is ISA bus slots so you can use PC I/O cards. Think of the possibilities - pop in an MDA card and you can finally have Text Mode on your A1000! (only 36 years too late). |
|||
21 September 2021, 12:17 | #22 | ||
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,337
|
Quote:
https://twinind.com/index.php/produc...typing-boards/ https://www.digikey.com/catalog/en/p...ping-kit/81942 Quote:
The hard bit IMO is not the interfacing to an external peripheral of the era. Most interfaces are extremely simple, just wires. The hard bit is writing an AmigaOS driver. But this could be just because I've never done one. Some people have done AmigaOS PCMCIA drivers Neil Cafferkey wrote a 3c589 PCMCIA network card SANA2 driver and Prism2 PCMCIA Wifi card SANA2 driver. Some guy called Bruce Abbott wrote/contributed to the NE2000 PCMCIA network card SANA2 driver. But are SANA2 drivers easier to write than full AmigaOS drivers? Than say a Poseidon USB host driver? Last edited by alexh; 21 September 2021 at 12:31. |
||
22 September 2021, 06:41 | #23 | |||
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
Quote:
They said it couldn't be done because Commodore's implementation of PCMCIA was incomplete so PC PCMCIA cards were fundamentally incompatible. The guy who wrote the ICard driver told me they had to develop a special card for the Amiga for this reason. But I proved them wrong. Some cards do not work for one reason or another, but a lot do work. And just like with other PC stuff, a lot of the time the problem is not fundamental incompatibility but cards with nonstandard operational requirements or latent bugs that just happen to work OK on a PC because they have to. The biggest problem with PC cards is getting the information required to write a working driver. I examined the Linux PCMCIA network card drivers to get some clues. Making an Amiga compatible card is not hard. If it is only going to be used on the Amiga and you don't need hotswapping etc. then the design can be very simple. For many applications you don't need a complex controller on the card, and the driver can be simpler too because it knows which card is (or should be) inserted so it doesn't have to parse tuples etc. No need to deal with PC peculiarities, just design the card to be compatible with the Amiga's PCMCIA port and you're done! Quote:
I am betting a USB host stack will be easier. If an Arduino can do it then it can't be hard, and we can probably use the same software with minor modifications. I would look at interfacing a cheap Arduino USB host module, or a generic module such as the CH376 (which I used on the Mattel Aquarius). Another option might be an MCU with USB OTG capability. |
|||
22 September 2021, 08:20 | #24 |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Another thing we don't have to worry about on the Amiga is making the card thin enough to fit inside the PCMCIA slot. People complain about how the card sticks out the side, but this turns out to be a good thing because we can load the PCB with standard sized parts like DIP ICs, full size USB connectors etc. This can make the card much cheaper and easier to build than having to use special low-profile components.
One annoying problem with the Amiga 600/1200 PCMCIA slot is there is only one of them. I want to expand that to at least 2 slots. Another possibility is to add 'clockport' connectors so we can use cards designed for this. When the A600 came out people complained about how Commodore had dropped the A500's expansion connector so we wouldn't be able to use all the stuff that was produced for it. But that was mostly only a few hard drive / RAM expansion boxes, and hanging a big box off the side via that huge Zorro I connector would have been very inelegant. The A600 had an internal IDE port so the only real issue was FastRAM (PCMCIA RAM cards were rare and expensive). Then someone came up with the idea of plugging a board directly over the CPU and the FastRAM problem was solved. The challenge was getting the PCMICA port to work with other devices. Back then we thought bummer, a whole new incompatible bus that is very expensive to design for. But it turned out the only real challenge was mechanical. It didn't take long for Amiga hardware developers to realize that they didn't have to duplicate all the baggage that PC cards needed. The Squirrel SCSI, Surf Squirrel, Archos Overdrive, and Aura sound card all had just enough interface logic to access the port. |
22 September 2021, 11:24 | #25 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,337
|
The problem today is that most of the 5v tolerant embedded USB controllers with AmigaOS drivers like the Transdimension UHC124 used on the Subway (and would be practical here) are now EOL (end of life)
I don't think there is much point in doing anything above "USB2.0 Full Speed" as I don't think the PCMCIA port has the bandwidth? Last edited by alexh; 22 September 2021 at 11:31. |
23 September 2021, 03:15 | #26 | |||
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
Quote:
Can I use a USB 3.0 device in a USB 2.0 port? Quote:
|
|||
23 September 2021, 13:28 | #27 | |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,337
|
Quote:
If you could find some Transdimension UHC124s anywhere, the Subway driver I *believe* was open-sourced together with the source code of Poseidon (the Amiga USB stack) |
|
24 September 2021, 04:27 | #28 | ||
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
For the zip 250 USBPCM (subject of this thread) full speed should be fast enough because the drive itself can't even manage 1MB/s. Quote:
I am thinking an MCU solution like this might be a better bet. Some PIC24 and PC32 MCUs have a parallel slave port that could be interfaced directly to the PCMICA bus for data transfer and commands, with the MCU taking care of low level USB stuff. Alternatively an STM32 or other MCU with USB host capability could be used with a few latch/buffer interface chips (might want to do this anyway to get 16 bit transfers). Other peripheral ports in the MCU such as SPI, I2C, and GPIO could also be brought out for other purposes. MCU firmware updates could be installed via a separate header and/or through a bootloader controlled by the Amiga. Advantages of this solution include not being tied to a particular USB host chip that may become obsolete, and reducing CPU load on the Amiga (which only has to send high level commands and transfer data). I have been thinking about producing something like this to replace the CH376, which has a few annoying limitations and (again) may not be available forever. |
||
24 September 2021, 15:24 | #29 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,337
|
By not exposing the USB side of things to the Amiga you loose the overhead of a USB stack. But in what format do you try to get the data over to the Amiga? A custom format requires a custom driver? A custom driver for each USB class? Mass Storage, HID, Ethernet, Wifi, Sound etc.
If you forget about hot-plug and you forget about USB hubs. I imagine you could emulate existing single function PCMCIA devices? e.g. Mass Storage becomes... PCMCIA CF card? Uses CFD driver? Just an idea. |
25 September 2021, 04:07 | #30 | |||
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
This is how the CH376 does it. Its MCU handles the low level controller stuff but gives the host the access it needs to utilize the device. The host can eg. find out what is plugged into the USB port, mount a block device and read and write sectors on it etc. The CH376 also has a FAT filesystem handler in it so the host can work at an even higher level - get a directory listing, open a file by name and read/write/delete change directory etc. (very useful on low powered machines that don't don't have their own DOS!). Other devices that the CH376 doesn't know about can be used by working with USB packets, with the MCU still doing all the low level USB controller stuff (so the host doesn't need to know how the controller works). At the higher level most devices should be pretty generic already, so the interface protocol can be similar to existing devices and converting an existing driver would be easy. For other devices you can develop whatever 'bridge' protocol is easiest and most efficient, with the MCU handling the messy details of the actual device protocol. Quote:
Quote:
|
|||
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Pcmcia USB card | tekopaa | support.Other | 25 | 15 November 2014 00:50 |
A1200: PCMCIA card does not go in! | Sim085 | support.Hardware | 19 | 15 July 2014 22:11 |
PCMCIA USB Cards on A1200 | paulo_becas | support.Hardware | 4 | 23 April 2012 12:21 |
a1200 pcmcia nic card | Crackersixx | support.Hardware | 11 | 30 September 2006 20:43 |
This PCMCIA card ok for A1200 ? | whiteb | MarketPlace | 2 | 26 October 2003 13:36 |
|
|