NJU39610 MICROSTEPPING MOTOR CONTROLLER WITH DUAL DAC ■ GENERAL DESCRIPTION ■ PACKAGE OUTLINE NJU39610 is a dual 7-bit+sign, Digital-to-Analog Converter (DAC) especially developed to be used together with the NJM3771, Precision Stepper Motor driver in micro-stepping applications. The NJU39610 has a set of input registers connected to an 8-bit data port for easy interfacing directly to a microprocessor. The NJU39610 is well suited for highspeed micro-stepping application. NJU39610D2 NJU39610FM2 ■ FEATURES • Analog control voltages from 3 V down to 0.0 V • High-speed microprocessor interface • Automatic fast/slow current decay control • Full-scale error ±1 LSB • Fast conversion speed 3 µs • Matches NJM3771 • Packages DIP22/PLCC28 ■ BLOCK DIAGRAM V DD V Ref NJU39610 DA- Data 1 WR Sign 1 E C D E1 R CS Level 1 Digit Comp E1 E CD 1 C D E E2 C D/A R DA 1 D A0 R Level 2 E3 DA E C D/A 2 D A1 R E4 DA- Data 2 D7 - D0 Digit Comp E CD 2 C R D R POR R V ss Figure 1. Block Diagram E D C RESET E4 Sign 2 NJU39610 D6 8 15 A0 D5 9 14 D0 D4 10 13 D1 D3 11 12 D2 VSS CS A1 A0 N/C 2 1 28 27 26 D2 N/C 8 V ref 9 DA 1 N/C NJU 39610FM2 22 N/C 21 D3 10 20 D4 11 19 D5 18 A1 23 N/C 16 7 17 7 D7 D1 Reset D6 CS 6 D0 24 16 17 WR NJU 39610D2 25 6 D7 VSS 5 5 15 18 VDD N/C DA 2 14 CD 2 WR Sign 2 19 VDD 20 4 Sign 2 3 CD 1 CD 2 Sign 1 3 DA 2 13 Reset 21 12 22 2 CD 1 1 Sign 1 V ref DA 1 4 ■ PIN CONFIGURATIONS Figure 2. Pin configurations ■ PIN DESCRIPTION Refer to figure 2. DIP PLCC Symbol Description 1 2 3 9 10 12 VRef DA1 Sign1 4 13 CD1 5 6 14 15 VDD WR 7 8 9 10 11 12 13 14 15 16 17 19 20 21 23 24 25 27 D7 D6 D5 D4 D3 D2 D1 D0 A0 16 28 A1 17 1 CS 18 2 VSS 19 3 CD2 20 4 Sign2 21 22 6 7 DA2 Reset Voltage reference supply pin, 2.5 V nominal (3.0 V maximum) Digital-to-Analog 1, voltage output. Output between 0.0 V and VR - 1 LSB. Sign 1, TTL/CMOS level. To be connected directly to NJM3771 Phase input. Databit D7 is transfered non inverted from NJU39610 data input. Current Decay 1, TTL/CMOS level. The signal is automatically generated when decay level is programmed. LOW level = fast current decay. Voltage Drain-Drain, logic supply voltage. Normally +5 V. Write, TTL/CMOS level, input for writing to internal registers. Data is clocked into flip flops on positive edge. Data 7, TTL/CMOS level, input to set data bit 7 in data word. Data 6, TTL/CMOS level, input to set data bit 6 in data word. Data 5, TTL/CMOS level, input to set data bit 5 in data word. Data 4, TTL/CMOS level, input to set data bit 4 in data word. Data 3, TTL/CMOS level, input to set data bit 3 in data word. Data 2, TTL/CMOS level, input to set data bit 2 in data word. Data 1, TTL/CMOS level, input to set data bit 1 in data word. Data 0, TTL/CMOS level, input to set data bit 0 in data word. Address 0, TTL/CMOS level, input to select data transfer, A0 selects between cannel 1 (A0 = LOW) and channel 2 (A0 = HIGH). Address 1, TTL/CMOS level, input to select data transfer. A1 selects between normal D/A register programming (A1 = LOW) and decay level register programming (A1 = HIGH). Chip Select, TTL/CMOS level, input to select chip and activate data transfer from data inputs. LOW level = chip is selected. Voltage Source-Source. Ground pin, 0 V reference for all signals and measurements unless otherwise noted. Current Decay 2, TTL/CMOS level. The signal is automatically generated when decay level is programmed. LOW level = fast current decay . Sign 2. TTL/CMOS level. To be connected directly to NJM3771 sign input. Data bit D7 is transfered non-inverted from NJU39610 data input. Digital-to-Analog 2, voltage output. Output between 0.0 V and Vref - 1 LSB. Reset, digital input resetting internal registers. HIGH level = Reset, VRes ≥ 3.5 V = HIGH level. Pulled low internally. 5 8 11 18 22 26 N/C Not Connected NJU39610 ■ DEFINITION OF TERMS Resolution Resolution is defined as the reciprocal of the number of discrete steps in the DAC output. It is directly related to the number of switches or bits within the DAC. For example, NJU39610 has 27, or 128, output levels and therefor has 7 bits resolution. Remember that this is not equal to the number of microsteps available. Linearity Error Linearity error is the maximum deviation from a straight line passing through the end points of the DAC transfer characteristic. It is measured after adjusting for zero and full scale. Linearity error is a parameter intrinsic to the device and cannot be externally adjusted. Power Supply Sensitivity Power supply sensitivity is a measure of the effect of power supply changes on the DAC full-scale output Settling Time Full-scale current settling time requires zero-to-full-scale or full-scale-to-zero output change. Settling time is the time required from a code transition until the DAC output reaches within ± 1/2LSB of the final output value. Full-scale ErrorFull-scale error is a measure of the output error between an ideal DAC and the actual device output. Differential Non-linearity The difference between any two consecutive codes in the transfer curve from the theoretical 1LSB, is differential non-linearity Monotonic If the output of a DAC increases for increasing digital input code, then the DAC is monotonic. A 7-bit DAC which is monotonic to 7 bits simply means that increasing digital input codes will produce an increasing analog output. NJU39610 is monotonic to 7 bits. ■ FUNCTIONAL DESCRIPTION Each DAC channel contains two registers, a digital comparator, a flip flop, and a D/A converter. A block diagram is shown on the first page. One of the registers stores the current level, below which, fast current decay is initiated. The status of the CD outputs determines a fast or slow current decay to be used in the driver. The digital comparator compares each new value with the previous one and the value for the preset level for fast current decay. If the new value is strictly lower than both of the others, a fast current decay condition exists. The flip flop sets the CD output. The CD output is updated each time a new value is loaded into the D/A register. The fast current decay signals are used by the driver circuit, NJM3771, to change the current control scheme of the output stages. This is to avoid motor current dragging which occurs at high stepping rates and during the negative current slopes, as illustrated in figure 9. Eight different levels for initiation of fast current decay can be selected. The sign outputs generate the phase shifts, i.e., they reverse the current direction in the phase windings. Output Output Output Gain error Actual More than 2 bits Less than 2 bits Negative difference Input Correct Endpoint non-linearity Positive difference Input Offset error Full scale Input Figure 5. Errors in D/A conversion. Figure 4. Errors in D/A conversion. Figure 3. Errors in D/A conversion. Differential non-linearity of more than Differential non-linearity of less than 1 Non-linearity, gain and offset errors. bit, output is monotonic. 1 bit, output is non-monotonic. NJU39610 Data Bus Interface NJU39610 is designed to be compatible with 8-bit microprocessors such as the 6800, 6801, 6803, 6808, 6809, 8051, 8085, Z80 and other popular types and their 16/32 bit counter parts in 8 bit data mode. The data bus interface consists of 8 data bits, write signal, chip select, and two address pins. All inputs are TTL-compatible (except reset). The two address pins control data transfer to the four internal D-type registers. Data is transferred according to figure 10 and on the positive edge of the write signal. Current Direction, Sign1 & Sign2 These bits are transferred from D7 when writing in the respective DA register. A0 and A1 must be set according to the data transfer table in figure 10. Current Decay, CD1 & CD2 CD1 and CD2 are two active low signals (LOW = fast current decay). CD1 is active if the previous value of DA-Data1 is strictly larger than the new value of DA-Data1 and the value of the level register LEVEL1 (L61 … L41) is strictly larger than the new value of DA-Data1. CD1 is updated every time a new value is loaded into DA-Data1. The logic definition of CD1 is: CD1 = NOT{[(D6 … D0) < (Q61 … Q01)] AND[(D6 …D4) < (L61 … L41)]} Where (D6 … D0) is the new value being sent to DA-Data1 and (Q61 … Q01) is DA-Data1’s old value. (L61 … L41) are the three bits for setting the current decay level at LEVEL1. The logic definition of CD2 is analog to CD1: CD2 = NOT{[(D6 … D0) < (Q62 … Q02)] AND[(D6 …D4) < (L62 … L42)]} Where (L62 … L42) is the level programmed in channel 2’s level register. (D6 … D0) and (Q62 … Q02) are the new and old values of DA-Data2. The two level registers, LEVEL1 and LEVEL2, consist of three flip flops each and they are compared against the three most significant bits of the DA-Data value, sign bit excluded. T2 I2 [mA] [mNm] DA output [V] T max Current dragging Tnom Tmin I t CD T1 I1 [mA] Figure 6a. Assuming that torque is proportional to the current in resp. winding it is possible to draw figure 8b. CS 0 0 0 0 1 A0 0 0 1 1 X [mNm] Time Figure 6b. An example of accessible positions with a given torque deviation/fullstep. Note that 1:st µstep sets highest resolution. Data points are exaggerated for illustration purpose. TNom = code 127. A1 0 1 0 1 X Figure 7. Motor current dragging at high step rates and current decay influence. Fast current decay will make it possible for the current to follow the ideal sine curve. Output shown without sign shift. Data Transfer D7 —> Sign1, (D6—D0) —> (Q61—Q01), New value —> CD1 (D6—D4) —> (L61—L41) D7 —> Sign2, (D6—D0) —> (Q62—Q02), New value —> CD2 (D6—D4) —> (L62—L42) No Transfer Figure 8. Table showing how data is transfered inside NJU39610. NJU39610 DA1 and DA2 These are the two outputs of DAC1 and DAC2. Input to the DACs are internal data bus (Q61 … Q01) and (Q62 … Q02). Reference Voltage VRef VRef is the analog input for the two DACs. Special care in layout, gives a very low voltage drop from pin to resistor. Any VRef between 0.0 V and VDD can be applied, but output might be non-linear above 3.0 V. Power-on Reset This function automatically resets all internal flip flops at power-on. This results in VSS voltage at both DAC outputs and all digital outputs. Reset If Reset is not used, leave it disconnected. Reset can be used to measure leakage currents from VDD. Time when motor is in a compromise position. Time when micro position is correct. Write signal. Motor position. Writing to channel 1. Writing to channel 2. Write time = incorrect position Double pulse write signal Useful time = correct position Actual data = true position Normal resolution Time Ideal data = desired position Figure 9. Double pulse programming, in- and output signals. Time when motor is in an intermediate position. Time when micro position is almost correct. Write signal. Motor position. Note that position is always a compromise. Writing to channel 1. Writing to channel 2. Time Useful time = compromise position with equally spaced angles Single pulse write signal Useful time = almost correct position "Ideal data" = desired position Figure 10. Single pulse programming, in- and output signals. Actual data = true position Note increased resolution NJU39610 ■ ABSOLUTE MAXIMUM RATINGS Parameter Pin no.* Symbol Min Max Unit Voltage Supply Logic inputs Reference input 5 6- 17 1 VDD VI VR -0.3 -0.3 6 VDD+0.3 VDD+ 0.3 V V V Current Logic inputs 6- 17 II -0.4 +0.4 mA Tstg Topr -55 -20 +150 +85 °C °C Temperature Storage temperature Operating ambient temperature * refers to DIP package ■ RECOMMENDED OPERATING CONDITIONS Parameter Symbol Min Typ Max Unit Supply voltage VDD 4.75 5.0 5.25 V Reference voltage ( @ VDD=5V) VR 0 2.5 3.8 V NJU39610 ■ ELECTRICAL CHARACTERISTICS Electrical characteristics over recommended operating conditions. Parameter Logic Inputs Reset logic HIGH input voltage Reset logic LOW input voltage Logic HIGH input voltage Logic LOW input voltage Reset input current Input current, other inputs Input capacitance Symbol VIHR VILR VIH VIL IIR II Internal Timing Characteristics Address setup time Data setup time Chip select setup time Address hold time Data hold time Chip select hold time Write cycle length Reset cycle length tas tds tcs tah tdh tch tWR tR Reference Input Input resistance RRef Logic Outputs Logic HIGH output current Logic LOW output current Write propagation delay IOH IOL tpWR Reset propagation delay tpR DAC Outputs Nominal output voltage VDA VSS < VIR < VDD -0.01 VSS < VI < VDD -1 Valid for A0, A1 60 Valid for D0 - D7 VO = 2.4 V VO = 0.4 V From positive edge of WR. outputs valid, Cload = 120 pF From positive edge of Reset to outputs valid, Cload = 120 pF Min Typ Max Unit 3.5 2.0 - 1 1 3 0.1 0.8 mA µA - V V V V pF 60 70 50 80 - ns 0 0 0 - ns ns ns ns ns ns ns 6 9 - kohm 1.7 - -13 5 30 -5 100 mA mA ns - 60 150 ns 0 - - 7 0.2 0.1 0.2 0.2 0.1 VRef -1LSB 0.5 0.5 0.5 0.5 0.5 V Bits LSB LSB LSB LSB LSB - 0.1 0.3 LSB - 3 8 µs Reset open, VRef = 2.5 V Resolution Offset error Gain error Endpoint nonlinearity Differential nonlinearity Load error Power supply sensitivity Conversion speed Conditions tDAC (VDA, unloaded - VDA, loaded) Rload = 2.5 kohm, Code 127 to DAC Code 127 to DAC 4.75 V < VDD < 5.25 V For a full-scale transition to ±0.5 LSB of final value, Rload = 2.5 kohm, Cload = 50 pF. NJU39610 t cs t ch CS t as t ah A0-A1 t dh t ds D0-D7 t WR WR t DAC DA t pwr Sign, CD Figure 11. Timing t res Reset t pres Sign, CD Figure 12. Timing of Reset NJU39610 ■ APPLICATIONS INFORMATION How Many Microsteps? The number of true microsteps that can be obtained depends upon many different variables, such as the number of data bits in the Digital-to-Analog converter, errors in the converter, acceptable torque ripple, single- or double-pulse programming, the motor’s electrical, mechanical and magnetic characteristics, etc. Many limits can be found in the motor’s ability to perform properly; overcome friction, repeatability, torque linearity, etc. It is important to realize that the number of current levels, 128 (27), is not the number of steps available. 128 is the number of current levels (reference voltage levels) available from each driver stage. Combining a current level in one winding with any of 128 other current levels in the other winding will make up 128 current levels. So expanding this, it is possible to get 16,384 (128 • 128) combinations of different current levels in the two windings. Remember that these 16,384 micropositions are not all useful, the torque will vary from 100% to 0% and some of the options will make up the same position. For instance, if the current level in one winding is OFF (0%) you can still vary the current in the other winding in 128 levels. All of these combinations will give you the same position but a varying torque. Typical Application The microstepper solution can be used in a system with or without a micro-processor. Without a microprocessor, a counter addresses a ROM where appropriate step data is stored. Step and Direction are the input signals which represent clock and up / down of counter. This is the ideal solution for a system where there is no microprocessor or it is heavily loaded with other tasks. With a microprocessor, data is stored in ROM / RAM area or each step is successively calculated. NJU39610 is connected like any peripheral addressable device. All parts of stepping can be tailored for specific damping needs etc. This is the ideal solution for a system where there is an available microprocessor with extra capacity and low cost is more essential than simplicity. See typical application, figure 14. ■ User Hints Never disconnect ICs or PC Boards when power is supplied. Choose a motor that is rated for the current you need to establish desired torque. A high supply voltage will gain better stepping performance even if the motor is not rated for the VMM voltage, the current regulation in NJM3771 will take care of it. A normal stepper motor might give satisfactory result, but while microstepping, a “microsteppingadapted” motor is recommended. This type of motor has smoother motion due to two major differences, the stator / rotor teeth relationship is non-equal and the static torque is lower. The NJU39610 can handle programs which generate microsteps at a desired resolution as well as quarter stepping, half stepping, full stepping, and wave drive. Fast or Slow Current Decay? There is a difference between static and dynamic operation of which the actual application must decide upon when to use fast or slow current decay. Generally slow decay is used when stepping at slow speeds. This will give the benefits of low current ripple in the drive stage, a precise and high overall average current, and normal current increase on the positive edge of the sine-cosine curves. Fast current decay is used at higher speeds to avoid current dragging with lost positions and incorrect step angles as a result. Ramping Every drive system has inertia which must be considered in the drive system. The rotor and load inertia play a big role at higher speeds. Unlike the DC motor, the stepper motor is a synchronous motor and does not change its speed due to load variations. Examining a typical stepper motor’s torque-versus-speed curve indicates a sharp torque drop-off for the “start-stop without error” curve. The reason for this is that the torque requirements increase by the cube of the speed change. For good motor performance, controlled acceleration and deceleration should be considered even though microstepping will improve overall performance. NJU39610 ■ Programming NJU39610 There are basically two different ways of programming the NJU39610. They are called “single-pulse programming” and “double-pulse programming.” Writing to the device can only be accomplished by addressing one register at a time. When taking one step, at least two registers are normally updated. Accordingly there must be a certain time delay between writing to the first and the second register. This programming necessity gives some special stepping advantages. Double-pulse Programming The normal way is to send two write pulses to the device, with the correct addressing in between, keeping the delay between the pulses as short as possible. Write signals will look as illustrated in figure9. The advantages are: • low torque ripple • correct step angles between each set of double pulses • short compromise position between the two step pulses • normal microstep resolution Single-pulse Programming A different approach is to send one pulse at a time with an equally-spaced duty cycle. This can easily be accomplished and any two adjacent data will make up a microstep position. Write signals will look as in figure 10. The advantages are: • higher microstep resolution • smoother motion The disadvantages are: • higher torque ripple • compromise positions with almost-correct step angles NJU39610 Counter PROM D0-D7 NJU39610 NJM3771 A0 WR CS CE A1 Clock Up/Dn Vref Step Voltage Reference Control Logic Direction Figure 13. Typical blockdiagram of an application without a microprocessor. V MM V CC (+5 V) + 0.1 µF 0.1 µF 11 5 14 V V DD D0 Sign1 CD1 7 To µP +2.5V 15 16 6 17 22 1 D7 NJU39610 A0 A1 WR CS RESET V Ref DA1 Sign2 CD2 V SS DA2 3 7 4 8 2 9 20 16 19 15 21 14 V CC 20 V MM1 MM2 Phase 1 CD1 V R1 MA1 4 MB1 1 NJM3771 MA2 Phase 2 CD 2 V R2 RC GND 12 18 3 +5 V 15 kΩ 5, 6, 17, 18 3 300 pF GND (V CC ) MB2 C1 E1 2 10 C2 22 STEPPER MOTOR E2 1 kΩ 820 pF 820 pF RS 19 21 13 1 kΩ 1.0 Ω 10 µF 1.0 Ω Pin numbers refer to DIP package. RS GND (V MM ) Figure 14. Typical application in a microprocessor based system. The specifications on this databook are only given for information , without any guarantee as regards either mistakes or omissions. The application circuits in this databook are described only to show representative usages of the product and not intended for the guarantee or permission of any right including the industrial rights.