AMIS-30622 I2C Microstepping Motordriver Data Sheet General Description The chip receives high-level positioning instructions through the interface and subsequently drives the motor coils until the desired position is reached. The on-chip position controller is configurable (OTP and Interface) for different motor types, positioning ranges and parameters for speed, acceleration and deceleration. The AMIS-30622 acts as a slave on the bus and the master can fetch specific status information like actual position, error flags, etc. from each individual slave node. The AMIS-30622 is a member of a stepper motordriver family with position controller and control/diagnostics interface integrated in one single chip. The family consists of two products: • AMIS-30621 with LIN interface, ready to build dedicated mechatronics solutions connected remotely with a LIN master. • AMIS-30622 with SERIAL interface, ready to act as peripheral device next to a microcontroller. Features Motordriver Serial interface • Microstepping (1/2, 1/4, 1/8, 1/16) • Low resonance & noise • High resolution • Programmable peak current up to 800mA • 20kHz PWM current-control • Automatic selection of fast & slow decay mode • Internal fly-back FETs • Fully integrated current sense • 8V-29V supply voltage • Automotive compliant • Full diagnostics and status information • 2-wire serial interface • 5V microcontroller compatible • Up to 32 node addresses • 5V regulator with wake-up on LIN activity Protection • Over-current protection • Under-voltage management • Over-voltage protection • High-temp warning and shutdown • Low-temp warning • LIN bus short-circuit protection to supply & ground Controller with RAM and OTP memory • Position controller • Configurable speeds, acceleration and deceleration • Flexible hold-current • Movement/position sensor-input • Optional stall detection Power Saving • Power-down supply current <50µA • 5V regulator with wake-up on LIN activity EMI compatibility • Power drivers with slope control Applications and Benefits demands on the master microcontroller. The bus structure simplifies PCB track-layout and/or wiring architectures. The AMIS-30622 is ideally suited for small positioning applications. Target markets include: automotive (headlamp alignment, HVAC, idle control, cruise), industrial equipment (lighting, fluid control, labeling, process, XYZ tables) and building automation (HVAC, surveillance, satellite dish positioning). Suitable applications typically have multiple axes or require mechatronic solutions with the driver chip mounted directly on the motor. Microstepping operation removes the design trade-off between minimal operation speed and avoiding the risk of noise and step-loss due to resonance phenomena. The stalldetection feature (optional) offers silent, yet accurate position-calibrations during the referencing run and allows semi-closed loop operation when approaching the mechanical end-stops. The high abstraction level of the products’ command set reduces the load of the processor on the master side. Scaling of the application towards number of axes is straight-forward: hardware - and software designs are extended in a modular way, without severely effecting the All these benefits result in reduced system-cost and timeto-market and improved technical performance. Ordering Information Part N° AMIS-30622 Package SOIC-20 Peak Current 800mA Temp. Range -40°C…125°C AMI Semiconductor - Rev. 2.3 www.amis.com 1 AMIS-30622 I2C Microstepping Motordriver Data Sheet Table of Contents 1. Quick Reference Data 1.1 Absolute Maximum Ratings 1.2 Operating Ranges 2. Block Diagram 3. Pin-out 4. Package Thermal Resistance 4.1 SO20 5. DC-Parameters 6. AC-Parameters 7. Typical Application 8. Positioning Data 8.1 Stepping Modes 8.2 Maximum Velocity 8.3 Minimum Velocity 8.4 Acceleration and Deceleration 8.5 Positioning 8.5.1 Position Ranges 8.5.2 Secure Position 8.5.3 Shaft 9. Functional Description 9.1. Structure Description 9.1.1 Stepper Motordriver 9.1.2 Control Logic (Position Controller and Main Control) 9.1.3 Miscellaneous 9.2 Functions Description 9.2.1 Position Controller 9.2.1.1 Positioning and Motion Control 9.2.1.2 Position Initialization 9.2.1.3 External Switch and HW Pin 9.2.2 Main Control and Register, OTP Memory + RAM 9.2.2.1 Power-up Phase 9.2.2.2 Reset State 9.2.2.3 Soft Stop 9.2.2.4 Thermal Shutdown Mode 9.2.2.5 Temperature Management 9.2.2.6 Battery Voltage Management 9.2.2.7 Motor Shutdown Mode 9.2.2.8 9.2.2.9 9.2.2.10 9.2.2.11 9.2.2.12 3 3 3 3 4 4 4 5 6 7 8 8 8 8 9 9 9 10 10 10 10 10 10 10 11 11 11 13 14 10. 11. 15 15 15 15 15 15 16 17 12. 13. Document History Version 2.0 2.1 2.2 2.3 Date of Version March 4th, 2003 April 2nd, 2003 April 3rd, 2003 May 28th, 2003 AMI Semiconductor - Rev. 2.3 www.amis.com 2 RAM Registers Flags Table Application Commands Priority Encoder Application Parameters Stored in OTP Memory 9.2.2.13 OTP Memory Structure 9.2.3 Motordriver 9.2.3.1 Current Waveforms in the Coils 9.2.3.2 PWM Regulation 9.2.3.3 Motor Starting Phase 9.2.3.4 Motor Stopping Phase 9.2.3.5 Charge Pump Monitoring 9.2.3.6 Electrical Defect on Coils, Detection and Confirmation 9.2.4 Inter-IC Control (I2C) Bus 9.2.4.1 Physical Layer 9.2.4.2 Communication on 2-wire Serial Bus Interface 9.2.4.3 Physical Address of the Circuit 9.2.4.4 Write Data to AMIS-30622 9.2.4.5 Read Data from AMIS-30622 9.2.4.6 Timing and Electrical Characteristics of the Serial Interface 9.2.4.7 Description of Application Commands 9.2.4.8 Command Overview 9.2.4.9 Commands Description Features 10.1 Position Periodicity Resistance to Electrical and Electromagnetic Disturbances 11.1 Electrostatic Discharges 11.2 Schäffner Pulses 11.3 EMC 11.4 EMI 11.5 Power Supply Micro-Interruptions Packages Outline Conditioning 18 19 20 21 23 24 25 25 25 25 26 26 26 27 27 27 28 28 28 28 29 29 29 34 34 34 34 34 34 35 35 35 35 AMIS-30622 I2C Microstepping Motordriver 1.0 Quick Reference Data 1.1. Absolute Maximum Ratings Parameter Vbb Supply voltage Tamb Ambient temperature under bias (2) Tst Storage temperature Vesd Electrostatic discharge voltage on all pins (3) -2 Min -0.3 -50 -55 +2 Max +40(1) +150 +160 kV Unit V °C °C Min +6.5 -40 -40 Max +29 +125 +85 Unit V °C °C Notes (1) For limited time: < 0.5 s. (2) The circuit functionality is not guaranteed. (3) Human body model (100 pF via 1.5 kΩ, according to MIL std. 883E, method 3015.7). 1.2. Operating Ranges Parameter Vbb Supply voltage (1) Top Operating temperature range Vbb ≤ 18V Vbb ≤ 29V Notes (1) Motordriver is disabled when Vbb < 8.9V. 2.0 Block Diagram AMI Semiconductor - Rev. 2.3 www.amis.com 3 Data Sheet AMIS-30622 I2C Microstepping Motordriver 3.0 Pin-out SOIC-20 Pin Name SDA SCK VDD GND TST1 TST2 HW CPN CPP VCP VBB MOTYN MOTYP MOTXN MOTXP SWI Pin Description Serial I/O Clock for SDA Internal supply (needs external decoupling capacitor) Ground, heat sink Test pin (to be tied to ground in normal operation) Test pin (to be left open in normal operation) Hardwired address bit Negative connection of pump-capacitor (charge pump) Positive connection of pump-capacitor (charge pump) Charge-pump filter-capacitor Battery voltage supply Negative end of phase Y coil Positive end of phase Y coil Negative end of phase X coil Positive end of phase X coil Switch input SOIC-20 1 2 3 4,7,14,17 5 6 8 9 10 11 12, 19 13 15 16 18 20 4.0 Package Thermal Resistance 4.1. SO20 The junction-case thermal resistance is 28°C/W, leading to a junction-ambient thermal resistance of 63°C/W, with the PCB ground plane layout condition given on the figure beside, and with: • PCB thickness = 1.6mm • 1 layer • Copper thickness = 35µm AMI Semiconductor - Rev. 2.3 www.amis.com 4 Data Sheet AMIS-30622 I2C Microstepping Motordriver Data Sheet 5.0 DC Parameters The DC parameters are given for Vbb and temperature in their operating ranges. Convention: currents flowing in the circuit are defined as positive. Symbol Motordriver Pin(s) IMSmax Peak IMSmax RMS IMSabs IMSrel MOTXP MOTXN MOTYP MOTYN RDSon Parameter Max current trough motor coil in normal operation Max RMS current trough coil in normal operation Absolute error on coil current Error on current ratio Icoilx / Icoily On resistance for each pin (including bond wire) Pull down current IMSL Thermal Warning & Shutdown Ttw Thermal warning Ttsd Thermal shutdown (1) Tlow Low temperature warning Supply & Voltage Regulator Vbb Nominal operating supply range (2) VbbOTP Supply voltage for OTP zapping UV1 Stop voltage high threshold VBB UV2 Stop voltage low threshold Ibat Total current consumption Vdd Internal regulated output (3) IddStop VDD Digital current consumption VddReset Digital supply reset level (4) IddLim Current limitation Switch Input and Hardwire Address Input Rt_OFF Switch OFF resistance (5) Rt_ON Switch ON resistance (5) SWI Vbb range for guaranteed Vbb_sw HW operation of SWI and HW Vmax_sw Maximum voltage Ilim_sw Current limitation Serial Interface Pins VIL Input level low (6) VIH Input level high (7) Noise margin at the LOW level VnL SDA for each connected device SCK (including hysteresis) Noise margin at the HIGH level VnH for each connected device (including hysteresis) Charge Pump Vcp Cpump CPP CPN Typ To be confirmed by characterization HZ mode 570 mA 145 Ttw+10 Ttw-155 6.5 9.0 8.0 8.5 10 4.75 5 % % 1 Ω mA 152 °C °C °C 18 10.0 9.8 9.0 V V V V mA 5.35 V 4.4 40 mA V mA 2 kΩ kΩ 29 V 40V V mA 0.3 Vdd Vdd + 0.5 V V 10 6 T < 1s Short to Gnd or Vbat 30 -0.5 0.7 Vdd Vbb > 15V Vbb > 8V 10 7 2 Pin shorted to ground Switch to Gnd or Vbat, Unit mA 1 138 Unloaded outputs 8V < Vbb < 18V Cload = 1µF (+100nF cer.) Vbb < UV2 Max 800 -10 -7 0.1VDD V 0.2VDD V Vbb+15 External buffer capacitor 470 V V nF External pump capacitor 220 470 nF Notes (1) No more than 100 cumulated hours in life time above Ttsd. (2) Communication over serial bus is operating. Motordriver is disabled when Vbb < UV2. (3) Pin VDD must not be used for any external supply. (4) The RAM content will not be altered above this voltage. AMI Semiconductor - Rev. 2.3 www.amis.com Min Vbb+10 Vbb+12.5 Vbb+5.8V 220 Output voltage VCP Cbuffer Test Conditions (5) External resistance value seen from pin SWI or HW, including 1kΩ series resistor. (6) If input voltage ≤ 0.3V, then a resistor of 22 to 100Ω must be added in series. (7) In case 100kHz ≤ fSCL ≤ 360kHz VIH min = 0.7VDD. 5 AMIS-30622 I2C Microstepping Motordriver Data Sheet 6.0 AC Parameters The AC parameters are given for Vbb and temperature in their operating ranges. Symbol Pin(s) Power-up Tpu Internal Oscillator fosc I2C Transceiver Parameter fSCL SCL clock frequency tHD;STA Hold time (repeated) START condition. After this period, the first clock pulse is generated. Frequency of internal oscillator LOW period of the SCK clock tHIGH HIGH period of the SCK clock tSU;STA Set-up time for a repeated START condition tSU;DAT Data set-up time SDA SCK tf tSU;STO Rise time of both SDA and SCK signals (1) Fall time of both SDA and SCK signals (1) Set-up time for STOP condition tBUF Bus free time between a STOP and START condition Pulse width of spikes which must tSP be suppressed by the input filter Cb Capacitive load for each bus line Ci Capacitance for each I/O pin Switch Input and Hardwire Address Input Tsw SWI Scan pulse period (2) Tsw_on HW Scan pulse duration Motordriver fpwm PWM frequency (2) Tbrise MOTxx Turn-on transient time Tbfall Turn-off transient time Charge Pump CPN fCP Charge pump frequency (2) CPP 3.6 Typ 4.0 Max Unit 10 ms 4.4 MHz 100 360 kHz kHz µs fSCL ≤ 100kHz fSCL ≤ 360kHz fSCL ≤ 100kHz fSCL ≤ 360kHz 0 0 4.0 0.6 µs fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ fSCL ≤ 4.7 1.3 4.0 0.6 4.7 0.6 250 100 µs µs µs µs µs µs ns ns ns ns ns ns µs µs µs µs 100kHz 360kHz 100kHz 360kHz 100kHz 360kHz 100kHz 360kHz 100kHz 360kHz 100kHz 360kHz 100kHz 360kHz 100kHz 360kHz 20+0.1Cb 20+0.1Cb 4.0 0.6 4.7 1.3 1000 300 300 300 50 ns 400 10 1024 1/16 18 Between 10% and 90% 20 350 250 250 Notes (1) Cb = total capacitance of one bus line in pF. (2) Derived from the internal oscillator. AMI Semiconductor - Rev. 2.3 www.amis.com Min Power-up time tLOW tr Test Conditions 6 pF pF µs Tsw 22 kHz ns ns kHz AMIS-30622 I2C Microstepping Motordriver Data Sheet 7.0 Typical Application Notes (1) Optionally an external switch to Vbat or GND can be connected to the SWI pin. (2) Resistors tolerance: ± 5%. (3) Depending on the application the ESR value of the 1µF and 100µF capacitors must be carefully chosen. The working voltage of the 100µF capacitor depends on the maximum Vbat value. AMI Semiconductor - Rev. 2.3 www.amis.com (4) 100nF capacitors must be close to pins VBB and VDD. (5) 220nF capacitors must be as close as possible to pins CPN, CPP, VCP, and VBB to reduce EMC radiation. (6) If SDA and/or SCK input voltage ≤ 0.3V, then a resistor of 22 to 100Ω must be added in series. 7 AMIS-30622 I2C Microstepping Motordriver Data Sheet 8.0 Positioning Data 8.1 Stepping Modes 8.2 Maximum Velocity One of four possible stepping modes can be programmed: • Half-stepping • 1/4 micro-stepping • 1/8 micro-stepping • 1/16 micro-stepping For each stepping mode, Vmax can be programmed to 16 possible values given in the table below. The accuracy of Vmax is derived from the internal oscillator. Under special circumstances it is possible to change the Vmax parameter while a motion is ongoing. All 16 entries for the Vmax parameter are divided into four groups. When changing Vmax during a motion the application must take care that the new Vmax parameter stays within the same group. Vmax Index Vmax (Full Step/s) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 99 136 167 197 213 228 243 273 303 334 364 395 456 546 729 973 Group A B C D Stepping Mode 1/ th Micro-stepping 8 (micro-step/s) (micro-step/s) 395 790 546 1091 668 1335 790 1579 851 1701 912 1823 973 1945 1091 2182 1213 2426 1335 2670 1457 2914 1579 3159 1823 3647 2182 4364 2914 5829 3891 7782 1/ th Micro-stepping 4 Half-Stepping (half-step/s) 197 273 334 395 425 456 486 546 607 668 729 790 912 1091 1457 1945 1/ th Micro-stepping 16 (micro-step/s) 1579 2182 2670 3159 3403 3647 3891 4364 4852 5341 5829 6317 7294 8728 11658 15564 8.3 Minimum Velocity obtainable values in Full-step/s. The accuracy of Vmin is derived from the internal oscillator. Once Vmax is chosen, 16 possible values can be programmed for Vmin. The table below provides the Vmax Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Vmax Factor 1 1/32 2/32 3/32 4/32 5/32 6/32 7/32 8/32 9/32 10/32 11/32 12/32 13/32 14/32 15/32 99 99 3 6 9 12 15 18 21 24 28 31 34 37 40 43 46 136 136 4 8 12 16 21 25 30 33 38 42 47 51 55 59 64 167 167 5 10 15 20 26 31 36 41 47 51 57 62 68 72 78 197 197 6 11 18 24 31 36 43 49 55 61 68 73 80 86 93 213 213 6 12 19 26 32 39 46 52 59 66 72 79 86 93 99 228 228 7 13 21 28 35 42 50 56 64 71 78 85 93 99 107 Vimax (Full Step/s) 273 303 334 273 303 334 8 8 10 15 17 19 25 27 31 32 36 40 42 46 51 50 55 61 59 65 72 67 74 82 76 84 93 84 93 103 93 103 114 101 113 124 111 122 135 118 132 145 128 141 156 243 243 7 14 22 30 37 45 52 60 68 75 83 91 98 106 113 Notes (1) The Vmax factor is an approximation. (2) In case of motion without acceleration (AccShape = 1) the length of the steps = 1/Vmin. In case of accelerated AMI Semiconductor - Rev. 2.3 www.amis.com 364 364 10 21 32 44 55 67 78 90 101 113 124 135 147 158 170 395 395 11 23 36 48 61 72 86 97 111 122 135 147 160 172 185 456 456 13 27 42 55 71 84 99 113 128 141 156 170 185 198 214 546 546 15 31 50 65 84 99 118 134 153 168 187 202 221 237 256 729 729 19 42 65 88 111 134 156 179 202 225 248 271 294 317 340 973 973 27 57 88 118 149 179 210 240 271 301 332 362 393 423 454 motion (AccShape = 0) the length of the first step is shorter than 1/Vmin depending of Vmin, Vmax and Acc. 8 AMIS-30622 I2C Microstepping Motordriver Data Sheet 8.4 Acceleration and Deceleration step/s2. One observes restrictions for some combination of acceleration index and maximum speed (gray cells). The accuracy of Acc is derived from the internal oscillator. Sixteen possible values can be programmed for Acc (acceleration and deceleration between Vmin and Vmax). The table below provides the obtainable values in Full- 99 136 167 197 213 228 243 273 303 334 Acceleration (Full Step/s2) 106 218 1004 3609 6228 8848 11409 13970 16531 19092 21886 24447 27008 29570 ➔ Vmax (FS/s) ‘ ACC Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 14785 49 364 395 456 546 729 973 473 735 34925 40047 29570 The formula to compute the number of equivalent Full-step during acceleration phase is: 8.5 Positioning described in the table below. When using command GotoSecurePosition, data is automatically aligned. The position programmed in command SetPosition is given as a number of (micro)steps. According to the chosen stepping mode, the position words must be aligned as Stepping Mode 1/16th 1/8th 1/4th Half-stepping SecurePosition Position Word: Pos [15 : 0] S S S S S B14 B13 B12 B11 B9 B13 B12 B11 B10 B8 B12 B11 B11 B10 B10 B9 B9 B8 B7 B6 B10 B9 B8 B7 B5 B9 B8 B7 B6 B4 B8 B7 B6 B5 B3 B7 B6 B5 B4 B2 B6 B5 B4 B3 B1 Shift B5 B4 B3 B2 LSB B4 B3 B2 B1 0 B3 B2 B1 LSB 0 B2 B1 LSB 0 0 B1 LSB 0 0 0 LSB 0 0 0 0 No shift 1-bit left ↔ x2 2-bit left ↔ x4 3-bit left ↔ x8 No shift 8.5.1 Position Ranges chosen stepping mode, the position range will be as shown in the table below. A position is coded by using the binary two’s complement format. According to the positioning commands which are used (see § 9.2.2.10 Application Commands) and to the Command SetPosition Stepping Mode Half-stepping 1/4th micro-stepping 1/8th micro-stepping 1/16th micro-stepping Position Range -4096 to +4095 -8192 to +8191 -16384 to +16383 -32768 to +32767 Number of Bits 13 14 15 16 left by a certain number of bits, according to the chosen stepping mode. When using the command SetPosition, although coded on 16 bits, the position word will have to be shifted on the AMI Semiconductor - Rev. 2.3 www.amis.com Full Range 8192 half-steps 16384 micro-steps 32768 micro-steps 65536 micro-steps 9 AMIS-30622 I2C Microstepping Motordriver Data Sheet 8.5.2 Secure Position shown in the table GotoSecurePosition. A secure position can be programmed. It is coded on 11-bit, thus having a lower resolution than normal positions, as Stepping Mode Half-stepping 1/4th micro-stepping 1/8th micro-stepping 1/16th micro-stepping below. See command Secure Position Resoultion 4 half-steps 8 micro-steps (1/4th) 16 micro-steps (1/8th) 32 micro-steps (1/16th) Important note The secure position is disabled in case the programmed value is the reserved code “10000000000” (most negative position). 8.5.3 Shaft A shaft bit can be programmed to define whether a positive motion is an outer or an inner motion: • Shaft = 0 ➞ MOTXP is used as positive pin of the X coil, while MOTXN is the negative one. • Shaft = 1 ➞ opposite situation. 9.0 Functional Description 9.1 Structure Description 9.1.1 Stepper Motordriver 9.1.2 Control Logic (Position Controller and Main Control) The motordriver receives the control signals from the control logic. It mainly features: • Two H-bridges designed to drive a two separated coils stepper motor. Each coil (X and Y) is driven by one Hbridge, and the driver controls the currents flowing through the coils. • The rotational position of the rotor, in unloaded condition, is defined by the ratio of current flowing in X and Y. The torque of the stepper motor when unloaded is controlled by the magnitude of the currents in X and Y. • The control block for the H-bridges including the PWM control, the synchronous rectification and the internal current sensing circuitry. • The charge pump to allow driving of the H-bridges’ high side transistors. • Two pre-scale 4-bit DACs to set the maximum magnitude of the current through X and Y. • Two DACs to set the correct current ratio through X and Y. The control logic block stores the information provided by the I2C interface (in the RAM or OTP memory) and digitally controls the positioning of the stepper motor in terms of speed and acceleration, by feeding the right signals to the motordriver state machine. It will take into account the successive positioning commands to initiate or stop properly the stepper motor in order to reach the set point in a minimum time. It also receives feedback from the motordriver part in order to manage possible problems and decide about internal actions and reporting to the I2C interface. 9.1.3 Miscellaneous The AMIS-30622 also implements the followings: • An internal oscillator, needed for the Control logic and for the PWM control of the motordriver. • An internal trimmed voltage source for precise referencing. • A protection block featuring a Thermal Shutdown and a Power-on-reset circuit. • A 5V regulator (from the battery supply) to supply the internal logic circuitry. Battery voltage monitoring is also performed by this block, which provides needed information to the control logic part. The same applies for detection and reporting of an electrical problem that could occur on the coils or the charge pump. AMI Semiconductor - Rev. 2.3 www.amis.com 10 AMIS-30622 I2C Microstepping Motordriver 9.2.1 Position Controller 9.2 Functions Description This chapter describes the four most important blocks: • Position controller • Main control and register, OTP memory + RAM • Motordriver • I2C controller Parameter Pmax - Pmin Zero Speed Hold Current Maximum Current Acceleration and Deceleration Vmin Vmax AMI Semiconductor - Rev. 2.3 www.amis.com Data Sheet 9.2.1.1 Positioning and Motion Control A positioning command will produce a motion as illustrated below. A motion starts with an acceleration phase from minimum velocity (Vmin) to maximum velocity (Vmax), and ends with a symmetrical deceleration. This is defined by the Control logic according to the position required by the application and to the parameters programmed by the application during configuration phase. The current in the coils is also programmable. Value See § 8.5 See § 9.2.2.12 (Ihold) See § 9.2.2.12 (Irun) See § 8.4 See § 8.3 See § 8.2 11 AMIS-30622 I2C Microstepping Motordriver Different positioning examples are shown in the table below. Short motion New positioning command in same direction, shorter or longer, while a motion is running at maximum velocity New positioning command in same direction while in deceleration phase Note There is no wait time between the deceleration phase and the new acceleration phase. New positioning command in reverse direction while motion is running at maximum velocity New positioning command in reverse direction while in deceleration phase New velocity programming while motion is running AMI Semiconductor - Rev. 2.3 www.amis.com 12 Data Sheet AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.1.2 Position Initialization After power-up or when a Vdd reset has been acknowledged to the master, a position initialization of the stepper motor can be requested by the application, by use of the RunInit command (see § 0). The position initialization is performed by the position controller under the control of the Main control block. This operation cannot be interrupted or influenced by any further command. A position initialization can only be interrupted by the occurrence of the conditions driving to a motor shutdown (see § 9.2.2.7) or by a HardStop command. On the other hand, sending a RunInit command while a motion is already ongoing is not recommended. The first motion is done with the specified Vmin and Vmax velocities in the RunInit command, with the acceleration (deceleration) parameter already in RAM, to a position Pos1[15:0] also specified in RunInit. The goal here is to perform a motion large enough to reach a stall position (considered to be the reference position). (3) Commands such as GetActualPos or GetStatus will be executed while the position initialization is running. (4) An initialization sequence starts by setting TagPos register to SecPos value, provided secure position is enabled otherwise TagPos is reset to zero. (5) The acceleration/deceleration value applied during an initialization sequence is the one stored in RAM before the RunInit command is sent. The same applies for Shaft bit, but not for Irun, Ihold and StepMode, which can be changed during an initialization sequence. (6) The Pos1, Pos2, Vmax and Vmin values programmed in a RunInit command apply only for this initialization sequence. All further positioning will use the parameters stored in RAM (programmed for instance by a former SetMotorParam command). (7) Commands ResetPosition, RunInit and SoftStop will be ignored while an initialization sequence is ongoing, and will not be executed afterwards. (8) A SetMotorParam command should not be sent during an initialization sequence. (9) If for some reason ActPos equals Pos1[15:0] at the moment the RunInit command is issued, the circuit will enter in deadlock state. Therefore, the application should check the actual position by a GetPosition or a GetFullStatus command prior to an initialization. Another solution may consist in programming a value out of the stepper motor range for Pos1[15:0]. A position initialization consists of two successive motions, as illustrated below. Then a second motion to a position Pos2[15:0] is done at the specified Vmin velocity in the RunInit command (no acceleration). The purpose of this second motion is to confirm with a low velocity the positioning of the motor at the stall position, assuming that the stepper motor may have bounced against the stall position. Therefore, Pos2 should only be a few half or micro steps further than Pos1, in order to perform a displacement of at least one electrical period. Once the second motion is achieved, the ActPos register (see § 0) is reset to zero, to set the reached position as the reference position, whereas TagPos register is not changed. Notes (1) The priority encoder (see 9.2.2.11 Priority Encoder) is describing the management of states and commands. The notes below are to be considered illustrative. (2) The last SetPosition command issued during an initialization sequence will be kept in memory and executed afterwards. This applies also for the commands SetMotorParam and GotoSecurePosition. AMI Semiconductor - Rev. 2.3 www.amis.com 13 AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.1.3 External Switch and HW Pin Pin SWI and hardwired address pin HW (see § 9.2.4.3 Physical Address) will alternatively attempt to source and sink a current in/from the external switch (see application schematic) to test whether it is ON or OFF. This current is set around 10mA when a 1kΩ external series resistor is used. If the switch is detected ON (closed), then the flag <ESW> is raised. The status of this flag can be read by the application via a GetActualPos or a GetFullStatus1 reading frame. At the falling edge of every current pulse (at around 1kHz), the stepper motor actual position is refreshed (register ActPos, see § 9.2.2.9), so that the master node may get synchronous information about the state of the switch together with the position of the motor. The position is then given with an accuracy of ± 1 half-step (or microstep, depending of the programmed stepping mode). The block diagram below shows how this function is implemented for HW. This can be represented by the following time diagram (the timings are given in § 6). With the following truth table: State Float Float Float Float HWLo HWLo HWLo HWLo HWHi HWHi HWHi HWHi Sink 1 1 0 0 1 1 0 0 1 1 0 0 Source 0 0 1 1 0 0 1 1 0 0 1 1 New State Float HWHi Float HWLo HWLo HWHi Float HWLo Float HWHi HWHi HWLo HWHi HWLo address = "1" address = "0" note that e.g. if HW is connected to GND, LS-part will report "float" while HS-part will report "low resistance detected". Note If HW is detected to be floating, motion to the secure position is performed. AMI Semiconductor - Rev. 2.3 www.amis.com 14 AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.2 Main Control and Register, OTP Memory + RAM 9.2.2.1 Power-up Phase The circuit is then ready to execute a new positioning command, provided thermal and electrical conditions allow for it. Power-up phase of the AMIS-30622 will not exceed 10ms. After this phase, the AMIS-30622 is in Shutdown mode, ready to receive I 2 C messages and to execute the associated commands. After power-up, the registers and flags are in the Reset state, some of them being loaded with the OTP memory content (see § 9.2.2.13 OTP Memory Structure) 9.2.2.4 Thermal Shutdown Mode When thermal shutdown occurs, the circuit performs a SoftStop command and goes to motor shutdown mode (see below). 9.2.2.2 Reset State After power-up, or after a reset occurrence (e.g. a micro cut on pin VBB has made Vdd to go below VddReset level), the H-bridges will be in high impedance mode and the registers and flags will be in a predetermined position. See also § 9.2.2.7 Motor Shutdown Mode and Digital Supply Reset in § 9.2.2.9 Flags Table. 9.2.2.5 Temperature Management The AMIS-30622 monitors temperature by mean of two thresholds and one shutdown level, as illustrated in the state diagram below. The only condition to reset flags <TW> and <TSD> (respectively Thermal Warning and Thermal Shutdown) is to be at a temperature lower than Ttw and to get the occurrence of a GetFullStatus1 command. 9.2.2.3 Soft Stop A Soft Stop is an immediate interruption of a motion, but with a deceleration phase. At the end of this action, the register TagPos is loaded with the value contained in register ActPos to avoid an attempt of the circuit to achieve the motion (see § 9.2.2.9 Flags Table). AMI Semiconductor - Rev. 2.3 www.amis.com 15 AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.2.6 Battery Voltage Management <UV2> and <StepLoss> is to recover a battery voltage higher than UV1 and to receive a GetFullStatus1 command. The AMIS-30622 monitors the battery voltage by mean of one threshold and one shutdown level, as illustrated in the state diagram below. The only condition to reset flags AMI Semiconductor - Rev. 2.3 www.amis.com 16 AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.2.7 Motor Shutdown Mode A motor shutdown occurs when: 1. The chip temperature rises above the thermal shutdown threshold Ttsd (see § 5 DC-Parameters). 2. The battery voltage goes below UV2 (see § 5 DC Parameters). 3. Flag <ElDef> = ‘1’, meaning an electrical problem is detected on one or both coils. 4. Flag <CPFail> = ‘1’, meaning there is a charge pump failure. This can be illustrated in the following sequence given as an application tip. The Master can check whether there is a problem or not and decide which application strategy to adopt. A motor shutdown leads to the followings: • H-bridges in high impedance mode. • The TagPos register is loaded with the ActPos (to avoid any motion after leaving the motor shutdown mode) Warning The application should limit the number of consecutive GetFullStatus1 commands to try to get the AMIS-30622 out of Shutdown mode when this proves to be unsuccessful, e.g. there is a permanent defect. The reliability of the circuit could be altered since GetFullStatus1 attempts to disable the protection of the H-bridges. Important While in shutdown mode, since there is no hold current in the coils, the mechanical load can cause a step loss, which indeed cannot be flagged by the AMIS-30622. The I 2C interface remains active, being able to receive orders or send status. Note The priority encoder (see § 9.2.2.11 Priority Encoder) is describing the management of states and commands. The table above is to be considered illustrative. The conditions to get out of a motor shutdown mode are: • Reception of a GetFullStatus1 command AND • The four above causes are no more detected. Which leads to H-bridges in Ihold mode. Hence the circuit is ready to execute any positioning command. AMI Semiconductor - Rev. 2.3 www.amis.com 17 AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.2.8 RAM Registers Register Mnemonic Length (bit) Actual Position ActPos 16 Last Programmed Position Pos/ TagPos 16/11 Acceleration Shape AccShape 1 Coil peak Current Irun 4 Coil Hold Current Ihold 4 Minimum Velocity Vmin 4 Maximum Velocity Vmax 4 Shaft Shaft 1 Acceleration/ Deceleration Acc 4 Secure Position SecPos 11 Stepping Mode StepMode 2 Related Commands GetActualPos GetFullStatus2 GotoSecurePos ResetPosition GetFullStatus2 GotoSecurePos ResetPosition SetPosition GetFullStatus1 ResetToDefault1 SetMotorParam GetFullStatus1 ResetToDefault1 SetMotorParam GetFullStatus ResetToDefault1 SetMotorParam GetFullStatus1 ResetToDefault1 SetMotorParam GetFullStatus1 ResetToDefault1 SetMotorParam GetFullStatus1 ResetToDefault1 SetMotorParam GetFullStatus1 ResetToDefault1 SetMotorParam GetFullStatus2 ResetToDefault1 SetMotorParam GetFullStatus1 ResetToDefault1 SetMotorParam Note (1) A ResetToDefault command will act as a reset of the RAM content, except for ActPos and TagPos registers that are not modified. Therefore, the application should not send a ResetToDefault during a motion, to avoid any unwanted change of parameter. AMI Semiconductor - Rev. 2.3 www.amis.com 18 Comment Reset State - 16-bit signed (1) - 16-bit signed or - 11-bit signed for half stepping (see § 8.5) ‘0’ ➞ normal acceleration from Vmin to Vmax ‘1’ ➞ motion at Vmin without acceleration '0' Operating current (see § 9.2.2.12) Standstill current (see § 9.2.2.12) See § 8.3 and § 9.2.2.12 (look-up table) See § 8.2 and § 9.2.2.12 (look-up table) Direction of movement for positive velocity See § 8.4 and § 9.2.2.12 (look-up table) Target position when I2C connection fails; 11 MSBs of 16-bit position (LSBs fixed to ‘0’) See § 8.1 and § 9.2.2.12 From OTP memory AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.2.9 Flags Table Register Mnemonic Length (bit) Related Commands Charge Pump Failure CPFail 1 GetFullStatus Electrical Defect ElDef 1 GetActualPos GetStatus GetFullStatus1 External Switch Status ESW 1 GetActualPos GetStatus GetFullStatus1 Electrical Flag HS 1 Internal use Motion Status Motion 3 GetFullStatus1 OVC1 1 GetFullStatus1 OVC2 1 GetFullStatus1 SecEn 1 Internal use Step Loss StepLoss 1 Motor Stop Stop 1 Temperature Info Tinfo 2 Thermal Shutdown TSD 1 Thermal Warning TW 1 Battery Stop Voltage UV2 1 VddReset 1 Over Current in Coil X Over Current in Coil Y Secure Position Enabled Digital Supply Reset AMI Semiconductor- Rev. 2.3 www.amis.com GetActualPos GetStatus GetFullStatus1 Internal use GetActualPos GetStatus GetFullStatus1 GetActualPos GetStatus GetFullStatus1 GetActualPos GetStatus GetFullStatus1 GetActualPos GetStatus GetFullStatus1 GetActualPos GetStatus GetFullStatus1 19 Comment ‘0’ = charge pump OK ‘1’ = charge pump failure reset only after GetFullStatus1 <OVC1> or <OVC2> or <open circuit 1> or <open circuit 2> or <CPFail> resets only after GetFullStatus1 ‘0’ = open ‘1’ = close <CPFail> or <UV2> or <ElDef> or <VDDreset> “x00” = Stop “001” = inner motion acceleration “010” = inner motion deceleration “011” = inner motion max. speed “101” = outer motion acceleration “110” = outer motion deceleration “111” = outer motion max. speed ‘1’ = over current reset only after GetFullStatus1 ‘1’ = over current reset only after GetFullStatus1 ‘0’ if SecPos = “100 0000 0000” ‘1’ otherwise Reset State ‘0’ ‘1’ ‘0’ ‘0’ “000” ‘1’ ‘1’ n.a. ‘1’ = step loss due to under voltage, over current or open circuit ‘1’ See § 9.2.2.11 “00” = normal temperature range “01” = low temperature warning “10” = high temperature warning “11” = motor shutdown ‘1’ = shutdown (> 155°C typ.) reset only after GetFullStatus1 and if <Tinfo> = “00” ‘1’ = over temp. (> 145°C) reset only after GetFullStatus1 and if <Tinfo> = “00” ‘0’ = Vbb > UV2 ‘1’ = Vbb ≤ UV2 reset only after GetFullStatus1 Set at ‘1’ after power-up of the circuit. If this was due to a supply micro-cut, may have been lost; it warns that the RAM contents can be reset to ‘0’ with a GetFullStatus1 command. ‘0’ “00” ‘0’ ‘0’ ‘0’ ‘1’ AMIS-30622 I2C Microstepping Motordriver 9.2.2.10 Application Commands The I2C Master will have to use commands to manage the different application tasks the AMIS-30622 can feature. The commands summary is given in the table below. Command Mnemonic GetFullStatus1 GetFullStatus2 GetOTPParam GotoSecurePosition HardStop ResetPosition ResetToDefault RunInit SetMotorParam SetOTP SetPosition SoftStop AMI Semiconductor - Rev. 2.3 www.amis.com Function Returns complete status of the chip Returns actual, target and secure position Returns OTP parameters Drives motor to secure position Immediate full stop Sets actual position to zero Overwrites the chip RAM with OTP contents Reference Search Sets motor parameter Zaps the OTP memory Programmes a target Motor stopping with deceleration phase 20 Data Sheet AMIS-30622 I2C Microstepping Motordriver 9.2.2.11 Priority Encoder The table below describes the state management performed by the Main control block. ↔ AMI Semiconductor - Rev. 2.3 www.amis.com 21 Data Sheet AMIS-30622 I2C Microstepping Motordriver Notes (1) After Power-on-reset, the Shutdown state is entered. The Shutdown state can only be left after GetFullStatus1 command (so that the Master could read the <VddReset> flag). (2) A RunInit sequence runs with a separate set of RAM registers. The parameters that are not specified in a RunInit command are loaded with the values stored in RAM at the moment the RunInit sequence starts. AccShape is forced to ‘1’ during second motion even if a ResetToDefault command is issued during a RunInit sequence, in which case AccShape at ‘0’ will be taken into account after the RunInit sequence. A GetFullStatus1 command will return the default parameters for Vmax and Vmin stored in RAM. (3) Shutdown state can be left only when <TSD> and <HS> flags are reset. (4) Flags can be reset only after the master could read them via a GetFullStatus1 command, and provided the physical conditions allow for it (normal temperature, correct battery voltage and no electrical or charge pump defect). AMI Semiconductor - Rev. 2.3 www.amis.com Data Sheet (5) A SetMotorParam command sent while a motion is ongoing (state GotoPos) should not attempt to modify Acc and Vmin values. This can be done during a RunInit sequence since this motion uses its own parameters, the new parameters will be taken into account at the next SetPosition command. (6) <SecEn> = ‘1’ when register SecPos is loaded with a value different from the most negative value (i.e. different from 0x400 = “100 0000 0000”). (7) <Stop> flag allows distinguishing whether state Stopped was entered after HardStop/SoftStop or not. <Stop> is set to ‘1’ when leaving state HardStop or SoftStop and is reset during first clock edge occurring in state Stopped. (8) While in state Stopped, if ActPos ≠ TagPos there is a transition to state GotoPos. This transition has the lowest priority, meaning that <Stop>, <TSD>, etc. are first evaluated for possible transitions. (9) If <StepLoss> is active, then SetPosition and GotoSecurePosition commands are ignored (they will not modify TagPos register whatever the state), and motion to secure position is forbidden. Other command like RunInit or ResetPosition will be executed if allowed by current state. <StepLoss> can only be cleared by a GetFullStatus1 command. 22 AMIS-30622 I2C Microstepping Motordriver Irun 9.2.2.12 Application Parameters Stored in OTP Memory Except for the physical address AD[3:0] these parameters, although programmed in a non-volatile memory can still be overridden in RAM by a I2C writing operation. AD[4:0] Physical address of the stepper motor. Up to 32 Stepper-motors can theoretically be connected to the same I2C bus. Irun[3:0] Peak current value to be fed to each coil of the stepper motor. The table to the right provides the 16 possible values for IRUN. Ihold[3:0] Hold current for each coil of the stepper motor. The table to the right provides the 16 possible values for IHOLD. StepMode 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Peak current (mA) 0 59 1 71 0 84 1 100 0 119 1 141 0 168 1 200 0 238 1 283 0 336 1 400 0 476 1 566 0 673 1 800 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Hold current (mA) 0 59 1 71 0 84 1 100 0 119 1 141 0 168 1 200 0 238 1 283 0 336 1 400 0 476 1 566 0 673 1 800 StepMode 0 0 1 1 AMI Semiconductor - Rev. 2.3 www.amis.com 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Ihold Indicator of stepping mode to be used. 23 Data Sheet 0 1 0 1 Step mode Half stepping 1/4 micro step 1/8 micro step 1/16 micro step AMIS-30622 I2C Microstepping Motordriver Shaft Code Indicator of Reference Position. If Shaft = ‘0’, the reference position is the maximum inner position, whereas if Shaft = ‘1’, the reference position is the maximum outer position. 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 SecPos[10:0] Secure Position of the stepper motor. This is the position to which the motor is driven in case of a GotoSecurePosition command, or if the HW-pin is disconnected from Vbat or Gnd. If SecPos[10:0] = “100 0000 0000”, this means that Secure Position is disabled, e.g. the steppermotor will be kept in the position occupied at the moment these events occur. The Secure Position is coded on 11 bits only, providing actually the most significant bits of the position, the non coded least significant bits being set to ‘0’. Vmax[3:0] Data Sheet 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Vmin[3:0] Acc[3:0] 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Parameter Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 acceleration of the stepper motor are programmed by coding the respective Vmax, Vmin and Acc parameters index as defined in § 8 Positioning Data. Maximum velocity, minimum velocity and 9.2.2.13 OTP Memory Structure The table below shows how the parameters to be stored in the OTP memory are located. OTP Address 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 7 6 5 4 3 OSC3 OSC2 TSD2 OSC1 TSD1 OSC0 TSD0 Irun3 Vmax3 SecPos10 SecPos7 Irun2 Vmax2 SecPos9 SecPos6 Irun1 Vmax1 SecPos8 SecPos5 Irun0 Vmax0 Shaft SecPos4 IREF3 BG3 PA3 Ihold3 Vmin3 Acc3 SecPos3 StepMode1 0 IREF1 BG1 PA1 Ihold1 Vmin1 Acc1 SecPos1 LOCKBT IREF0 BG0 PA0 Ihold0 Vmin0 Acc0 SecPos0 LOCKBG Once OTP programming is completed, bit LOCKBG can be zapped, to disable future zapping, otherwise using a SetOTPparam command could still zap any OTP bit at ‘0’. Each OPT bit is at ‘0’ when not zapped. Zapping a bit will set it to ‘1’. Thus only bits having to be at ‘1’ must be zapped. Zapping of a bit already at ‘1’ is disabled. Protected Byte 0x00 to 0x01 0x00 to 0x07 The command used to load the application parameters via the I 2 C bus in the RAM prior to an OTP Memory programming is SetMotorParam. This allows for a functional verification before using a SetOTPparam command to program and zap separately one OTP memory byte. A GetOTPparam command issued after each AMI Semiconductor- Rev. 2.3 www.amis.com IREF2 BG2 PA2 Ihold2 Vmin2 Acc2 SecPos2 StepMode0 1 Each OTP byte will be programmed separately (see command SetOTPparam). Parameters stored at address 0x00 and 0x01 and bit LOCKBT are already programmed in the OTP memory at circuit delivery, they correspond to the calibration of the circuit and are just documented here as an indication. Lock Bit LOCKBT (zapped before delivery) LOCKBG 2 SetOTPparam command allows verifying the correct byte zapping. Note Zapped bits will really be “active” after a GetOTPparam or a ResetToDefault command or after a power-up. 24 AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.3 Motordriver 9.2.3.1 Current Waveforms in the Coils The figure below illustrates the current fed to the motor coils by the motordriver in half-step mode. Whereas the figure below shows the current fed to one coil in 1/16th microstepping (1 electrical period). 9.2.3.2 PWM Regulation 9.2.3.3 Motor Starting Phase In order to force a given current (determined by Irun or Ihold and the current position of the rotor) through the motor coil while ensuring high energy transfer efficiency, a regulation based on PWM principle is used. The regulation loop performs a comparison of the sensed output current to an internal reference, and features a digital regulation generating the PWM signal that drives the output switches. The zoom over one micro-step in the figure above shows how the PWM circuit performs this regulation. At motion start, the currents in the coils are directly switched from Ihold to Irun with a new sine/cos ratio corresponding to the first half (or micro) step of the motion. AMI Semiconductor - Rev. 2.3 www.amis.com 25 AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.3.4 Motor Stopping Phase At the end of the deceleration phase, the currents are maintained in the coils at their actual DC level (hence keeping the sine/cos ratio between coils) during 1/4th of an electrical period at minimum velocity (thus 2 half-steps). The currents are then set to the hold values, respectively Ihold x sin (TagPos) and Ihold x cos (TagPos) as illustrated below. A new positioning order can then be executed. 9.2.3.5 Charge Pump Monitoring 9.2.3.6 Electrical Defect on Coils, Detection and Confirmation If the charge pump voltage is not sufficient for driving the high side transistors (due to a failure), an internal HardStop command is issued. This is acknowledged to the master by raising flag <CPFail> (available with command GetFullStatus1). The principle relies on the detection of a voltage drop on at least one transistor of the H-bridge. Then the decision is taken to open the transistors of the defective bridge. This allow to detect the following short circuits: • External coil short circuit • Short between one terminal of the coil and Vbat or Gnd • One cannot detect internal short in the motor In case this failure occurs while a motion is ongoing, the flag <StepLoss> is also raised. Open circuits are detected by 100% PWM duty cycle value during a long time Pins Yi or Xi Yi or Xi Yi or Xi Y1 and Y2 X1 and X2 Xi and Yi AMI Semiconductor - Rev. 2.3 www.amis.com Fault Mode Short circuit to GND Short circuit to Vbat Open Short circuited Short circuited Short circuited 26 AMIS-30622 I2C Microstepping Motordriver 9.2.4 Inter-IC Control (I2C) Bus The I2C interface enabled in the AMIS-30622 uses pins 1 and 2 as Data I/O and Serial Clock respectively. Data Sheet 9.2.4.1 Physical Layer Both SDA and SCK lines are connected to positive supply voltage via a current source or pull-up resistor. When there is no traffic on the bus both lines are high. Analog glitch filters are implemented to suppress spikes with a length up to 50 ns. 9.2.4.2 Communication on 2-wire Serial Bus Interface defines a Stop condition. (see figure “Start / Stop conditions” below). The master always generates the SCK clock. On every rising transition of SCK the data on SDA is valid. Data on SDA line is only allowed to change as long as SCK is low. Each communication starts with a Start condition and ends with a Stop condition. Both conditions are unique and cannot be confused with data. A high to low transition on the SDA line while SCK is high defines a Start condition. A low to high transition on the SDA line while SCK is high Start / Stop Conditions Bit Transfer on 2-wire Serial Bus Interface Every byte sent on SDA must be 8-bit, with the most significant bit (MSB) transferred first. The number of bytes that can be transmitted to the AMIS-30622 is restricted to 8 AMI Semiconductor - Rev. 2.3 www.amis.com bytes. Each byte is followed by an acknowledge bit, which is issued by the receiving node (figure below). 27 AMIS-30622 I2C Microstepping Motordriver 9.2.4.3 Physical Address of the Circuit The circuit is provided with a physical address in order to discriminate this circuit from other ones on the I2C bus. This address is coded on 7 bits (2 bits being internally hardwired to ‘1’), yielding the theoretical possibility of 32 different circuits on the same bus. It is a combination of four OTP memory bits (see § 9.2.2.13 OTP Memory Structure) and of the externally hardwired address bits (pin HW). HW must either be connected to Ground or to Vbat. When HW is not Data Sheet connected and left floating correct functionality of the positioner is not guaranteed. The motor will be driven to the programmed Secure Position. (see § 9.2.2.12 Application Parameters SecPos [10:0]) The AMIS-30622 supports a “general call” address. Therefore the circuit is addressable with either the physical slave address or with address “000 0000”. the SDA line to ‘0’. The AMIS-30622 reads the incoming data at SDA on every rising edge of the SCK signal. To finish the transmission the master has to transmit a Stop condition. Some commands for the AMIS-30622 are supporting 8 bytes of data, other commands are transmitting 2 bytes of data. 9.2.4.4 Write Data to AMIS-30622 A complete transmission consists of the followings: a Start condition, the slave address (7-bit), a read/write bit (‘0’ = write, ‘1’ = read), and an acknowledge bit. Any further databytes are followed by an acknowledge bit. The acknowledge bit is used to signal a correct reception of the data to the transmitter. In this case the AMIS-30622 pulls ↔ ↔ 9.2.4.5 Read Data from AMIS-30622 slave address and the read bit. Then the master can read the data bits on the SDA line on every rising edge of signal SCK. After each byte of data the master has to acknowledge correct data reception by pulling SDA to ‘0’. The last byte is not to acknowledge by the master and therefore the slave knows the end of transmission. When reading data from a slave two transmissions are needed. The first transmission consists of two bytes of data. The first byte contains the slave address and the write bit. The second byte contains the address of an internal register in the AMIS-30622. The internal register address is stored in the circuit RAM. The second transmission consists of the ↔ ↔ 9.2.4.6 Timing and Electrical Characteristics of the Serial Interface See § 5 and § 6 for DC and AC parameter values. AMI Semiconductor - Rev. 2.3 www.amis.com 28 AMIS-30622 I2C Microstepping Motordriver Data Sheet 9.2.4.7 Description of Application Commands Writing commands are used to: • Program the OTP Memory • Configure the positioner with motion parameters (max/min speed, acceleration, stepping mode, etc.) • Provide target positions to the stepper motor Communications between the AMIS-30622 and a 2-wire Serial Bus Interface Master takes place via a large set of commands. Reading commands are used to: • Get actual status information, e.g. error flags • Get actual position of the stepper motor • Verify the right programming and configuration of the AMIS-30622 9.2.4.8 Command Overview Command Mnemonic GetFullStatus1 GetFullStatus2 GetOTPParam GotoSecurePosition HardStop ResetPosition ResetToDefault RunInit SetMotorParam SetOTP SetPosition SoftStop Function Command Byte Returns complete status of the chip Returns actual, target and secure position Returns OTP parameter Drives motor to secure position Immediate full stop Sets actual position to zero Overwrites the chip RAM with OTP contents Reference search Sets motor parameter Zaps the OTP memory Programmes a target and secure position Motor stopping with deceleration phase GetFullStatus1 This command is provided to the circuit by the Master to get a complete status of the circuit and of the stepper motor. The parameters sent via the 2-wire serial bus to the Master are: • coil peak and hold currents value (Irun and Ihold) • maximum and minimum velocities for the stepper motor (Vmax and Vmin) • direction of movement clockwise / counter clockwise (Shaft) • stepping mode (StepMode) • acceleration (deceleration) for the stepper motor (Acc) • acceleration shape (AccShape) Content 0 1 Slave Address GetFullStatus1 Byte Content 0 1 2 3 4 5 6 7 8 Slave Address Address Irun & Ihold Vmax & Vmin Status 1 Status 2 Status 3 N/A N/A AMI Semiconductor - Rev. 2.3 www.amis.com bit 7 1 1 Hexadecimal 0x81 0xFC 0x82 0x84 0x85 0x86 0x87 0x88 0x89 0x90 0x8B 0x8F • status information (see further) • motion status <Motion [2:0]> • over current flags for coil #1 <OVC1> and coil #2 <OVC2> • digital supply reset <VddReset> • charge pump status <CPFail> • external switch status <ESW> • step loss <StepLoss> • electrical defect <ElDef> • under voltage <UV2> • temperature information <Tinfo> • temperature warning <TW> • temperature shutdown <TSD> 9.2.4.9 Commands Description Byte Binary “1000 0001” “1111 1100” “1000 0010” “1000 0100” “1000 0101” “1000 0110” “1000 0111” “1000 1000” “1000 1001” “1001 0000” “1000 1011” “1000 1111” GetFullStatus1 Command Structure bit 6 bit 5 bit 4 1 OTP3 OTP2 0 0 0 bit 3 OTP1 0 GetFullStatus1 Command (Response) Structure bit 7 bit 6 bit 5 bit 4 bit 3 1 1 OTP3 OTP2 OTP1 1 1 1 1 OTP3 Irun [3:0] Vmax [3:0] AccShape StepMode[1:0] Shaft VDDReset StepLoss ElDef UV2 TSD Motion[2:0] ESW OVC1 1 1 1 1 1 1 1 1 1 1 29 bit 2 OTP0 0 bit 1 HW 0 bit 0 0 1 bit 2 bit 1 bit 0 OTP0 HW 1 OTP2 OTP1 OTP0 Ihold [3:0] Vmin [3:0] ACC[3:0] TW Tinfo[1:0] OVC2 1 CPFail 1 1 1 1 1 1 AMIS-30622 I2C Microstepping Motordriver GetFullStatus2 This command is provided to the circuit by the Master to get the actual position of the stepper motor. The position is provided by the circuit in 16-bit format, with the three LSBs at ‘0’ when in half stepping mode (StepMode = “00”). Furthermore programmed target position and secure position are also provided. Byte Content 0 1 Slave Address GetFullStatus2 Byte Content bit 7 1 1 Data Sheet Notations: • actual position of the stepper motor <ActPos [15:0]> • target position of the stepper motor <TagPos [15:0]> • secure position of the stepper motor <SecPos[10:0])> GetFullStatus2 Command Structure bit 6 bit 5 bit 4 1 OTP3 OTP2 1 1 1 bit 3 OTP1 1 bit 2 OTP0 1 bit 1 HW 0 bit 0 0 0 Structure bit 2 OTP0 OTP2 bit 1 HW OTP1 bit 0 1 OTP0 GetFullStatus2 Command (Response) 0 1 2 3 4 5 6 7 8 Slave Address Address Actual Position 1 Actual Position 2 Target Position 1 Target Position 2 Secure Position Secure Position N/A bit 7 1 1 bit 6 1 1 bit 5 OTP3 1 1 1 1 1 1 1 bit 4 bit 3 OTP2 OTP1 1 OTP3 ActPos[15:8] ActPos[7:0] TagPos[15:0] TagPos[7:0] SecPos[7:0] 1 1 1 1 1 SecPos[10:8] 1 1 GetOTPParam This command is provided to the circuit by to read the content of an OTP Memory. For more information refer to see § 9.2.2.13 OTP Memory Structure. Byte Content 0 1 Slave Address GetOTPParam Byte Content 0 1 2 3 4 5 6 7 Slave Address OTP byte 0 OTP byte 1 OTP byte 2 OTP byte 3 OTP byte 4 OTP byte 5 OTP byte 6 OTP byte 7 AMI Semiconductor - Rev. 2.3 www.amis.com bit 7 1 1 bit 7 1 bit 6 1 0 GetOTPParam Command Structure bit 5 bit 4 OTP3 OTP2 0 0 bit 3 OTP1 0 GetOTPParam Command (Response) Structure bit 6 bit 5 bit 4 bit 3 1 OTP3 OTP2 OTP1 OTP@0x00 OTP@0x01 OTP@0x02 OTP@0x03 OTP@0x04 OTP@0x05 OTP@0x06 OTP@0x07 30 bit 2 OTP0 0 bit 1 HW 1 bit 0 0 0 bit 2 OTP0 bit 1 HW bit 0 1 AMIS-30622 I2C Microstepping Motordriver Data Sheet GotoSecurePosition The Master provides this command to one or all the Stepper-motors to move to the secure position SecPos[10:0]. Byte Content 0 1 bit 7 Slave Address 1 GotoSecurePosition 1 GotoSecurePosition Command Structure bit 6 bit 5 bit 4 1 OTP3 OTP2 0 0 0 HardStop This command is internally triggered when an electrical problem is detected in one or both coils, leading to switch off the H-bridges. If this problem is detected while the motor is moving, the <StepLoss> flag is raised allowing Byte Content 0 1 Slave Address HardStop bit 7 1 1 bit 6 1 0 Content 0 1 Slave Address ResetPosition bit 7 1 1 HardStop Command Structure bit 5 bit 4 OTP3 OTP2 0 0 Content 0 1 Slave Address ResetToDefaults AMI Semiconductor - Rev. 2.3 www.amis.com bit 7 1 1 bit 1 HW 0 bit 0 0 0 bit 3 OTP1 0 bit 2 OTP0 1 bit 1 HW 0 bit 0 0 1 positioning for an initialisation of the stepper motor position. ResetPosition Command Structure bit 6 bit 5 bit 4 1 OTP3 OTP2 0 0 0 ResetToDefaults The Master provides this command to the circuit in order to reset the whole Slave node into the initial state. ResetToDefaults will for instance overload the RAM Byte bit 2 OTP0 1 warning the Master that steps may have been lost at the next GetStatus command. The Master for some safety reasons can also issue a HardStop command. ResetPosition This command is provided to the circuit by the Master to reset ActPos and TagPos registers, in order to allow a Byte bit 3 OTP1 0 bit 3 OTP1 0 bit 2 OTP0 1 bit 1 HW 1 bit 0 0 0 with the Reset state of the Registers parameters. This is another way for the Master to initialise a slave node in case of emergency, or simply to refresh the RAM content. ResetToDefaults Command Structure bit 6 bit 5 bit 4 1 OTP3 OTP2 0 0 0 31 bit 3 OTP1 0 bit 2 OTP0 1 bit 1 HW 1 bit 0 0 1 AMIS-30622 I2C Microstepping Motordriver RunInit The Master provides this command to the circuit in order to initialize positioning of the motor by seeking the zero (or reference) position. command is received. Furthermore the master has to check that the actual position of the stepper motor does not correspond to the target position of the first motion. This is very important otherwise the circuit goes into a deadlock state. Once the circuit is in deadlock state only a hardstop command followed by a GetFullStatus1 command will cause the circuit to leave this state. Once the RunInit command is started it cannot be interrupted by any other command, except on the occurrence of a condition leading to a motor shutdown (See § 9.2.2.7 Motor Shutdown Mode), or when a HardStop Byte Content 0 1 2 3 4 5 6 7 8 Slave Address RunInit command N/A N/A Vmax Vmin Position2 byte 1 Position2 byte 2 Position1 byte 1 Position1 byte 2 bit 7 1 1 1 1 RunInit Command Structure bit 6 bit 5 bit 4 bit 3 1 OTP3 OTP2 OTP1 0 0 0 1 1 1 1 1 1 1 1 1 Vmax[3:0] TagPos1[15:8] TagPos1[7:0] TagPos2[15:8] TagPos2[7:0] SetMotorParam This command is provided to the circuit by the Master to set the values for the Stepper motor parameters (listed below) in RAM. • coil peak current value (Irun) • coil hold current value (Ihold) • maximum velocity for the stepper motor (Vmax) Byte Content 0 1 2 3 4 5 6 7 8 Slave Address SetMotorParam N/A N/A Irun & I hold Vmax & Vmin Status SecurePos StepMode bit 7 1 1 1 1 1 Data Sheet bit 2 bit 1 OTP0 HW 0 0 1 1 1 1 Vmin[3:0] bit 0 0 0 1 1 • minimum velocity for the Stepper-motor (Vmin) • acceleration shape (AccShape) • stepping mode (StepMode) • indicator of the stepper motor reference position (Shaft) • acceleration (deceleration) for the stepper motor (Acc) • secure position for the stepper motor (SecPos) SetMotorParam Command Structure bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 1 OTP3 OTP2 OTP1 OTP0 HW 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 Irun[3:0] Ihold[3:0] Vmax[3:0] Vmin[3:0] SecPos[10:8] Shaft Acc[3:0] SecPos[7:0] 1 1 AccShape StepMode[1:0] 1 bit 0 0 1 1 1 1 SetOTP The Master provides this command to the circuit in order to zap the OTP memory. Byte Content 0 1 2 3 4 5 Slave Address ZapOTP N/A N/A OTP Address Pbit AMI Semiconductor - Rev. 2.3 www.amis.com bit 7 1 1 1 1 1 bit 6 1 0 1 1 1 SetOTP Command Structure bit 5 bit 4 bit 3 OTP3 OTP2 OTP1 0 1 0 1 1 1 1 1 1 1 1 1 Pbit[7:0] 32 bit 2 OTP0 0 1 1 bit 1 HW 0 1 1 OTPA[2:0] bit 0 0 0 1 1 AMIS-30622 I2C Microstepping Motordriver SetPosition This command is provided to the circuit by the Master to the motors to a given position relative to the zero position, defined in number of half or micro steps, according to StepMode[1:0] value. Byte Content 0 1 2 3 4 5 Slave Address SetPosition N/A N/A Position byte1 Position byte2 bit 7 1 1 1 1 SetPosition will not be performed if one of the following flags is set to one: • temperature shutdown <TSD> • under voltage <UV2> • step loss <StepLoss> • electrical defect <ElDef> SetPosition Command Structure bit 6 bit 5 bit 4 bit 3 1 OTP3 OTP2 OTP1 0 0 0 1 1 1 1 1 1 1 1 1 TagPos[15:8] TagPos[7:0] SoftStop If a SoftStop command occurs during a motion of the stepper motor, it provokes an immediate deceleration to Vmin followed by a stop, regardless of the position reached. This command occurs in the following cases: Byte Content 0 1 Slave Address SoftStop AMI Semiconductor - Rev. 2.3 www.amis.com bit 7 1 1 bit 6 1 0 Data Sheet bit 2 OTP0 0 1 1 bit 1 HW 1 1 1 bit 0 0 1 1 1 • The chip temperature raises the thermal shutdown threshold. • The Master requests a SoftStop. SoftStop Command Structure bit 5 bit 4 OTP3 OTP2 0 0 33 bit 3 OTP1 1 bit 2 OTP0 1 bit 1 HW 1 bit 0 0 1 AMIS-30622 I2C Microstepping Motordriver Data Sheet 10.0 Features 10.1 Position Periodicity As an example in the figure below is illustrated the moving direction going from ActPos = +32700 to SetPos = –32700 is counter clockwise. Depending on the stepping mode the position can range between –4096 to +4095 in half-step mode to –32768 to +32767 in 1/16th microstepping mode (see § 8.5.1 Position Ranges) one can project all these positions lying on a circle. When executing the command SetPosition the position controller will set the movement direction in such a way that the traveled distance is minimum. If a clockwise motion is required in this example, several consecutive SetPosition commands can be used. 11.0 Resistance to Electrical and Electromagnetic Disturbances 11.1 Electrostatic Discharges See. § 1.1 Absolute Maximum Ratings 11.2 Schäffner Pulses Shäffner pulses are applied to the power supply wires of the equipment implementing the AMIS-30622 (see application schematic), according to Renault 36-00-808/--E document. Pulse #1 #2a #3a #3b #5b (load dump) Amplitude -100V +100V -150V (from +13.5V) +100V (from +13.5V) +21.5V (from +13.5V) Rise Time ≤ 1µs ≤ 1µs 5ns 5ns ≤ 10ms Pulse Duration 2ms 50µs 100ns (burst) 100ns (burst) 400ms 11.3 EMC Bulk current injection (BCI), according to Renault 36-00808/--E document (p61). Current 60mA 100mA 200mA Opertaing Class A B C AMI Semiconductor - Rev. 2.3 www.amis.com 34 Rs 10Ω 2Ω 50Ω 50Ω ≤ 1Ω Operating Class C B A A C AMIS-30622 I2C Microstepping Motordriver Data Sheet 11.4 EMI EMI requirement is given here as a target, since it is also PCB dependent. Any EMI issue will have to be solved on common basis with the customer. • Permanent broadband limit (Renault 36-00-808/--E document diagram p98) • Narrow band limit (Renault 36-00-808/--E document diagram p99) Radiated disturbance electromagnetic quietness test, according to Renault 36-00-808/--E document: 11.5 Power Supply Micro-Interruptions According to Renault 36-00-808/--E (p47 and followings). Test 10µs micro-interruptions (1) 100µs micro-interruptions 5ms micro-interruptions 50ms micro-interruptions 300ms micro-interruptions Operating Class A B B C C Note (1) To achieve Class A a 100nF capacitor between Vbat and ground is needed in case HW is connected to Vbat. (see § 7 Typical Application). 12.0 Package Outlines Note: See variations AC for dimensions D and N. 13.0 Conditioning To be documented. AMI Semiconductor - Rev. 2.3 www.amis.com © Copyright 2003 AMI Semiconductor – All rights reserved. Information furnished is believed to be accurate and reliable. However, AMI Semiconductor assumes no responsibility for errors or omissions in the information and for the consequences of use of such information. AMI Semiconductor reserves the right to change the information contained herein at any time without notice. This information is provided “AS IS” without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement of intellectual property. All title and intellectual property rights including, without limitation, copyrights, trademarks, in and to this information and products are owned by AMI Semiconductor, and are protected by applicable laws. No license under any patent or other intellectual property of AMI Semiconductor is granted, by implication, estoppel or otherwise.