At the moment I’ve completed the schematics and I’ve started to work on PCB layout. There are going to be some changes caused by discovered mistakes or better layout. So, please, treat it as a draft on this stage. Please, let me know if you notice any mistakes.
Today we will have a look at schematics of 140К and 840К floppy-drives:
As you can see, they are almost identical. I’ve only used different LCD colours for them. I used this schematic as an example in my post about LCD displays. In the current version LEDs were added, card control pins were connected and pins for communication with FPGA determined. The communication is performed with SPI interface. It is enough to use 4 wires for this, but I’ve added the 5th, which is used for the next byte request. It happens each 32nd CPU cycle for 140K floppy-drive and it has exact match with the speed of the real drive. On a breadboard trial I’ve got a lot of errors because of connections and wires length, so I had to send each byte triple times to reduce the errors. It is the reason of the 5th wire. I could remove it in my final design and use each SPI session as byte request. But, just in case, I’ll leave it in Rev.0 design. Also, the microcontroller connected to I2C port extender with “ready” and “write enable” signals.
When a floppy-drive is turned on, it scans a SD-card and shows its content on the LCD dislpay. It recognises FAT16 and FAT32 formats. It doesn’t have long filemnames support, because the size of the display is limited anyway. At this point it is a limit of 100 files and subfolders in a folder. Files that are not images are ignored and not counted in the limit. For 140K floppy-drive .nib files are used. Its size shouold be 227.5Kb. 840K floppy-drive uses .aim file format. It should be kept in mind when the collection of disk images is created on the SD-card. Floppy-drives are not able to create a new images but will be able to write to the existing image, so “empty” images have to be created on the SD-card if required. An image can be chosen with the rotary encoder from the file list. If the SD-card is not write protected then it is possible to choose a mode – “read only” or “read&write” before an image is opend. After that the microcontroller starts a floppy drive emulation. It uses SPI interface to communicate with FPGA. “Floppy-drives” have its own power switches independent of the main switch. it allows to start emulation before the computer is turned on, so it will see a disk in a “drive” and perform the autoboot from it.
Next part of the schematic will be discussed in the following post. See ya!