Difference between revisions of "Multimeter ICs"
(→Resources: Added http://www.kerrywong.com reference and datasheet translation) |
|||
Line 183: | Line 183: | ||
* [http://doc.wendoc.com/sfff2f1781c5f878a6cdadf2c.html Datasheet (Chinese)] | * [http://doc.wendoc.com/sfff2f1781c5f878a6cdadf2c.html Datasheet (Chinese)] | ||
* [http://www.kerrywong.com/blog/wp-content/uploads/2016/04/DTM0660DataSheet.pdf Datasheet translation] courtesy of Kerry D. Wong who hacked his ennoLogic eM860T True RMS Multimeter to enable RS232. | * [http://www.kerrywong.com/blog/wp-content/uploads/2016/04/DTM0660DataSheet.pdf Datasheet translation] courtesy of [http://www.kerrywong.com Kerry D. Wong] who hacked his ennoLogic eM860T True RMS Multimeter to enable RS232. | ||
* [http://www.peaktech.de/productdetail/kategorie/digital---handmultimeter/produkt/peaktech-3415-usb.815.html?file=tl_files/Software/PeakTech_DMM%20Tool_ISO_complete_18082015.rar Peaktech 3415 software package], contains a file named "PeakTech device communication protocols 2015-07-20.pdf" documenting the protocol corresponding to this chip (among other protocols used by PeakTech). | * [http://www.peaktech.de/productdetail/kategorie/digital---handmultimeter/produkt/peaktech-3415-usb.815.html?file=tl_files/Software/PeakTech_DMM%20Tool_ISO_complete_18082015.rar Peaktech 3415 software package], contains a file named "PeakTech device communication protocols 2015-07-20.pdf" documenting the protocol corresponding to this chip (among other protocols used by PeakTech). | ||
Revision as of 21:23, 7 April 2016
This page lists some information about ICs commonly used in various multimeters (DMMs).
Overview
Many multimeters use a special-purpose multimeter IC internally. This table lists those chips, as they're often directly responsible for the protocol and data format of the PC logging functionality of a multimeter.
Vendor | Device | Builtin PC interface | Comments |
---|---|---|---|
Cyrustek | ES51978 | RS232, TX only, 2400 baud, 7o1 | Data is sent via the SDO pin. Data logging can be en/disabled via RS232 pin. |
Cyrustek | ES51922 | RS232, TX only, 19230 baud, 7o1 | Data is sent via the SDO pin. Data logging can be en/disabled via RS232 pin. Some 3rd-party parsing utilities are listed below. |
Dream Tech International Ltd | DTM0660 | RS232, TX only, 2400 baud, 8n1 | Some people think this chip is a copy of the HY12P65. Protocol looks closely to the FS9721_LP3. |
Fortune Semiconductor | FS9721_LP3 | RS232, TX only, 2400 baud, 8n1 | Data is sent via the TXD pin. Data logging can be en/disabled via ENTX pin. |
Fortune Semiconductor | FS9922_DMM4 | RS232, TX only, 2400 baud, 8n1 (?) | Data is sent via the TXD pin. Data logging can be en/disabled via TXEN pin (?) and the REL/RS232 pin (?). |
Intersil | ICL7106 | ? | |
Intersil | ICL7136 | ? | |
Intersil | ICL7139/ICL7149 | none (?) | |
MASTECH | M343-01 | ? | |
Maxim | MAX130/131 | ? | |
Maxim | MAX133/134 | ? | |
Metex | KS57C2016 | ? | Possibly a relabel'd Samsung KS57C2016 4-bit microcontroller. |
New Japan Radio | NJU9207 | none |
Cyrustek ES51978
The Cyrustek ES51978 is an all-in-one multimeter chip. The data protocol is well described in the datasheet.
It is used in many multimeters, e.g. the ISO-TECH IDM103N or the ISO-TECH IDM 98II.
See Multimeter ICs/Cyrustek ES519xx for a detailed comparison of the Cyrustek ES519xx IC series protocols.
Resources
- Datasheet
- 'Unlocking' multimeter RS232 output (info on hooking up a Cyrustek based multimeter to a computer)
Cyrustek ES51922
The Cyrustek ES51922 is an all-in-one multimeter chip. The data protocol is mostly described in the datasheet.
It is used in many multimeters, e.g. the UNI-T UT61E or the Wintex TD2200.
See Multimeter ICs/Cyrustek ES519xx for a detailed comparison of the Cyrustek ES519xx IC series protocols.
Resources
- Datasheet
- Multimeter data parsing utility complete implementation written in Python
- diyftw.de: Uni-Trend UT61E (UT-D04 linux treiber) (device info, Linux software using HIDAPI: ut61e-linux-sw-0.02.tar.gz)
- Steffen Vogel: UNI-TREND UT61E Digital Multimeter (device info, Linux software for serial port: dmmut61e-0.01.tar.gz)
Dream Tech International DTM0660
Very little information is available about this chip, even though it was put on the market in 2013. Most of the information found on the web is in Chinese. Searches suggest that some PeakTech, UNI-T, RadioShack, and Velleman DMMs use that chip.
Protocol
The protocol used by the DTM0660 looks similar to the one used by the FS9721_LP3 IC (see protocol description below), except that it adds one more byte to the packets (probably to accommodate supplemental symbols displayed on the LCD) and that the nibble order is reversed.
Protocol options
Interestingly the datasheet indicates that the chip is able to send 14-bytes packets and that the nibble order can be inverted by programming a special register in EEPROM, potentially allowing a full FS9721_LP3 compatibility. This also means that devices using the DTM0660 could have different protocol versions.
Packet structure (can be affected by EEPROM registers)
Byte | Bits 7-4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|
0 | 0x1 | RS232 | Auto | DC | AC |
1 | 0x2 | 1A | 1F | 1E | - (minus) |
2 | 0x3 | 1B | 1G | 1C | 1D |
3 | 0x4 | 2A | 2F | 2E | DP1 |
4 | 0x5 | 2B | 2G | 2C | 2D |
5 | 0x6 | 3A | 3F | 3E | DP2 |
6 | 0x7 | 3B | 3G | 3C | 3D |
7 | 0x8 | 4A | 4F | 4E | DP3 |
8 | 0x9 | 4B | 4G | 4C | 4D |
9 | 0xa | Diode | k | n | u |
10 | 0xb | Beep | M | % | m |
11 | 0xc | Hold | Rel | Ohms | Farads |
12 | 0xd | Low battery | Hz | V | A |
13 | 0xe | User Def. 1 | User Def. 2 | Celsius | Fahrenheit |
14 | 0xf | Max | Min-Max | Min | Auto Power-Off |
Note that the segment lettering used here follows the standardised 7-digit notation:
A | ||
F | B | |
G | ||
E | C | |
D |
Resources
- Datasheet (Chinese)
- Datasheet translation courtesy of Kerry D. Wong who hacked his ennoLogic eM860T True RMS Multimeter to enable RS232.
- Peaktech 3415 software package, contains a file named "PeakTech device communication protocols 2015-07-20.pdf" documenting the protocol corresponding to this chip (among other protocols used by PeakTech).
Fortune Semiconductor FS9721_LP3
Protocol
The chip periodically sends 14-byte packets at 2400 baud, 8n1. The upper nibble of each byte indicates the byte number. The payload is composed of the lower nibbles, and is a 1-1 mapping of the LCD segments. The downside to this protocol structure is that transmission errors in the LSB nibbles cannot be detected. There is no checksum or CRC in the packet. The 4 user-defined bits can have different meaning on different multimeters using this IC.
Example Packet
17 27 3D 4F 5D 67 7D 87 9D A0 B0 C0 D4 E0 -> reads: DC 0.000V
Packet structure:
Byte | Bits 7-4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|
0 | 0x1 | AC | DC | Auto | RS232 |
1 | 0x2 | Negative | 1A | 1B | 1C |
2 | 0x3 | 1D | 1E | 1F | 1G |
3 | 0x4 | DP1 | 2A | 2B | 2C |
4 | 0x5 | 2D | 2E | 2F | 2G |
5 | 0x6 | DP2 | 3A | 3B | 3C |
6 | 0x7 | 3D | 3E | 3F | 3G |
7 | 0x8 | DP3 | 4A | 4B | 4C |
8 | 0x9 | 4D | 4E | 4F | 4G |
9 | 0xa | u | n | k | Diode |
10 | 0xb | m | % | M | Beep |
11 | 0xc | Farads | Ohms | Rel | Hold |
12 | 0xd | A | V | Hz | Low battery |
13 | 0xe | User bit 3 | User bit 2 | User bit 1 | User bit 0 |
Segment lettering:
C | ||
B | G | |
F | ||
A | E | |
D |
Fortune Semiconductor FS9721B
TODO.
Fortune Semiconductor FS9922-DMM3
TODO.
Fortune Semiconductor FS9922-DMM4
The Fortune Semiconductor FS9922-DMM4 (datasheet) is a widely used 6000-count auto-ranging DMM chip: it takes input from the various controls on the front panel, drives the LCD display, and can communicate its readings via a serial port.
Protocol
TODO
Metex 14-byte ASCII
Protocol
Various multimeters from Metex (and rebadged ones) use this common 14-byte packet based ASCII protocol. The actual multimeter ICs in the devices have different names (e.g. "MASTECH M343-01" or "Metex KS57C2016") but they all use the same common protocol format.
The serial port settings can vary from device to device, e.g. 600/1200 baud, 7n2, RTS low, DTR high.
Every time the host sends a (any?) character to the DMM (most software packages send a D/0x44), it returns 14 ASCII bytes containing the measurement mode, value, and units. Even with continuous packet requests, the IC will only send a packet when a new measurement is available.
There is no additional other information about the multimeter status returned in the packets (e.g. no low-battery bit, no relative/min/max/hold bits, and so on).
Packet structure
Byte(s) | Description |
---|---|
1-2 | Measuring mode (DC, AC, OH, CA, TE, DI, ...) |
3 | Always a space (?) |
4 | Sign ('-' or ' ', i.e. a minus or a space) |
5-9 | Decimal point and current measurement value (Examples: 10.00, 0L, 3.999) |
10-13 | Unit (Examples: V, mV, A, mA, kOhm, MOhm, nF, ...) |
14 | Carriage return (13/0x0d) |
Example packets
01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
D | C | - | 0 | 0 | 0 | . | 0 | V | \r | ||||
A | C | 0 | 0 | . | 0 | 0 | A | \r | |||||
C | A | 0 | . | 0 | 7 | 1 | n | F | \r | ||||
O | H | O | . | L | M | O | h | m | \r |
Alternative Protocol
Some older devices like the Voltcraft M-3650CR use a slightly different protocol:
Packets
Range | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | Remarks |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
All | Sp | \r | |||||||||||||
D/Beep | O | L | m | V | No contact | ||||||||||
1 | 2 | 3 | 4 | m | V | Contact/forward voltage | |||||||||
200 Ω | O | . | L | O | h | m | No contact/overload (invalid value) | ||||||||
1 | 2 | 3 | . | 4 | O | h | m | Value | |||||||
2 kΩ | . | O | L | k | O | h | m | No contact/overload (invalid value) | |||||||
1 | . | 2 | 3 | 4 | k | O | h | m | |||||||
20 kΩ | . | O | L | k | O | h | m | No contact/overload (invalid value) | |||||||
1 | 2 | . | 3 | 4 | k | O | h | m | |||||||
200 kΩ | O | . | L | k | O | h | m | No contact/overload (invalid value) | |||||||
1 | 2 | 3 | . | 4 | k | O | h | m | |||||||
2 MΩ | . | O | L | M | O | h | m | No contact/overload (invalid value) | |||||||
1 | . | 2 | 3 | 4 | M | O | h | m | |||||||
20 MΩ | . | O | L | M | O | h | m | No contact/overload (invalid value) | |||||||
1 | 2 | . | 3 | 4 | M | O | h | m | |||||||
200 mV = | D | C | O | . | L | m | V | Overload | |||||||
D | C | - | 1 | 2 | 3 | . | 4 | m | V | ||||||
2 V = | D | C | . | O | L | V | Overload | ||||||||
D | C | - | 1 | . | 2 | 3 | 4 | V | |||||||
20 V = | D | C | . | O | L | V | Overload | ||||||||
D | C | 1 | 2 | . | 3 | 4 | V | ||||||||
200 V = | D | C | O | . | L | V | Overload (guessed, not tried ;-)) | ||||||||
D | C | - | 1 | 2 | 3 | . | 4 | V | |||||||
1000 V = | D | C | O | L | V | Overload (guessed...) | |||||||||
D | C | - | 1 | 2 | 3 | 4 | V | ||||||||
200 mV ≈ | A | C | O | . | L | m | V | Overload | |||||||
A | C | 1 | 2 | 3 | . | 4 | m | V | |||||||
2 V ≈ | A | C | . | O | L | V | Overload | ||||||||
A | C | 1 | . | 2 | 3 | 4 | V | ||||||||
20 V ≈ | A | C | . | O | L | V | Overload | ||||||||
A | C | 1 | 2 | . | 3 | 4 | V | ||||||||
200 V ≈ | A | C | O | . | L | V | Overload | ||||||||
A | C | 1 | 2 | 3 | . | 4 | V | ||||||||
750 V ≈ | A | C | O | L | V | Overload (guessed, not tried ;-)) | |||||||||
A | C | 1 | 2 | 3 | 4 | V | |||||||||
2 mA = | D | C | . | O | L | m | A | Overload, over measurement range | |||||||
D | C | - | 1 | . | 2 | 3 | 4 | m | A | ||||||
200 mA = | D | C | O | . | L | m | A | Overload, over measurement range | |||||||
D | C | - | 1 | 2 | 3 | . | 4 | m | A | ||||||
20 A = | D | C | O | . | L | A | Overload, over measurement range (guessed, not tried) | ||||||||
D | C | - | 1 | 2 | . | 3 | 4 | A | |||||||
2 mA ≈ | A | C | . | O | L | m | A | Overload, over measurement range | |||||||
A | C | 1 | . | 2 | 3 | 4 | m | A | |||||||
200 mA ≈ | A | C | O | . | L | m | A | Overload, over measurement range | |||||||
A | C | 1 | 2 | 3 | . | 4 | m | A | |||||||
20 A ≈ | A | C | O | . | L | A | Overload, over measurement range (guessed, not tried) | ||||||||
A | C | 1 | 2 | . | 3 | 4 | A | ||||||||
hFE | 1 | 2 | 3 | 4 | |||||||||||
Logics | R | E | A | D | Y | Start status | |||||||||
H | i | High. | |||||||||||||
L | o | Low. | |||||||||||||
F | L | O | A | T | Undefined state. | ||||||||||
2000 pF | O | L | p | F | Overload (capacity larger than measurement range) | ||||||||||
1 | 2 | 3 | 4 | p | F | ||||||||||
200 nF | O | . | L | n | F | Overload (capacity larger than measurement range) | |||||||||
1 | 2 | 3 | . | 4 | n | F | |||||||||
20 μF | . | O | L | u | F | Overload (capacity larger than measurement range) | |||||||||
1 | 2 | . | 2 | 4 | u | F | |||||||||
20 kHz | 0 | 1 | . | 2 | 3 | k | H | z | |||||||
200 kHz | 0 | 1 | 2 | . | 3 | k | H | z |
"-" means "-" for negative value, space for positive value.
Commands
Command | |
---|---|
D | Send data currently displayed |
M | Send data stored in memory (up to 5 data sets) |
C | Clear data memory |