floppy support on non-PCI capable processors

I'm looking for any possible solution for interfacing a 3.5" floppy to a relatively small processor. Specifically, one where it isn't possible to use a SuperIO chip. If anyone has any great ideas, I would love to hear them.

Bill

Reply to
William Meyer
Loading thread data ...

If you don't need high volumes of parts (>1K), you can probably get one of the old SuperIO parts with an ISA-style interface. That would be by far the simplest way to do it.

Aside from that, all the options I can think of have one or more of these drawbacks:

1) high NRE 2) high per-unit cost 3) low performance 4) not compatible with standard 720K or 1440K formats

If I was faced with this problem and had some money to spend on NRE but couldn't budge on the other areas, I'd consider using an LPC SuperIO, and either implementing LPC bus protocol in firmware (bitbanging) on your existing processor, or adding a small but reasonably fast slave processor to do it.

Probably the best option, if you can change the requirements, would be to ditch the floppy and use CF or SD cards instead.

Eric

Reply to
Eric Smith

I did that sucessfully with an SMSC FDC37C78 hooked up to the external memory bus of the uC used. You should also get away with bitbanging this device. The chip was still available the last time I checked, but it's a while ago... Apart from this, I agree with the other poster that using SD or CF card instead is a much better option.

HTH

Markus

Reply to
Markus Zingg

But for the fact that interfacing a floppy to the system is the specific desired result, I would certainly entertain switching to SD. Thanks for the lead on the chip.

Bill

Reply to
William Meyer

SMC

formatting link
still lists ISA interface floppy controllers. TheISA interface is about as close to a processor interface as you can get - /ioread, /iowrite address and data. If the that is not workable, maybe you could find a microcontroller with USB and then use a USB interface floppy drive. Failing those two ideas, you might try looking at opencores.org and see if you could get RTL for a 765 and put it in an FPGA.

Good Luck, Bob

Reply to
MetalHead

Thanks for the suggestion, but I looked on opencores a few days ago, thinking that such a thing would have made a modest-sized project for someone there, and found *nothing*. I'll explore the smsc option, but so far have not found a place where I can order.

Bill

Reply to
William Meyer

A more palatable alternative might be to look at using USB devices, since there are USB interfaced floppies, HDDs, and CD/DVDs. But I have no idea how big a task it may be to program the driver for the host side of one of those things...

Bill

Reply to
William Meyer

Last time I checked, Winbond had a FDC-2serial-1parallel-IDE chip for about $4 through Arrow. With a lot of pain, I got the floppy to boot dos when hooked to an x86 processor.

The 765 interface is a bitch to program. You have to check flags to see if it's safe to check flags, etc. Since there is no significant buffering, running it concurrent with any other process becomes a fairly major chore.

Reply to
Jim Stewart

You may want to do a little research on the interface. A floppy controller used to be a bunch of TTL chips.

Reply to
Neil Kurzman

I know. And I'm not sure it couldn't be accomplished now with something like an AVR, but I haven't had much luck searching for the technical details of the interface.

Bill

Reply to
William Meyer

The ancient 5 1/4 drive OEM manuals have a lot of the data you need. There are a few differences between the 3 1/2 and the 5 1/4 drives like rotational speed and resulting data rates. The newer systems (after the

70's) mostly used MFM instead of straight FM for data encoding. There may be a few other differences I have missed, but they are generally signal compatible.

Here are URLs for the Shugart 400 and 800 floppy drive OEM manuals that do a good job detailing the interface and data formats:

formatting link
formatting link

Good Luck, Bob

Reply to
MetalHead

formatting link

Thanks, those are what I've been looking for!

Bill

Reply to
William Meyer

formatting link

formatting link

I'm glad the data was what you were looking for.

The App Notes for the (obsolete) National Semi DP8473 FDC have a decent description of the MFM data format and data separator design for decoding it. App Note AN-505 is the one I have in hardcopy. There are probably other places to find it, but here is one URL for AN-505:

formatting link

Bob

Reply to
MetalHead

Also useful, thanks! Beats the heck out of suggestions to just not use floppies .

Bill

Reply to
William Meyer

I was looking at this as a possible home project. I had forgotten how much stuff is in a floppy controller IC! The step generation stuff is pretty simple, but the data handling part looks pretty beastly. If I were going to design a clean, production grade FPGA block, I would probably estimate it at two to three months including testing. A fast hack could probably be done in a month or so. As I remember, the firmware dealing with FDC's is no treat either.

Is this for a one off type of project or a full product run?

Bob

Reply to
MetalHead

I have implemented an MFM floppy controller with an ATmega8 as a part of my (unfinished) hobby project. Here's the URL if anyone's interested:

formatting link

Piotr

Reply to
Piotr Piatek

Really? I'm surprised. I didn't think it would be all that bad, frankly. But the other approach of interest (and maybe of greater interest, in some ways), is to consider interfacing (rotating) storage through a USB interface. That would open the door to floppy, hard, and optical drives.

Might be more than one-off, but nowhere near production volumes.

Bill

Reply to
William Meyer

I'm interested, for sure! This is what I was hoping to find. Have you actually made it work? Or are you in the planning stages?

Bill

Reply to
William Meyer

Yes, it really does work.

Piotr

Reply to
Piotr Piatek

Sorry, I wrote the message after seeing yours, and before scrolling down to find the source file. I will be exploring the source a bit later. Nicely done!

A question though: Is the poem the pattern you used for testing? Is there not a need to test patterns that include bytes > 0x7F, as well? Or did I miss another test pattern?

Bill

Reply to
William Meyer

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.