Go to file
2023-08-25 11:42:20 +09:00
apple2-bus.pretty Initial commit. 2023-07-10 05:40:39 +09:00
doc Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
firmware Syntax and brevity 2023-08-22 18:34:14 +09:00
.gitignore Nuke erroneously added files. 2023-07-29 06:35:24 +09:00
apple2.kicad_sym Initial commit. 2023-07-10 05:40:39 +09:00
bus_interface.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
clock.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
decoupling.kicad_sch Checkpoint. 2023-08-25 10:28:46 +09:00
drive_control.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
eprom.kicad_sym Switch to 2716/2732. 2023-07-16 11:48:36 +09:00
firmware.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
floppies.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
floppy_read.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
floppy_write.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
fp-lib-table Initial commit. 2023-07-10 05:40:39 +09:00
LICENSE Initial commit 2023-07-09 20:35:18 +00:00
MicroSci Floppy Controller.kicad_pcb Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
MicroSci Floppy Controller.kicad_pro Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
MicroSci Floppy Controller.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
misc.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
README.md Document the changes so far. 2023-08-25 11:42:20 +09:00
shift_register.kicad_sch Checkpoint -- we're done separating into logical components. 2023-08-25 11:32:10 +09:00
sym-lib-table Switch to 2716/2732. 2023-07-16 11:48:36 +09:00
TTL.kicad_sym Initial commit. 2023-07-10 05:40:39 +09:00
usci.png Document the changes so far. 2023-08-25 11:42:20 +09:00

Micro-SCI / Franklin Apple ][ Floppy Drive Controller

This is a clone of the Micro-SCI / Franklin floppy drive controller.

v0.1 is a direct clone, reverse-engineered from a Micro-SCI board. It was cross-checked with a Franklin-branded board, as well as the (belatedly discovered) official Franklin schematic (included in doc/service_and_schematics.pdf)

v0.2 has the following enhancements over the original design:

  • the 2708 EPROM has been replaced with a more-common 2716/2732 EPROM
  • decoupling capacitors have been added
  • footprints for all capacitors and resistors have been modernized
  • firmware EPROM bank selection jumpers replaced with a DIP switch
  • obsolete MPS-U51 transistor replaced with modern equivalent
  • clearly-marked calibration test points have been added
  • ground pours used to increase operational stability
  • support for using Floppy Emu in dual-drive emulation mode with one cable

v0.3 has the following enhancements over v0.2:

  • a 74LS245 octal buffer has been added to the data bus, to facilitate the use of a no-slot clock under the firmware EPROM
  • the EPROM has been changed from 2716/2732 to 2764/27128/27256 to allow a no-slot clock to be placed in the socket without modification
  • all logic chips, except the 74LS245 at U19, can and should be 74HCT/74ACT to reduce power consumption to a fraction of the original design
  • the transistor that switched the +5VDC power line for half of the board has been eliminated -- with CMOS, the board can stay powered at all times
  • the circuit board layout has been streamlined in alignment with the above bullet points

Firmware images can be built via the Makefile in the firmware subdirectory. The build framework requires cc65.

usci

EPROM bank select switches (J4)

  • 1:off 2:off - firmware "put jumpers here" splash screen (0x0300)
  • 1:off 2: on - 13-sector firmware (0x0200)
  • 1: on 2:off - 16-sector firmware (0x0100)
  • 1: on 2: on - controller test firmware (0x0000)

Calibration procedure

  • set J4 to on/on ("controller test firmware")
  • connect oscilloscope to TP1
  • start machine
  • execute "call 50688"
  • execute "AAW" (and immediately hit ESC)
  • adjust R1 until waveform period is 5.4 microseconds
  • connect oscilloscope to TP2
  • execute "99W" (and immediately hit ESX)
  • adjust R2 until waveform period is 3.8 microseconds
  • card is now calibrated, power off machine and set J4 to "16-sector firmware"

Construction notes

  • J3 can be omitted if this controller is used with a FloppyEmu
  • All discrete logic ICs (except U15, the 74LS373) can be CMOS (74ACT, 74HCT). As is unfortunately usual with the Apple ][, U15 must be LS due to timing issues.
  • if CMOS logic is used, then Q1/R6/R7 can be omitted -- the entire logic array can remain powered up at all times. Connect pads 1 and 3 on the Q1 footprint.