acam-messelectronic gmbH is now Member of the ams Group The technical content of this acam-messelectronic document is still valid. Contact information: Headquarters: ams AG Tobelbaderstrasse 30 8141 Unterpremstaetten, Austria Tel: +43 (0) 3136 500 0 e-Mail: [email protected] Please visit our website at www.ams.com Ultrasonic-Flow-Converter Data Sheet TDC-GP21 Universal 2-Channel Time-to-Digital Converters March 13 th 2014 Document-No: DB_GP21_en V1.6 Member of the ams Group UFC TDC-GP21 Published by acam -messelectronic gmbh ©acam-messelectronic gmbh 2014 Disclaimer / Notes “Preliminary” product information describes a product which is not in full production so that full information about the product is not available yet. Therefore, acam-messelectronic gmbh (“acam”) reserves the right to modify this product without notice. The information provided by this data sheet is believed to be accurate and reliable. However, no responsibility is assumed by acam for its use, nor for any infringements of patents or other rights of third parties that may result from its use. The information is subject to change without notice and is provided “as is” without warranty of any kind (expressed or implied). All other brand and product names in this document are trademarks or service marks of their respective owners. Support / Contact For a complete listing of Direct Sales, Distributor and Sales Representative contacts, visit the acam web site at: http://www.acam.de/sales/distributors/ For technical support you can contact the acam support team in the headquarters in Germany or the Distributor in your country. The contact details of acam in Germany are: [email protected] or by phone Member of the ams Group +49-7244-74190. TDC-GP21 Content 1 2 3 4 5 6 Overview .................................................................................................. 1-3 1.1 Features ............................................................................................. 1-3 1.2 Blockdiagram ...................................................................................... 1-5 1.3 Ordering Numbers ................................................................................ 1-5 Characteristics & Specifications ................................................................... 2-1 2.1 Electrical Characteristics ....................................................................... 2-1 2.2 Converter Specification .......................................................................... 2-4 2.3 Timings .............................................................................................. 2-7 2.4 Pin Description .................................................................................. 2-10 2.5 Package Drawings .............................................................................. 2-12 2.6 Power Supply ..................................................................................... 2-14 Registers & Communication ......................................................................... 3-1 3.1 Configuration registers .......................................................................... 3-1 3.2 Read registers ................................................................................... 3-12 3.3 EEPROM ........................................................................................... 3-15 3.4 SPI-interface ..................................................................................... 3-16 Converter Frontend .................................................................................... 4-1 4.1 TDC - Measurement mode 1 .................................................................. 4-1 4.2 TDC - Measurement mode 2 .................................................................. 4-9 4.3 Analog Input Section ........................................................................... 4-17 4.4 Temperature Measurement .................................................................. 4-20 Details and Special Functions ....................................................................... 5-1 5.1 Oscillator ............................................................................................ 5-1 5.2 Fire Pulse Generator ............................................................................. 5-4 5.3 Fast Initialization .................................................................................. 5-7 5.4 Noise Unit .......................................................................................... 5-8 5.5 EMC Measures .................................................................................... 5-9 Applications .............................................................................................. 6-1 6.1 7 Ultrasonic Heat Meter .......................................................................... 6-1 Miscellaneous ........................................................................................... 7-1 7.1 Bug Report ......................................................................................... 7-1 7.2 Last Changes ...................................................................................... 7-2 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 1-1 Ultrasonic-Flow-Converter 1-2 TDC-GP21 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 1 Overview TDC-GP21 is next generation‘s upgrade for TDC-GP2. It offers pin-to-pin and functional compatibility, several feature improvements and an extended functionality. Analog elements like a chopper stabilized comparator and analog switches simplify external circuits in a significant manner. In parallel, measurement quality is improved and operating current is reduced. The firepulse generator is extended, a new low-power 32 kHz oscillator driver is implemented and the temperature measuring unit is further improved. All in all, the TDC-GP21 is perfectly suited to design ultra-compact and low-cost ultrasonic flow meters and heat meters. If the integrated analog elements of the TDC-GP21 are used, the average operating current of a typical heatmeter application can be reduced to 2.2 µA. 1.1 Features Measurement mode 2 1 channel with typ. 90 ps resolution Double resolution mode with 45 ps, Quad resolution mode with 22 ps resolution Measurement range 700 ns to 4 ms 3-fold multihit capability with automatic processing of all 3 data Analog Input Circuit Chopper-stabilized low-offset comparator Offset programmable, -8 to 7 mV Integrated analog switches for input selection External circuit is reduced to 2 resistors and 2 capacitors Temperature Measurement Unit 2 or 4 sensors, PT500/PT1000 or higher Schmitt trigger integrated 16-Bit eff. with external Schmitt trigger, 17.5-Bit eff. with integrated low noise Schmitt trigger Ultra low current (0.08 µA when measuring every 30 seconds) acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 1-3 Ultrasonic-Flow-Converter TDC-GP21 Special Functions Fire pulse generator, up to 127 pulses Trigger to rising and/or falling edge Precise stop enable by windowing Low-power 32 kHz oscillator (500 nA) Clock calibration unit 7x32 Bit EEPROM Measurement mode 1 2 channels with typ. 90 ps resolution channel double resolution with typ. 45 ps Range 3.5 ns (0 ns) to 2.5 µs 20 ns pulse-pair resolution, 4-fold multihit Up to 500 000 measurements per second in measurement mode 1 General 1-4 4-wire SPI interface 500 kHz continuous data rate max. I/O voltage 2.5 V to 3.6 V Core voltage 2.5 V to 3.6 V Temperature range – 40 °C to +85 °C QFN 32 Package acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 1.2 Blockdiagram 1.3 Ordering Numbers Part# Package Package Qty; Carrier Order number TDC-GP21 QFN32 5000/3000; T&R MNR 1720 TDC-GP21 QFN32 490; Tray MNR 1839 GP21-EVA-KIT System 1; Box MNR 1781 This product is RoHS compliant and does not contain any Pb. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 1-5 Ultrasonic-Flow-Converter 1-6 TDC-GP21 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 2 Characteristics & Specifications 2.1 Electrical Characteristics Absolute Maximum Ratings Supply voltage V cc vs. GND - 0.3 to 4.0 V V io vs. GND - 0.3 to 4.0 V - 0.5 to V cc + 0.5 V V in Storage temperature (T stg ) - 55 to 150 °C > 2 kV max.125 °C ESD rating (HBM), each pin Junction temperature (T j ) Recommended Operating Conditions Symbol Parameter Conditions Min V cc Core supply voltage 1 V io = V cc V io I/O supply voltage t ri Max Unit 2.5 3.6 V 2.5 3.6 V Normal input rising time 200 ns t fa Normal input falling time 200 ns t ri Schmitt trigger rising time 5 ms t fa Schmitt trigger falling time 5 ms Ta Ambient temperature T j must not exceed -40 125°C 125 °C R th(j-a) Thermal resistance junction-ambient 1 Typ 28 K/W including the oscillator pins XIN, XOUT, Clk32In, Clk32Out acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 2-1 Ultrasonic-Flow-Converter TDC-GP21 DC Characteristics (V io = V cc = 3.0 V, T j = -40 to +85°C) Symbol Parameter Conditions I 32 Current 32 kHz I cc + I io , only 32 kHz oscillator running 1.0 µA I hs Current 4 MHz oscillator V cc = V io = 3.6 V = 3.0 V off 200 130 < 1 µA µA nA I tmu Current time measuring unit only during active time measurement 4 mA I ddq Quiescent current all clocks off, @ 85 °C < 0.1 µA Io Operating current TOF_UP/DOWN, 1/s Temperature average, PT1000, 1/30s 1.1 0.15 µA V oh High level output voltage I oh = tbd mA V io =Min. V ol Low level output voltage I ol = tbd mA, V io =Min V ih High level input voltage LVTTL Level, V io = Max. V il Low level input voltage LVTTL Level, V io = Min. V th High level Schmitt trigger voltage V tl Low level Schmitt trigger voltage Vh Schmitt trigger hysteresis 2-2 Min Typ Max 0.8V io V 0.2V io 0.7V io V V 0.3V io 0.7Vio V V 0.3V io 0.28 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group Unit V V TDC-GP21 Terminal Capacitance Symbol Terminal Condition Rated Value Min. measured @ V cc = V io , f = 1 MHz, T a = 25°C Typ. Ci Digital input Co Digital output C io Bidirectional 9 PT ports t.b.d. Analog in t.b.d. Unit Max. 7 pF Analog Frontend Symbol Terminal Condition Rated Value Min. Unit Typ. Max. Comparator input offset voltage (chopper stabilized) < 1 2 R dson(AS) Switch-on resistance of analog switches at STOP1/STOP2 inputs 200 Ohm R dson(FIRE) Switch-on resistance of FIRE_UP, FIRE_DOWN output buffers 4 Ohm I fire Output current FIRE_UP, FIRE_DOWN output buffers 48 mA Symmetrical outputs, Rdson(HIGH) = Rdson(LOW) mV EEPROM Symbol Terminal Condition Minimum Value Unit Data retention @ 85°C normal 10 years with Error correction practically endless acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 2-3 Ultrasonic-Flow-Converter 2.2 TDC-GP21 Converter Specification Time Measuring Unit (V io = V cc = 3.0 V, T j = 25°C) Symbol Terminal Condition Rated Value Min. LSB Resolution (BIN-Size) Measurement mode 1 & 2: DOUBLE_RES = 0 DOUBLE_RES = 1 Standard deviation Measurement Mode 2 tm Measurement range Max. ps 90 45 Measurement mode 2: QUAD_RES = 1 Standard deviation Measurement Mode 1 Typ. Unit ps 22 DOUBLE_RES = 0 Delay = 200ns Delay = 1µs DOUBLE_RES = 1 Delay = 200ns ps 45 72 35 DOUBLE_RES = 0 Delay = 2µs Delay = 100µs DOUBLE_RES = 1 Delay = 2µs Delay = 100µs QUAD_RES = 1 Delay = 2µs Delay = 100µs ps 54 70 50 62 39 62 Measurement mode 1 3.5 ns 2.4 µs =26224 *LSB Measurement mode 2 700 ns 4 ms INL Integral Non-linearity < 0.1 LSB DNL Differential Nonlinearity < 0.8 LSB 2-4 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Figure 2-1 Relative Variation of un-calibrated least significant bit with temperature and supply voltage, reference 3.0V/25°C 1.40 3.6 V 1.30 LSB / (LSB @ 25°C, 3.0 V) 3.0 V 1.20 2.5 V 1.10 1.00 0.90 0.80 -5 -25 15 35 55 75 95 Temperature [°C] Temperature Measuring Unit Symbol 1 Terminal 2 Internal Schmitt trigger external Schmitt trigger PT500 PT1000 PT500 PT1000 Resolution RMS 17.5 17.5 16.0 16.0 Bit SNR 105 105 96 96 dB Absolute Gain 3 0.9912 0.9931 0.9960 0.9979 3.6 V 0.9923 0.9940 0.9962 0.9980 3.0 V 0.9912 0.9931 0.9960 0.9979 2.5 V 0.9895 0.9915 0.9956 0.9979 0,25 0.23 0.06 0.04 Absolute Gain vs. V io 3 Gain-Drift vs. V io acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group Unit %/V 2-5 Ultrasonic-Flow-Converter TDC-GP21 max. Gain Error (@ dӨ = 100 K) 0,05% 0,05% 0,02% < 0.01% Gain-Drift vs. Temp 0.022 0.017 0.012 0.0082 Gain-Drift vs. Vio 0,08 %/V Initial Zero Offset < 20 <10 < 20 < 10 mK Offset Drift vs. Temp < 0.05 < 0.03 < 0,012 < 0.0082 mK/ °C PSRR 1 %/10 K >100 dB All values measured at Vio = Vcc = 3.0 V, Cload = 100 nF for PT1000 and 200 nF for PT500 (C0G-type) 2 measured with external 74AHC14 Schmitt trigger 3 compared to an ideal gain of 1 2-6 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 2.3 Timings At Vcc = 3.0 V ± 0.3 V, ambient temperature -40 °C to +85 °C unless otherwise specified Oscillator Symbol Parameter Min. Clk32 32 kHz reference oscillator 32,768 kHz t 32st 32 kHz oscillator start-up time after power-up 250 ms ClkHS High-speed reference oscillator t oszst Oscillator start-up time with ceramic resonator 100 µs t oszst Oscillator start-up time with crystal oscillator 3 ms 2 Typ. Max. 4 8 Unit MHz Note: It is strongly recommended to use a ceramic oscillator. Exactly because a quartz needs much longer to settle than a ceramic oscillator. This costs a lot current, but using a quartz oscillator has no advantage. Serial Interface Symbol Parameter Max. @ V io = Unit 2.5 V 3.3 V 20 f clk Serial clock frequency 15 Symbol Parameter Min. @ V io = MHz Unit 2.5 V 3.3 V t pwh Serial clock, pulse width high 30 25 ns t pwl Serial clock, pulse width low 30 25 ns t sussn SSN enable to valid latch clock 40 10 ns t pwssn SSN pulse width between write cycles 50 40 ns t hssn SSN hold time after SCLK falling 40 25 ns t sud Data set-up time prior to SCLK falling 5 5 ns t hd Data hold time before SCLK falling 5 5 ns acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 2-7 Ultrasonic-Flow-Converter Symbol TDC-GP21 Parameter t vd Max. @ V io = Data valid after SCLK rising Unit 2.5 V 3.3 V 20 16 Serial Interface (SPI compatible, Clock Phase Bit =1, Clock Polarity Bit =0): tsussn tpwssn tpwl tpwh SSN thssn SCK SI MSB LSB tsud thd Figure 2-2 SPI Write tsussn tpwl tpwssn tpwh SSN SCK SI MSB 1 6 tsud LSB thd SO MSB 1 MSB-1 LSB tvd OPCODE DATA Figure 2-3 SPI Read Disable Timings STOP no pass pass EN_Stop STOP no pass pass EN_Stop tS-EN tSH-EN Figure 2-4 Disable Timings Spec Description Measurement mode 1 Measurement mode 2 t S-EN Enable Setup Time 0 ns 0 ns t SH-EN Enable Hold Time 1.5 ns 3.0 ns 2-8 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group ns TDC-GP21 Reset Timings Figure 2-5 Reset Timings Spec Description Typ. Min t ph Reset pulse width 50 ns t rfs Time after rising edge of reset pulse before further communication 200 ns Time after rising edge of reset pulse before analog section is ready 500 µs acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 2-9 Ultrasonic-Flow-Converter 2.4 TDC-GP21 Pin Description Figure 2-6 TDC-GP21 Pinout No. Name Description 1 XIN Oscillator driver in 2 XOUT Oscillator driver out 3 VIO I/O – supply voltage 4 GND Ground 5 FIRE_UP Fire pulse generator output 1 48 mA 6 FIRE_DOWN Fire pulse generator output 2 48 mA 7 FIRE_IN Diagnostics output 8 INTN Interrupt flag 9 SSN Slave select 10 SCK Clock serial interface 2-10 Buffer type Value If not used GND GND 4 mA LOW active LOW active acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 No. Name Description Buffer type Value If not used 11 SI Data input serial interface 12 SO Data output serial interface 13 RSTN Reset input 14 VCC Core supply voltage 15 CLK32OUT Output 32 kHz clock generator n. c. 16 CLK32IN Input 32 kHz clock generator GND 17 SENSET Sense input temperature measurement Schmitt trigger GND 18 LOADT Load output temperature measurement 24 mA n.c. 19 PT4* Port 4 temperature measurement > 96 mA open drain 20 PT3* Port 3 temperature measurement > 96 mA open drain 21 GND Ground 22 VIO I/O – supply voltage 23 PT2* Port 2 temperature measurement > 96 mA open drain 24 PT1* Port 1 temperature measurement > 96 mA open drain 25 EN_STOP2 Enable pin stop input 2 HIGH active VIO 26 EN_STOP1 Enable pin stop input 1 HIGH active VIO 27 STOP2 Stop input 2 28 GND Ground 29 VCC Core supply voltage 30 STOP1 Stop input 1 31 START Start input 32 EN_START Enable pin start input 4 mA tristate LOW active GND GND HIGH active VIO * R DSON temperature ports: typ. 1.8 Ω @ 3.0 V acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 2-11 Ultrasonic-Flow-Converter 2.5 TDC-GP21 Package Drawings Figure 2-7 QFN-32 package outline, 5 x 5 x 0.9 mm³, 0.5 mm lead pitch Caution: Center pad, 3.70 * 3.70 mm², is internally connected to GND. No wires other than GND are allowed underneath. It is not necessary to connect the center pad to GND. Suitable socket: Plastronics 32QN50S15050D Landing Pattern: Figure 2-8 2-12 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Thermal resistance: Roughly 28 K/W (value just for reference). Environmental: The package is RoHS compliant and does not contain any Pb. Moisture Sensitive Level (MSL) Based on JEDEC 020 Moisture Sensitivity Level definition the TDC -GP21 is classified as MSL 1. Soldering Temperature Profile The temperature profile for infrared reflow furnace (in which the temperature is the resin’s surface temperature) should be maintained within the range described below. Figure 2-9 Soldering profile acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 2-13 Ultrasonic-Flow-Converter TDC-GP21 Maximum temperature The maximum temperature requirement for the resin surface, given 260ºC as the peak temperature of the package body’s surface, is that the resin surface temperature must not exceed 250ºC for more than 10 seconds. This temperature should be kept as low as possible to reduce the load caused by thermal stress on the package , which is why soldering for short periods only is recommended. In addition to using a suitable temperature profile, we also recommend that you check carefully to confirm good soldering results. Date Code: YYWWA: YY = Year, WW = week, A = Assembly site code 2.6 Power Supply Supply voltage TDC-GP21 is a high end mixed analog/digital device. To reach full performance of the chip a good power supply is mandatory. It should be high capacitive and of low inductance. The TDC-GP21 provides two pairs of power supply terminals: Vio - I/O supply voltage Vcc - Core supply voltage Figure 2-10 Both voltages should be applied with low series resistance from the same source. On the chip there are connected, but a separate external connection is recommended for good measurement quality. All ground pins should be connected to a ground plane on the 2-14 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 printed circuit board. Vio and Vcc should be provided by a battery or fixed linear vol tage regulator. Do not use switched regulators to avoid disturbances caused by the I/O supply. Vio and Vcc are connected internally on the chip. The resistance between both is in the range of several Ohms. However, Vio is connected to the pads with significantly lower impedance and therefore can provide this better than Vcc. The measurement quality of a time-to-digital converter depends on a good power supply. The chip sees mainly pulsed current and therefore a sufficient bypassing is mandatory: Vcc 47 to 100 µF (minimum 22 µF) Vio 100 µF (minimum 22 µF) The supply voltage should be provided through analog regulators. We strongly recommend not to use switch mode power supplies. Current consumption The current consumption is the sum from different parties (all data for Vio = Vcc = 3.0V): I ddq < 5 nA [email protected], Quiescent current, no 32 kHz oscillator running 25°C I 32 typ. 1.0 µA Standby current with active 32 kHz oscillator ( GP21 waiting for command). I hs typ. 130 µA/s Current into the high speed oscillator at 3.0 V Vio. * (active runtime) Example: In ultrasonic flow-meters the high-speed oscillator is on for about 2ms only. The average current consumption is 130 µA/s * 2 ms = 0.26 µA I tmu typ. 4 mA/s Current into the time measuring unit, In measurement mode 1 * (active measuring The time measuring unit is active for the start-stop time interval plus time) the calibration time interval of 2 periods of the reference clock per measurement. In measurement mode 2 the time measuring unit is on for average 4 periods of the reference clock per measuremen t, two for the time measurement and two for calibration. Example: With 10 measurements per second in measurement mode 2 and a 4 MHz reference clock the time measuring unit is active for acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 2-15 Ultrasonic-Flow-Converter TDC-GP21 only about 10 µs. The average current is 4 mA/s * 10 µs = 0.040 µA. I ALU typ. 7 nA per Current into ALU during data proccesing including a calibration calculation calculation. Example: At 1000 measurements per second with 3 stops per start the ALU average current is 7 nA * 3000 = 21 µA. IT typ. 2.5 µAs The current for a full temperature measurement is typ.2.5µAs. * measure rate In heat-meters the temperature is measured typically once every 30 seconds. The average current is about 0.085 µA I ana typ. 0.8 mA Current consumption of the integrated analog part of TDC-GP21 during a Time-of-flight (ToF) measurement. The analog part is active for a duration of 250 µs + ToF. 2-16 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 3 Registers & Communication 3.1 Configuration registers The TDC-GP21 has 7 configuration registers with 32 bit. The upper 24 bit are used for configuration and are write only. They are used to setup the TDC-GP21 operating mode. The lowest 8 bit can be used e.g. as an ID and can be read back. For communication test please write to register 1 and read back the highest 8 bit from address 5. Note: The write registers of TDC-GP21 are fully upwards compatible with TDC-GP2. A given configuration of TDC-GP2 can directly be used one-to-one in TDC-GP21. The TDC-GP21 than works as a TDC-GP2. The add-on functionality can be selected in register 6 and reg1 Bits 7:0 which are not used in GP2. For proper work of TDC-GP21, a power-up reset via pin or SPI command is necessary after the power-up of the circuit. 3.1.1 Alphanumeric listing of configuration parameters Table 3-1: Configuration Parameters Parameter Old name (TDC-GP2) Register Bits Default value ANZ_FAKE No_Fake 0 15 0 Fire# 0 6 28-31 8-10 2 ANZ_PER_CALRES CALRES# 0 22,23 0 ANZ_PORT PORT# 0 17 1 CALIBRATE Calibrate 0 13 1 CON_FIRE CONF_FIRE 5 28-31 0 CURR32K 1 15 0 x CYCLE_TEMP 6 18,19 0 x CYCLE_TOF 6 16,17 0 x ANZ_FIRE [3:0] [6:4] DELVAL1 DELVAL1 2 8-23 0 DELVAL2 DELVAL2 3 8-23 0 DELVAL3 DELVAL3 4 8-23 0 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group New or modified x 3-1 Ultrasonic-Flow-Converter TDC-GP21 Parameter Old name (TDC-GP2) Register Bits Default value DIS_PHASESHIFT Dis_PhaseNoise 5 27 0 DIV_CLKHS ClkHSDiv 0 20,21 0 DIV_FIRE DIV_FIRE 0 24-27 2 DOUBLE_RES 6 12 0 x EN_ANALOG 6 31 0 x EN_ERR_VAL EN_ERR_VAL 3 29 0 EN_FAST_INIT EN_FAST_INIT 1 23 0 EN_INT 2 6 29-31 21 1 EN_STARTNOISE 5 28 0 6 14 0 EN_INT [2:0] [3] EN_STARTNOISE FIREO_DEF New or modified x x HIT1 HIT1 1 24-27 5 HIT2 HIT2 1 28-31 5 HITIN1 HITIN1 1 16-18 0 HITIN2 HITIN2 1 19-21 0 HZ60 6 15 0 x ID0 0 0-7 0 x ID1 1 0-7 0 x ID2 2 0-7 0 x ID3 3 0-7 0 x ID4 4 0-7 0 x ID5 5 0-7 0 x ID6 6 0-7 0 x MESSB2 MRange2 0 11 1 NEG_START NEG_START 0 8 0 6 30 0 NEG_STOP_TEMP NEG_STOP1 NEG_STOP1 0 9 0 NEG_STOP2 NEG_STOP2 0 10 0 NO_CAL_AUTO DisAutoCal 0 12 0 PHFIRE Phase_Fire 5 8-23 0 6 13 0 QUAD_RES 3-2 x x acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Parameter Old name (TDC-GP2) Register Bits Default value REPEAT_FIRE REPEAT_FIRE 5 24-26 0 RFEDGE1 RFEDGE1 2 27 0 RFEDGE2 RFEDGE2 2 28 0 SEL_ECLK_TMP SelClkT 0 14 1 1 14 0 3 27,28 3 SEL_TSTO1 1 8-10 0 x SEL_TSTO2 1 11-13 0 x START_ClkHS 0 6 18,19 20 1 x TCycle 0 16 0 TEMP_PORTDIR 6 11 0 x TW2 6 22,23 0 x SEL_START_FIRE SEL_TIMO_MB2 START_CLKHS TCYCLE SEL_TIMO_MR2 [1:0] [2] acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group New or modified x 3-3 Ultrasonic-Flow-Converter 3.1.2 TDC-GP21 List of configuration registers 15 Bit number 14 13 Parameter 12 11 10 9 8 7 param1 6 5 4 3 2 1 0 1 0 1 0 k.d. Default value 1 1 0 0 1 0 19 18 17 16 15 14 k.d. = keep default values Register 0 (address 0): 31 30 29 28 27 ANZ_FIRE[3:0] 0 0 1 0 26 25 24 23 22 21 20 13 12 11 10 8 DIV_FIRE 0 0 1 7-0 ID0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 Parameter Description Settings ANZ_FIRE[3:0] (FIRE#) Sets number of pulses generated by fire pulse generator. Additional 3 bits are set in register 6. For values ANZ_FIRE > 15 the phase setting (PHFIRE) can not be used. 0 = off 1 = 1 pulse 2 = 2 pulses … 127 = 127 pulses DIV_FIRE Sets predivider for internal clock signal of fire pulse generator 0 = not permitted 1 = divided by 2 2 = divided by 3 3.= divided by 4 … 15 = divided by 16 ANZ_PER_CALRES (CALRES#) Sets number of periods used for calibrating the ceramic resonator 0 1 2 3 = = = = 2 periods = 61.035 µs 4 periods = 122.07 µs 8 periods = 244.14 µs 16 periods = 488.281 µs DIV_CLKHS (ClkHSDiv) Sets predivider for CLKHS 0 1 2 3 = = = = divided divided divided divided 3-4 9 by by by by 1 2 4 4 (also) acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 0 0 0 TDC-GP21 START_CLKHS[1:0] Defines the time interval the chip waits after switching on the oscillator before making a measurement. Note: The highest bit to adjust START_CLKS is located in register 6, bit 20. This has to be set to 1 for settling times of 2.44 ms and 5.14 ms. 0 1 2 3 4 5 = Oscillator off = Oscillator continuously on = settling time 480 µs = settling time 1.46 ms = settling time 2.44 ms to 7 = settling time 5.14 ms ANZ_PORT (PORT#) Sets number of ports used for temperature measurement 0 = 2 temperature ports (PT1 and PT2) 1 = 4 temperature ports TCYCLE Sets cycle time for temperature measurement 0 = 128 µs cycle time @ 4 MHz 1 = 512 µs cycle time @ 4 MHz (recommended) ANZ_FAKE (FAKE#) Number of dummy cycles at the beginning of a temperature measurement 0 = 2 Fake measurements 1 = 7 Fake measurements SEL_ECLK_TMP (SelClkT) Select reference signal for internal cycle clock for temperature measurement 0 = use 32.768 kHz as cycle clock 1 = use 128 * CLKHS as period for cycle clock (32 µs with 4 MHz high speed clock signal ) CALIBRATE Enables/disables calibration calculation in the 0 = calculation of calibrated results off ALU (allowed only in measurement mode 1) 1 = calculation of calibrated results on (recommended) NO_CAL_AUTO (DisAutoCal) Enables/disables auto-calibration run in the TDC 0 = auto-calibration after measurement 1 = auto-calibration disabled MESSB2 (MRange2) Switch to measurement mode 2 0 = measurement mode 1 1 = measurement mode 2 NEG_STOP2 Negation stop 2 input 0 = non-inverted input signal – rising edge 1 = inverted input signal – falling edge NEG_STOP1 Negation stop 1 input 0 = non-inverted input signal – rising edge 1 = inverted input signal – falling edge NEG_START Negation start input 0 = non-inverted input signal – rising edge 1 = inverted input signal – falling edge ID0 Free bits, e.g. to be used as identification or version number acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 3-5 Ultrasonic-Flow-Converter TDC-GP21 Register 1 (address 1): 31 30 29 28 27 HIT2 0 1 26 25 24 23 22 21 HIT1 0 1 0 1 0 20 19 18 HITIN2 1 0 1 0 0 17 16 15 14 HITIN1 0 0 0 0 0 0 13 12 8 7-0 SEL_TSTO2 SEL_TSTO1 ID1 0 0 0 0 11 0 10 9 0 0 Parameter Description Settings HIT2 Defines operator for ALU data postprocessing Measurement mode 1: HIT1-HIT2 Measurement mode 2: HIT2-HIT1 Measurement mode 1: 0 = Start 1 = 1. Stop Ch1 2 = 2. Stop Ch1 3 = 3. Stop Ch1 4 = 4. Stop Ch1 5 = no action 6 = Cal1 Ch1 7 = Cal2 Ch1 9 = 1. Stop Ch2 A = 2. Stop Ch2 B = 3. Stop Ch2 C = 4. Stop Ch2 Measurement mode 2: 2 = 1. Stop Ch1 3 = 2. Stop Ch1 4 = 3. Stop Ch1 HIT1 Defines operator for ALU data postprocessing Measurement mode 1: HIT1-HIT2 Measurement mode 2: HIT2-HIT1 Measurement mode 1: 0 = Start 1 = 1. Stop Ch1 2 = 2. Stop Ch1 3 = 3. Stop Ch1 4 = 4. Stop Ch1 5 = no action 6 = Cal1 Ch1 7 = Cal2 Ch1 9 = 1. Stop Ch2 A = 2. Stop Ch2 B = 3. Stop Ch2 C = 4. Stop Ch2 Measurement mode 2: 1 = Start EN_FAST_INIT Enables fast init operation 0 = Fast init mode disabled 1 = Fast init mode enabled HITIN2 Number of expected hits on channel 2 0 1 2 3 4 5 3-6 = stop channel 2 disabled = 1 hit = 2 hits = 3 hits = 4 hits to 7 = not permitted acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 HITIN1 Number of expected hits on channel 1 0 1 2 3 4 5 = stop channel 1 disabled = 1 hit = 2 hits = 3 hits = 4 hits to 7 = not permitted CURR32K Low current option for 32 kHz oscillator. Basically there is no need to use high current option (1). Low current (0) also guarantees oscillation. 0 = low current (recommended) 1 = high current (GP2 compatibility) SEL_START_FIRE Fire pulse is used as TDC start. The START input is disabled. 0 = TDC-GP2 behavior 1 = Use FIRE as Start SEL_TSTO2 Defines functionality of EN_START pin. Besides the GP2 functionality this pin can act as output for various signals. If SEL_TSTO2 > 0 then EN_START = HIGH internally. 0 = GP2 functionality, High level enables the START pin. 1 = START_TDC output 2 = STOP1 TDC output 3 = STOP2 TDC output 4 = Stop Temperature measurement output 5 = “0” indicates TOF_DOWN being active, “1” indicates TOF_UP being active 6 = n.c. 7 = 4 kHz (32 kHz/8) clock SEL_TSTO1 Defines functionality of FIRE_IN pin. Besides the GP2 functionality this pin can act as output for various signals. If SEL_TSTO1 >1 the FIRE_IN is connected to GND internally. 0 = GP2 functionality, FIRE_IN input for sing-around 1 = START_TDC output 2 = STOP1 TDC output 3 = STOP2 TDC output 4 = Start Temperature measurement output 5 = EN_STOP by DELVAL output 6 = Comparator out 7 = 32 kHz clock ID1 Free bits, e.g. to be used as identification or version number Register 2 (address 2): 31 30 29 28 27 26 25 24 23 22 21 20 19 EN_INT[2:0] 0 0 1 18 17 16 15 14 13 12 11 10 9 8 DELVAL1 0 0 0 0 0 0 0 0 0 0 0 0 0 ID2 0 0 0 0 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 7-0 0 0 0 3-7 0 0 Ultrasonic-Flow-Converter TDC-GP21 Parameter Description Settings EN_INT[2:0] Activates interrupt sources wired by OR. Additional bit in register 6 (see there, too) Bit 31 = Timeout interrupt enable Bit 30 = End Hits interrupt enable Bit 29 = ALU interrupt enable Reg6, BIT21 = End of EEPROM action RFEDGE2 Edge sensitivity channel 2 0 = rising or falling edge 1 = rising and falling edge RFEDGE1 Edge sensitivity channel 1 0 = rising or falling edge 1 = rising and falling edge DELVAL1 Delay value for internal stop enable unit, hit 1 channel 1. Fixed point number with 14 integer and 5 fractional digits in multiples of Tref DELVAL1 = 0 to 16383.96875 ID2 Mandatory: If EN_ANALOG = 0 then set DELVAL1 = 0 Free bits, e.g. to be used as identification or version number Register 3 (address 3): 31 30 29 28 27 26 25 24 23 22 21 20 19 k.d. 0 0 18 17 16 15 14 13 12 11 10 8 DELVAL2 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Description Settings EN_ERR_VAL Timeout forces ALU to write ‘hFFFFFFFF into the output register 0 = disabled 1 = enabled SEL_TIMO_MB2 Select predivider for timeout in measurement mode 2 0 = 64 µs 1 = 256 µs 2 = 1024 µs 3 = 4096 µs recommended @ 4 MHz ClkHS DELVAL2 Delay value for internal stop enable unit, hit DELVAL2 = 0 to 16383.96875 2 channel 1. Fixed point number with 14 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 7-0 ID3 Parameter 3-8 9 0 0 0 TDC-GP21 integer and 5 fractional digits in multiples of Tref ID3 Mandatory: If EN_ANALOG = 0 then set DELVAL2 = 0 Free bits, e.g. to be used as identification or version number Register 4 (address 4): 31 30 29 28 27 26 25 24 23 22 21 20 19 k.d. 0 0 1 18 17 16 15 14 13 12 11 10 9 8 DELVAL3 0 0 0 0 0 0 0 0 0 0 0 0 0 ID4 0 0 0 0 0 0 Parameter Description Settings DELVAL3 Delay value for internal stop enable unit, hit 3 channel 1. Fixed point number with 14 integer and 5 fractional digits in multiples of Tref DELVAL3 = 0 to 16383.96875 ID4 7-0 0 0 0 Mandatory: If EN_ANALOG = 0 then set DELVAL3 = 0 Free bits, e.g. to be used as identification or version number Register 5 (address 5): 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 PHFIRE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ID5 0 0 0 0 0 0 0 Parameter Description Settings CONF_FIRE Output configuration for pulse generator 3’b 011 is not allowed Bit 31 = 1: FIRE_BOTH (inverts FIRE_DOWN) Bit 30 = 1: enable output FIRE_UP Bit 29 = 1: enable output FIRE_DOWN EN_STARTNOISE Enables additional noise for start channel 1 = switch on noise unit DIS_PHASESHIFT (Dis_PhaseNoise) Phase noise unit. Improves statistics and should be enabled if start pulse generation is derived from the GP2 reference clock (e.g. with fire pulse generator). 1 = disables phase noise 0 = enables phase noise unit acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 7-0 3-9 0 Ultrasonic-Flow-Converter REPEAT_FIRE TDC-GP21 Number of pulse sequence repetition for "quasi-sing-around" PHFIRE Enables phase reversing for each pulse of a sequence of up to 15 possible pulses. PHFIRE[0..14] are available. ID5 Free bits, e.g. to be used as identification or version number 0= 1= 2= ... 7= no signal repetition 1 signal repetition 2 signal repetition 7 signal repetition 0 = no inversion, phase jump HIGH-LOW 1 = inversion, phase jump LOW-HIGH Bit 23 = 0 (mandatory) Register 6 (address 6): 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7-0 ID6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Parameter Description Settings EN_ANALOG Activates the analog part for the ultrasonic flow measurement is. If active, this section is powered only for the duration of the measurement to save current. STOP1 and STOP2 are analog inputs now and automatically selected by the internal multiplexer. 0 = STOP1 and STOP2 are digital inputs (TDC-GP2 compatibility) 1 = The analog section is used. Mandatory: If EN_ANALOG = 0 then set DELVAL1 = DELVAL2 = DELVAL3 = 0 NEG_STOP_TEMP Inverts the SenseT input signal. This is mandatory when the internal comparator is used instead of the external one like in TDCGP2 0 = external 74HC14 is used (TDC-GP2 compatibility) 1 = internal Schmitt trigger is used DA_KORR 7 = 7 mV 3-10 Sets comparator offset from -8 mV to +7 15 = - 1 mV acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 0 TDC-GP21 mV. 2‘s complement 6 = 6 mV ... 1 = 1 mV 0 = 0 mV 14 = - 2 mV 9 = - 7 mV 8 = - 8 mV TW2 Timer to charge up the capacitor of the recommend RC network when the internal analog part is used. Charge time: 0 = 90 µs 1 = 120 µs 2 = 150 µs 3 = 300 µs, recommended setting EN_INT[3] Additional interrupt source. See also register 2 for the lower 3 bits of EN_INT. The various sources are wired by an OR. An EEPROM action, e.g. EEPROM_COMPARE, is managed by the TDC-GP21 and especially the EEPROM write may last up to 130ms. Indicating the end will be helpful. 1 = end of EEPROM action START_CLKHS[2] Highest bit to set the settling time for the high speed oscillator. The lower bits are set in register 0, bit 18 and 19. 0 1 2 3 4 5 = off = continuously on = 480 µs delay = 1.46 ms = 2.44 ms to 7 = 5.14 ms CYCLE_TEMP Selects timer for triggering the second temperature measurement in multiples of 50/60Hz 0 1 2 3 = = = = 1 1.5 2 2.5 CYCLE_TOF Selects timer for triggering the second ToF measurement in multiples of 50/60Hz 0 1 2 3 = = = = 1 1.5 2 2.5 HZ60 TDC-GP21 can make complete up and down flow measurement and also two temperature measurements in series. The time interval between 2 measurements is based on 50 or 60 Hz. 0 = 50 Hz base, 20 ms 1 = 60 Hz base, 16.67ms FIREO_DEF Specifies the default level of the inactive fire buffer. Example: if FIRE_UP is active then the FIRE_DOWN buffer is connected to the default level. Setting 1 is mandatory when using the integrated analog section. 0 = High-Z (as in GP2) 1 = LOW QUAD_RES Option to improve the resolution by factor 4 from 90 ps to 22 ps. Can be used only in measurement mode 2. 0 = off (TDC-GP2 mode) 1 = on DOUBLE_RES Doubles the resolution from 90 ps to 45 ps. In measurement mode 1 this option limits the number of stop inputs to one (Stop1) 0 = off (TDC-GP2 mode) 1 = on TEMP_PORTDIR Ports for temperature measurement are measured in the opposite order. 0 = PT1 > PT2 > PT3 > PT4 1 = PT4 > PT3 > PT2 > PT1 ANZ_FIRE[6:4] Highest 3 bits of the number of fire pulses. See also register 0. If ANZ_FIRE > 15 then 0 = off 1 = 1 pulse acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 3-11 Ultrasonic-Flow-Converter TDC-GP21 PHFIRE is no longer active. ID6 2 = 2 pulses … 127 = 127 pulses Free bits, e.g. to be used as identification or version number 3.2 Read registers The result and status registers can be read by means of opcode ’hB x. The opcode is followed by 4, 2 or 1 bytes, depending on the address. The ID register bits in the configuration registers can be read back by means of opcode ’hB7. This opcode is followed by 7 bytes in the order ID0, ID1 ... ID6, each byte with the MSB first. Table 3-2: Read Registers Symbol Bits Description 0 RES_0 32 Measurement result 1, fixed-point number with 16 integer and 16 fractional digits 2 15 2 0 , 2 -1 2 -16 1 RES_1 32 Measurement result 2, fixed-point number with 16 integer and 16 fractional digits 2 RES_2 32 Measurement result 3, fixed-point number with 16 integer and 16 fractional digits 3 RES_3 32 Measurement result 4, fixed-point number with 16 integer and 16 fractional digits 4 STAT 16 15 5 3.2.1 REG_1 8 13 12 11 10 9 8 - 6 5 - 3 2 - 0 Error short Error open Timeout Precounter Timeout TDC # of hits Ch 2 # of hits Ch 1 ALU_ OP_ PTR EEPROM_Error 14 EEPROM_DED EEPROM_eq_CREG ADR Content of highest 8 bits of write register 1, to be used for testing the communication Result Registers The data structure and the occupancy of the result registers depend on the operatio n mode and whether calibrated or non-calibrated data are stored. Several cases must be distinguished: 3-12 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Only in measurement mode 1 negative results are possible. In measurement mode 2 only positive results are possible, given as unsigned numbers. A non-calibrated measure is possible only in measurement mode 1. In measurement mode 1 with calibrated data (ALU) the time intervals that have to be measured can not exceed twice the period of the calibration clock. When measuring bigger time intervals an ALU - overflow will occur and ’hFFFFFFFF is written in the appropriate result register. a. Measurement mode 1 with calibrated data (CALIBRATE = 1) The results are given in multiples of the internal reference clock (= external reference clock divided by 1, 2 or 4 (DIV_CLKHS)). Calibrated data are 32 bit fixed point numbers with 16 integer bits and 16 fractional bits. Any calibrated result covers therefore 1 result register. The serial output begins with the highest bit (2 15 ) and ends with the lowest one (2 -16 ). The numbers are available in complements of 2. Time = RES_X * T ref * 2 Time < 2 * T ref * 2 DIV_CLKHS = RES_X * T ref * N , with N = 1, 2 or 4 DIV_CLKHS b. Measurement mode 1 without calibration (CALIBRATE = 0) Non-calibrated data are of the type ‘Signed Integer’ and are stored as a 16 bit value in the high word of the result registers. The bits of the low word are set to zero. The result is represented as number of LSB and is available in complements of 2. Time = RES_X * LSB ~ RES_X * 90 ps c. Measurement mode 2 In measurement mode 2 the TDC-GP21 only supports calibrated measurement. The results are given in multiples of the internal reference clock (= external reference clock divided by 1, 2 or 4 (DIV_CLKHS)). Calibrated data are 32 bit fixed point numbers with 16 integer bits and 16 fractional bits. Any calibrated result covers therefore 1 result register. The serial output begins with the highest bit (2 15 ) and ends with the lowest one (2 -16 ). The numbers are available in complements of 2. Time = RES_X * T ref * 2 DIV_CLKHS = RES_X * T ref * N , with N = 1, 2 or 4 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 3-13 Ultrasonic-Flow-Converter TDC-GP21 d. Temperature measurement Discharge time in the same format as in c., measurement mode 2. The ratio of the discharge times equal the ratio of resistance: R T = R ref * T / ref 3.2.2 Status Register Table 3-3: Status registers Bits Name Description Values 2 – 0 ALU_OP_PTR ALU operation pointer. Pointer to the result register. See description below 5 – 3 # of hits Ch 1 Number of hits registered on channel 1 8 – 6 # of hits Ch 2 Number of hits registered on channel 2 9 Timeout TDC Indicates an overflow of the TDC unit 1 = overflow 10 Timeout Precounter Indicates an overflow of the 14 bit precounter in MR 2 1 = overflow 11 Error open Indicates an open sensor at temperature measurement 1 = open 12 Error short Indicates a shorted sensor at temperature measurement 1 = short 13 EEPROM_Error Single error in EEPROM which has been corrected 1 = error 14 EEPROM_DED Double error detection. A multiple error has been detected which can not be corrected. 1 = multiple error 15 EEPROM_eq_CREG Indicates whether the content of the configuration registers equals the EEPROM 1 = equal ALU Operation Pointer Description: The ALU operation pointer is stored in bits 0-2 of the status register (range of 0x00 to 0x03) and provides an index to one of the 4 results registers (R ES_0 to RES_3) as follows: 3-14 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 3.3 EEPROM The TDC-GP21 has a 7x32 bit EEPROM. This EEPROM can be used to store the configuration data together with the ID or version number. Only the following three actions are possible: Write configuration register content into the EEPROM Transfer the EEPROM content into the configuration registers Compare the configuration registers‘ content with the EEPROM content Important Note: If values are to be stored in the EEPROM it is mandatory to ensure that NO measurement is running (neither ToF nor temperature nor calibration measurements). During measurement a write access to the EEPROM is not permitted. The write access to the EEPROM takes about 300 ms. With no consideration, the EEPROM may be written with incorrect values. It may even happen that adjustment values are overwritten which prevents proper operation of the TDC. Besides the ID it is not possible to read back the EEPROM. This gives customers the possibility to program the chips by themselves and prohibit other to read back the configuration. For verification it is possible to compare the configuration register may be compare with the EEPROM. Bit EEPROM_eq_CREG in the status register indicates whether the content is equal or not. The EEPROM has an internal error correction (Hamming code). It is possible to detect and correct single bit errors, to detect multi-bit errors without correction Errors are indicated in the status register, bits EEPROM_Error (single bit) and EEPROM_DED (double error detection). *****With each read access/compare to the EEPROM the error bit is checked. In case a single bit error is detected a refresh cycle is started automatically and the data is restored. The data retention of the EEPROM is > 10 years @ 85 °C without single or multiple errors. With regular Compare_EEPROM commands (e.g. once per month) the data retention can be extended unlimited. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 3-15 Ultrasonic-Flow-Converter 3.4 TDC-GP21 SPI-interface The serial interface is compatible with the 4-wire SPI standard. It needs the SerialSelectNot (SSN) and can not operated as 3-wire interface. SSN - Slave Select SCK - SPI Clock SI - SPI Data In SO - SPI Data Out The TDC-GP21 does only support the following SPI mode (Motorola specification) * : Clock Phase Bit = 1 Clock Polarity Bit = 0 SCK starts with LOW, data take over is with the falling edge of SCK. The timings are shown in section 2.3. The interrupt pin is set back to INTN = 1 if: SSN goes LOW or, in case SSN is already LOW, with the first rising edge of SCK. SSN as Reset The SerialSelectNot (SSN) line is the HIGH-active reset for the serial interface. After SSN is set to LOW different operations can be addressed, not depending on the status of the interface before the reset. Note: It is mandatory to set the SSN – line to High-state for at least 50 ns between each Read-/Write sequence. * There is no common SPI specification, especially for phase & polarity. Some microcontroller may need a different setting, e.g. MSP430 run with Clock Phase = Clock Polarity = 0 Opcodes 3-16 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Table 3-4: Opcodes Hex MSB LSB Description Followed by New ’h8x 1 0 0 0 0 A2 A1 A0 Write into address A 24 bit or 32 bit data ’hBx 1 0 1 1 0 A2 A1 A0 Read from address A 8, 16 or 32 bit data ’hB7 1 0 1 1 0 1 1 1 Read ID bit 56 bit ID‘S ’hC0 1 1 0 0 0 0 0 0 Write configuration registers into EEPROM x ’hF0 1 1 1 1 0 0 0 0 Transfer EEPROM content into configuration registers x ’hC6 1 1 0 0 0 1 1 0 Compare configuration registers with EEPROM x ’h70 0 1 1 1 0 0 0 0 Init ’h50 0 1 0 1 0 0 0 0 Power On Reset ’h01 0 0 0 0 0 0 0 1 Start_TOF ’h02 0 0 0 0 0 0 1 0 Start_Temp ’h03 0 0 0 0 0 0 1 1 Start_Cal_Resonator ’h04 0 0 0 0 0 1 0 0 Start_Cal_TDC ’h05 0 0 0 0 0 1 0 1 Start_TOF_Restart x ’h06 0 0 0 0 0 1 1 0 Start_Temp_Restart x x The transfer starts with the MSB and is finished sending the LSB. The transfer is done bytewise. Data transfer can be stopped after each byte, sending a LOW-HIGH-LOW on the SSN line. Example: ‘h80 + 3 bytes will write configuration register 0 in the TDC-GP2 compatible mode. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 3-17 Ultrasonic-Flow-Converter TDC-GP21 ‘h80 + 4 bytes will write configuration register 0 including IDO (TDC -GP21 only). It is not possible to do incremental writing. Each register must be addressed separately. 3.4.1 Opcode Explanations ’hC0, ’hF0, ’hC6 all refer to EEPROM operations. Those may last up 130 ms, especially the EEPROM write. Therefore, the EN_INT bit 3 in register 6 indicates the end of the EEPROM operation. This can be used to adjust microprocessor actions. ’h01, Start_TOF: triggers a sequence for a single time-of-flight measurement. First, the 4 MHz oscillator is switched on. After the delay set to settle the oscillator (START_CLKHS), the comparator and the reference voltage are switched on. The receiver capacitor is charged up th Vref while inactive fire buffer is pulled down to GND. After the delay set to charge up the capacitor (TW2), the fire buffer sends the fire pulses. After the delay set in DELVAL the TDC stop channel is open. At the end of the measurement the analog section and the 4 MHz are switched off and the current consumption drops down to near zero. The interrupt is set, pin INTN = LOW. ’h05, Start_TOF_Restart: This opcode runs the Start_TOF sequence twice, in up and down direction as it is typical in ultrasonic flow meters. The interrupt is set, pin INTN = LOW, when the time measurement for each direction is finished. So, for one Start_TOF_Restart command the microprocessor sees two interru pts and has to read twice. The time interval between the up and down measurement is set by configuration parameter CYCLE_TOF in multiples of 50 Hz or 60 Hz. The right selection of the delay between the two measurements suppresses 50/60 Hz noise. CYCLE_TOF factor HZ60 = 0(50Hz) 0 1 20 ms 16.67 ms 1 1.5 30 ms 25.00 ms 2 2 40 ms 33.33 ms 3 2.5 50 ms 41.67 ms HZ60 = 1(60Hz) ’h02, Start_Temp: triggers a single temperature measurement sequence. It begins with the fake measurements (ANZ_FAKE) on port PT0. Then it measures ports PT0 > PT1 > PT2 > PT4. If TEMP_PORTDIR is set one then the sequence of ports is inverted, starting with the fake measurements at port PT4. ’h06, Start_Temp_Restart: This opcode runs the Start_Temp sequence twice. The time interval between the up and down measurement is set by configuration 3-18 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 parameter CYCLE_TEMP in multiples of 50 Hz or 60 Hz. The right selection of the delay between the two measurements suppresses 50/60 Hz noise. CYCLE_TEMP factor HZ60 = 0 (50Hz) HZ60 = 1 (60Hz) 0 1 20 ms 16.67 ms 1 1.5 30 ms 25.00 ms 2 2 40 ms 33.33 ms 3 2.5 50 ms 41.67 ms ’h03, Start_Cal_Resonator: Triggers a calibration measurement of the high speed oscilator. The TDC measures a time interval between 61 µs and 488 µs, specified in ANZ_PER_CALRES. The end of the measurement is indicated by the interrupt. The result, in multiples or the high speed clock period, is stored in result register 0. Dividing this by the theoretical value gives the correction factor. ’h04, Start_Cal_TDC: This command starts a measurement of 2 periods of the reference clock. It is used to update the calibration raw data. Typically, the chip is configured for auto-calibration and this command is not necessary. 3.4.2 SPI Sample Figure 3-1: Sample scope picture for sequence INIT ’h70 and Start_Cal_TDC = ’h04 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 3-19 Ultrasonic-Flow-Converter 3-20 TDC-GP21 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 4 Converter Frontend 4.1 TDC - Measurement mode 1 4.1.1 General Description Measurement range from 3.5 ns to 2.4 µs (0 to 2.4 µs between stop channels) 2 stop channels referring to one start channel each of typ. 90 ps resolution 1 stop channel referring to one start channel with typ. 45 ps resolution 20 ns pulse pair resolution 4-fold multihit capability for each stop channel Selectable rising/falling edge sensitivity for each channel Enable pins for windowing functionality The possibility to arbitrarily measure all events against each other Typical application: Laser ToF, RF ToF, ATE Digital TDCs use internal propagation delays of signals through gates to measure time intervals with very high precision. Figure 5 clarifies the princip al structure of such an absolute-time TDC. Intelligent circuit structures, redundant circuitry and special methods of layout on the chip make it possible to reconstruct the exact number of gates passed by the signal. The maximum possible resolution strongl y depends on the maximum possible gate propagation delay on the chip. Figure 4.1 The measuring unit is triggered by a START signal and stopped by a STOP signal. Based on the position of the ring oscillator and the coarse counter the time interval between START and STOP is calculated with a 20 bit measurement range. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-1 Ultrasonic-Flow-Converter TDC-GP21 The BIN size (LSB) is typically 90 ps at 3.3 V and 25 °C ambient temperature. The RMS noise is about 60 ps (0.7 LSB). The gate propagation delay times strongly depend on temperature and voltage. Usually this is solved doing a calibration. During such a calibration the TDC measures 1 and 2 periods of the reference clock. The measurement range is limited by size of the counter: t yy = BIN x 26224 ~ 90 ps x 26224 = 2.4 µs Time (Condition) Description t ph 2,5 ns (min.) Minimum pulse width t pl 2,5 ns (min.) Minimum pulse width t ss 3.5 ns ns (min) 2.4 µs (max.) Start to Stop t rr 20 ns (typ.) Rising edge to rising edge t ff 20 ns (typ.) t va 1.24µs uncalibrated 4.25µs calibrated t xx No timing limits t yy 2.4 µs (max) Figure 4.2 Last hit to data valid Max. measurement range = 26224 * LSB Input circuitry Each input separately can be set to be sensitive to rising or falling edge or both edges. This is done in register 0, bits 8 to 10. (NEG_START, NEG_STOP 1, NEG_STOP2) and register 2, bit 27 & 28, RFEDGEx. Furthermore all Start/Stop-inputs support a high active enable pin. 4.1.2 Measurement Flow Configuration At the beginning the TDC-GP21 has to be configured. The main settings for measurement mode 1 are: 4-2 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 a. Select measurement mode 1 Set register 0, bit 11, MESSB2 = 0. Register 6, bit 12, DOUBLE_RES = 1 selects double resolution. With this bit set the resolution is typ. 45 ps instead of 90 ps, but only one STOP channel is available. b. Select the reference clock (see also section 5.1) Register 0, bits 18 & 19 and register 6, bit 20, START_CLKHS defines the switch-on behavior of the high-speed clock. If only the 32 kHz is used it should be “0“. If only the high-speed clock is used it should be “1“ (continuously on). Register 0, bits 20 & 21, DIV_CLKHS sets an additional internal divider for the reference clock (1, 2 or 4). This is important for calibrated measurements in measurement mode 1 because the ALU works correctly only if 2*T ref (intern) is bigger than the maximum time interval to be measured. Otherwise the ALU output is ’hFFFFFFFF. Make also sure that 2*T ref (intern) < 2.4 µs to avoid a timeout during calibration. Figure 4.3 c. Set the number of expected hits In register 1, bits 16 to 18 and 19 to 21, HITIN1 and HITIN2 the user has to define the number of hits the TDC-GP21 has to wait for. A maximum of 4 on each channel is possible. The TDC-GP21 measures until the set number of hits is registered or a timeout occurs. d. Select calibration acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-3 Ultrasonic-Flow-Converter TDC-GP21 As the BIN size varies with temperature and voltage the TDC-GP21 ALU can internally calibrate the results. This option is switched on by setting register 0, bit13, CALIBRATE = “1“. It is recommended to do this. For the calibration the TDC measures 1 and 2 cycles of the reference cloc k. The two data are stored as Cal1 and Cal2. There are two ways to update the calibration data Cal1 and Cal2: - Separate calibration by sending opcode Start_Cal_TDC via the SPI interface - Automatic update by setting register 0, bit 12, NO_CAL_A UTO = “0“. In most applications this will be the preferred setting. e. Define ALU data processing While the TDC unit can measure up to 4 hits on each channel the user is free in his definition what the ALU shall calculate. The settings are done in register 1, bits 16 to 19 and 20 to 23, HIT1 and HIT2. Both parameters can be set to: 0 = Start 1 = 1. Stop Ch1 9 = 1. Stop Ch2 2 = 2. Stop Ch1 A = 2. Stop Ch2 3 = 3. Stop Ch1 B = 3. Stop Ch2 4 = 4. Stop Ch1 C = 4. Stop Ch2 Examples: Reg1 = ‘h01xxxx - 1st Stop Ch1-Start Reg1 = ‘h2Bxxxx - 3rd Stop Ch2-2nd Stop Ch1 6 = Cal1 Ch1 Reg1 = ‘h06xxxx - Cal1 7 = Cal2 Ch1 The ALU calculates HIT1 - HIT2. In case calibration is active the ALU does the full calibration calculation (except when reading the calibration values. In this case the ALU writes the Cal1/Cal2 ra w data to the output register). ( 4-4 ) acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Figure 4.4 f. Select input sensitivity In register 2, bits 27 & 28, RFEDGE1 and RFEDGE2, the user can select whether the stop inputs are sensitive to either rising or falling edges (RFEDGE = “0“) or to both rising and falling edges (RFEDGE = “1“). In register 0, bits 8 to 10 the user can add an internal inverter to each inpu t, Start, Stop1 and Stop2. With RFEDGE = “0“ this is the same as rising edge (NEG_X = “0“) or falling edge (NEG_X = “1“). g. Interrupt behavior The interrupt pin 8, INT can have different sources. They are selected in register 2, bits 29 to 31, EN_INT and register 6, bit 21. Reg. 2 bit 29 = “1” ALU ready Reg. 2 bit 30 = “1” The set number of hits is there Reg. 2 bit 31 = “1” Timeout of the TDC unit Reg. 6 bit 21 = “1” End of EEPROM action The different options are wired by OR to enable more than one so urce. The first rising edge of SCK resets the INTN pin (interrupt). After the configuration the user has to initialize the TDC-GP21 by sending opcode “Init” so that the TDC accepts Start and Stop hits. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-5 Ultrasonic-Flow-Converter TDC-GP21 Measurement After an initialization the TDC unit will start with the first pulse on the Start input. It will run until: the set number of hits has been seen (maximum 4 on both stop channels in mode 1) or until a timeout occurs at the end of the measurement range (at about 2.4 µs in mode 1). The time measurement raw data are internally stored. The number of hits can be seen from the status register, bits 3 to 8. In case calibration is active the TDC now measures one and two periods of the internal reference clock (T ref * 1, 2 or 4). The calibration raw data Cal1 and Cal2 are also internally stored. Figure 4.5 Data Processing At the end of the measurement the ALU starts to process the data according to the HIT1, HIT2 settings and transfers the result to the output register. In case calibration is off the ALU transfers the 16 bit raw data to the output register. With calibration the ALU calculates according to 3.1.1.d and transfers the 32 bit fixed point number to the output register. The ALU can be switched off configuring HIT1 = HIT2 = 5. The time it takes the ALU depends on whether calibration is on or not and the supply voltage. 4-6 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Table 4.1: ALU timings un-calibrated (disable AutoCal.) 2.5 V 3.0 V calibrated 1.56 µs 1.24 µs 3.6 V 1.0 µs Predivider As soon as the data is available from the output register the interrupt flag is set (assumed that 3.0 µs 0 the ALU interrupt is enabled, see 4.58 µs 1 reg. 2, EN_INT). Further the load 7.58 µs 2 2.75 µs 0 4.25 µs 1 7.26 µs 2 2.54 µs 0 4.0 µs 1 7.0 µs 2 pointer of the output register is increased by 1 and points to the next free memory. The actual position of the load pointer can be seen in the status register, bits 0 to 2. Reading Data Example: Now the user can read the data sending the opcode 10110ADR. With the next 16 clock cycles (un-calibrated data) or 32 clock cycles (calibrated data) the TDC-GP21 will send the result, beginning with the most significant bit (MSB). The configuration ... write reg1=’h014400 calculate 1st Stop -Start ... first rising edge of SCK resets the INTN Initialize pin (interrupt). ... while(Check interrupt flag) a. Un-calibrated data format: write reg1=’h024400 16 bit Signed integer in complements of 2. 1BIN = uncalibrated gate delay is about 90 ps at 3.3 V and 25 °C. Time = RES_X x 90 ps 4 hits on channel 1, calculate 2nd -Start wait(4.6 µs) write reg1=’h034400 calculate 3rd-Start wait(4.6 µs) write reg1=’h044400 calculate 4th-Start b. Calibrated data format: wait(4.6 µs) 32 bit fixed-point number in Now all Hit data are available from registers 0 to 3. The load pointer value is 4. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-7 Ultrasonic-Flow-Converter TDC-GP21 complements of 2. Given in multiples of the reference clock. Time = RES_X * T ref * N, with N = 1, 2 or 4 The measured time interval may not exceed otherwise the ALU will go into overflow and will write the data ’hFFFFFFFF to the output register. The configuration of the ALU allows only one hit calculation at the time. In case mor e than one hit has been measured it is necessary to write new commands to HIT1/HIT2 to instruct the ALU for calculating the other hits. After writing to HIT1/HIT2 it is necessary to wait for minimum t.b.d. µs (calibrated data) or t.b.d. ns (un -calibrated data) before reading or writing again to HIT1/HIT2. Reading Calibration Raw Data The calibration data are not addressed directly after the calibration measurement but after the next regular measurement, before the next INIT. Source Code Example: //-------------------------------------------------------------------------// 1st Measurement plus calibration data readout gp21_send_1byte(Bus_Type, Init); // Wait for INT Slot_x Wait_For_Interrupt(Bus_Type); // First regular measurement (to readout calibration raw data) Result = gp21_read_n_bytes(Bus_Type, 4 ,0xB0 ,0x00 ,16); // readout the new calibration data from result register adr 0x01 gp21_wr_config_reg(Bus_Type, 0x81, 0x67490000); Diff_Cal2_Cal1 = gp21_read_n_bytes(Bus_Type, 4, 0xB0 ,0x01 ,16); //-------------------------------------------------------------------------- At the end the TDC-GP21 has to be initialized again to be ready for the next measurement. This is done by sending the opcode “Init“ so that the TDC accepts new Start and Stop hits. 4-8 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 4.2 TDC - Measurement mode 2 4.2.1 General Description 1 stop channels referring to one start channel Typical 22 ps / 45 ps / 90 ps resolution Measurement range from 700 ns to 4 ms @ 4 MHz 2 x T ref pulse pair resolution 3-fold multihit capability, full-automated calculation Selectable rising/falling edge sensitivity Integrated programmable windowing for each single stop with 10 ns precision Typical application: Ultrasonic flow & heat meter Digital TDCs use internal propagation delays of signals through gates to measure time intervals with very high precision (see also measurement mode 1, section 4). In measurement mode 2 the maximum time interval is extended using a pre-divider. The resolution in LSB remains unchanged by that. In this mode the high -speed unit of the TDC does not measure the whole time interval but only time intervals from START and STOP to the next rising edge of the reference clock (fine-counts). In between the fine-counts the TDC counts the number of periods of the reference clock (coarse -count). Figure 4.6 The GP21 converter front end section achieves a quantization BIN of 90 ps (LSB) where Vcc = 3.3 V and the ambient temperature is at 25 °C. RMS noise accounts for 60 ps (0.7 LSB) of this same result. As gate propagation delay is used for precision interval measurement it is important to consider that this delay time is directly affected by both Vcc and temperature. Therefore, using Measurement Mode 2, a calibration is required acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-9 Ultrasonic-Flow-Converter TDC-GP21 and is done automatically with the right configuration. During calibration the TDC measures one and two periods of the 4 MHz reference clock. The calibrated result does not depend on temperature or supply voltage. The measurement range is limited by size of the coarse counter: t yy = T ref x 2 14 = 4.1ms @ 4MHz The time interval between START and STOP is calculated with a 26 bit measurement range. Time (Condition) Description t ph 2,5 ns (min.) Minimum pulse width t pl 2,5 ns (min.) Minimum pulse width t ss 2*T ref Start to Stop @ DIS_PHASESHIFT = 1 t rr 2*T ref Rising edge to rising edge t ff 2*T ref Falling edge to falling edge t va 4.6 µs (max.) ALU start to data valid t yy 4 ms (max) Max. measurement range Figure 4.7 Input circuitry Each input separately can be set to be sensitive to rising or falling edg e. This is done in register 0, bits 0 to 2. (NEG_START, NEG_STOP1). Further all Start/Stop-inputs support a high active enable pin. Note: In case the Start-Stop interval is less than the lower limit tzz the TDC will ignore more and more events the smaller it is. In no case there will be wrong results. 4-10 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 4.2.2 Measurement Flow Configuration At the beginning the TDC-GP21 has to be configured. The main settings for measurement mode 2 are: a. Select measurement mode 2 setting register 0, bit 11, MESSB2 = 1 b. Select the reference clock (see also section 5.1) In measurement mode 2 the TDC-GP21 needs the high-speed clock for the time measurement. In case of low-power applications this clock can be switched of in between measurements. The a Figure 4.8 32.768 kHz clock is necessary for the timing control during the oscillator power-on. Register 0, bits 18 & 19, START_CLKHS defines the switch-on behavior of the high-speed clock. If only the high-speed clock is used this is be set to “1“(continuously on). In case both oscillators are used for current saving reasons this should be set to “2“ for ceramic oscillators and to “3“ for quartz oscillators. Register 0, bits 20 & 21, DIV_CLKHS sets an additional internal divider for the reference clock (1, 2 or 4). The choice has an influence on the minimum time interval t min = 2 * T ref * 2 DIV_CLKHS and the maximum time interval t max = 2 14 * T ref * 2 DIV_CLKHS Further, it is necessary that acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-11 Ultrasonic-Flow-Converter 2 * T ref * 2 DIV_CLKHS TDC-GP21 < 2.4 µs. Otherwise the ALU will go into an overflow during calibration and write ’hFFFFFFFF as output data. Please note: The resulting clock after the predivider has to be in the allowed range of 2 MHz to 8 MHz in single and double resolution and from 2 MHz ... 6 MHz in quad resolution. c. Set the number of expected hits In register 1, bits 16 to 18, HITIN1 the user has to define the number of hits the TDC GP21 has to wait for. A maximum of 3 on channel 1 is possible. The number HITIN1 always has to be higher by 1 than the number of expected hits. The reason is that the Start is also counted as a hit. The TDC-GP21 measures until the set number of hits is registered or a timeout occurs. register 1, bits 19 to 21, HITIN2 have to be set to “0“. Example: 2 stop pulses are expected: HITIN1 = “3”, HITIN2 = “0” d. Select calibration The calibration is switched on by setting register 0, bit13, CALIBRATE = “1“. It is mandatory to do this. For the calibration the TDC measures 1 and 2 cycles of the reference clock. The two d ata are stored as Cal1 and Cal2. There are two ways to update the calibration data Cal1 and Cal2: Separate calibration by sending opcode Start_Cal_TDC via the SPI interface Automatic update by setting register 0, bit 12, NO_AUTO_CAL = “0“. In most applications this will be the preferred setting. e. Define ALU data processing While the TDC unit can measure up to 3 hits the ALU can calculate only one hit at once. The settings are done in register 1, bits 24 to 27 and 28 to 31, HIT1 and HIT2. The 4-12 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Start pulse is internally handled like a Stop pulse because of the special measuring method in measurement mode 2. Reg1 = ’h21xxxx = Calculate 1st Stop Ch1-Start Reg1 = ’h31xxxx = Calculate 2nd Stop Ch1-Start Reg1 = ’h41xxxx = Calculate 3rd Stop Ch1-Start The ALU calculates the time interval as: ( ) f. Select input sensitivity In register 2, bits 27 & 28, RFEDGE1 and RFEDGE2, the user can select whether the stop inputs are sensitive to either rising or falling edges (RFEDGE = “0“) or to both rising and falling edges (RFEDGE = “1“). In register 0, bits 8 to 10 the user can add an internal inverter to each input, Start, Stop1 and Stop2. With RFEDGE = “0“ this is the same as rising edge (NEG_X = “0“) or falling edge (NEG_X = “1“). g. Interrupt behavior The INT pin can have various sources, to be selected in regi ster 2, bits 21 to 23, EN_INT, and register 6 bit 21 EN_INT. EN_INT = no bits set no Interrupt source reg2 bit 29 ALU ready reg2 bit 30 The set number of hits is there reg2 bit 31 Timeout of the TDC unit reg6 bit 21 EEPROM action has finished The different options are wired by OR. The first rising edge of SCK resets the INTN pin (interrupt). After the configuration the user has to initialize the TDC-GP21 by sending opcode “Init“ so that the TDC accepts Start and Stop hits. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-13 Ultrasonic-Flow-Converter TDC-GP21 Measurement After an initialization the TDC unit will start with the first pulse on the Start input. It will run until: the set number of hits has been seen (maximum 3 on channel 1 in measurement mode 2) or until a timeout occurs. The timeout can be programmed in multiples of the reference clock setting reg. 3, bits 27 & 28, SEL_TIMO_MB2. At 4 MHz the values are: SEL_TIMO_MB2 (@ 4 MHz, DIV_CLKHS = 0) = 0 = 64 µs = 1 = 256 µs = 2 = 1024 µs = 3 = 4096 µs recommended At the end of the time measurement the TDC measures 2 periods of the reference clock for calibration. Data processing At the end of the measurement the ALU starts to process t he data according to the HIT1, HIT2 settings and transfers the result to the output register. The ALU calculates according to 4.2.2.e and transfers the 32 bit fixed point number to the output register. The time it takes the ALU depends on the supply voltage to be calculated: Table 4-2: ALU timings First Event (1 Hit) 2.5 V 3.0 V 3.6 V 3.7 µs 3.3 µs 3.1 µs As soon as the data is available from the output register the interrupt flag is set (assumed that the ALU interrupt is enabled, see reg. 2, EN_INT). Further the load pointer of the 4-14 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 output register is increased by 1 and points to the next free memory. The actual position of the load pointer can be seen in the status register, bits 0 to 2. Reading Data Now the user can read the data sending the opcode 1 0110ADR. With the next 32 cycles (calibrated data) the TDC-GP21 will send the result, beginning with the main significant bit (MSB). The 32 bit fixed-point numbers in complements of 2 represent the time interval in multiples of the reference clock. Time = RES_X * T ref * 2 DIV_CLKHS Now all hit data are available from registers 0 to 2. The load pointer value is 3. At the end the TDC-GP21 has to be initialized again to be ready for the next measurement. This is done by sending the opcode “Init“ so that the TDC accepts new Start and Stop hits. The first rising edge of SCK resets the INTN pin (interrupt). 4.2.3 Stop Masking The TDC-GP21 can set time-based masking windows for each of the 3 hits on Stop1 input when no hits are accepted. The masking refers to the st art event and has an accuracy of less than 10 ns. The internal enable unit is connected to the external enable pin by a logical AND. The external enable pin must be set to “1” to use the internal masking unit. The configuration settings are made in registers 2 to 4, DELVAL1, DELVAL2 and DELVAL3: DELVAL1 … DELVAL3 are fixed point numbers with 14 bit integer and 5 bit fractional digits, in multiples of the internal reference clock Delay min = DELVALX / 2 5 * T ref * 2 DIV_CLKHS The minimum mask size is 3 clock cycles The mask values must have an ascending order. Each mask value must be 3 clock cycles bigger than the previous value It is mandatory that if not all registers are used the mask values that are not required are set to “0”. When all DELVAL registers are set to 0, the complete unit is disabled. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-15 Ultrasonic-Flow-Converter TDC-GP21 Example: 4 MHz reference, DIV_CLKHS = 1 DELVAL1 = ’h3200 1st Stop not accepted before 200 µs after Start (12800/32 * 250 ns * 2 1 = 200 µs) DELVAL2 = ’h3300 2nd Stop not accepted before 204 µs after Start (13056/32 * 250 ns * 2 1 = 204 µs) DELVAL3 = ’h3400 3rd Stop not accepted before 208 µs after Start (13312/32 * 250 ns * 2 1 = 208 µs) 4-16 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 4.3 Analog Input Section Compared to TDC-GP2, the TDC-GP21 has an additional analog input section which can be used alternatively to the pure digital inputs. Especially the design of ultrasonic flow and heat meters is greatly simplified by this new option. The external circuit of the ultrasonic part is reduced to just two resistors and capacitors additional to the piezo transducers. The ultrasonic signals will be packages of sinusoidal oscillat ions with several 100 mV amplitude. The signals are coupled to the inputs by means of a high pass filter as the comparator can not handle GND as threshold. The threshold of the comparator is set to 1/3 Vcc. An analog multiplexer selects the input according to the active mea surement direction. The comparator is chopper stabilized to guarantee a low offset voltage in the range of < 2 mV. This is mandatory for a good measurement quality. The input offset voltage of the comparator is frequently corrected by an internal chopper circuit. If temperature or supply voltage changes over time, the offset voltage is automatically adapted and holds at < 2 mV. All elements are controlled by the TDC-GP21 control unit. They are powered only during the measurement to keep down the power consumption. A measurement sequence, triggered by command Start_TOF_Restart looks like the following procedure, starting with the up flow measurement: The 4 MHz oscillator is switched on. The chip waits for the programmed delay to give enough time for the oscillator to reach the full amplitude. The comparator, the reference voltage and the analog switches get powered. The capacitor of the transmitting path (STOP1) is connected to GND. The fire down buffer (FIRE_DOWN) is connected to GND. The capacitor of the receiving path (STOP2) is charged up to Vref. The TDC waits the delay set in TW2. The analog switch selects STOP2 input as input to the comparator. FIRE_UP is selected as TDC START signal. The set number of pulses is sent through the fire up buffer, pin FIRE _UP. The analog signal at STOP2 passes the comparator converted to a digital signal that is connected to the STOP input of the TDC unit. When the delay of the stop masking unit (DELVAL) expired the TDC is ready to measure. It can measure up to 3 stops. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-17 Ultrasonic-Flow-Converter TDC-GP21 Figure 4.9 At the end of the measurement the control unit switches off the comparator, the reference the analog switches and the 4 MHz. The current is reduced to close zero. The interrupt flag is set. The control unit waits a period, given in multiples of 50Hz/60Hz. During this the processor has to read the results. 4-18 After the delay the same procedure is started but in the opposite direction. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 4.3.1 Offset Setting / First Hit Detection The offset of the comparator can be set in steps of 1 mV from -8mV to +7 mV by means of parameter DA_KORR, bits 25 to 28 in register 6. DA_KORR is set as 2‘s complement. This feature can be used to savely detect the first hit. By setting the offset to e.g. +5mV the rising edge of the first pulse can be savely detected. With this i nformation the stop making (DELVAL) can be set appropriately. The offset can be set back to 0 mV and with the next measurement the zero crossing of the 7th wave can be savely detected. Figure 4-10: First hit detection acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-19 Ultrasonic-Flow-Converter 4.4 TDC-GP21 Temperature Measurement Especially for heat meter applications the TDC-GP21 has a PICOSTRAIN based temperature measuring unit that offers high resolution and very low current consumption. The measurement is based on measuring discharge times. Therefore, a capacitor is discharged alternately through the sense resistors and the reference resistors. As an improvement compared to TDC-GP2, the TDC-GP21 has the comparator already integrated. Figure 4.11: Figure 4-12: With internal Schmitt trigger 4-20 Figure 4-13: GP2 compatible with external trigger acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 The unit has 4 resistor ports, two of them to be used for the temperature sensors for hot water (up) and cold water (down). The other two ports are used for reference resistors. Basically, on reference resistor connected to both ports is suffic ient. The temperature sensors should have a minimum resistance of 500 Ohm. The cable length should not exceed 3 m. TDC-GP21 can measure 2-wire sensors only. It is not possible to use 4-wire sensors. The precision of the temperature measurement is far within the limits of the standard for heat meters when PT500 or PT1000 are used. In combination with PT500 or PT1000 temperature sensors there is no need for two reference resistors. A typical setup with one fixed reference is shown in figure 4 -14. The EMC protection is a recommendation of acam from experience. Further information will be shown in section 5.5 EMC Measures. 2 x PT500 / PT1000 100nF LoadT down up SenseT Rref PT1 PT2 TDC-GP21 PT3 PT4 1nF 1nF EMC protection Figure 4.14: PT500 / PT1000 temperature measurement with one reference resistor The temperature measurement is fully automated. It is triggered by the µC sending the opcodes Start_Temp or Start_Temp_Restart. With Start_Temp_Restart the TDC -GP21 measures the temperature twice, with a delay given in multiples of the 50 Hz/60 Hz period. This will be of help to reduce 50Hz/60Hz noise. For a measurement, the TDC-GP21 starts with 2 or 8 dummy measurements at port PT1 before it makes the real four measurements in the order PT1 > PT2 > PT3 > PT4. After the 4 measurements have finished the interrupt flag is set. TDC -GP21 has the possibility to inverse the order, making the dummy measurements at port PT4. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-21 Ultrasonic-Flow-Converter TDC-GP21 The four data are found in registers 0 to 3. From Res_3/RES_1 and RES_4/RES_2 the microcontroller can calculate the ratio Rtemp/Rref. By means of a look -up table it can calculate the temperature for the special type of sensor in use. Configuration Register 0, bit 15, ANZ_FAKE sets the number of dummy measurements at the beginning of a temperature measurement. This is necessary to overcome mechanical effects of the load capacitor. ANZ_FAKE = 0 2 dummy measurements ANZ_FAKE = 1 7 dummy measurements Register 0, bit 16, T CYCLE sets the cycle time for the temperature measurement. TCYCLE = 0 128 µs cycle time @ 4MHz TCYCLE = 1 512 µs cycle time @ 4MHz Register 0, bit 17, ANZ_PORT sets the number of ports that will be used. ANZ_PORT = 0 2 ports = 1 sensor ANZ_PORT = 1 4 ports = 2 sensors Register 6, bit 11, TEMP_PORTDIR sets the order of the port measurements TEMP_PORTDIR = 0 PT1 > PT2 > PT3 > PT4 TEMP_PORTDIR = 1 PT4 > PT3 > PT2 > PT1 Register 6, bit 15, HZ60 sets the base frequency for the delay between the up and down measurements for commands Start_TOF_Restart and Start_Temp_Restart. HZ60 = 0 50 Hz base HZ60 = 1 60 Hz base Register 6, bits 18, 19, CYCLE_TEMP, selects the factor timer for triggering the second temperature measurement in multiples of 50/60Hz. CYCLE_TEMP = 0 = 1 4-22 1 1.5 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 = 2 2 = 3 2.5 Register 6, bit 30, NEG_STOP_TEMP inverts this signal at the SenseT path. This is mandatory when the internal comparator is used. Without inversion the unit is compatible to TDC-GP2 operation with an external Schmitt trigger NEG_STOP_TEMP = 0 No inversion, TDC-GP2 compatible = 1 Inversion, mandatory when the internal comparator is used Recommended Capacitor Values The discharge time should be about 150 µs. Therefore the capacitor should have the following value: PT500: 220 nF PT1000: 100 nF Please set TCYCLE = 1 to avoid timeout error. Recommended Capacitor Type To get accurate results we recommend capacitor types with very low dC/dU. We recommend: C0G types or CfCap Series from Tayo Yuden Please do not use X7R or similar capacitors. Current consumption By means of the TDC technology the temperature measurement needs an extremely low current, much less than an A/D converter does. A full temperature measurement with 2 sensors, 2 references am PT1000 sensor type, including all calculations takes less than 2.5 µAs. With one temperature measurement in 30 seconds (typical for heat meters) the average current consumption is 0.08 µA only. This is about 50 times less than other solutions. A PT500 sensor doubles the current. Note: During temperature measurement the start input has to be enabled. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-23 Ultrasonic-Flow-Converter TDC-GP21 Error detection Additionally the temperature unit checks the plausibility of the results. It is able to detect a short circuit of the sensor or an open sensor. The TDC-GP21 provides in the relevant output register an error code instead of a measurement value. 1. Short circuit between lines: equivalent to a very short time interval (< 8 x T ref = 2 µs @ 4 MHz). The TDC-GP21 writes a ’h0 to the output register of the shorted sensor. 2. Broken sensor/Short circuit against GND: equivalent to no stop signal or timeout. The TDC-GP21 writes a ’hFFFFFFFF into the output register of the ope n sensor. Note: Due to a bug it is necessary to have SEL_TIMO_MB2 at 2ms to get a correct interrupt indication when 512 µs cycle time is selected. 33nF 1: Short circuit between lines: Error short 2: Short circuit LoadT against GND: Error open 3: Circuit circuit PT2 against GND: Measurement at PT1 with half the nominal discharge time as sensor is in parallel to Rref, result out of reasonable range LoadT 2 1 SenseT Rref PT1 PT2 3 TDC-GP21 PT3 PT4 Figure 4-15: Short circuit indication Table 4.4: Analog specification Symbol Terminal Resolution RMS External Schmitt trigger PT500 PT1000 PT500 PT1000 17.5 17.5 16.0 16.0 Bit 96 96 dB 0.9960 0.9979 SNR Absolute Gain 3 4-24 2 Internal Schmitt trigger 0.9912 0.9931 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group Unit TDC-GP21 3.6 V 0.9923 0.9940 0.9962 0.9980 3.0 V 0.9912 0.9931 0.9960 0.9979 2.5 V 0.9895 0.9915 0.9956 0.9979 Gain-Drift vs. Vio 0.25 0.23 0.06 0.04 max. Gain Error (@ dӨ = 100 K) 0,05% 0,05% 0,02% < 0.01% Gain-Drift vs. Temp 0.022 0.017 0.012 0.0082 Absolute Gain vs. Vio 3 (gain factor) Gain-Drift vs. Vio 0,08 %/10 K %/V Initial Zero Offset < 20 <10 < 20 < 10 mK Offset Drift vs. Temp < 0.05 < 0.03 < 0,012 < 0.0082 mK/ °C PSRR 1 %/V >100 dB All values measured at Vio = Vcc = 3.0 V, Cload = 100 nF for PT1000 and 200 nF for PT500 (C0G-type) 2 measured with external 74AHC14 Schmitt trigger 3 compared to an ideal gain of 1 Gain error and its mathematical correction The TDC-GP21 temperature measurement is based on acam’s PICOSTRAIN technology. Here the resistance variation of an RTD is digitized by means of a high accurate time interval measurement. According to that, the Schmitt trigger’s delay time introduces a considerable gain error that results in a gain reduction compared to an ideal output value. This gain reduction can be mathematically described as a deviation from an ideal straight line. Hence, a simple mathematical correction by adding a correction factor compensates for this deviation from the ideal gain. It is calculated as follows: T corr = T uncorr /gainfactor with acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 4-25 Ultrasonic-Flow-Converter TDC-GP21 T corr : gain corrected temperature result T uncorr : uncorrected temperature result gainfactor: gain correction factor, compensates the deviation from an ideal gain of 1 By means of this compensation, the effect of the Schmitt trigger’s delay time can be reduced to a residual gain error of 0.05 % of F. S. with the internal Schmitt trigger, or even less in combination with an external 74AHC14 Schmitt trigger. Three main parameters have to be considered, to select the correct gain factor: base resistance of the temperature sensor (e.g. PT500, PT1000) used Schmitt trigger (GP21-internal, external 74AHC14) GP21 supply voltage The appropriate gain correction factors are provided in table 4-3 (“Absolute gain vs. Vio”). Import note: The gain correction factors for the external Schmitt trigger exclusively refer to the 74AHC14 Schmitt trigger. Other types (e.g. 74HC14) require different gain factors, in order to ensure a correct compensation. According to that, we strongly recommend to use a 74AHC14 as external Schmitt trigger. Example 1: Application with PT1000 Sensor, GP21 internal Schmitt trigger and 3.0 V supply voltage. According to table 4.3 a gain factor of 0.9931 has to be selected. The gain corrected result is calculated then by the following equation: T corr =T uncorr /0.9931 Example 2: Application with PT500 Sensor, external 74AHC14 Schmitt trigger and 3.6 V supply voltage. Table 4-3 now specifies a gain factor of 0.9980. The gain corrected result is calculated as follows: T corr = T uncorr /0.9980 4-26 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 5 Details and Special Functions 5.1 Oscillator The TDC-GP21 uses up to 2 clock signals depending on the operating mode: High-speed clock, typically 4 MHz, for calibration and as a predivider for the TDC measuring unit in measurement mode 2 and for the EEPROM 5.1.1 32 kHz clock signal used for internal timer functions. High-Speed Oscillator Generally, the TDC-GP21 needs a high-speed clock for calibration. The recommend value is 4 MHz, the possible range is 2 to 8 MHz (2 to 6 MHz in QUAD_RES mode). When running in measurement mode 2 the TDC-GP21 needs the high-speed clock signal also as a part of the time measuring unit. Finally the operations need the high speed clock, too. The oscillator takes an average current of 200 µA when running all the time. But as it is needed only during the time measurement, the TDC-GP21 has the capability to control the on-time by itself. The settings are done with parameter START_CLKHS. With START_CLKHS > 1 the oscillator is switched on after sending opcodes Start_TOF, Start_TOF_Restart, Start_Temp and Start_Temp_Restart for the duration of the measurement. A delay between starting the oscillator and starting the measurement guarantees sufficient time for the oscillation to settle at full amplitude. Note: It is strongly recommended to use a ceramic oscillator. Exactly because a quartz needs much longer to settle than a ceramic oscillator. This costs a lot current, but using a quartz oscillator has no advantage. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 5-1 Ultrasonic-Flow-Converter TDC-GP21 START_CLKHS = 0 Oscillator off = 1 Oscillator continuously on = 2 The measurement is started with 480 µs delay. = 3 same as ‘2’, but with 1.46 ms delay = 4 same as ‘2’, but with 2.44 ms delay Figure 5.1 = 5 to 7 same as ‘2’, but with 5.14 ms delay The programmable delay guarantees that the oscillator has settled before the measurement starts. For ceramic resonators 480 µs will be sufficient. For quartz the necessary delay might reach the maximum of 5.14 ms. By this measure the average current consumption can be drastically reduced. Example: At one ToF measurement in an ultrasonic flow meter (forth/back) per second the highspeed oscillator is active only for about 2 ms. The average current consumption is 130 µAs * 2 ms = 0.26 µA. 5.1.2 32.768 kHz Oscillator The TDC-GP21 needs a 32.768 kHz reference for the start-up control of the high-speed clock and the clock calibration. It therefore offers an integrated low-power driver. The 32.768 kHz oscillator is permanently running and has a current consumption of only about 0.5 µA at 3.0 V. The settling time of this oscillator is about 3 s after power -up. The 32.768 kHz oscillator cannot be switched off. With an Figure 5.2 external 32 kHz clock from the microprocessor pin CLK32in has to be connected to GND. 5-2 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 The low-power clock can be internally forwarded to an output pin to be available for an external microprocessor. The possible settings are: 32 kHz output at pin FIRE_IN SEL_TSTO2 = 7: 4 kHz (32 kHz/8) output at pin EN_START CLK32in It is also possible to provide an external low-frequency rectangular clock at the CLK32Out pin (3.6 V max.). CLK32out SEL_TSTO1 = 7: External 32kHz Figure 5.3 5.1.3 Calibrating a Ceramic High-speed Oscillator Using a ceramic oscillator for the 2 to 8 MHz clock will be attractive because it is of low cost and has a fast settling time. Unfortunately it has a poor tolera nce of 0.3 to 0.5 % and shows a temperature drift. For this reason the TDC-GP21 allows to execute a calibration measurement that allows to compensate this behavior. This measurement is based on the very precise 32.768 kHz clock. The TDC-GP21 generates start/stop pulses from the 32.768 kHz and measures this time interval with its TDC unit. The result is stored in the result register and the interrupt flag is set. The frequency error of the ceramic resonator can be calculated by the microprocessor. The calibration is configured by setting register 0, ANZ_PER_CALRES and is started with “START_Cal_Resonator“ instruction by the microprocessor. The time interval to be measured is set by ANZ_PER_CALRES which defines the number of periods of the 32.768 kHz clock: ANZ_PER_CALRES = 0 2 periods = = 1 4 periods = 122.070 µs = 2 8 periods = 244.140 µs = 3 61.035 µs 16 periods = 488.281µs The results is given in multiples of the high-speed clock and (divided by 1, 2 or 4 (DIV_CLKHS)) as 32 bit fixed point numbers with 16 integer bits and 16 fractional bits. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 5-3 Ultrasonic-Flow-Converter TDC-GP21 The microcontroller can compare this measured value to the the oretical value and calculate the correction factor for the frequency. ( ) Example: The system shall work with a 4 MHz resonator. With DIV_CLKHS = 0 and ANZ_PER_CALRES = 1 the theoretical result is 122.0703125µs/250ns = 488.28125 (RES_0 = ’h01E84800). If the ceramic resonator in use is not exactly at 4 MHz but only 3.98 MHz the calibration measurement will show 485,83984375 (RES_0 = 1E5D700). The correction factor for the microcontroller is 1.005. Note: During clock calibration the start input has to be enabled. 5-2 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Source Code Example: //-------------------------------------------------------------------------// Start Calibrate High Speed Clock Cycle // NOTE: It does not work in combination with EN_AUTOCALC = 1 gp21_wr_config_reg(Bus_Type, 0x83, 0x00000000); // EN_AUTOCALC=0 gp21_send_1byte(Bus_Type, Init); gp21_send_1byte(Bus_Type, Start_Cal_Resonator); // Wait for INT Slot_x Wait_For_Interrupt(Bus_Type); //Calculate Correction factor (ANZ_PER_CALRES=1) CLKHS_freq_corr_fact = 122.070/ gp21_read_n_bytes(Bus_Type, 4, 0xB0, 0x00, 16) * CLKHS_freq; printf("\n Correction factor for clock = %1.3f\n", CLKHS_freq_corr_fact); CLKHS_freq_cal *= CLKHS_freq_corr_fact; // Calibrated Clock frequency gp21_wr_config_reg(Bus_Type, 0x83, 0x80000000); // EN_AUTOCALC=1 //-------------------------------------------------------------------------- 5.1.4 How to use Clock Calibration a. Application This option is dedicated especially to ultrasonic flow and heat meters. In those applications the use of ceramic oscillators shows two main advantages: lower cost and less current consumption. Mainly because of the short oscillation start-up time of the ceramic oscillator the operating current can be reduced by several µA. Referring to 10 years of operation this saves several 100 mAh in battery capacitance. There is no negative effect on the resolution when using this option the correct way. b. Jitter of the 32 kHz clock and consequences The 32 kHz clock is very precise in frequency with only a few ppm error. However, the phase jitter is about 3 to 5 ns peak-peak. For this reason also a calibration measurement (Start_Cal_Resonator) has this error. When multiplying a measurement result with the calibration result, the jitter of the calibration is transferred to the result by the ratio acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 5-3 Ultrasonic-Flow-Converter TDC-GP21 calibration measurement time (see ANZ_PER_CALRES) to measurement time. Using a permanently updated calibration value will add a considerable jitter to the measurement result. c. Application of this option in ultrasonic flow meters A measurement result is always made of two single time-of-flight measurements in ultrasonic flow meters, with and against the fl ow direction. The difference between those measurements is a measure for the flow. To avoid an influence of the calibration jitter on this measurement result it is necessary only to use the same calibration for both ToF measurements. Following this, the difference between the two ToF measurements will be free of the jitter of the clock calibration measurement. The clock can be calibrated only between measurements that are not directly subtracted from each other. 5.2 Fire Pulse Generator 5.2.1 General Description The fire pulse generator generates a sequence of pulses which is highly programmable in frequency, phase and number of pulses. The high-speed oscillator frequency divided by the factor selected for DIV_CLKHS is used as the basic frequency. This frequency is i nternally doubled and can freely be divided by a factor of 2 to 15. It is possible to generate 1 to 127 pulses. If maximum 15 pulses are sent the phase for each pulse can be adjusted per register configuration. The fire pulse generator is activated by sending opcode Start_TOF. The fire pulse maybe used directly for the START of the TDC. The fire pulse generator provides 2 outputs, FIRE_UP and FIRE_DOWN. The driver strength of each output is 96 mA @ 3.3 V. Furthermore, FIRE_DOWN output signal can be inverted to double the signal amplitude. The outputs can be set individually High-Z. Alternately, the default level of the inactive buffer can be set to GND. 5.2.2 Configuration Number of pulses: ANZ_FIRE 5-4 = 0 Switch off fire pulse generator = 1 1 pulse = 2 2 pulses acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 … … = 127 127 pulses SEL_START_FIRE = 1 Fire pulse is used as TDC START FIRE_DEFAULT = 0 Default level High-Z (GP2 compatible) = 1 Default level GND. Mandatory if the internal analog circuit and the recommended circuit with external R and C is used. Phase: The phase of each pulse can be defined in register 5, PHFIRE[0..14], (Mandatory: PHFIRE[15] = 0), if not more than 15 pulses are sent. “0“ stands for HIGH-LOW and “1“ for LOW-HIGH. The pulse sequence begins with the LSB and ends with th e MSB. It is an easy way to halve Example: the pulse frequency. ANZ_FIRE = 15, PHFIRE = ’h0055 For that use PHFIRE = ‘h5555 and defining straight number of LSB [0], [1], … [14] MSB ANZ_FIRE = 14. Fire pulse frequency: The input signal fireclk1 for the fire pulse generator is derived from the high speed clock CLKHS and the selected value for the high speed clock divider DIV_CLKHS. Pulse-Generator CLKHS ffireclk1 1 n DIV_CLKHS 1 Phaseshift 0.5 ffireclk2 1 m FIRE_UP FireGenerator FIRE_DOWN DIV_FIRE frequency doubling PHFIRE DIS_PHASESHIFT CONF_FIRE 16 3 ANZ_FIRE 4 Figure 5.3 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 5-5 Ultrasonic-Flow-Converter TDC-GP21 This Signal is internally doubled and divided by DIV_FIRE. DIV_FIRE = 0 not permitted 1 divided by 2 2 divided by 3 ... ... 15 divided by 16 Register 5, bit 19, DIS_PHASESHIFT actives the phase shift, which introduces additional noise to improve statistical behavior when averaging. DIS_PHASESHIFT = 0 Phase shift on DIS_PHASESHIFT = 1 Phase shift off fireclk2 is used as reference signal for the FIRE_UP / FIRE_DOWN - signal which is emitted by the output buffers FIRE_UP / FIRE_DOWN of the fire pulse generator. Figure 5.4 As shown in Figure 16 at least 2 clock periods T fireclk2 are required to send one fire pulse. One for the high phase and one for the low phase of the FIRE_UP/FIRE_DOWN output signal. 5-6 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Example: CLKHS = 4 MHz, DIV_CLKHS = 1, DIV_FIRE = 1 Max. frequency of the FIRE_UP / FIRE_DOWN output signal: Driver outputs: The output drivers are configured by setting CONF_FIRE in register 5, bits 29 to 31: CONF_FIRE configures the FIRE_UP and FIRE_DOWN outputs of the GP21. CONF_FIRE is used to control which of the outputs (FIRE_UP or FIRE_DOWN) are first fired when the Start_TOF_Restart command is issued. It is also used to individually enable or disable these outputs. Only one of the three bits may be set to 1: Bit 31 = 1 Fire both outputs (FIRE_UP and FIRE_DOWN) simultaneously. In this case, the FIRE_DOWN output is an inverted representation of FIRE_UP. Bit 30 = 1 Enable FIRE_UP output only, or when Start_TOF_Restart is issued, fire this output first. Bit 29 = 1 Enable FIRE_DOWN output only, or when Start_TOF_Restart is issued, fire this output first. Note: In register 5, bits 16 to 18, REPEAT_FIRE originally had been implemented for sing around measuring. Please set REPEAT_FIRE = 0 5.3 no repetition Fast Initialization In measurement mode 1 the TDC-GP21 offers the possibility of a fast initialization. Activated by setting register 1, bit 15, EN_FAST_INIT = “1“ the interrupt flag automatically acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 5-7 Ultrasonic-Flow-Converter TDC-GP21 initializes the TDC. So the TDC is already prepared for the next measurement while the data can be read out. This mode is for highest speed applications only. It is most reasonable for un-calibrated measurements with only one stop. 5.4 Noise Unit In case the user wants to improve the measuring results by averaging it is necessary that the values do not always display exactly the same time difference. Instead the user should provide some “noise” so that different quantization steps of the characteristic curve of the TDC are involved. This can not happen with very constant time differences. One would constantly hit the same LSB. The noise unit enables the use of weighted averaging even for constant time differences. The noise unit adds a random offset to the start. It is dedicated to applications where the TDC gets a dummy start and measures the time difference between STOP1 and STOP2 (e.g. laser range finders). The noise unit is switched on by setting register 5, bit 28, EN_STARTNOISE = “1“ 5-8 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 5.5 EMC Measures Regarding the EMC susceptibility, there are measures we can recommend: Most importantly: the housing of the spool-piece must be connected to the electrical GND signal of the PCB Using ferrite cores with ~100 Ohm @ 100 MHZ with a low DC resistance, e.g. MURATA - BLM18EG101TN1D - FERRITE BEAD (Impedance: 100 Ohm, DC Resistance Max: 0.045 Ohm, DC Current Rating: 2000 mA, Ferrite Case Style: 0603) Using capacitors (value = 1 nF) between fire outputs and GND Using a shielded cable Common mode chokes are not needed With these measures, we usually see significant improvement. Please make sure that the capacitors are of C0G type. Use no other types. Values up to 2.2 nF should work without too big disturbance on the measurement result. EMC protection of transducer (acam-messelectronic gmbh) Figure 5.4 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 5-9 Ultrasonic-Flow-Converter 5-10 TDC-GP21 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 6 Applications 6.1 Ultrasonic Heat Meter The TDC-GP21 is perfectly suited for low-cost ultrasonic heat meter designs. Thanks to the implemented functionality, including precision temperature measurement, fire pulse generator, analog switches, comparator, windowing and clock calibration, it is sufficient to add a simple microprocessor (without A/D converter). The final circuit reaches a unknown level in compactness and small size. The following diagram shows the front end section of a typical ultrasonic heat meter as it might look like when TDC-GP21 is used. Figure 6.1 The red parts illustrate the external components needed. The number is reduced to a minimum: In the ultrasonic path, the piezo transducers are connected through pairs of R and C. acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 6-1 Ultrasonic-Flow-Converter TDC-GP21 In the temperature path only a temperature stable reference resistor and a capacitor As oscillators take a 32.768 kHz and a ceramic 4 MHz oscillator. The FIRE_IN pin can be used as output driver for the 32.768 kHz clock, so the µP does not need a low power oscillator. For the power supply use separate bypass capacitors of sufficient size to block V cc and Vio. Separate both by a small resistor. In total 11 low-cost elements only are needed for the measurement. Register Value Typical example configuration (*) Register 0 ’ hA30B6800 ANZ_FIRE = 10 (see register 6, too) DIV_FIRE = 3, fire pulse frequency = 4 MHz/4 = 1.0 MHz ANZ_PER_CALRES = 0, the 4 MHz is calibrated by a 61.035 µs measurement DIV_CLKHS = 0, the 4 MHz ceramic oscillator is internally used as it is START_CLKHS = 2, the ceramic oscillator has 480 µs to settle ANZ_PORT = 1, use all 4 ports for the temperature measurement TCYCLE = 1, 512 µs cycle time for the temperature measurement ANZ_FAKE = 0, 2 fake measurements SEL_ECLK_TMP = 1, use 4 MHz for the temperature measurement cycle definition CALIBRATE = 1, mandatory in measurement mode 2 to be on NO_CAL_AUTO = 0, mandatory in measurement mode 2 to have autocalibration MESSB2 = 1, switch on measurement mode 2 for measuring > 2 µs. NEG_STOP/NEG_START = 0, all set to rising edges ID0 = ’h00 Register 1 ’ h21444000 HIT2 = 2, HIT1 = 1: calculate 1. Stop - Start in measurement mode 2 EN_FAST_INIT = 0, off HITIN2 = 0 HITIN1 = 4, measure 3 stops (in measurement mode 2 this includes the start, too, giving 4 hits) CURR32K = 0, use default SEL_START_FIRE = 1, use the internal direct wiring from the fire pulse buffer to the TDC start SEL_TSTO2 = 0, EN_START active SEL_TSTO1 = 0, FIRE_IN pin is used as fire in ID1 = ’h00 Register 2 ’ hA0320000 EN_INT = b0101, interrupt given by Timeout TDC or ALU ready RFEDGE1 = RFEDGE2 = 0, use only rising edges DELVAL1 = h’3200, the first stop is accepted after 100 µs ID2 = ’h00 Register 3 ’ h18340000 EN_ERR_VAL = 0, there is enough time to read the status register SEL_TIMO_MB2 = 3 , time out is generated after 4096 µs DELVAL2 = h’3300, the first stop is accepted after 104 µs ID3 = ’h00 Register 4 ’ h20360000 DELVAL3 = h’3400, the first stop is accepted after 108 µs ID4 = ’h00 6-2 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 Register 5 ’ h40000000 CON_FIRE = 2, enable FIRE_UP. If opcode Start_TOF_Restart is used FIRE_UP and FIRE_DOWN are used alternately for up and down flow measurements. With the configuration described here the measurement cycle starts sending fire pulses at pin FIRE_UP. EN_STARTNOISE = 0, switch off DIS_PHASESHIFT = 0, phase noise unit is active to improve the statistical behavior REPEAT_FIRE = 0, no sing-around PHFIRE = 0, no phase change in the fire pulse sequence ID5 = ’h00 Register 6 ’ hC0E45000 EN_ANALOG = 1, use the internal analog circuit NEG_STOP_TEMP = 1, use the internal Schmitt trigger for the temperature measurement TW2 = 3, 300 µs delay to charge up the capacitors of the highpass EN_INT = b0101, interrupt given by Timeout TDC or ALU ready (see also register 2) START_CLKHS = 2, the ceramic oscillator has 480 µs to settle (see also register 0) CYCLE_TEMP = 0, use factor 1.0 for the Start_Temp_Restart CYCLE_TOF = 0, use factor 1.0 for the delay between two ToF measurements HZ60 = 0, 50 Hz base FIREO_DEF = 1, mandatory when using the internal analog circuit QUAD_RES = 0 DOUBLE_RES = 0, use 45 ps BIN TEMP_PORTDIR = 0, standard order for T measurement ANZ_FIRE = 10 (see register 0, too) ID6 = ’h00 (*) the contents of the registers can differ Measurement flow: Calibrate Clock: Power-on reset: Send SO = ’h03 Start_Cal_Resonator Send SO = ’h50 Check-loop INTN = 0? Load configuration from EEPROM to configuration registers: Send SO = ’hB0, Read SI = RES_0 Correction factor = 61.035/RES_0 Send SO = ’hF0 Check-loop INTN = 0? for end of EEPROM action Measurement loop: Send SO = ’hB4, Read SI = STAT Temperature measurement, every 30 seconds: STAT&’h0600 > 0: -> Error routine Send SO = ’h06 Start_Temp_Restart Send SO = ’h81314000 calculate HIT2Start Check-loop INTN = 0? Wait for 2.8 μs (ALU time) Send SO = ’h81414000 calculate HIT3- acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 6-3 Ultrasonic-Flow-Converter TDC-GP21 Send SO = ’hB4, Read SI = STAT Start STAT&’h1E00 > 0: -> Error routine Wait for 2.8μs (ALU time) Send SO = ’hB0, Read SI = RES_0 Send SO = ’hB0, Read SI = RES_0 Send SO = ’hB1, Read SI = RES_1 Send SO = ’hB1, Read SI = RES_1 Send SO = ’hB2, Read SI = RES_2 Send SO = ’hB2, Read SI = RES_2 Send SO = ’hB3, Read SI = RES_3 Send SO = ’h70 Initialize TDC Rhot/Rref = RES_0/RES_1 Check-loop INTN = 0? (down TOF) Rcold/Rref = RES_3/RES_2 Send SO = ’hB4, Read SI = STAT Check-loop INTN = 0? STAT&’h0600 > 0: -> Error routine Send SO = ’hB4, Read SI = STAT Send SO = ’h81314000 calculate HIT2Start STAT&’h1E00 > 0: -> Error routine Wait for 2.8μs (ALU time) Send SO = ’hB0, Read SI = RES_0 Send SO = ’hB1, Read SI = RES_1 Send SO = ’h81414000 calculate HIT3Start Send SO = ’hB2, Read SI = RES_2 Wait for 2.8μs (ALU time) Send SO = ’hB3, Read SI = RES_3 Send SO = ’hB0, Read SI = RES_0 Rhot/Rref = RES_0/RES_1 Send SO = ’hB1, Read SI = RES_1 Rcold/Rref = RES_3/RES_2 Send SO = ’hB2, Read SI = RES_2 Calculate the average of the two measurements. μP can now start the data post-processing and Go to look-up table to get the temperatures calculate the flow and the heat. Time-of-flight measurement every half second: Send SO = ’h70 Initialize TDC Send SO = ’h05 Start_TOF_Restart Check-loop INTN = 0? (up TOF) 6-4 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 7 Miscellaneous 7.1 Bug Report 7.1.1 FIRE Pulse Generator A flow measurement has to begin with sending on FIRE_UP. Otherwise, under certain conditions, noise might be increased. This is avoided easily by starting with FIRE_UP. 7.1.2 TDC-CAL read error without Quad resolution In case quad resolution is not set then reading separately the TDC cal value will give a wrong read value. The internal calibration value is correct, but the transfer to the read register is not correct. Therefore, measurement data are not affected. Effect in Measurement mode 2: - In this mode the cal value is for information only. Further, quad resolution is recommended anyway. Effect in Measurement mode 1: - Customers using auto calibration are not affected. - Only customers that want to read uncalibrated data and do external calibration are affected. Workaround: - The calibration data are not addressed directly after the calibratio n measurement but after the next regular measurement, before the next INIT. Example: Reg1 = ’h21... Reg1 = ’h67... result0 = read(adr=0) cal = read(adr=1) INIT acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 7-1 Ultrasonic-Flow-Converter 7.1.3 TDC-GP21 Timeout Temperature Measurement Note: Due to a bug it is necessary to have SEL_TIMO_MB2 at 2ms to get a correct interrupt indication when 512 µs cycle time is selected. 7.1.4 Timeout TOF Measurement Problem: In case there is a timeout (e.g. because of air in the spool piece) the pulse -width measurement starts but does not end before there is an INIT. Th e current is increased by 500 µA. The problem appears only with active pulse-width measurement. Solutions: 1. It is mandatory to answer to any interrupt from TDC-GP21 by minimum an INIT command. Even in case you know the next data are bad you need to send an INIT to stop the pulse-width measurement. Also in case you don’t read the data. Of course, timeout has to be selected as an interrupt source. 7.2 Last Changes 27.05.2010 Target Specification, draft version 28.07.2010 Version 0.1 for release 13.08.2010 Version 0.2 slight changes 08.11.2010 Version 0.3 released 24.11.2010 Version 1.0 relesed, revision of section 4 17.01.2011 Version 1.1 released, several corrections in the whole document 08.02.2011 Version 1.1 small corrections in section 5 and 6. 21.02.2011 Version 1.1 slight corrections in section 3 and 5 03.03.2011 Version 1.2 released. Revision of the measurement flow example in section 6 05.08.2011 Version 1.3,new section 4.3.1 and 7.1. Reg5 corrected and further small corrections 25.05.2012 Version 1.4 changes on pages 2-5; 3-7; 3-8; 3-10; 4-12; 6-2; 6-3 7-2 acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group TDC-GP21 14.11.2013 Version 1.5 Correction Status register (EEflags). Smaller additions; In Measurement Mode 2 Tmin=700ns adapted; Expands section 2.6 Power Supply, page 2-15; Description EN_ANALOG (Register 6) adds, page 3-10; Important supplement to writing the EEPROM, page 3-15; Description of the configuration of the Fire Pulse Generator adds, page 5 -6; Add new section 5.5 EMC Measures, page 5-10; Revised the used registers, page 6-2; Bug Report completed, section 7.1; 13.03.2014 Version 1.6: EMC section corrected acam messelectronic gmbh - Friedrich-List-Str.4 - 76297 Stutensee - Germany - www.acam.de Member of the ams Group 7-3 acam-messelectronic gmbh Friedrich-List-Straße 4 76297 Stutensee-Blankenloch Germany Phone +49 7244 7419 – 0 Fax +49 7244 7419 – 29 E-Mail [email protected] www.acam.de Member of the ams Group