SENSIRION SFC6xxx Series Mass Flow Controllers User Manual
- June 13, 2024
- SENSIRION
Table of Contents
SFC6xxx and SFM6xxx I 2 C Interface
Document Summary
The SFC6xxx series is the latest version of Sensirion Mass Flow Controllers.
Thanks to the additional on-chip possibilities of the latest Sensirion flow
sensor generation, the controller runs on the flow chip and no additional
micro-controller is needed.
The current samples provide either an I 2 C interface, a RS-485 interface, or
an analog version (will be available in the near future). In this document the
I 2 C interface is described.
When starting from set point 0 the known sticking effect is caused by the
valve. In order to prevent an overshoot after set point 0 we recommend to use
a set point slightly above 0. This will keep the valve slightly open and allow
a much faster and smoother controller performance. When using the I2 C
interface, the user can tune the initialization step and the overall
controller gain in case the performance is not sufficient. Different
controller tests were done with different waveforms: step answers, ramps,
sinusoidal, saw tooth, etc. The controller can follow the set point for all
different waveforms. All data below is preliminary and may be subject to
change.
Specifications
1.1 Electrical specifications
Parameter| Min| Typ.| Max| Unit|
Comment
---|---|---|---|---|---
Supply voltage, VDD| 22.8| 24.0| 25.2| V|
I2C-bus voltage, V (I2C-bus)| 1.8| | 3.6| V| Supply voltage of I2C-bus
(connect to external I2C-bus master)
Max Voltage on pins (SDA, SCL, ADDR)| -0.3| | 5.8| V| absolute min and max
ratings
Max current supply SFC6000D| –| 210| –| mA|
Max current supply SFM6000D| –| 20| –| mA|
Max standby current| –| < 15| –| mA|
1.2 Timing specifications
Parameter| Symbol| Min| Typ.| Max| Unit|
Comment
---|---|---|---|---|---|---
Power-up time| tPU| | | 30| ms| Time to sensor ready
Soft reset time| tSR| | | 30| ms| Time between soft reset command and sensor
ready
Warm-up time| tw| | | 1| s| During the first 5 minutes the accuracy may be
below specifications
I2C SCL frequency| fI2C| | 400| 1000| kHz|
Flow sampling rate| fS| 900| 1000| 1000| Hz| Corresponds to output rate of the
flow value
1.3 Pin Assignment
The SFC6000 sensor is equipped with a Molex Micro-Lock Plus connector with 6
circuits and a 1.25 mm pitch (UPC: 889056511957). It features a secure lock.
The pin assignment is shown in the table below.
Pin #| Name| Description|
Comments
---|---|---|---
1| VDD| Supply Voltage|
2| GND| Ground|
3| Reserved| Reserved for future use| Do not connect or connect to GND
4| SCL| Serial Clock| Connect to V (I2C-bus) through a pull-up resistor
5| ADDR| I2C Address Selection| See section 3.1
6| SDA| Serial Data| Connect to V (I2C-bus) through a pull-up resistor
Warning: Please make sure that the sensor is not powered, when plugging or unplugging the 6-pin cable to the connector. (Un)plugging the cable, while the device is powered will damage it.
Measurement Modes
The SFC6xxx is a highly versatile MFC platform and is very flexible regarding
configuration options such as available gas calibrations or regulation
parameter tuning.
2.1 Continuous Measurement Mode
After the MFC receives a “start continuous measurement” command (see section
3.3.1) it enters the corresponding measurement mode and continuously performs
a measurement every 1 ms. Therefore, a new reading can be obtained every 1 ms.
A single reading consists of three measurement values: flow, a value reserved
for future use, and a status word.
2.2 Sensor Warm-Up Behavior
After reset or start-up of the MFC, the sensor’s internal heater is off and is
automatically turned on when a Start Continuous Measurement command is
performed (see section 3.3.1). The very first measurement after a Start
Continuous Measurement command is ready after approximately 12 ms.
Digital Interface Description
The MFC’s digital interface is compatible with the I 2 C protocol. This chapter describes the available command set. For detailed information about the I 2 C protocol, please consult the document “NXP I 2 C-bus specification and user manual” ( http://www.nxp.com/documents/user_manual/UM10204.pdf ). The physical interface consists of two bus lines: a data line (SDA) and a clock line (SCL) which need to be connected via pull-up resistors to the bus voltage of the system (1.8 V to 3.6 V).
3.1 I 2 C Address
The SFC6xxx sensor supports various I 2 C addresses which can be selected
using the ADDR pin (see section 1.2). Connecting the ADDR pin to GND or
leaving it unconnected (floating) selects the default address 0x24. Other I 2
C addresses can be selected by inserting a resistor in between the ADDR pin
and GND. The maximum tolerance for the resistor resistance is ±5%. Do not
connect the ADDR pin to VDD.
I 2 C Address (Hex) | Condition |
---|---|
0x24 | ADDR connected to GND or floating (default) |
0x23 | ADDR connected to GND using a 560 Ohm resistor |
0x22 | ADDR connected to GND using a 1.2 kOhm resistor |
0x21 | ADDR connected to GND using a 2.7 kOhm resistor |
0x20 | ADDR connected to GND using a 5.6 kOhm resistor |
0x42 | ADDR connected to GND using a 12 kOhm resistor |
0x41 | ADDR connected to GND using a 27 kOhm resistor |
3.2 I 2 C Sequences
An I 2 C sequence typically consists of a command sent by the master to the slave (the sensor) and a subsequent readout of data by the master from the slave. It depends on the specific command if an argument to the command is needed and if data can be read out from the slave following the command. I 2 C sequences can be aborted with a NACK and STOP condition. The following sections provide I 2 C sequences for the specific tasks. Dark areas with white text indicate that the sensor controls the SDA (Data) line.
3.2.1 Write Command without Argument
Commands have a length of 16 bits:
I 2 C master sends the write header and writes a 16-bit command (i.e. without
an argument) to the slave:
3.2.2 Write Command with Argument
Commands have a length of 16 bits and are followed by a 16-bit argument plus
an 8-bit checksum:
I 2 C master sends the write header and writes a 16-bit command, followed by a
16-bit argument plus an 8-bit CRC:
3.2.3 Read data from the Slave
Following a command as a result of which the slave provides data to be read
out, data is read from the sensor in multiples of 16-bit words, each followed
by an 8-bit checksum to ensure communication reliability: I 2 C master sends
the read header and receives ultiple 16-bit words followed by a CRC byte:
3.3 I 2 C Commands
The command set consists of various commands which are described in the
following sections:
- Start continuous measurement commands (one for each calibrated gas)
- Get temperature
- Update SetPoint value
- Update InitStep value
- Update ControllerGain value
- Overrule valve control
- Update concentration of gas mixtures
- Disable valve control
- Set valve voltage value manually
- Switch to uncalibrated raw flow value
- Stop measurement command
- Get calibrated gas information (scale factor, offset, flow unit, full-scale flow and gas-ID)
- Soft reset
- Read product information (product id, serial & material number)
Command code (Hex)| Calibrated Gas for Flow Signal| Command argument|
Comments
---|---|---|---
0x3603| Gas 0| N/A| For actual calibrated gas see section 3.5.1 (depending on
product variant not all gases are calibrated)
0x3608| Gas 1| N/A
0x3615| Gas 2| N/A
0x361E| Gas 3| N/A
0x3624| Gas 4| N/A
0x362F| Gas 5| N/A
0x3632| Gas 6| N/A
0x3639| Gas 7| N/A
0x3646| Gas 8| N/A
0x364D| Raw thermal conductivity| N/A| Raw thermal conductivity measurement
with closed valve: In this measurement mode the valve remains closed and the
flow value is replaced by the raw thermal conductivity value in the output
buffer.
0x3650| Gas mixture 0: Gas 0 – Gas 1| Volume fraction of Gas0 in Gas1 (in ‰)|
For actual calibrated gas see section 3.5.1 (depending on product variant not
all gases are calibrated)
0x365B| Gas mixture 1: Gas 7 – Gas 8| Volume fraction of Gas7 in Gas8 (in ‰)
After the command has been sent, the chip continuously measures and updates
the measurement results. New results (flow, reserved value, and status word)
can be read continuously with a single I 2 C read header for each measurement.
Further start continuous measurement commands must not be sent until the stop
measurement command has been sent.
After the start measurement command is sent: – the first measurement result
will be available after about 12 ms If an I 2 C read header (I 2 C address +
read bit) is sent to the sensor when no measurement data is available, the
sensor will respond with a NACK condition.
Preceding command| Consecutive read|
Description
---|---|---
Continuous measurement| Byte1: Flow 8msb Byte2: Flow 8lsb Byte3: CRC Byte4:
Reserved value 8msb Byte5: Reserved value 8lsb Byte6: CRC Byte7: Status word 8
msb
Byte8: Status word 8 lsb Byte9: CRC| After a start continuous measurement
command, the measurement results can be read out.
The reserved value and the consecutive bytes do not need to be read out (every
time). The read sequence can be aborted by a NACK and a STOP condition.
Table 1: Consecutive reads after I 2 C command to start continuous
measurement. The flow value is a raw data value consisting of a 16 bit signed
integer. For conversion into physical units refer to section 0
Status Word
The status word is returned along with every flow and reserved value
measurement. It contains the measurement command that is currently running,
information on the currently selected regulation mode, and the defined gas
concentration of the current measurement command; either a fixed value of
0x3FF for a pure calibration gas as well as for the raw thermal conductivity
(commands 0x3603 through 0x3608 and 0x364D), or the volume fraction of Gas 0
or Gas 7 in per mille for gas mixtures. The table below lists the values
returned by the status word.
Measurement Mode|
Status Word (bits 15:0)
---|---
Command Code of running measurement command| Bits <15:12>: currently running
measurement command| Bit <11>: flow controller
functionality| Bit <10>: pressure controller functionality (not yet
available)| Bits <9:0>: defined gas concentration
0x3603| 0b0000| 0: disabled (no regulation on flow value performed)1: enabled
(regulation on flow value is conducted)| 0: disabled (no regulation on
pressure value performed)1: enabled (regulation on pressure value is
conducted)| Fixed value of 0b1111111111 = 0x3FF to indicate that a pure gas
is being measured
0x3608| 0b0001
0x3615| 0b0010
0x361E| 0b0011
0x3624| 0b0100
0x362F| 0b0101
0x3632| 0b0110
0x3639| 0b0111
0x3646| 0b1000
0x3650| 0b1010| Volume fraction of Gas
0 in Gas 1 (in ‰)
0x365B| 0b1011| Volume fraction of Gas
7 in Gas 8 (in ‰)
0x364D| 0b1111 (special code)| Special code of
0b1111111111 = 0x3FF is used for raw thermal conductivity
measurement
Table 2: Values returned by the status word depending on the measurement
command running
3.3.2 Get temperature
While the sensor is in continuous measurement mode, the temperature of the
bulk silicon in the flow-sensor chip can be read with a special I 2 C
transmission sequence. This temperature value depends not only on the gas
temperature, but also on the sensor’s surroundings. Using the signal to
measure solely the gas temperature will need special precautions, such as
isolating the sensor from external temperature influences. The sensor must be
in continuous measurement mode and the temperature is read without
interrupting the running measurement. To this end a transmission sequence
consisting of multiple instructions is detailed in this section.
- The first instruction is a regular 16 bit command with a preceding I C write header. The command code is 0xE102. This instruction sets the I 2 C address pointer to the temperature output buffer.
- The corresponding temperature measurement result can be read out upon issuing an I 2 C read header.
- The third instruction is also regular 16 bit command with a preceding I 2 C write header. The command code is 0xE000. This instruction resets the I 2 C address pointer to the regular result output buffer such that the measurement data as described in section 3.3.1 are obtained upon a subsequent read header.
Please note:
a. The first valid temperature value can be read after about 12 ms (i.e. for simplicity, the temperature shall be read upon the sensor acknowledged a read of the flow value, to make sure that a temperature value is available from the buffer).
b. The update rate for the temperature value is significantly slower than for the flow value. The most up-to-date temperature value is always available from the buffer (the sensor will ACK a corresponding read). Hence, the identical internally acquired temperature value can be read multiple times, which is not the case for the flow value, where the sensor will NACK if no new measurement data is yet available.
Command| Command code (Hex)| Command argument|
Description
---|---|---|---
Get temperature| 0xE102| None| This command initializes to read the
temperature value.
Preceding command
| Consecutive read|
Description
---|---|---
Get temperature| Byte1: Temperature 8msb Byte2: Temperature 8lsb Byte3: CRC|
After a “Get temperature” command, the corresponding result can be read out.
Command| Command code (Hex)| Command argument|
Description
---|---|---|---
Set I2C address pointer to regular output buffer| 0xE000| None| This
instruction resets the I2C address pointer to the regular result output buffer
such that the measurement data as described in section 3.3.1 are obtained upon
a subsequent read header.
3.3.3 Update SetPoint value (this only applies to SFC)
To update the SetPoint value dynamically, i.e. without interrupting the
running measurement mode, an I 2 C transmission sequence consisting of a set
of two instructions has to be issued:
Command| Command code (Hex)| Command argument|
Description
---|---|---|---
Transmit SetPoint value| 0xF054| SetPoint value| This instruction transmits
the SetPoint value to the MFC. The value has to be given in the regular two’s
complement format, which is also used for the flow value output, detailed in
section 3.5.2. A SetPoint value of 0 slm (i.e. 2’s complement value 0x9000) is
applied by default upon a hard- or soft- reset of the sensor or issuing the
stop measurement command.
Reset I2C address pointer| 0xE000| None| This instruction resets the I2C
address pointer to the regular result output buffer such that the measurement
data as described in section 3.3.1 are obtained upon a subsequent read header.
3.3.4 Update InitStep value (this only applies to SFC)
To update the InitStep value dynamically, i.e. without interrupting the
running measurement mode, an I 2 C transmission sequence consisting of a set
of two instructions has to be issued:
Command| Command code (Hex)| Command argument|
Description
---|---|---|---
Transmit InitStep value| 0xE1B9| InitStep value in range [0..1] multiplied by
216| This instruction transmits the InitStep value to the MFC. An MFC variant
specific InitStep value is used by default, which will be applied after a
hard- or soft-reset of the sensor.
Reset I2C address pointer| 0xE000| None| This instruction resets the I2C
address pointer to the regular result output buffer such that the measurement
data as described in section 3.3.1 are obtained upon a subsequent read header.
For further important details regarding the relevance of the InitStep
regulation parameter please refer to section 3.6.1.
3.3.5 Update ControllerGain value (this only applies to SFC)
To update the ControllerGain value dynamically, i.e. without interrupting the
running measurement mode, an I 2 C transmission sequence consisting of a set
of two instructions has to be issued:
Command| Command code (Hex)| Command argument|
Description
---|---|---|---
Transmit ControllerGain value| 0xE1B2| ControllerGain value in range [0..4]
multiplied by 214| This instruction transmits the ControllerGain value to the
MFC. A value of 1 is used by default for the ControllerGain, which will be
applied after a hard- or soft-reset of the sensor.
Reset I2C address pointer| 0xE000| None| This instruction resets the I2C
address pointer to the regular result output buffer such that the measurement
data as described in section 3.3.1 are obtained upon a subsequent read header.
For further important details regarding the relevance of the ControllerGain
parameter please refer to section 0.
3.3.6 Overrule valve control (this only applies to SFC)
Two commands are provided to overrule the valve regulation and to either fully
open the valve or force close the valve. These commands have to be issued
while a continuous measurement is running, in both cases (fully opened or
fully closed mode) the flow value can still be read from the sensor.
Command code to overrule the valve regulation and fully open the valve|
Command code to return to normal valve regulation after fully opening the
valve| Description
---|---|---
0x3FE4| 0x3F65| This first command will fully open the valve and the second
command has to be issued in order to return to normal valve control.
Command code to overrule the valve regulation and force close the valve|
Command code to return to normal valve regulation after force closing the
valve| Description
---|---|---
0x3FEF| 0x3F6E| This first command will close the valve and the second command
has to be issued in order to return to normal valve control.
3.3.7 Update Concentration of gas mixtures
To update the concentration of a binary gas mixture dynamically, i.e. without
interrupting the running measurement mode, an I 2 C transmission sequence
consisting of a set of two instructions is provided:
Command
| Command code (Hex)| Command argument|
Description
---|---|---|---
Transmit concentration| 0xE17D| Volume fraction of Gas 0 in Gas 1 (in ‰) or
volume fraction of Gas 7 in Gas 8 (in ‰)| This instruction transmits the
concentration value to the flow sensor.
Reset I2C address pointer| 0xE000| None| This instruction resets the I2C
address pointer to the regular result output buffer such that the measurement
data as described in section 3.3.1 are obtained upon a subsequent read header.
Please note:
– The concentration value must not be updated more than once per millisecond.
– If a concentration value greater than 1000 is passed to the sensor, the
measurement mode will stop.
– For the initial concentration value, which is supplied with the start
measurement command (0x3650 or 0x365B), the concentration value supplied via
the command argument will be immediately applied without a need to send the
second command.
– Changing the gas mixture by using a new measurement command takes 12 ms to
change the concentration. Therefore, the procedure to change the concentration
only is significantly faster and should be used for dynamic adjustments of the
concentration.
– During the transmission and execution of these two commands no I 2 C-read
must take place.
3.3.8 Disable valve control (this only applies to SFC)
By default, the control function is active, meaning that the device will
control the rate of flow to the given setpoint by adjusting the valve current
accordingly. However, the controller functionality can also be disabled such
that the device acts as pure flow meter. In order to disable the control
function, a start measurement command comprising a very specific command
argument has to be issued:
Command| Command code (Hex)| Command argument|
Description
---|---|---|---
Disable valve control function| Start continuous measurement command as
detailed in section 3.3.1| 0xC0FF| This command starts a continuous
measurement with the desired calibrated gas (defined by the start command) but
disables the control function, i.e. the device acts as MFM.
Please note:
– If the start measurement command of a gas mixture is used, the initial
concentration value is set to 0.
The concentration value must be defined separately with the update
concentration command detailed in section 0.
3.3.9 Set valve voltage value manually (this only applies to SFC)
In case the valve control has been disabled (see section 3.3.8), the valve
voltage can be configured manually.
The command argument value in the subsequent command code defines the valve
voltage. The valve voltage is scaled linearly in relation to the command
argument value, where a command argument value of 0 corresponds to 0 V and a
command argument value of 0xFFFF to the applied supply voltage (most commonly
24 V).
Command| Command code (Hex)| Command argument|
Description
---|---|---|---
Set manual valve voltage| 0xE176| N in range [0..65535]| The command argument
value N defines the valve voltage, where the valve voltage [0 to 24 V] is
proportionally scaled to the command argument ranging within [0 to 65535].
Please note:
– The valve voltage value can be set manually only if the control function has
previously been deactivated with the command detailed in section 3.3.8.
– It is important to note that the maximum valve current allowed is not
exceeded. In this manual operating mode there are no limitations from the
system and it is the user’s responsibility to comply with the maximum valve
current requirement of 200 mA. Furthermore, the resistance of the proportional
solenoid coil changes with temperature.
– It is not sufficient to consider only the current consumption on the 24 V
supply. This shall be illustrated by a small example: Let us assume that the
current consumption at 24 V is 100 mA and the manual valve control setting
(command argument) is set to 32768. This means that a voltage of 12 V is
applied to the valve. Due to energy conservation and under the idealized
assumption of no losses on the PCB, the valve current already corresponds to
the maximum permissible value of 200 mA.
– In general, it is highly advisable not to use values above 42’000 for the
manual valve control setting.
3.3.10 Switch to uncalibrated raw flow value
There might be special cases where it is beneficial to read the uncalibrated
raw flow value from the sensor. To this end a dedicated command can be issued
requesting the sensor to return the uncalibrated raw flow values as opposed to
the default linearized flow values. This command has to be issued while a
continuous measurement is running.
Command code to get uncalibrated raw flow values| Command code to return to normal linearized flow values|
Description
---|---|---
0x3FDE| 0x3F5F| This first command causes the sensor to return raw flow values
and the second command has to be issued in order to return to normal
linearized flow values.
Please note:
– The regulation parameters have been optimized for the default linearized
flow value configuration.
The regulation behavior is totally different and can be even unstable in case
of the raw flow setting.
This uncalibrated raw flow configuration is best used in conjunction with a
disabled valve control.
– However, the previously described functionalities in sections 3.3.8, 3.3.9,
and 3.3.10 can be combined to achieve very custom-tailored solutions, where
the valve could, for instance, be replaced with a customer specific valve. The
implemented functionality would allow to record the valve characteristics as
well as customer specific gas calibrations. Please contact Sensirion if such a
specific feature is required.
3.3.11 Stop Continuous Measurement
When the sensor is in continuous measurement mode, the sensor must be stopped
before it can accept another measurement command. Please note, the subsequent
commands are not actual measurement commands and can be issued without
interrupting the running measurement:
- Update SetPoint value
- Update InitStep value
- Update ControllerGain value
- Overrule valve control
- Update concentration of gas mixtures
- Set valve voltage value manually
- Switch to uncalibrated raw flow value
- Soft reset
Command| Command code (Hex)|
Description
---|---|---
Stop continuous measurement| 0x3FF9| This command stops the continuous
measurement and puts the sensor in idle mode. After it receives the stop
command, the sensor needs up to 1 ms to power down the heater, enter idle mode
and be receptive for a new command.
In idle mode the sensor will consume less power.
3.3.12 Get calibrated gas information
During the assembly, initialization or start-up of the machine it might be
required to check some basic parameters regarding the calibrated gases.
This command provides the scale factor and offset to convert flow readings
into quantities with a physical flow unit (see section 0), which itself is
also returned by the command, encoded in a 16-bit identifier (see section
3.5.4). Furthermore, also the full-scale flow as well as the gas-ID can be
read out. All these parameters (scale factor, offset, flow unit, full-scale
flow and gas-ID) are specific to the calibrated gas / gas mixture and its
corresponding lookup table used for the flow measurement. Therefore, the gas /
gas mixture needs to be specified in the command argument by the command code
of the corresponding start continuous measurement (see section 3.3.1).
The parameters returned by the “Get calibrated gas information” command can be
read out after sending a sequence of two commands, where the first command
comprises a command argument.
Command| Command code (Hex)| Command argument|
Description
---|---|---|---
Request calibrated gas information| 0x3661| Start measurement command code of
desired gas / gas mixture| This command initializes to read the scale factor,
offset, flow unit, full-scale flow and gas-ID for the calibrated gas, where
the command argument represents the start continuous measurement command for
the corresponding flow signal acquisition.
| | | E.g. the I2C sequence to read the calibrated gas information for Gas 1
is given by: 0x 36 61 36 08 D0 Where D0 represents the 8-bit CRC for the
command argument 0x3608, which in turn is the start continuous measurement
command for Gas 1.
Set I2C address pointer to output buffer| 0xE151| None| This instruction sets
the I2C address pointer to the correct output buffer such that the gas
parameter data are obtained upon a subsequent read header.
Preceding command| Consecutive read|
Description
---|---|---
Read calibrated gas information (Scale Factor, Offset, Flow Unit, Full-scale
Flow and Gas-ID)| Byte1: Scale factor 8msb Byte2: Scale factor 8lsb Byte3: CRC
Byte4: Offset 8msb Byte5: Offset 8lsb Byte6: CRC
Byte7: Flow Unit 8msb Byte8: Flow Unit 8lsb Byte9: CRC
Byte10: Full-scale flow value 8msb Byte11: Full-scale flow value lsb Byte12:
CRC Byte13: Gas-ID 8msb Byte14: Gas-ID 8lsb Byte15: CRC| After a “Get
calibrated gas information” command sequence, the corresponding results can be
read out. The scale factor and offset are a 16-bit signed integer number
represented by a two’s complement (ranging from -32’768 to 32’767). The flow
unit is a 16-bit identifier encoded according to section 3.5.4.
The full-scale flow value is a 16-bit signed integer number represented by a
two’s complement. Identical to the regular flow value, the integer value can
be converted to a physical value by subtracting the offset and dividing it by
the scale factor, detailed in section 3.5.2.
The unique gas-ID represents the code assigned to a gas by the SEMI standards.
The offset and the consecutive bytes do not need to be read out (every time).
The read sequence can be aborted by a NACK and a STOP condition.
3.3.13 Soft Reset
After the reset command the sensor will typically take about 30 ms to reset
(however, this can be subjected to change for future improvements). During
this time the sensor will not acknowledge its address nor accept commands.
Command
| I2C address + W bit + command code (Hex)| Consecutive read|
Description
---|---|---|---
General call reset| 0x0006| NA| This sequence resets the sensor with a
separate reset block, which is as much as possible detached from the rest of
the system on chip. Note that the I2C address is 0x00, which is the
general call address, and that the command is 8 bits long. The reset is
implemented according to the I2C specification.
3.3.14 Read Product Identifier and Serial Number
The product identifier and the serial number can be read out by sending the
command below.
Command| Command code (Hex)| Consecutive read|
Description
---|---|---|---
Read product identifier| 0xE102| Byte1: Product number [31:24] Byte2: Product
number [23:16] Byte3: CRC Byte4: Product number [15:8] Byte5: Product number
[7:0] Byte6: CRC Byte7: Serial number [63:56] Byte8: Serial number [55:48]
Byte9: CRC Byte10: Serial number [47:40] Byte11: Serial number [39:32] Byte12:
CRC Byte13: Serial number [31:24] Byte14: Serial number [23:16] Byte15: CRC
Byte16: Serial number [15:8] Byte17: Serial number [7:0] Byte18: CRC| Note
that the command needs to be preceded with an I2C write header (I2C address +
W). The command returns: – 32 bit unique product and revision number.
The number is listed in the table below. Note that the last 8 bits are the
revision number and are subject to change as long as the product features are
preliminary. – 64 bit unique serial number in the format of an
unsigned long integer. The serial number has the following meaning:
yywwxxxxxx , where: yy : last two digits of calibration year, ww :
calibration week, xxxxxx : unique 6-digit sequential number within the
calibration week.
Product| Product number|
Comments
---|---|---
SFC6000D-50slm (50 l/min: O2, Air; 20 l/min: CO2, N2O, Ar)| 0x06020184 (early
2023)| Distribution variant; Flange: Push-pull cartridge for 6 mm hose
diameter and enclosed down mount flange
SFC6000D-20slm (20 l/min: O2, Air; 10 l/min: CO2, N2O, Ar)| 0x06020284 (early
2023)| Distribution variant; Flange: Push-pull cartridge for 6 mm hose
diameter and enclosed down mount flange
SFC6000D-5slm (5 l/min: O2, Air; 2 l/min: CO2, N2O, Ar)| 0x06020484 (early
2023)| Distribution variant; Flange: Push-pull cartridge for 6 mm hose
diameter and enclosed down mount flange
SFM6000D-50slm (50 l/min: O2, Air; 20 l/min: CO2, N2O, Ar)| 0x06021184 (early
2023)| Distribution variant; Flange: Push-pull cartridge for 6 mm hose
diameter and enclosed down mount flange
SFM6000D-20slm (20 l/min: O2, Air; 10 l/min: CO2, N2O, Ar)| 0x06021284 (early
2023)| Distribution variant; Flange: Push-pull cartridge for 6 mm hose
diameter and enclosed down mount flange
SFM6000D-5slm (5 l/min: O2, Air; 2 l/min: CO2, N2O, Ar)| 0x06021484 (early
2023)| Distribution variant; Flange: Push-pull cartridge for 6 mm hose
diameter and enclosed down mount flange
3.4 Checksum Calculation
The 8-bit CRC checksum transmitted after each data word is generated by a CRC
algorithm. Its properties are listed in the table below. The CRC covers the
contents of the two previously transmitted data bytes. To calculate the
checksum, only these two reviously transmitted data bytes are used.
Property|
Value
---|---
Name| CRC-8
Protected data| read data
Width| 8 bit
Polynomial| 0x31 (x8 + x5 + x4 + 1)
Initialization| 0xFF
Reflect input| False
Reflect output| False
Final XOR| 0x00
Example| CRC (0xBEEF) = 0x92
3.5 Number Format and Conversion to Physical Values
The number format of the flow and temperature signals and the conversion to a
physical value with a scale factor and an offset where applicable is explained
below:
3.5.1 Scale Factors, Offsets, and Flow Unit
SFx6000-50slm version
Signal | Scale Factor | Offset | Unit | Comment |
---|---|---|---|---|
Flow Gas 0: O2: | 1’024 (l/min)-1 | -28’672 | slm (or ln/min)1 | Can be read out |
using an I2C-
Flow Gas 1: Air:| 1’024 (l/min)-1| -28’672| slm (or ln/min)1| command (see
section 3.3.12)
Flow Gas 2: CO2| 2’560 (l/min)-1| -28’672| slm (or ln/min)1|
Flow Gas 3: N2O| 2’560 (l/min)-1| -28’672| slm (or ln/min)1|
Flow Gas 4: Ar| 2’560 (l/min)-1| -28’672| slm (or ln/min)1|
Temperature| 200 °C-1| 0| °C|
SFx6000-20slm version
Signal| Scale Factor| Offset| Unit|
Comment
---|---|---|---|---
Flow Gas 0: O2:| 2’560 (l/min)-1| -28’672| slm (or ln/min)1| Can be read out
using an I2C-
Flow Gas 1: Air:| 2’560 (l/min)-1| -28’672| slm (or ln/min)1| command (see
section 3.3.12)
Flow Gas 2: CO2| 5’120 (l/min)-1| -28’672| slm (or ln/min)1|
Flow Gas 3: N2O| 5’120 (l/min)-1| -28’672| slm (or ln/min)1|
Flow Gas 4: Ar| 5’120 (l/min)-1| -28’672| slm (or ln/min)1|
Temperature| 200 °C-1| 0| °C|
SFx6000-5slm version
Signal| Scale Factor| Offset| Unit|
Comment
---|---|---|---|---
Flow Gas 0: O2:| 10’240 (l/min)-1| -28’672| slm (or ln/min)1| Can be read out
using an I2C-
Flow Gas 1: Air:| 10’240 (l/min)-1| -28’672| slm (or ln/min)1| command (see
section 3.3.12)
Flow Gas 2: CO2| 25’600 (l/min)-1| -28’672| slm (or ln/min)1|
Flow Gas 3: N2O| 25’600 (l/min)-1| -28’672| slm (or ln/min)1|
Flow Gas 4: Ar| 25’600 (l/min)-1| -28’672| slm (or ln/min)1|
Temperature| 200 °C-1| 0| °C|
3.5.2 Flow
The digital calibrated gas flow signal read from the sensor is a 16-bit signed
integer number represented by a two’s complement (ranging from -32’768 to
32’767). The integer value can be converted to the physical value by
subtracting the offset and dividing it by the scale factor (gas flow in flow
unit = (sensor output – offset) scale factor). The scale factor, offset, and
unit are specific to every calibrated gas / gas mixture.
3.5.3 Temperature
The digital calibrated temperature signal read from the sensor (see section
3.3.1 for the command to read the temperature value) is a 16-bit signed
integer number represented by a two’s complement (ranging from – 32’768 to
32’767). The integer value can be converted to the physical value by
subtracting the offset and dividing it by the scale factor (temperature in °C
= (sensor output – offset) scale factor).
3.5.4 Flow Unit
The flow unit is specific to every calibrated gas / gas mixture and is
specified in section 3.5.1. It can further be read out using an I 2 C-command
(see section 3.3.12). The flow unit is given by a 16-bit unsigned word, where
the information about the unit is encoded in the first 13 bits as follows:
- Bits <3:0>: unit prefix (multiplier)
- Bits <7:4>: time base (e.g. per minute)
- Bits <12:8>: unit (e.g. standard liter)
The allowed values for the 3 unit constituents are given in the tables below:
Bits <3:0>| Unit Prefix|
Multiplier
---|---|---
0b0011 = 3| n| 10-9
0b0100 = 4| m| 10-6
0b0101 = 5| m| 10-3
0b0110 = 6| c| 10-2
0b0111 = 7| d| 10-1
0b1000 = 8| N/A| 10-0 = 1
0b1001 = 9| da| 101 = 10
0b1010 = 10| h| 102 = 100
0b1011 = 11| k| 103
0b1100 = 12| M| 106
0b1101 = 13| G| 109
Bits <7:4>|
Time Base
---|---
0b0000 = 0| none
0b0001 = 1| per microsecond
0b0010 = 2| per millisecond
0b0011 = 3| per second
0b0100 = 4| per minute
0b0101 = 5| per hour
0b0110 = 6| per day
Bits <12:8>|
Unit
---|---
0b00000 = 0| norm liter (T0=0°C, p0=1013mbar)
0b00001 = 1| standard liter (T0=20°C, p0=1013mbar)
0b00010 = 2| standard liter (T0=15°C, p0=1013mbar)
0b00011 = 3| standard liter (T0=25°C, p0=1013mbar)
0b01000 = 8| liter
0b01001 = 9| gram
Example: standard liter per minute (slm) with reference temperature equal to
20°C and reference pressure equal to 1013mbar is encoded as 0b 0000 0001 0100
1000 = 0x0148 = 328. Standard cubic centimeters per minute (sccm) with the
same reference conditions is endoced as 0b 0000 0001 0100 0101 = 0x0145 = 325.
3.6 Regulation parameters controllable by customer
The regulation parameters (InitStep and ControllerGain) allow fine tuning of
the PID controller. They let the user achieve a desired compromise between
speed, overshoot, and control stability.
3.6.1 InitStep
The InitStep refers to a normalized initial valve voltage, which is set to a
variant specific value by default. This voltage value will be added to the
valve control value if the regulator is in the normal regulation mode and a
setpoint value unequal zero is specified. This normalized InitStep value
reflects the fact that for instance a 24 V valve starts to open only if the
valve voltage is higher than a couple of volts. The customer has the
possibility to change this value as detailed in section 3.3.4. An example of
the regulation behavior depending on this InitStep value is shown in the
figure below.
The response of the MFC signal to a linearly rising setpoint change has been
tested with different InitStep values. If the InitStep is too low, it takes
more than 100 ms for the valve to open (dark blue curve). On the other hand,
if the InitStep is too high an also too high valve voltage is applied as soon
as the setpoint is different from 0. This causes the valve to open too much
(orange curve) and the regulation has to counteractthis too high flow value.
The optimal value is obviously somewhere in between. In the graph above, an
optimum InitStep would be about 0.4. However, the opening voltage of the valve
depends on pressure and temperature. Therefore, the customer shall have the
possibility to tune this parameter according to his conditions and
requirements.
3.6.2 ControllerGain
The ControllerGain refers to a normalized gain parameter, which is set to 1 by
default. This gain factor will be multiplied to the control deviation, which
is the difference between desired setpoint and measured value, and a
correction of the valve control voltage will be applied depending on this
control deviation value. If the customer gain factor is increased, this
results obviously in a larger change in the output for a given change in the
control deviation. The customer has the possibility to set this gain factor as
detailed in section 0. An example of the regulation behavior depending on this
ControllerGain value is shown in the figure below.
The response of the MFC signal to a linearly rising setpoint change has been tested with different ControllerGain values. A very small ControllerGain value results in a smaller output response to a large input control deviation and therefore to a less responsive controller. On the other hand, if the ControllerGain is too high, the system can become unstable. As the valve characteristics depend for instance on pressure, the control action may be too strong when responding to system disturbances at high pressures. Therefore, a smaller gain factor may be advisable at higher pressures and the customer shall have the possibility to tune this parameter according to his conditions and requirements. Please note that it is also possible to set ControllerGain values smaller than 1.
Revision History
Date| Version| Pages|
Changes
---|---|---|---
May 2023| 1.0| all| Initial version
Sept 2023| 1.1| 11| Addendum to “Get Temperature” command
Documents / Resources
|
SENSIRION SFC6xxx Series Mass Flow
Controllers
[pdf] User Manual
SFC6xxx, SFM6xxx, SFC6xxx Series Mass Flow Controllers, Mass Flow Controllers,
Flow Controllers, Controllers
---|---
References
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>