SENSIRION SFC6xxx Series Mass Flow Controllers User Manual

June 13, 2024
SENSIRION

SFC6xxx and SFM6xxx I 2 C Interface SENSIRION SFC6xxx Series Mass Flow
Controllers

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

SENSIRION SFC6xxx Series Mass Flow Controllers -
sensor

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:

SENSIRION SFC6xxx Series Mass Flow Controllers -
Argument

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:

SENSIRION SFC6xxx Series Mass Flow Controllers - Argument
1

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.

  1. 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.
  2. The corresponding temperature measurement result can be read out upon issuing an I 2 C read header.
  3. 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:

  1. Bits <3:0>: unit prefix (multiplier)
  2. Bits <7:4>: time base (e.g. per minute)
  3. 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.

SENSIRION SFC6xxx Series Mass Flow Controllers -
InitStep

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.

SENSIRION SFC6xxx Series Mass Flow Controllers - InitStep
1

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

www.sensirion.com

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)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals