11.2.1 DD-HD Switch Build your HD-DD Floppy Switch
Hello everybody!
Every now and then the question of using 1.44Mb (HD) disks on the
Atari ST arises. Here's my contribution to the discussion, a complete
description of a circuit that allows ANY combination of 720Kb/1.44Mb
disks. It will even work fine without any highdensity diskdrives,
which is rather pointless for anything but testing...
This circuit has been tested and used in all ST/STE:s I could lay
my hands on, however, I've only used the mentioned TEAC drives.
The article was initially written for Atari Computing, but it
seems they won't print it, so I'm setting it free to the Atari
community worldwide. You can copy it as much as your heart desires,
store it in BBS:es, print it out and send it to your friends.
Translations to other languages are encouraged as well. And please
forgive me for possibly maltreating the English language, it is my
fourth language and nobody's perfect.
To my knowledge there are no translations yet, and for swedish
readers, no, there is no Swedish version! I wrote it in English from
the beginning.
This is the only time I'm putting this article on the Usenet, but
critics and comments are always welcome!
Martin Graiter
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:
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).
And now some theory:
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 +---------+
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 |------>2,12,13,14| | +-------+ | | | | +-------+ | | | 8MHz |-------->1,3,4,15| | +-------+ | | | | DS1----------->11| | HDD0--------+------------------->10| | | HDD1-----+----> 9| | _|_ _|_ | | | R | | R | +--7|STROBE |5-->CLK OUT |2K2| |2K2| | | | | | | | | +--------+ +---+ +---+ | 8 16 | | | | | +--------------+---+-----+GND +5V
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 \---------/ +---------+
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 || ||
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:
VERSION FOR THE ST RANGE, NOT FOR THE STE!
What you need: 1*74LS151 chip 1*220 ohm resistor 2*2.2 Kohm resistors 1*3mm LED 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
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.
============ | || | 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 +--------------------
VERSION FOR THE STE RANGE!
(can also be used on ST machines!)
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: 1*74LS151 chip 1*220 ohm resistor 2*2.2 Kohm resistors 1*3mm LED 1*16MHz quartz crystal 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
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 | +---+---+---+---+---+---+---+---+---+---+---+
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 | +---+-------------------+---+---+---+---+---+
After you've assembled the veroboard, you'll have to make
connections to the motherboard too.
Placement in an STE:
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.
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 +---+
This project is Bed & Breakfast ware. I expect you to
accomodate me for one
Martin Graiter
graiter@starmail.com
Copyright © Robert Schaffner (doit@doitarchive.de) Letzte Aktualisierung am 23. Mai 2004 |