PROGRAMMABLE PRODUCTS TMS279X FLOPPY DISK FORMATTERICONTROLLER FAMILY • On-Chip PILL Data Separator • On-Chip Write Precompensation Logic • Single + 5-V Supply • Accommodates Single-and Double-Density Formats JUNE 1984 - MM3740 (FM) - IBM34 (MFM) • Automatic Seek with Verify • Multiple Sector Read/Write • TTL Compatible • Programmable Control - Selectable Track-to-Track Access - Head Load Timing • Software Compatible with the FD179X Series • Soft Sector Format Compatibility description FEATURES 2791 2793 2795 2797 The TMS279X family are N-channel silicon Single Density (FM) X X X X gate MOS LSl devices which perform the Double Density (MFM) X X X X functions of a Floppy Disk Formatter/Controller X X in a single chip implementation. The TMS279X, True Data Bus Inverted Data Bus X X which can be considered the end result of both Side Select Out X X the Western Digital FD1771 and FD179X Internal CLK Divide X X designs, is IBM compatible in single-density mode (FM) and System 34 compatible in double-density mode (MFM). The TMS279X contains all the features of its predecessor the FD179X plus a high performance phase-lock-loop data separator as well as write precompensation logic. In double-density mode, write precompensation is automatically engaged to a value programmed via an external potentiometer. In order to maintain compatibility, the FD1771, FD179X and TMS279X designs were made as close as possible with the computer interface, instruction set, and I/O registers being identical. Also, head load control is identical. In each case, the actual pin assignments vary by only a few pins from any one to another. The processor interface consists of an 8-bit bi-directional bus for data, status, and control word transfers. The TMS279X is set up to operate on a multiplexed bus with other bus-oriented devices. The TMS279X is TTL compatible on all inputs and outputs. The outputs will drive one TTL load or three LS loads. The 2793 is identical to the 2791 except the DAL lines are true for systems that utilize true data busses. The 2795/7 has a side-select output for controlling double-sided drives. Scanned and Edited by Michael Holley - Aug 21, 2001 - [email protected] Texas Instruments was a second source for the WD279X and this data sheet is almost identical to the Western Digital WD279X-02 Data Sheet and Application Note. (But has larger figures and is more readable.) Active low signals use a trailing # instead of an overbar. TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY pin descriptions PIN NUMBER PIN NAME SYMBOL FUNCTION 1 ENABLE PRECOMP ENP A Logic high on this input enables write precompensation to be performed on double density Write Data output only. 19 MASTER RESET# MR# A logic low (50 microseconds min.) on this input resets the device and loads HEX 03 into the command register. The Not Ready (Status Bit 7) is reset during MR ACTIVE. When MR# is brought to a logic high a RESTORE Command is executed, regardless of the state of the Ready signal from the drive. Also, HEX 01 is loaded into sector register. VSS Ground VCC +5V ±5% 20 POWER SUPPLIES 21 COMPUTER INERFACE 2 WRITE ENABLE# WE# A logic low on this input gates data on the DAL into the selected register when CS# is low. 3 CHIP SELECT# CS# A logic low on this input selects the chip and enables computer communication with the device. 4 READ ENABLE# RE# A logic low on this input controls the placement of data from a selected register on the DAL when CS# is low. REGISTER SELECT LINE A0, A1 These inputs select the register to receive / transfer data on the DAL lines under RE# and WE# control: 5,6 CS# 0 0 0 0 7-14 A1 0 0 1 1 A0 0 1 0 1 RE# Status Reg Track Reg Sector Reg Data Reg WE# Command Reg Track Reg Sector Reg Data Reg DATA ACCESS LINES DALODAL7 Eight bit bi-directional bus used for transfer of commands, status, and data. These lines are inverted (active low) on TMS2791 and TMS2795. 24 CLOCK CLK This input requires a free-running 50% duty cycle square wave clock for internal timing reference, 2 MHz ± 1 % for 8" drives, 1 MHz ± 1 % for mini-floppies. 38 DATA REQUEST DRQ This output indicates that the Data Register contains assembled data in Read operations, or the DR is empty in Write operations. This signal is reset when serviced by the computer through reading or loading the DR. 39 INTERRUPT REQUEST INTRQ This output is set at the completion of any command and is reset when the Status register is read or the Command register is written to. 15 STEP STEP The step output contains a pulse for each step. 16 DIRECTION DIRC Direction Output is active high when stepping in, active low when stepping out. 17 5 1/4”, 8" SELECT 5#/8 This input selects the internal VCO frequency for use with 51/4" drives or 8" drives. FLOPPY DISK INTERFACE 2 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY PIN NUMBER PIN NAME SYMBOL FUNCTION 18 READ PULSE WIDTH RPW An external potentiometer tied to this input controls the phase comparator within the data separator. 22 TEST# TEST# A logic low on this input allows adjustment of external resistors by enabling internal signals to appear on selected pins. 23 PUMP PUMP High-Impedance output signal which is forced high or low to increase / decrease the VCO frequency 25 ENABLE MINI-FLOPPY (2791,2793) ENMF# A logic low on this input enables an internal divide by 2 of the Master Clock. This allows both 51/4" and 8" drive operation with a single 2 MHz clock. For a 1 MHz clock on Pin 24, this line must be left open or tied to a Logic 1. 25 SIDE SELECT OUTPUT (2795,2797) SSO The logic level of the Side Select Output is directly controlled by the 'S' flag in Type 11 or III commands. When U = 1, SSO is set to a logic 1. When U = 0, SSO is set to a logic 0. The SSO is compared with the compare Status Bit 4 (RNF) is set. The Side Select Output is only updated at the beginning of a Type II or III command. It is forced to a logic 0 upon a MASTER RESET condition. 26 VOLTAGECONTROLLED OSCILLATOR VCO An external capacitor tied to this pin adjusts the VCO center frequency 27 RAW READ# RAW RD# The data input signal directly from the drive. This input shall be a negative pulse for each recorded flux transition. 28 HEAD LOAD HLD The HLD output controls the loading of the Read- Write head against the media. 29 TRACK GREATER THAN 43 TG43 30 WRITE GATE WG 31 WRITE DATA WD This output informs the drive that the Read/Write head is positioned between tracks 44-76. This output is valid only during Read and Write Commands. This output is made valid before writing is to be performed on the diskette. MFM or FM output pulse per flux transition. WD contains the unique Address marks as well as data and clock in both FM and MFM formats. 32 READY READY This input indicates disk readiness and is sampled for a logic high before Read or Write commands are performed. If Ready is low the Read or Write operation is not performed and an interrupt is generated. Type I operations are performed regardless of the state of Ready. The Ready input appears in inverted format as Status Register bit 7. 33 WRITE PRECOMP WIDTH WPW An external potentiometer tied to this input controls the amount of delay in Write precompensation mode. 34 TRACK 00# TR00# This input informs the TMS279X that the Read/Write head is positioned over Track 00. 35 INDEX PULSE# IP# 36 WRITE PROTECT# WPRT# This input informs the TMS279X when the index hole is encountered on the diskette. This input is sampled whenever a Write Command is received. A logic low terminates the command and sets the Write Protect Status bit. NOTE: A trailing # replaces the overbar means the symbol is active low. 3 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY PIN NUMBER PIN NAME SYMBOL FUNCTION 37 DOUBLE DENSITY# DDEN# This input pin selects either single or double density operation. When DDEN = 0, double density is selected. When DDEN = 1, single density is selected. 40 HEAD LOAD TIMING HLT When a logic high is found on the HLT input the head is assumed to be engaged. It is typically derived from a 1 shot triggered by HLD. system interface The TMS279X Floppy Disk Formatter/Controller system interface is shown in Figure 1. This interface consists of the parallel processor interface and the floppy disk interface. Applications for the TMS279X family are 8" floppy and 5 1/4" mini-floppy controller and single- or double-density controller/formatter. The TMS279X family are MOS/LSI devices which perform the functions of a Floppy Disk Controller / Formatter. Software compatible with its predecessor, the FD179X the device also contains a high performance phase-lock-loop data separator as well as write precompensation logic. When operating in double-density mode, write precompensation may be enabled, its value predetermined by an external potentiometer. An on-chip VCO and phase comparator allows adjustable frequency range for 5 1/4" or 8" floppy disk interfacing. The TMS279X is fabricated in NMOS silicon gate technology and available in a 40-pin dual-in-line package. 4 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY functional block diagram organization The TMS279X is illustrated in the functional block diagram. The elements that comprise the TMS279X and the processor and floppy disk interface will be described in the paragraphs that follow. data shift register This 8-bit register assembles serial data from the read data input (RAW RD#) during read operations and transfers serial data to the write data output during write operations. data register This 8-bit register is used as a holding register during disk read and write operations. In disk read operations, the assembled data byte is transferred in parallel to the data register from the data shift register. In disk write operations, information is transferred in parallel from the data register to the data shift register. 5 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY When executing the Seek command, the data register holds 5e address of the desired track position. This register is loaded from the DAL and gated onto the DAL under processor control. track register This 8-bit register holds the track number of the current read/write head position. It is incremented by one every time the head is stepped in (towards track 76) and decremented by one when the head is stepped out (towards track 00). The contents of the register are compared with the recorded track number in the ID field during disk read, write and verify operations. The track register can be loaded from or transferred to the DAL. This register should not be loaded when the device is busy. sector register (SR) This 8-bit register holds the address of the desired sector position. The contents of the register are compared with the recorded sector number in the ID field during disk read or write operations. The sector register contents can be loaded from or transferred to the DAL. This register should not be loaded when the device is busy. command register (CR) This 8-bit register holds the command presently being executed. This register should not be loaded when the device is busy unless the new command is a force interrupt. The command register can be loaded from the DAL, but not read onto the DAL. status register (STR) This 8-bit register holds device status information. The meaning of the status bits is a function of the type of command previously executed. This register can be read onto the DAL, but not loaded from the DAL. CRC logic This logic is used to check or to generate the 16-bit cyclic redundancy check (CRC). The polynomial is: G(x) = x16 + x 12 + x 5 + 1. The CRC includes all information starting with the address mark and up to the CRC characters. The CRC register is preset to ones prior to data being shifted through the circuit. arithmetic/logic unit (ALU) The ALU is a serial comparator, incrementer, and decrementer and is used for register modification and comparisons with the disk recorded ID field. timing and control All computer and floppy disk interface controls are generated through this logic. The internal device timing is generated from an external crystal clock. AM detector The address mark detector detects ID, data and index address marks during read and write operations. write precompensation Enables write precompensation to be performed on the double-density write data output. data separator A high-performance phase-lock-loop data separator with on-chip VCO and phase comparator allows adjustable frequency range for 5¼" or 8" floppy disk interfacing. 6 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY processor interface The interface to the processor is accomplished through the eight data access lines (DAL) and associated control signals. The DAL are used to transfer data, status, and control words out of, or into the TMS279X. The DAL are three-state buffers that are enabled as output drivers when chip select (CS#) and read enable (RE#) are active (low logic state) or act as input receivers when CS# and write enable (WE#) are active. When transfer of data with the floppy disk controller is required by the host processor, the device address is decoded and CS# is made low. The address bits A1 and AO, combined with the signals RE# during a mad operation or WE# during a write operation are interpreted as selecting the following registers: A1 A0 READ (RE#) WRITE (WE#) 0 0 Status Register Command Register 0 1 Track Register Track Register 1 0 Sector Register Sector Register 1 1 Data Register Data Register During direct memory access (DMA) types of data transfers between the data register of the TMS279X and the processor, the data request (DRQ) output is used in data transfer control. This signal also appears as status bit 1 during read and write operations. On disk read operations, the data request is activated (set high) when an assembled serial input byte is transferred in parallel to the data register. This bit is cleared when the data register is read by the processor. If the data register is read after one or more characters are lost, by having new data transferred into the register prior to processor readout, the lost data bit is set in the status register. The read operation continues until the end of sector is reached. On disk write operations, the data request is activated when the data register transfers its contents to the data shift register, and requires a new data byte. It is reset when the data register is loaded with new data by the processor. If new data is not loaded at the time the next serial byte is required by the floppy disk, a byte of zeroes is written on the diskette and the lost data bit is set in the status register. At the completion of every command, an INTRQ is generated. INTRQ is reset by either reading the status register or by loading the command register with a new command. In addition, INTRQ is generated if a Force Interrupt command condition is met. The 279X has two modes of operation according to the state of DDEN# (pin 37). When DDEN# = 1, single density (FM) is selected. When DDEN# = 0, double density (MFM) is selected. In either case, the CLK input (pin 24) is set at 2 MHz for 8" drives or 1 MHz for 5 ¼" drives. On the 2791/2793, the ENMF# input (pin 25) can be used for controlling both 5 ¼" and 8" drives with a single 2 MHz clock. When ENMF# = 0, an internal ÷ 2 of the CLK is performed. When ENMF# = 1, no divide takes place. This allows the use of a 2 MHz clock for both 5 ¼" and 8" configurations. The internal VCO frequency must also be set to the proper value. The 5#/8 input (pin 17) is used to select data separator operation by internally dividing the read clock. When 5#/8 = 0, 5 ¼" data separation is selected; when 5#/8 = 1, 8 " drive data separation is selected. CLOCK (24) ENMF# (25) 5#/8 (17) DRIVE 2 MHz 1 1 8" 2 MHz 0 0 5 ¼" 1 MHz 0 0 5 ¼" 7 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY functional description The TMS279X-02 is software compatible with the FD179X-02 series of floppy disk controllers. Commands, status, and data transfers are performed in the same way. Software generated for the 179X can be transferred to a 279X system without modification. In addition to the 179X, the 279X contains an internal data separator and write precompensation circuit. The TEST# (pin 22) line is used to adjust both data separator and precompensation. When TEST# = 0, the WD (pin 31) line is internally connected to the output of the write precomp one-shot. Adjustment of the WPW (pin 33) line can then be accomplished. A second one-shot tracks the precomp setting at approximately 3:1 to ensure adequate write data pulse durations to meet drive specifications. Similarly, data separation is also adjusted with TEST# = 0. The TG43 (pin 2 9) line is internally connected to the output of the read data one-shot, which is adjusted via the R PW (pin 1811ine. The DIRC (pin 1611ine contains the read clock output (.5 MHz for 8" drives). The VCO trimming capacitor (pin 26) is adjusted for center frequency. Internal timing signals are used to generate pulses during the adjustment mode so that these adjustments can be made while the device is in-circuit. The TEST# line also contains a pull-up resistor, so adjustments can b e performed simply by grounding the TEST# on, overriding the pull-up. The TEST# pin cannot be used to disable stepping rates during operation as its function is quite different from the 179X. Other pins on the device also include pull-up resistors and may be left open to satisfy a logic 1 condition. These are: ENP, 5#/8, ENMF#, WPRT#, DDEN#, HLT, TEST#, and MR#. general disk read operations Sector lengths of 128, 256, 512 or 1024 are obtainable in either FM or MFM formats. For FM, DDEN# should be placed to logical "1." For MFM formats, DDEN# should be placed to a logical " 0." Sector lengths are determined at form at time by the fourth byte in the "ID" field. SECTOR LENGTH TABLE* SECTOR LENGTH FIELD (HEX) NUMBER OF BYTES IN SECTOR (DECIMAL) 00 128 01 256 02 512 03 1024 *2795/97 may vary - see command summary. The TMS279X recognizes tracks and sectors numbered 00-FFX.However, due to programming restrictions, only tracks and sectors 00 thru F4 can be formatted. general disk write operation When writing is to take place on the diskette, the write gate (WG) output is activated, allowing current to flow into the read/write head. As a precaution to erroneous writing, the first data byte must be loaded into the data register in response to a data request from the 279X before the write gate signal can be activated. Writing is inhibited when the WRITE PROTECT# input is a logic low, in which case any Write command is immediately terminated, an interrupt is generated and the write protect status bit is set. For write operations, the 279X provides write gate (pin 30) and write data (pin 31) outputs. Write data consists of a series of pulses set to a width approximately three times greater than the precomp adjustment. Write data provides the unique address marks in both formats. 8 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY ready Whenever a Read or Write command (Type II or III) is received, the 279X samples the ready input. If this input is logic low the command is not executed and an interrupt is generated. All Type I commands are performed regardless of the state of the ready input. Also, whenever a Type II or III command is received, the TG43 signal output is updated. TG43 may be tied to ENP to enable write precompensation on tracks 44-76. command description The TMS279X will accept eleven commands. Command words should only be loaded in the command register when the busy status bit is off (status bit 0). The one exception is the Force Interrupt command. Whenever a command is being executed, Be busy status bit is set. When a command is completed, an interrupt is generated and the busy status bit is reset. The status register indicates whether the completed command encountered an error or was fault free. For ease of discussion, commands are divided into four types. Commands and Types are summarized in Table 1. TABLE 1 - COMMAND SUMMARY TYPE COMMANDS FOR MODELS 2791,2793 COMMANDS FOR 2795,2797 BITS BITS COMMAND 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 I Restore 0 0 0 0 h V r1 r0 0 0 0 0 h V r1 r0 I Seek 0 0 0 1 h V r1 r0 0 0 0 1 h V r1 r0 I Step 0 0 1 T h V r1 r0 0 0 1 T h V r1 r0 I Step-in 0 1 0 T h V r1 r0 0 1 0 T h V r1 r0 I Step-out 0 1 1 T h V r1 r0 0 1 1 T h V r1 r0 II Read Sector 1 0 0 m S E C 0 1 0 0 m L E U 0 II Write Sector 1 0 1 m S E C a0 1 0 1 m L E U a0 III Read Address 1 1 0 0 0 E 0 0 1 1 0 0 0 E U 0 III Read Track 1 1 1 0 0 E 0 0 1 1 1 0 0 E U 0 III Write Track 1 1 1 1 0 E 0 0 1 1 1 1 0 E U 0 IV Force Interrupt 1 1 0 1 I3 I2 I1 10 1 1 0 1 I3 I2 I1 10 9 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY TABLE 2 - FLAG SUMMARY COMMAND TYPE I BIT NUMBER(S) 0, 1 I 2 V = Track Number Verify Flag V = 0, No verify V = 1, Verify on destination track I 3 h = Head Load Flag h = 0, Unload head at beginning h = 1, Load head at beginning I 4 T = Track Update Flag T = 0, No update T = 1, Update track register II & III 0 a0 = Data Address Mark a0 = 0, FB (DAM) a0 = 1, F8 (deleted DAM) II 1 C = Side Compare Flag C = 0, Disable side compare C = 1, Enable side compare II & III 1 U = Update SSO U = 0, Update SSO to 0 U = 1, Update SSO to 1 II & III 2 E = 1 5 ms Delay E = 0, No. 15 ms delay E = 1, 15 ms delay (30 ms for 1 MHz) II 3 S = Side Compare Flag S = 0, Compare for side 0 S = 1, Compare for side 1 II 3 L = Sector Length Flag LBS's Sector Length in ID Field 00 01 10 L=0 256 512 1024 L=1 128 256 512 II 4 IV 0-3 DESCRIPTION r1 r0 = Stepping Motor Rate See Table 3 for Rate Summary m = Multiple Record Flag 11 128 1024 m=0, Single record m=1, Multiple record Ix = Interrupt Condition Flags I0 = 1 Not Ready to Ready Transition I1 = 1 Ready To Not Ready Transition I2 = 1 Index Pulse I3 = 1 Immediate Interrupt, Requires A Reset* I3 -I 0 = 0 Terminate With No Interrupt (INTRQ) *See Type IV command for further information. write precompensation When operating in double density mode (DDEN = 0), the 279X has the capability of providing a user-defined precompensation value for write data. An external potentiometer (10 k?) tied to the WPW signal (pin 33) allows a setting of 100 to 300 ns from nominal. Setting the write precomp value is accomplished by forcing the TEST# line (pin 22) to a logic 0. A stream of pulses can then be seen on the write data (pin 31) line. Adjust the WPW potentiometer for the desired pulse duration. This adjustment may be performed in-circuit since write gate (pin 30) is inactive while TEST# = 0. 10 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY data separation The 279X can operate with either an external data separator or its own internal recovery circuits. The condition of the TEST# line (pin 22) in conjunction with MR# (pin 19) will select internal or external mode. To program the 279X for an external VCO, a MR# pulse must be applied while TEST# = 0. A clock equivalent to eight times the data rate (e.g., 4.0 MHz for 8" double density) is applied to the VCO input (pin 26).The feedback reference voltage is available on the pump output (pin 23) for external integration to control the VCO. TEST# is returned to a logic 1 for normal operation. Note: to maintain this mode, TEST# must be held low whenever MR# is applied. For internal VCO operation, the TEST# line must be high during the MR# pulse, then set to a logic 0 for the adjustment procedure. A 50 k? potentiometer tied to the RPW input (pin 18) is used to set the internal read data pulse for proper phasing. With a scope on pin 29 (TG43), adjust the RPW pulse for 1/8 of the data rate (250 ns for 8" double density). An n external variable capacitor of 5-60 pF is tied to the VCO input (pin 26) for adjusting center frequency. With a frequency counter on pin 16 (DIRC), adjust the trimmer cap to yield the appropriate data rate (500 kHz for 8" double density). The DDEN# line must below while the 5#/8 line is held high or the adjustment times above will be doubled. After adjustments have been made, the TEST# pin is returned to a logic 1 and the device is ready for operation. Adjustments may be made in-circuit since the DIRC and TG43 lines may toggle without affecting the drive. The PUMP output (pin 23) consists of positive and negative pulses; their duration is equivalent to the phase difference of incoming data vs. VCO frequency. This signal is internally connected to the VCO input, but a filter is needed to connect these pulses to a slow moving DC voltage. The internal phase-detector is unsymmetrical for a random distribution of data pulses by a factor or two, in favor of a PUMP UP condition. Therefore, it is desirable to have a PUMP DOWN twice as responsive to prevent run-away during a lock attempt. A first-order lag-lead filter can be used at the PUMP output (pin 23). This filter controls the instantaneous response of the VCO to bit-shifted data (jitter) as well as the response to normal frequency shift, i.e., the lock-up time. A balance must be accomplished between the two conditions to inhibit over- responsiveness to jitter and to prevent an extremely wide lock-up response, leading to PUMP runaway. The filter affects these two reactions in mutually opposite directions. The following filter circuit is recommended for 8" FM/MFM: Since 5 1/4" drives operate at exactly one-half the data rate (250 Kb/sec) the above capacitor should be doubled to 0.2 µF or 0.22 µF. type I commands The Type I commands include the Restore, Seek, Step, Step-In, and Step-Out commands. Each of the Type I commands contains a rate field (r0r 1), which determines the stepping motor rate as defined in Table 3. 11 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY A 2 µs (MFM) or 4 µs (FM) pulse is provided as an output to the drive. For every step pulse issued, the drive moves one track location in a direction determined by the direction output. The chip will step the drive in the same direction it last stepped unless the command changes the direction. The direction signal is active high when stepping in and low when stepping out. The direction signal is valid before the first stepping pulse is generated. The rates (shown in Table 3) can be applied to a step-direction motor through the device interface. TABLE 3 - STEPPING RATES CLK r1 0 0 1 1 r0 0 1 0 1 2 MHz TEST# = 1 3 ms 6 ms 10 ms 15 ms 1 MHz TEST# = 1 6 ms 12 ms 20 ms 30 ms After the last directional step, an additional 15 milliseconds of head settling time takes place if the verify flag is set in Type I commands. Note that this time doubles to 30 ms for a 1 MHz clock. There is also a 15 ms head settling time if the E flag is set in any Type 11 or III command. When a Seek, Step or Restore command is executed, an optional verification of read-write head position can be performed by setting bit 2 (V = 1) in the command word to a logic 1. The verification operation begins at the end of the 15 millisecond settling time after the head is loaded against the media. The track number from the first encountered ID field is compared against the contents of the track register. If the track numbers compare and the ID field cyclic redundancy check (CRC) is correct, the verify operation is complete and an INTRQ is generated with no errors. If there is a match but not a valid CRC, the CRC error status bit is set (status bit 3), and the next encountered ID field is read from the disk for the verification operation. The TMS279X must find an ID field with correct track number and correct CRC within 5 revolutions of the media; otherwise the seek error is set and an INTRQ is generated. If V = 0, no verification is performed. The head load (HLD) output controls the movement of the read/write head against the media. HLD is activated at the beginning of a Type I command if the h flag is set (h = 1), at the end of the Type I command if the verify flag (V = 1), or upon receipt of any Type II or III command. Once HLD is active it remains active until either a Type I command is received with (h = 0 and V = 0); or if the 279X is in an idle state (non-busy) and 15 index pulses have occurred. Head load timing (HLT) is an input to the 279X which is used for the head engage time. When HLT = 1, the 279X assumes the head is completely engaged. The head engage time is typically 30 to 100 ms depending on drive. The low-to-high transition on HLD is typically used to fire a one shot. The output of the one shot is then used for HLT and supplied as an input to the 279X. HLT (FROM ONE SHOT) HEAD LOAD TIMING 12 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY When both HLD and HLT are true, the 279X will then read from or write to the media. The AND of HLD and HLT appears as status bit 5 in Type I status. In summary, for Type I commands: if h = 0 and V = 0, HLD is reset. If h = 1 and V = 0, HLD is set at the beginning of the command and HLT is not sampled nor is there an internal 15 ms delay. If h = 0 and V = 1, HLD is set near the end of the command, an internal 15 ms occurs, and the 279X waits for HLT to be true. If h = 1 and V = 1, HLD is set at the beginning of the command. Near the end of the command, after all the steps have been issued, an internal 15 ms delay occurs and the 279X then waits for HLT to occur. For Type II and III commands with E flag off, HLD is made active and HLT is sampled until true. With E flag on, HLD is made active, an internal 15 ms delay occurs and then HLT is sampled until true. restore (seek track 0) Upon receipt of this command, the track 00 (TR00) input is sampled. If TR00 is active low, indicating the read-write head is positioned over track 0, the track register is loaded with zeroes and an interrupt is generated. If TR00 is not active low, stepping pulses at a rate specified by the r1 r0 field are issued until the TR00 input is activated. At this time the track register is loaded with zeroes and an interrupt is generated. If the TR00 input does not go active low after 255 stepping pulses, the 279X terminates operation, interrupts, and sets the seek error status bit. A verification operation takes place if the V flag is set. The h bit allows the head to be loaded at the start of command. Note that the Restore command is executed when M R goes from an active to an inactive state. seek This command assumes that the track register contains the track number of the current position of the read-write head and the data register contains the desired track number. The TMS279X will update the track register and issue stepping pulses in the appropriate direction until the contents of the track register are equal to the contents of the data register (the desired track location). A verification operation takes place if the V flag is on. The h bit allows the head to be loaded at the start of the command. An interrupt is generated at the completion of the command. Note: when using multiple drives, the track register must be updated for the drive selected before seeks are issued. 13 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 14 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 15 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 16 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY step Upon receipt of this command, the 279X issues one stepping pulse to the disk drive. The stepping motor direction is the same as in the previous step command. After a delay determined by the r1r0 field, a verification takes place if the V flag is on. If the T flag is on, the track register is updated. The h bit allows the head to be loaded at the start of the command. An interrupt is generated at the completion of the command. step-in Upon receipt of this command, the 279X issues one stepping pulse in the direction towards track 76. If the T flag is on, the track register is incremented by one. After a delay determined by the r1r0 field, a verification takes place if the V flag is on. The h bit allows the head to be loaded at the start of the command. An interrupt is generated at the completion of the command. step-out Upon receipt of this command, the 279X issues one stepping pulse in the direction towards track 0. If the T flag is on, the track register is decremented by one. After a delay determined by the r1r0 field, a verification takes place if the V flag is on. The h bit allows the head to be loaded at the start of the command. An interrupt is generated at the completion of the command. exceptions On the 2795/7 devices, the SSO output is not affected during Type I commands, and an internal side compare does not take place when the (V) verify flag is on. type II commands The Type II commands are the Read Sector and Write Sector commands. Prior to loading the Type H command into the command register, the computer must load the sector register with the desired sector number. Upon receipt of the Type II command, the busy status bit is set. If the E flag = 1 (this is the normal case) HLD is made active and HLT is sampled after a 15 ms delay. If the E flag is O, the head is loaded and HLT sampled with no 15 ms delay. When an lD field is located on the disk, the 279X compares the track number on the ID field with the track register. If there is not a match, the next encountered ID field is read and a comparison is again made. If there was a match, the sector number of the ID field is compared with the sector register. If there is not a sector match, the next encountered ID field is read off the disk and comparisons again made. If the ID field CRC is correct, the data field is then located and will be either written into, or read from depending upon the command. The 279X must find an ID field with a track number, sector number, side number, and CRC within 5revolutions of the disk; otherwise, the record not found status bit is set (status bit 4) and the command is terminated with an interrupt. Each of the Type II commands contains an (m) flag which determines if multiple records (sectors) are to be read or written, depending upon the command. If m = 0, a single sector is read or written and an interrupt is generated at the completion of the command. If m = 1, multiple records are read or written with the sector register internally updated so that an address verification can occur on the next record. The 279X will continue to read or write multiple records and update the sector register in numerical ascending sequence until the sector register exceeds the number of sectors on the track or until the Force Interrupt command is loaded into the command register, which terminates the command and generates an interrupt. For example: if the 279X is instructed to read sector 27 and there are only 26 on the track, the sector register exceeds the number available. The 279X will search for 5 disk revolutions, interrupt out, reset busy, and set the record not found status bit. The Type II commands for 2791-93 also contain side select compare flags. When C = 0 (bit 11 no side comparison is made. When C = 1, the LSB of the side number is read off the ID field of the disk and compared with the contents of the (S) flag (bit 3). If the S flag compares with the side number recorded in the ID field, the 279X continues with the ID search. If a comparison is not made within 5 index pulses, the interrupt line is made active and the record-not found status bit is set. 17 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 18 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 19 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY The Type II and Ill commands for the 2795-97 contain a side select flag (bit 1). When U = 0, SSO is updated to 0. Similarly, U = 1 updates SSO to 1. The chip compares the SSO to the ID field. If they do not compare within 5 revolutions, the interrupt line is made active and the RNF status bit is set. The 2795/7 Read Sector and Write Sector commands include a 'L' flag. The 'L' flag, in conjunction with the sector length byte of the ID field, allows different byte lengths to be implemented in each sector. For IBM compatibility, the 'L' flag should be set to a one. read sector Upon receipt of the Read Sector command, the head is loaded, the busy status bit set, and when an ID field is encountered that has the correct track number, correct sector number, correct side number, and correct CRC, the data field is presented to the computer The data address mark of the data field must be found within 30 bytes in single density and 43 bytes in double density of the last ID field CRC byte; if not, the ID field search is repeated. When the first character or byte of the data field has been shifted through the DSR, it is transferred to the DR, and DRO is generated. When the next byte is accumulated in the DSR, it is transferred to the DR and another DRQ is generated. if the computer has not read the previous contents of the DR before a new character is transferred that character is lost and the lost data status bit is set. This sequence continues until the complete data field has been inputted to the computer. If there is a CRC error at the end of the data field, the CRC error status bit is set, and the command is terminated (even if it is a multiple sector command). At the end of the read operation, the type of data address mark encountered in the data field is recorded in the status register (bit 5) as shown: STATUS BIT 5 1 0 Deleted Data Mark Data Mark write sector Upon receipt of the Write Sector command, the head is loaded (HLD active) and the busy status bit is set. When an ID field is encountered that has the correct track number, correct sector number, correct side number, and correct CRC, a DRQ is generated. The 279X counts off 11 bytes in single density and 22 bytes in double density from the CRC field and the write gate (WG) output is made active if the DRO is serviced (i.e., the DR has been loaded by the computer). If DRQ has not been serviced, the command is terminated and the lost data status bit is set. If the DRQ has been serviced, the WG is made active and six bytes of zeroes in single density and 12 bytes in double density are then written on the disk. At this time the data address mark is then written on the disk as determined by the a0 field of the command as shown below: a0 1 0 Data Address Mark (Bit 0) Deleted Data Mark Data Mark The 279X then writes the data field and generates DRQ's to the computer. If the DRQ is not serviced in time for continuous writing, the lost data status bit is set and a byte of zeroes is written on the disk. The command is not terminated. After the last data byte has been written on the disk, the two-byte CRC is computed internally and written on the disk followed by one byte of FE in FM or in MFM. The WG output is then deactivated. For a 2 MHz clock, the INTRO will set 8 to 12 its after the last CRC byte is written. For partial sector writing, the proper method is to write the data and fill the balance with zeroes. By letting the chip fill the zeroes, errors may be masked by the lost data status and improper CRC bytes. 20 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 21 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 22 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY types III commands read address Upon receipt of the Read Address command, the head is loaded and the busy status bit is set. The next encountered ID field is then read in from the disk, and the six data bytes of the ID field are assembled and transferred to the DR, and a DRQ is generated for each byte. The six bytes of the ID field are shown below: TRACK ADDR 1 SIDE NUMBER 2 SECTOR ADDRESS 3 SECTOR LENGTH 4 CRC 1 5 CRC 2 6 Although the CRC characters are transferred to the computer, the 279X checks for validity and the CRC error status bit is set if there is a CRC error. The track address of the ID field is written into the sector register so that a comparison can be made by the host. At the end of the operation, an interrupt is generated and the busy status is reset. read track Upon receipt of the Read Track command, the head is loaded, and the busy status bit is set. Reading starts with the leading edge of the first encountered index pulse and continues until the next index pulse. All gap, header, and data bytes are assembled and transferred to the data register and DRQ's are generated for each byte. The accumulation of bytes is synchronized to each address mark encountered. An interrupt is generated at the completion of the command. This command has several characteristics which make it suitable for diagnostic purposes. They are: no CRC checking is performed; gap information is included in the data stream; the internal side compare is not performed; and the address mark detector is on for the duration of the command. Because the AM detector is always on, write splices or noise may cause the chip to look for an AM if an address mark does not appear on schedule with the lost data status flag being set. The ID AM, ID field, ID CRC bytes, DAM, data and data CRC bytes for each sector will be correct. The gap bytes may be read incorrectly during write-splice time because of synchronization. write track formatting the disk (Refer to section on Type III commands for flowcharts.) Formatting the disk is a relatively simple task when operating programmed I/0 or when operating under DMA with a large amount of memory. Data and gap information must be provided at the computer interface. Formatting the disk is accomplished by positioning the R/W head over the desired track number and issuing the Write Track command. Upon receipt of the Write Track command, the head is loaded and the busy status bit is set. Writing starts with the leading edge of the first encountered index pulse and continues until the next index pulse, at which time the interrupt is activated. The data request is activated immediately upon receiving the command, but writing will not start until after the first byte has been loaded into the data register. If the DR has not been loaded by the time the index pulse is encountered, the operation is terminated making the device not busy, the lost data status bit is set, and the interrupt is activated. If a byte is not present in the DR when needed, a byte of zeroes is substituted. This sequence continues from one index mark to the next index mark. Normally, whatever data pattern appears in the data register is written on the disk with a normal clock pattern. However, if the 279X detects a data pattern of F5 thru FE in the data register, this is interpreted as data address marks with missing clocks or CRC generation. The CRC generator is initialized when any data byte from F8 to FE is about to be transferred from the DR to the DSR or by receipt of F5 in MFM. An F7 pattern will generate two CRC characters in FM or MFM. As a consequence, the patterns F5 thru FE must not appear in the gaps, data fields, or ID fields. Also, CRC's must be generated by an F7 pattern. Disks may be formatted in IBM 3740 or System 34 formats with sector lengths of 128, 256, 512, or 1024 bytes. 23 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 24 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 25 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY CONTROL BYTES FOR INITIALIZATION DATA PATTERN IN DR (HEX) TMS279X INTERPRETATION IN FM (DDEN# = 1) TMS279X INTERPRETATION IN MFM (DDEN# = 0) 00 thru F4 Write 00 thru F4 with CLK = FF Write 00 thru F4, in MFM F5 Not Allowed Write Al * in MFM, Preset CRC F6 Not Allowed Write C2 † in MFM F7 Generate 2 CRC bytes Generate 2 CRC bytes F8 thru FB Write F8 thru FM CLK = C7, Preset CRC Write F8 thru FB, in MFM FC Write FC with CLK = D7 Write FC in MFM FD Write FD with CLK = FF Write FD in MFM FE Write FE, CLK = C7, Preset CRC Write FE in MFM FF Write FF with CLK = FF Write FF in MFM * Missing clock transition between bits 4 and 5. † Missing clock transition between bits 3 and 4. type IV commands The Forced Interrupt command is generally used to terminate a multiple sector read or write command or to ensure Type I status in the status register. This command can be loaded into the command register at any time. If there is a current command under execution (busy status bit set) the command will be terminated and the busy status bit reset. The lower four bits of the command determine the conditional interrupt as follows: 10 = Not-Ready to Ready Transition 11 = Ready to Not-Ready Transition 12 = Every Index Pulse 13 = Immediate Interrupt The conditional interrupt is enabled when the corresponding bit positions of the command (l3 – I0) are set to a 1. Then, when the condition for interrupt is met, the INTRQ line will go high signifying that the condition specified has occurred. If l3 – I0 are all set to zero (HEX DO), no interrupt will occur but any command presently under execution will be immediately terminated. When using the immediate interrupt condition (l3 = 1), an interrupt will be immediately generated and the current command terminated. Reading the status or writing to the command register will not automatically clear the interrupt. The HEX DO is the only command that will enable the immediate interrupt (HEX D8) to clear on a subsequent load command register or read status register operation. Follow a HEX D8 with DO command. Wait 8 µs (double density) or 16 µs (single density) before issuing a new command after issuing a forced interrupt (times double when clock = 1 MHz). Loading a new command sooner than this will nullify the forced interrupt. Forced interrupt stops any command at the end of an internal micro-instruction and generates INTRQ when the specified condition is met. Forced interrupt will wait until ALU operations in progress are complete (CRC calculations, compares, etc.) More than one condition may be set at a time. If for example, the READY TO NOT-READY condition (I1 = 1) and the Every Index Pulse (I2 = 1) are both set, the resultant command would be HEX "DA" The "OR" function is per formed so that either a READY TO NOT-READY or the next index pulse will cause an interrupt condition. 26 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 27 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 28 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY status register Upon receipt of any command, except the Force Interrupt command, the busy status bit is set and the rest of the status bits are updated or cleared for the new command. If the Force Interrupt command is received when there is a current command under execution, the busy status bit is reset, and the reset of the status bits are unchanged. If the Force Interrupt command is received when there is not a current command under execution, the busy status bit is reset and the rest of the status bits are updated or cleared. In this case, status reflects the Type I commands. The user has the option of reading the status register through program control or using the DRQ line with DMA or interrupt methods. When the data register is read, the DRQ bit in the status register and the DRQ line are automatically reset. A write to the data register also causes both DRQ's to reset. The busy bit in the status may be monitored with a user program to determine when a command is complete, in lieu of using the INTRQ line. When using the INTRQ, a busy status check is not recommended because a read of the status register to determine the condition of busy will reset the INTRQ line. The format of the status register is shown below: (BITS) 7 S7 6 S6 5 S5 4 S4 3 S3 2 S2 1 S1 0 S0 Status varies according to the type of command executed as shown in Table 4. Because of internal sync cycles, certain time delays must be observed when operating under programmed 1/0. They are: (times double when clock = 1 MHz). OPERATION Write to Command Register Write to Command Register Write Any Register NEXT OPERATION Read Busy Bit (Status Bit 0) Read Status Bits 1-7 Read from Different Register DELAY REG’D FM MFM 12 µs 6 µs 28 µs 14 µs 0 0 IBM 3740 format - 128 bytes/sector Shown below is the IBM single-density format with 128 bytes/sector. In order to format a diskette, the user must issue the Write Track command, and load the data register with the following values. For every byte to be written, there is one data request. 29 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY 30 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY IBM system 34 format - 256 bytes/sector Shown below is the IBM dual-density format with 2 56 bytes/sector. ln order to format a diskette the user must issue the Write Track command and load the data register with following values. For every byte to be written, there is one data request. 31 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY non-IBM formats Variations in the IBM formats are possible to a limited extent if the following requirements are met: 1) Sector size must be 128, 256, 512 or 1024 bytes. 2) Gap 2 cannot be varied from the IBM format. 3) 3 bytes of A1 must be used in MFM. In addition, the Index Address mark is not required for operation by the 279X. Gap 1, 3, and 4 lengths can be as short as 2 bytes for 279X operation, however PLL lock up time, motor speed variation, write splice area, etc., will add more bytes to each gap to achieve proper operation. It is recommended that the IBM format be used for highest system reliability. Gap I Gap II * * Gap III † Gap IV FM 16 bytes FF 11 bytes FF 6 bytes 00 10 bytes FF 4 bytes 00 16 bytes FF MFM 32 bytes 4E 22 bytes 4E 12 bytes 00 3 bytes A1 24 bytes 4E 8 bytes 00 3 bytes A1 16 bytes 4E * Byte counts must be exact. † Byte counts are minimum, except exactly 3 bytes of A1 must be written. 32 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY absolute maximum ratings over operating free-air temperature range (unless otherwise noted) † Voltage on any input (see Note 1) ..................................................................................... - 0.5 V to 7 V Power dissipation (all outputs open) .......................................................................................... 0.75 W Operating free-air temperature range ................................................................................... 0°C to 70°C Storage temperature range .......................................................................................... - 55 °C to 125°C † Stresses beyond those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or any other conditions beyond those indicated in the "Recommended Operating Conditions" section of this specification is not implied. Exposure to absolute-maximum-rated conditions for extended periods may affect devic e reliability. NOTE 1: All voltage values in this data sheet are with respect to VSS. recommended operating conditions PARAMETER MIN NOM MAX UNIT 4.75 5 5.25 V Supply voltage, VCC Supply voltage, VSS 0 High-level input voltage, VIH Low-level input voltage, VIL 2 Operating free-air temperature, TA 0 V 0.8 V 70 °C electrical characteristics over full ranges of recommended operating conditions (unless otherwise noted) VOH PARAMETER High-level voltage output PUMP All others VOL Low-level output voltage PUMP All others II IO Input current (leakage) IPU ICC Internal pull-up current ‡ Output current (leakage) Supply current TEST CONDITIONS IOH = -1 mA IOH = -100 µA MIN TYP† MAX 2.2 2.4 UNIT V IOL = 1 mA IOL = 1.6 mA 0.2 0.45 VI = VCC VO = VCC VI = 0 V All outputs open 100 70 V 10 µA 10 µA 1700 µA 150 mA † All typical values are at TA = 25°C and nominal supply voltages. ‡ Internal pull-up resistors are on pins 1, 1 7, 19, 22, 36, 37, and 40. Also, pin 25 on 2791 and 2793 devices. timing characteristics over recommended supply voltage range and operating free-air temperature range READ ENABLE TIMING PARAMETER TEST CONDITIONS ALT. SYMBOL† TSET MIN TYP MAX UNIT tsu(A-RE) A0, A1 to RE# setup time tsu(CS-RE ) th(A-RE) CS# to RE# setup time A0, A1 from RE# hold time th(CS-RE) CS# from RE# hold time tw(RE) RE pulse duration trs(RE-DRQ) Reset time, DRQ from RE# TDRR 100 200 ns trs(RE-INT) Reset time, INTRQ from RE# TIRR 500 3000 ns ta(RE) Data access time from RE# CL = 50 pF TDACC 100 200 ns tdis(RE) Data disable time from RE # CL = 50 pF TDOH 150 ns CL = 50 pF † Symbol used in Western Digital Corporation WD279X-02 Data Sheet 33 50 ns TSET THLD 50 ns 10 ns THLD 10 ns THE 200 ns 20 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY WRITE ENABLE TIMING PARAMETER tsu(A-WE) A0, A1 to WE# setup time tsu(CS-WE) CS# to VVE# setup time th(A-WE) TEST CONDITIONS ALT. SYMBOL† TSET MIN TYP MAX UNIT 50 ns 50 ns A0, A1 from WE# hold time TSET THLD 10 ns th(CS-WE) CS# from WE# hold time THLD 10 ns tw(WE) WE# pulse duration DRQ reset time from WE# TWE TDRR 200 trs(WE-DRQ) trs(WE-INT) INTRQ reset time from WE# TIRR tsu(D-WE) Data setup time to WE# TDS 150 ns th(D-WE) Data hold time from WE# TDH 50 ns † Symbol used in Western Digital Corporation WD279X-02 Data Sheet. * Time doubles when CLK = 1 MHz. †t SERVICE (WORST CASE): FM 27.5µs, MFM 13.5 µs. NOTES: 2. 3. 4. 5. 6. CS# may be permanently tied low if desired. DRQ rising edge: indicates that the data register has assembled data DRQ falling edge: indicates that the data register was read. INTREQ rising edge: occurs at end of command. INTREQ falling edge: indicates that the status register was read. 34 ns 100 200 ns 500 3000 ns TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY * Time doubles when CLK = 1 MHz. †t SERVICE (WORST CASE): FM 23.5µs, MFM 11.5 µs. NOTES: 7. CS# may be permanently tied low if desired. 8. When writing data into sector tract or data register, user cannot read this register until at least 4 µs in MFM after the rising edge of WE#. When writing into the command register, status is not valid until some 28 µs in FM, and 14 µs in MFM Iater. These times are doubled when CLK 1 MHz. 9. DRQ rising edge: indicates that the data register is empty. 10. DRQ falling edge: indicates that the data register is loaded. 11. INTREQ rising edge: indicates the end of a command. 12. INTREQ falling edge: indicates that the command register is written to. 35 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY input data timing PARAMETER ALT. MIN TYP MAX UNIT SYMBOL† tw(RR) RAW READ pulse duration TPW tC(RR) RAW READ cycle time TB C 100 200 ns 1500 2000 ns † Symbol used in Western Digital Corporation WD279X-02 Data Sheet. write data timing (all times double when CLK = 1 MHz) (no write precompensation) PARAMETER tw(WD) Write data pulse duration TEST CONDITIONS ALT. SYMBOL† FM TWP MFM td(WG-WD) td(WD-WG) Write gate to write data delay time Write gate from write data delay time FM TWG MFM FM MFM † Symbol used in Western Digital Corporation WD279X-02 Data Sheet. 36 MIN TYP MAX 400 500 600 200 250 300 2 UNIT ns µs 1 TWF 2 1 µs TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY miscellaneous timing PARAMETER TEST CONDITIONS ALT. SYMBOL † MIN TYP MAX UNIT tw(CL) CLK low pulse duration TCD1 230 250 20000 ns tw(CH) CLK high pulse duration TCD2 230 250 20000 ns tw(S) STEP high pulse duration TSTP 2 or 4 tsu(DIR-S) DIRC to STEP setup time tw(MRL) MR# low pulse duration tw(IPL) IP# low pulse duration tw(RW) Read window pulse duration tw(WD)P f VCO f VCO f VCO Write data pulse duration (precompensation adjustable) Free-running voltage-controlled oscillator frequency ‡ Free-running voltagecontrolled oscillator frequency ‡ Pump up+25% + CLK error Input MFM 0-5 V FM +15% TDIR 50 µs TIP 10 µs RPW 120 700 240 1400 WPW 200 300 400 Precomp = 300 ns MFM WPW 600 900 1200 Cext = 0 VCO 6 Cext = 35 pF PUMP = 2.2 V Cext = 35 pF VCC + 5% Cext = 3 5 pF Adjustable external capacitor VCO = 4 MHz (Nom) Derived read VCO ÷ 16 clock frequency DDEN# = 0 5/8 = 1 tw(PUPD) VCO 5 MHz 3 VCO 3.8 4.2 MHz 3.5 Cext RCLK 20 45 DDEN# = 1 5/8 = 0 125 MFM FM † Symbol used in Western Digital Corporation WD 279X-02 Data Sheet. ‡ VCO frequency adjustable by external capacitor (Cext) on pin 26. 37 100 500 250 Pump up/pump down time on (pulse duration) ns 4 VCO DDEN# = 0 = 5/8 = 0 4 MHz DDEN# = 1 5/8 = 1 VCO ÷ 32 ns MHz Pump down-25% PUMP = 0.2 V Cext = 35 pF Free-running voltage-controlled oscillator frequency ‡ µs Precomp = 100 ns MFM VCO ÷ 8 f DRC 12 TM R TA = 75°C Cext = 35 pF Cext µs pF kHz 250 PU/DON 250 500 ns TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY miscellaneous timing From Step Rate Table. NOTES: 14. Times double when CLK = 1 MHz. 15. Output timing readings are at VOL = 0.8 V and VOH - 2 V. 38 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY TABLE 4 - STATUS REGISTER SUMMARY BIT ALL TYPE I COMMANDS READ ADDRESS READ SECTOR READ TRACK WRITE SECTOR WRITE TRACK S7 NOT READY NOT READY NOT READY NOT READY NOT READY NOT READY S6 WRITE PROTECT 0 0 0 WRITE PROTECT WRITE PROTECT S5 HEAD LOADED 0 RECORD TYPE 0 0 0 S4 SEEK ERROR RNF RNF 0 RNF 0 S3 CRC ERROR CRC ERROR CRC ERROR 0 CRC ERROR 0 S2 TRACK 0 LOST DATA LOST DATA LOST DATA LOST DATA LOST DATA S1 INDEX PULSE DRQ DRQ DRQ DRQ DRQ SO BUSY BUSY BUSY BUSY BUSY BUSY status for type I commands BIT NAME MEANING S7 NOT READY This bit when set indicates the drive is not ready. When reset it indicates that the drive is ready. This bit is an inverted copy of the ready input and logically 'ORed' with MR. S6 PROTECTED When set, indicates write protect is activated. This bit is an inverted copy of WRPT# input. S5 HEAD LOADED When set, it indicates the head is loaded and engaged. This bit is a logical "AND" of HLD and HLT signals. S4 SEEK ERROR When set, the desired track was not verified. This bit is reset to 0 when updated. S3 CRC ERROR CRC encountered in ID field. S2 TRACK 00 When set, indicates read/write head is positioned to Track 0. This bit is an inverted copy of the TR00# input. S1 INDEX When set, indicates index mark detected from drive. This bit is an inverted copy of the IP# input. S0 BUSY When set, command is in progress. When reset, no command is in progress. 39 TMS279X (WD279X) FLOPPY DISK FORMATTER / CONTROLLER FAMILY status for type II and III commands BIT NAME MEANING S 7 NOT READY This bit when set indicates the drive is not ready. When reset, it indicates that the drive is ready. This bit is an inverted copy of the ready input and 'ORed' with MR. The Type II and III commands will not execute unless the drive is ready. S6 WRITE PROTECT On read record: not used. On read track: not used. On any write: it indicates a write protect. This bit is reset when updated. S5 RECORD TYPE On read record: it indicates the record-type code from data field address mark. 1 = deleted data mark. 0 = data mark. On any write: forced to a zero. S4 RECORD NOT FOUND (RNF) When set, it indicates that the desired track, sector, or side were not found. This bit is reset when updated. S3 CRC ERROR If S4 is set, an error is found in one or more ID fields; otherwise it indicates error in data field. This bit is reset when updated. S2 LOST DATA When set, it indicates the computer did not respond to DRQ in one byte time. This bit is reset to zero when updated. S1 DATA REQUEST This bit is a copy of the DRQ output. When set, it indicates the DR is full on a read operation or the DR is empty on a write operation. This bit is reset to zero when updated. S0 BUSY When set, command is under execution. When reset, no command is under execution. summary of adjustment procedure WRITE PRECOMPENSATION 1) 2) 3) 4) 5) 6) Set TEST# (pin 22) to a logic high. Strobe MR# (pin 19). Set TEST# (pin 22) to a logic low. Observe pulse duration on WD (pin 31). Adjust WPW (pin 33) for desired pulse duration (precompensation value). Set TEST# (pin 22) to a logic high. DATA SEPARATOR 1) 2) 3) 4) 5) 6) 7) 8) Set TEST# (pin 22) to a logic high. Strobe MR# (pin 19). Ensure that 5#/8, and DDEN# are set properly. Set TEST# (pin 22) to a logic low. Observe pulse duration on TG43 (pin 29). Adjust RPW (pin 18) for 1/8 of the read clock (250 ns for 8 " DD, 500 ns for 5'1/4" DD, etc.). Observe frequency on DIRC (pin 161. Adjust variable capacitor on VCO pin for data rate (500 kHz for 8" DD, 250 kHz for 5 1/4" DD, etc.). Set TEST# (pin 22) to a logic high. NOTE: To maintain internal VCO operation, ensure that TEST# = 1 whenever a master reset pulse is applied. 40