Drives Variant GOTEK Variant
This board carries the TMS2793 Floppy Disk Controller (FDC), FDC Latch (Acorn call it the 'Miscellaneous Functions Latch') and a Shugart SA400 type Floppy Disk interface.
The FDC Latch generates additional control signals not provided by the TMS2793 plus a couple of other signals which are routed via the backplane to the CPU Board. This latch is addressed at $FC08 and is write only, a read from this address switches the 'ROM Latch' (IC6) on the CPU Board.
The TMS2793 can be put into a Test Mode either by enabling bit 6 of the FDC Latch or more easily by removing LK100 (which should normally be fitted). When in Test Mode a clock is output on the DIRC line (TP2) which is set to 250kHz using trimmer C11.
I have added the option of fitting a pair of GOTEK circuits to the board instead of 'real' drives, these are based on the original STM32F105RBT6 design. If the GOTEK circuits are fitted then IC301 is required to transition the 3V3 logic signals. If only one GOTEK is used then the four pull-up resistors (R302-305) must be fitted.
Note: the board is intended to be used with Floppy Drive(s) or GOTEK(s) but not a mix of both.
If GOTEKs are being used then R301 is fitted with a 1K0 resistor network, when real floppy drives are used then only R300 is fitted with a 270R network.
The GOTEKs can optionally be fitted with OLED displays (via J102/202) and rotary encoders (via J100/200) though the configuration files below will function without a user interface.
The STM32 processors are most easily programmed via their serial ports (J103/203) using an FTDI USB converter (must be 3V3) and the STM32 Cube Programmer application which can be found here https://www.st.com/en/development-tools/stm32cubeprog.html. To initiate programming the BOOT0 link (J101/201) should be fitted. If you have OLED displays connected these must be disconnected during programming or the processor will think you are using SPI rather than serial. The GOTEK Flash Floppy firmware can be found here https://github.com/keirf/FlashFloppy/wiki.
Connections to the serial port for programming are as follows:
Pin 1 TxD connects to FTDI RxD Pin 5/Yellow wire
Pin 2 RxD connects to FTDI TxD Pin 4/Orange wire
Pin 3 0V connects to FTDI 0V Pin 1/Black wire
FDC Latch (aka Miscellaneous Functions Latch)
bit | Function |
0 | selects floppy 1 (left) |
1 | selects floppy 2 (right) |
2 | selects floppy side |
3 | if set enables access to RTC NVRAM |
4 | FDC Single/Double Density (0=single, 1=double) connects to pin 37 (~DDEN) |
5 | FDC Reset (active low), connects to pin 19 (~MR) |
6 | FDC Test (active low), connects to pin 22 (~Test) |
7 | red Mode LED (1=on) |
FDC (IC20) TMS2793 Registers
Register Address | Register Name | Function |
$FC0C | FDCSCR | Status / Command Register |
$FC0D | FDCTRK | Track Register |
$FC0E | FDCSEC | Sector Register |
$FC0F | FDCDAT | Data Register |
Here is a set of configuration files for the GOTEKs, just copy these files to a FAT32 formatted USB Memory Stick and that should get you started:
Floppy Disks
If you use real 3.5" drives rather than GOTEKs then you can use the FileStore.adl image above, it can be transferred to floppy using e.g. OMNIFLOP.
There are some issues to be aware of with using 3.5" drives:
most 3.5" drives are set to be drive '1' for use in PC's and often don't have removable links to set the drive number, you may need to delve inside with a soldering iron and remove a soldered link to set a drive to '0'
the ribbon cable must be a straight one i.e. not a PC floppy drive cable with a twist in it
you must use DD Double Density disks i.e. with one hole and not HD High Density disk with two holes
Schematic
(One builder has reported having an issue with the reset pins on the GOTEK processors being tied together which he resolved by fitting a second diode/resistor (D300/R306) ?)
Bill Of Materials
Front Panels
I also machined approx 1mm away behind the displays to set them into the panel, they were then fixed in place with holt melt glue. Take care that the display connector doesn't short against the panel, I had to crop the pins back and added a layer of PTFE tape to be sure.
PCB