OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Mar 28, 2024 7:52 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Floppy disk controller on FPGA
PostPosted: Sat Dec 27, 2014 3:56 am 
Offline
Member
Member
User avatar

Joined: Sun Oct 18, 2009 5:47 pm
Posts: 208
Location: Alexandria, Egypt | Ottawa, Canada
Hello!

I am going to write a floppy disk controller in VHDL for a school project. If anybody has interesting documents that might help me, please post it [-o< :D

I have read the pinout of the 34-pin FDD cable, however I need more information about how data transfer between the controller and the FDD could be properly synchronized. I have also read that IBM PCs use modified frequency modulation (MFM), which needs great study. Finally, I need to know exactly how IBM PC disks are formatted and what is exactly stored in the gaps between sectors.

Since I have come up with the idea, I have been searching the internet for information. However, it seems like the available information about the points above is so little or I don't use proper search keywords. Any help will be really appreciated :)


Top
 Profile  
 
 Post subject: Re: Floppy disk controller on FPGA
PostPosted: Sat Dec 27, 2014 9:14 am 
Offline
Member
Member
User avatar

Joined: Sun Sep 19, 2010 10:05 pm
Posts: 1074
Most of the answers you are looking for are on Wikipedia: http://en.wikipedia.org/wiki/Floppy-disk_controller

Quote:
Floppy disk controller functions (FDC)
Translate data bits into MFM or GCR format to be able to record them
Interpret and execute commands such as seek, read, write, format, etc.
Error detection with checksums generation and verification, like CRC
Synchronize data with phase-locked loop (PLL)

External hardware functions
Selection of floppy disk drive (FDD)
Switching-on the floppy drive motor
Reset signal for the floppy controller IC
Enable/disable interrupt and DMA signals in the floppy disc controller (FDC)
Data separation logic
Write pre-compensation logic
Line drivers for signals to the controller
Line receivers for signals from the controller


Phase-Locked Loop: http://en.wikipedia.org/wiki/Phase-locked_loop

MFM Encoding: http://en.wikipedia.org/wiki/Modified_F ... Modulation

_________________
Project: OZone
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott


Top
 Profile  
 
 Post subject: Re: Floppy disk controller on FPGA
PostPosted: Mon Dec 29, 2014 3:49 am 
Offline
Member
Member

Joined: Mon Apr 09, 2007 12:10 pm
Posts: 775
Location: London, UK
If you haven't already, I'd suggest getting a hold of the 8272A datasheet. It describes the interface between the FDC and the CPU, drive and DMA and PIC chips in detail.

Regards,
John.

_________________
Tysos | rpi-boot


Top
 Profile  
 
 Post subject: Re: Floppy disk controller on FPGA
PostPosted: Sat Jan 03, 2015 9:26 am 
Offline
Member
Member
User avatar

Joined: Sun Oct 18, 2009 5:47 pm
Posts: 208
Location: Alexandria, Egypt | Ottawa, Canada
Thank you friends!

This document (AN-505 Floppy Disk Data Separator Design Guide for DP8473) is also great and has helped me a lot.

I finished a version of the controller that supports reading data from (but not writing to) the disk. The code is posted here: http://pastebin.com/w0S40FV3. I hope it helps anyone who wants to make her own FDC or learn how it works from the inside.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 24 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group