11.3.3 HD Switch Build your own DD-HD switch for the Atari ST/STE
(c) 1997-1998 Martin Graiter
(Very small revisions by Vezz)
So you want to use 1.44Mb floppies? And your old 720Kb floppies as
well? No problem! Here's a one-chip solution that takes care of things
for you! Before you start you should consider the following:
If you don't feel confident with an Ohm-meter and a soldering
iron, or if you're not familiar with schematics, then don't attempt
this project. There is no shame in not being skilled with everything
on earth. I also sell ready-built DD-HD circuits, built and tested to
function. Maybe you should rather buy one and then only solder 5 wires
instead of going through all the moments of measuring, soldering and
fault-searching?
This modification is unnecessary for the MegaSTE, TT, and Falcon,
because they can already deal with HD floppies "from
factory". In order to use HD floppies you MUST have a 1.44MB
(sometimes referred to as 2Mb) diskdrive. The old SF314 won't do the
job. Teac's FD235HF-drives are suitable, as is Sony's model MPF520-1.
There are other drives too, but I can't name them all here.
If the diskdrive outputs a High Density Detect (HDD) signal on pin
2 of it's bus, then it's suitable! This signal has sofar (in my
experience) always been positive logic (active high). Means that when
you have a DD disk in the drive, the output on pin 2 will be LOW (0V).
When an HD disk is inserted the signal will shift to HIGH (+5V).
You also have to have a suitable Floppy Disk Controller (FDC) chip
in your machine. If your chip has the marking "WD1772 02-02"
it is OK. Also if the marking is "Atari XXXXXX (lots of
numbers)" it will work. But if your chip says "VLSI" or
"WD1772 00-00" it will most likely NOT function. In that
case I suggest you swap with someone, or buy another FDC. Additionally
you need a program that will change the steprate to 6ms
(milliseconds), Fastcopy, Bootsie, Flopcontrol are such programs, but
there are others too. I patched my TOS 2.06 so that the default
steprate is 6ms instead of 3ms. No program needed after that.
And finally you need HD disks. PLEASE don't use your old 720Kb
disks for this! Some people have drilled holes in their DD disks as to
fool the diskdrive to format them at 1.44Mb. This is an extremely bad
idea!!! You'll be sorry you did it, I promise! Don't go the other way
either! I don't want to go into discussions on why or what happens,
but you'll regret this too! Disks are cheap, just buy a pack (or loan
one from your buddy).
The WD1772 chip is designed to work at 8MHz, but thanks to the
good quality of the chips produced, this can be greatly overdriven.
Most WD1772:s will happily hop along at 16MHz, and even at 32MHz! In
order to run 1.44Mb disks we will overclock the WD1772 to double
speed, 16MHz. Since we're interested in using the old 720Kb disks as
well, we'll want to switch between 8 and 16 MHz alternatively. That
can of course be realized by hand switching, but more elegant is to
perform this automatically. Which is precisely what we'll do here!
If you study and comprehend my schematics you will probably figure
out how to be able to use even 2.88Mb disks? I didn't bother, since
1.44 disks is the standard nowadays.
A positive effect of this clock doubling is that the data transfer
rate between the DMA and the FDC also doubles! However, all timings
are half as long and so is the steprate. Instead of getting 3ms we get
1.5ms when running at 16 MHz. To rectify this we set the steprate to
6ms, which gives 3ms in reality (since everything is halfed at 16MHz).
You follow? It doesn't matter that the steprate becomes 6ms when
running at 8MHz, it just makes the drive somewhat noisier.
We also need to break the connection of pin 18 of the FDC, (which
is CLK IN,) from the permanent 8MHz feed and instead feed the pin with
the output from our circuit.
In order to perform an automatic switching between 8MHz (720Kb
DD-disks) and 16MHz (1.44Mb HD-disks), depending on what types od
disks we put in our A and B drives, we will utilize the services of a
74LS151 chip.
General pinout for the 74LS151: 74LS151 +---\_/---+ D0-D7 are data INPUTS D3 |1 16| +5V D2 |2 15| D4 D1 |3 14| D5 D0 |4 13| D6 DATA OUT |5 12| D7 DATA OUT |6 11| DATA SELECT A STROBE |7 10| DATA SELECT B GND |8 9| DATA SELECT C +---------+
This chip has 3 control inputs, A,B,C, that will determine which
of eight input lines will "come out". We feed half of the
input lines with 8MHz and the other half with 16MHz. The control lines
will be High Density Detect from drive A (HDD0) and High Density
Detect from drive B (HDD1). We will also use the signal Drive Select 1
(DS1), which activates drive B. We needn't use Drive Select 0 (DS0)
since we simply assume that DS0 should count as active if DS1 isn't.
Note that this signal is negative logic (active low).
Next step will be to make a truth table, as to determine which
inputs shall be fed 8MHz and which 16MHz. It looks like this:
A=DS1 C B A B=HDD0 ------+ C=HDD1 0 0 0 |D0 --> 8 0 0 1 |D1 --> 8 0 1 0 |D2 --> 8 0 1 1 |D3 -->16 1 0 0 |D4 -->16 1 0 1 |D5 --> 8 1 1 0 |D6 -->16 1 1 1 |D7 -->16
The only thing left is to tie STROBE to GND (to enable the chip)
and we're done! We substitute the D0-7 markings with 8 and 16MHz
respectively, we do the same with the ABC select lines, only here we
put in the names of our signals as above to the left. That's it!
Logical schematic of the DD-HD switching: 74LS151 +-------+ +--------+ | 16MHz |------>1,12,13,15| | +-------+ | | | | +-------+ | | | 8MHz |-------->2,3,4,14| | +-------+ | | | | DS1----------->11| | HDD0--------+------------------->10| | | HDD1-----+----> 9| | _|_ _|_ | | | R | | R | +--7|STROBE |5-->CLK OUT |2K2| |2K2| | | | | | | | | +--------+ +---+ +---+ | 8 16 | | | | | +--------------+---+-----+GND +5V
After theory we only need to realize the circuit in real life. You
will find 16 MHz on pin 39 of the SHIFTER (not on the STE!) and 8MHz
in the empty hole where pin 18 of the FDC used to be. DS1 is found on
pin 19 of the PSG (Yamaha YM2149 or General Instruments, GI,
AY-3-8910). Ground and +5V can be found everywhere on the motherboard.
Connections in the function as DD-HD switcher: 74LS151 16MHz quartz crystal +---\_/---+ +---------\ 16MHz |1 16| +5V NC |1 14| +5V 8MHz |2 15| 16MHz | | 8MHz |3 14| 8MHz | | 8MHz |4 13| 16MHz | | CLK OUT |5 12| 16MHz | | NC |6 11| DS1 | | GND |7 10| HDD0 GND |7 8|-->16MHz GND |8 9| HDD1 \---------/ +---------+
If you have an STE model you will also have to add a quartz
crystal, this because the STE doesn't have a good enough 16MHz signal
for our purposes. Easiest is to use the type with 4 pins, it is
defined as above. The numbering of the legs is correct, even though
there are only four of them!
A good general advice is to keep the connecting lines as short as
possible, also determine exactly where you'll put our little circuit
before you start connecting thingsà Before we get our hands on
the actual making of the switcher, we have to consider the signals
HDD0 and HDD1.
The HDD0 signal has to be connected to the second wire of the
floppy ribbon cable. The first cable is normally coloured red or
dotted red. You can carefully cut free about 2cm (one inch) of wire no
2 from its "neighbours". Then you can cut it off at the side
closest to the motherboard connector. Peel off the plastic isolator a
couple of mm on the end. This naked thread you'll solder to the HDD0
wire coming from our little board. It is good practice to isolate the
connection with some shrink-tube (I am not sure this is the correct
English word? I'm talking about a small hose made of a material that
shrinks when you heat it.)
___________________________________________________ | 4|_________________________________________________4_| | | 3|_________________________________________________3_| | | 2|_____|_CUT HERE!|________________________________2_| | | 1|_________________________________________________1_| | +--------+ +--------+ Motherboard Floppy connector connector
Alternatively you can connect to this wire by going to the
underside of the motherboard. There you'll seek up the solder joints
for the floppy cable. It will look something like this:
[]()()()()()()()()()()()()()()()() pin 2-->()()()()()()()()()()()()()()()()()
You will recognize pin 1 by the rectangular pad, no 2 is right
below no 1. If you decide on this solution you shall not cut the wire
as described above!
It is important that you lead your wire to the upper (component)
side without using holes that will accomodate screws or plugs when the
case is reassembled!
The HDD1 signal is to be connected to pin 7 of the connector for
the external drive. This pin is grounded and you'll need to disconnect
it from ground. You can do that by either cutting it off and bending
up what's left, as depicted in the drawing below. Or, you can play
dentist and pull it out from it's hole on the underside. This means
you'll have to suck the hole clean from solder and be sure that the
pin will move freely! You can also keep your soldering iron to the
hole and then pull the pin out from the other side. Of course, the
rest of the pin must remain in the circular connector!
Right side view: Outer view: ______________|| |--------------|| 11 10 |--------------|| +----| || 9 8 || | || _||_ | CUT! || 7 13 12 6 || | | / || || | | / || 5 14 4 || | |__/___________|| ||__|___|| | | || 3 2 || ||_| |____|| 1 || ||
Should you decide that you'll never need to connect an external
(B:) 1.44 drive to your machine, well, then there is no need to do
this at all! The HDD1 signal is already defined as LOW through the 2K2
resistor connecting it to ground. In fact, if you won't connect any
1.44 diskdrive as B: you can just tie HDD1 to ground, with or without
any resistor. You will still be able to use 720Kb diskdrives on B: if
you want to.
Those who have the (good old) 520ST without internal drive will in
any event have to do the above mentioned modification, with the HDD0
connected to pin 7! Should there be need for an HD drive as B:, then
an extra hole will have to be drilled in the 520ST case and an extra
wire drawn from B:s pin 7 to HDD1.
These are the appropriate connections to make if you want to make
your own cable from the external circular connector to the rectangular
Shugart connector on the floppy itself:
External circular Shugart connector connector 01. Read Data-----------------30. RDT 02. Side 0 Select-------------32. SSL 03. GND----------------------- 1,3,5,7,9... (all odd wires are GND) 04. Index Pulse--------------- 8. IDX 05. Drive 0 Select------------10. DS0 06. Drive 1 Select------------12. DS1 07. High Density Detect------- 2. HDD 08. Motor On------------------16. MON 09. Direction In--------------18. DIR 10. Step----------------------20. STP 11. Write Data----------------22. WDT 12. Write Gate----------------24. WGT 13. Track 00------------------26. TR0 14. Write Protect-------------28. WPT
And now, let's get hands on the very DD-HD switcher! If you plan
to build this on a veroboard, I'd suggest the following approach:
What you need:
Cut a piece of veroboard This is the intended that is 9 modules high component placement: and 6 modules wide. |+5V 6 5 4 3 2 1 1 2 3 4 5 |6 +---+---+---+---+---+---+ +---+---+---+---+---+-|-+ | O | O | O | O | O | O | 16MHz| O O----\_/----O O | | | | | | | | | | | _|_| | O | O | O | O | O | O | | O O | | | | | | | | | | | | | R | | O | O | O | O | O | O | | O O |220| | | | | | | | | | | |Ohm| | O | O | O | O | O | O | 8MHz| O O O |___| | | | | | | | | | | | | | O | O | O | O | O | O | | O O O | | | | | | | | | | | | Anode | O | O | O | O | O | O | | O O O | (+) | | | | | | | | | | (LED) | O | O | O | O | O | O | | O O O | (-) | | | | | | | | | | | Cathode | O | O | O | O | O | O | | O-----------O | | | | | | | | | /-----\R2K2 ___ |R2K2 | O | O | O | O | O | O | CLK OUT| O O O O O___O | +---+---+---+---+---+---+ +---+---+---+---+-------+ | DS1 HDD0 HDD1| GND| |GND UNDERSIDE UPPER SIDE
The two 2K2 resistors will be standing up, the LED and it's 220
resistor aren't necessary for the function, but will indicate that
you've found +5V and GND (by emitting light) and it will impress your
friends!
But, no point in placing out the components yet, first you'll have
to prepare your veroboard! You will start by cutting lanes at
appropriate locations. When all up-down DISconnections are made, we
will also need to make left-right CONnections. We will achieve that
without using one single wire!
Preparation of the underside: Start disconnecting the up-down Continue by inserting the chip lanes by cutting traces in them and making the sideways connec- as shown in the left figure. tions by soldering drops of resin across the dividing lines. 6 5 4 3 2 1 6 5 4 3 2 1 +---+---+---+---+---+---+ +-----------+-----------+ | O | O | O | O | O | O | | O O O | O O O | +===|===|===| |===|===| +-----------+ +-------| | O | O | O | O | O | O | | O O O O | O O | | |===|===|===| | | | +-----------+ | | O | O | O | O | O | O | | O | O O O O O | | |===|===|===| | | | +-----------+ | | O | O | O | O | O | O | | O O O O | O O | |===| | | |===|===| |---+ +-------+ | O | O | O | O | O | O | | O | O O O | O O | | |===|===|===|===| | | +-----------+---+ | | O | O | O | O | O | O | | O | O O O | O | O | |===|===|===| |===| | +---+-------+ +---+ | | O | O | O | O | O | O | | O | O O | O | O | O | | |===| | | | | | +---+ | | | | | O | O | O | O | O | O | | O | O | O | O | O | O | | | | | | | | | | | | | | | | O | O | O | O | O | O | | O | O | O | O | O | O | +---+---+---+---+---+---+ +---+---+---+---+---+---+
Insert also the other components and make sure you're not cutting
off the long wires on the ends of the resistors which will go to GND
and +5V on the motherboard. See the figure with the component
placement. You will now need to determine where on your motherboard
you'll be placing the DD-HD switcher. Best is a location close to the
FDC. The signals CLK OUT, 16MHz and 8MHz should be as close as
possible, as to keep wires short.
Here is a suggestion for the placement in the Mega ST models:
============ | || | External floppy connector | || | |___||___|= <--bent out pin 7 ||| ||| HDD1 -------- J4 ____ R28 O ---(____)--- GND \ O O O \ |GND \ | | | | | |DS1| +-------------+ | O O O O O O|CLK OUT CLK | _ +-----+ | +--------------------||------+ LED|(_)| 74 | | |28 18 15| | | LS | | | O | |_|_| 151 | | \ 8MHz WD1772 02-02 | || || | O|8MHz /(under) (FDC) | +--------------+ ||R|| | | | | \ 7406 | ||_|| | | | 1 14| / | | | | | O|16MHz +----------------------------+ +--------------+ +-|-+--^--+---+ _ / +---+ _ (_)---|L46|---(_) +----------------------------------------+ +5V +---+ |40 21| +--39--------------- | | |40 16MHz \ DMA | | / | \ Shifter | | / | 1 20| | +----------------------------------------+ | 1 +--------------------
This version has simply been "stretched" in order to
accomodate an added component, the quartz crystal. On most STE:s you
can't utilize the 16MHz signal present on the motherboard. Nothing
prevents this design from working on an ordinary ST as well. It's just
a matter of economy, the crystal is an extra cost.
What you need:
Component side: |+5V | +---------------------|---------------------+ | O----\_/----O O | | | | _|_ | | O O | | +---------------\ | | | | R | | o o | | O O |220| |NC +5v| | | | |Ohm| | | 8MHz| O o 74LS151 O |___| | | | | | | | 16MHz | | O O O | | | | | | | | O O O | | | | | (LED) | | | O O O | GND 16MHz| | | | | o o | | O-----------O \---------------/ | /-----\R2K2 ___ | CLK OUT| O O O O O___O | +---------|---|---|-------------------------+ | DS1 HDD0 HDD1| GND| |GND
For this version of the DD-HD switcher we need a somewhat bigger
veroboard, 9*11 modules (holes). We will prepare it in similar manner
to the previous design, by cutting DISconnections on the vertical
lanes:
11 10 9 8 7 6 5 4 3 2 1 +---+---+---+---+---+---+---+---+---+---+---+ | O | O | O | O | O | O | O | O | O | O | O | | | | |===| |===|===|===| |===|===| | O | O | O | O | O | O | O | O | O | O | O | | | | |===| | |===|===|===| | | | O | O | O | O | O | O | O | O | O | O | O | |===|===|===|===|===| |===|===|===| | | | O | O | O | O | O | O | O | O | O | O | O | | |===|===|===|===|===| | | |===|===| | O | O | O | O | O | O | O | O | O | O | O | | | | | | | |===|===|===|===| | | O | O | O | O | O | O | O | O | O | O | O | | | | | | |===|===|===| |===| | | O | O | O | O | O | O | O | O | O | O | O | | | | | | | |===| | | | | | O | O | O | O | O | O | O | O | O | O | O | | | | | | | | | | | | | | O | O | O | O | O | O | O | O | O | O | O | +---+---+---+---+---+---+---+---+---+---+---+
Next step is to make horizontal CONnections between the lanes. You
will insert the components from the other side before you go about it.
The modules should have connections as in the drawing below:
11 10 9 8 7 6 5 4 3 2 1 +-------------------------------+-----------+ | O O O O O O O O | O O O | | +---+ +-----------+ +-------| | O O O | O | O | O O O O | O O | | +---+ | +-----------+ | | O O O O O | O | O O O O O | +-------------------+ +-----------+ | | O O O O O O O O O | O O | | +---------------+---+ +-------+ | O | O O O O | O | O O O | O O | | | | +-----------+---+ | | O | O O O O | O | O O O | O | O | | | +---+-------+ +---+ | | O | O O O O O | O O | O | O | O | | | +---+ | | | | | O | O O O O O | O | O | O | O | O | | | | | | | | | | O | O O O O O | O | O | O | O | O | +---+-------------------+---+---+---+---+---+
It is advisable to measure between the "fields" with a
resistance meter, to make sure that there are no connections where
there shouldn't be! Here you won't have to connect a 16MHz wire to the
motherboard, since that signal is generated "on board".
After you've assembled the veroboard, you'll have to make
connections to the motherboard too.
If you place your switcher just above the FDC chip, you'll have
easy access to all relevant solder points on the motherboard. You will
find a nice hole for your DS1 wire on the rightmost (no 1) hole of
W300. There will also be a convenient via just to the right of C305
where you can take your 8MHz signal. GND and +5V can be taken from the
proper sides of the capacitors C303 and C304. GND is also found on pin
14 of the FDC.
============ | || | External floppy connector | || | |___||___|= <-- bent out pin 7 ||| ||| (HDD1) -------- | +-+-u-+-|-------+ | | | +----\| | | ||| | || GND|C303 |o| ||| | || | | | | _ | || +-+ +------- | | |(_)| || | | |74LS244 | +---+ \----/| +-+ | U307 |oooooo | | +------- GND _ +5V +---------------+ +5V| C304 ---(_)--- +--------------+ +14--------------------------+ | 7406 / |GND 1| | U305 \ | | +--------------+ | WD1772 02-02 / | (FDC) \ | | | | |15 18 28| | +------||\-------------------+ 2|= HDD0 DS1 _ |<--Cut this track, ______| | ---(_)--- / or bend out pin 18! ^ W300 O O O C305 o<--8MHz | W301 O O O | | The floppy ribbon base on the motherboard.
You will also need to configure your Teac drive so that it appears
correctly to your switcher. Here are some of the jumpers on various
revisions of the FD235-HF:
1) DS0 DS1 +---+ | O | O | | | O | O +---+ 2) +-------+ |O O| HH0 +-------+ +-------+ |O O| OP +-------+ O O LH1 O O HH1 O O D1 +-------+ |O O| D0 +-------+ 3) +-------+ |O O| +-------+ +---+ | O | O | | | O | O +---+ +---+ | O | O | | | O | O +---+
Abbildung 1 - Layout of HD-Switch
------------- This project is Bed & Breakfast ware. I expect
you to accomodate me for one night and one breakfast should I decide
to visit your town. (I like to travel) Send me a postcard with your
name and adress if you use it in your computer! Email is nice too, but
postcards are preferred! Commercial use is granted as long as a
licencing fee is payed to me. -------------
Martin Graiter
graiter@starmail.com
Copyright © Robert Schaffner (doit@doitarchive.de) Letzte Aktualisierung am 23. Mai 2004 |