0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
SEK-SCD30

SEK-SCD30

  • 厂商:

    SENSIRION(盛思锐)

  • 封装:

  • 描述:

    EVAL KIT FOR SCD30 CO2 MODULE

  • 数据手册
  • 价格&库存
SEK-SCD30 数据手册
Interface Description Sensirion SCD30 Sensor Module CO2, humidity, and temperature sensor ▪ ▪ ▪ ▪ ▪ ▪ ▪ NDIR CO2 sensor technology Integrated temperature and humidity sensor Best performance-to-price ratio Dual-channel detection for superior stability Small form factor: 35 mm x 23 mm x 7 mm Accuracy CO2 sensor: ± (30 ppm + 3%) Fully calibrated with digital interface UART or I2C Contents 1 2 3 Digital interface description 1.1 1.2 1.3 1.4 1.5 I2C Protocol Modbus protocol PWM protocol Sensor commands Signal conversion to physical values 2.1 2.2 2.3 Warning, Personal Injury ESD Precautions Warranty Important Notices Headquarters and Subsidiaries www.sensirion.com Version 1.0 – D1 – May 2020 1/21 1 Digital interface description The SCD30 digital interface is compatible with the I2C protocol and the Modbus protocol. For selecting Modbus protocol, the SEL pin needs to be pulled to VDD Voltage during power-up of the SCD30 sensor module. It is not possible to switch the communication protocol during operation. Please refer to datasheet. 1.1 I2C Protocol Maximal I2C speed is 100 kHz and the master has to support clock stretching. Sensirion recommends to operate the SCD30 at a baud rate of 50 kHz or smaller. Clock stretching period in write- and read-frames is 30 ms, however, due to internal calibration processes a maximal clock stretching of 150 ms may occur once per day. For detailed information to the I2C protocol, refer to NXP I2C-bus specification1. SCD30 does not support repeated start condition. Clock stretching is necessary to start the microcontroller and might occur before every ACK. I2C master clock stretching needs to be implemented according to the NXP specification. The boot-up time is < 2 s. 1.1.1 I2C Address After power-up of the sensor, the I2C address of the module is set to the address 0x61. 1.1.2 I2C Sequence The commands issued by the I2C master are 16 bit with an optional parameter. Data sent to the master is protected by a CRC. This also applies to data arguments sent to the sensor, please see chapter 1.1.3 for CRC checksum calculation. 2 byte data sent from or received by the sensor is always succeeded with an 8 bit CRC. Examples are shown below. Cmd MSB Cmd LSB ACK Clock I2CAddress W Stretching ACK S ACK I2C write 16bit command without arguments P Example: Stop measurements 0x0104 START 0xC2 0x01 0x04 STOP (Red: Write Header; Blue: Read Header; Black: Data; Green: CRC; Start Condition: START; Stop Condition: STOP) 1 http://www.nxp.com/documents/user_manual/UM10204.pdf www.sensirion.com Version 1.0 – D1 – May 2020 2/21 CRC1 ACK Data1 LSB CRC0 ACK ACK Data0 LSB ACK Data1 MSB Cmd LSB ACK Data0 MSB ACK Cmd MSB ACK Clock I2CAddress W Stretching ACK S ACK I2C write 16bit command with arguments P or P CRCN ACK DataN LSB ACK DataN MSB ACK or P Example: Trigger continuous measurement (Pressure = 0mBar) START 0xC2 0x00 0x10 0x00 0x00 0x81 STOP (Red: Write Header; Blue: Read Header; Black: Data; Green: CRC; Start Condition: START; Stop Condition: STOP) www.sensirion.com Version 1.0 – D1 – May 2020 3/21 I2C read multiple 16bit words Example: Read Measurement (example with 439 PPM, 48.8% RH, 27.2 °C) START 0xC2 0x03 0x00 STOP START 0xC3 0x43 0xDB 0xCB 0x8C 0x2E 0x8F 0x41 0xD9 0x70 0xE7 0xFF 0xF5 0x42 0x43 0xBF 0x3A 0x1B 0x74 STOP (Red: Write Header; Blue: Read Header; Black: Data; Green: CRC; Start Condition: START; Stop Condition: STOP) www.sensirion.com Version 1.0 – D1 – May 2020 4/21 Table 1 I2C write and read communication frames. SDA is controlled by the I2C master in clear blocks and by the sensor in dark blocks. 1.1.3 I2C Checksum calculation The checksum byte for I2C communication is generated by a CRC algorithm with the following properties: Preceding Command Value Name CRC-8 Protected Data read data Width 8 bits Polynomial 0x31 (x8 + x5 + x4 + 1) Initialization 0xFF Reflect Input false Reflect Output false Final XOR 0x00 Example CRC(0xBEEF) = 0x92 www.sensirion.com Version 1.0 – D1 – May 2020 5/21 1.2 Modbus protocol For selecting Modbus protocol, the SEL pin needs to be pulled to VDD Voltage. Please refer to datasheet. The supported baud rate is 19200 Baud with 8 Data bits, 1 Start bit and 1 Stop bit, no Parity bit. More details on the Modbus protocol can be found here: Description Link General introduction http://www.modbus.org/docs/Modbus_over_serial_line_V1_02.pdf Modbus frame generator http://modbus.rapidscada.net/ Modbus CRC generator https://www.lammertbies.nl/comm/info/crc-calculation.html 1.2.1 Modbus address Modbus address is 0x61. 1.2.2 Modbus function codes Available function codes are Function code Description 3 Read holding registers 4 Read input registers 6 Write single holding register 1.3 PWM output The SCD30 features the possibility to read out the CO2 concentration via the PWM protocol. During operation, the SCD30 must be connected via the VDD-pin (supply voltage), the GND-pin (ground) and the PWM-pin. Please refer to the data sheet for pin assignment. 1.3.1 Sensor configuration and measurement start The SCD30 must be configured via the I2C or the Modbus protocol according to this interface description. This can either be done by the host system or alternatively in the assembly line with temporary connector pins. Sensor output is only provided after sending the start measurement command to the SCD30. 1.3.2 Technical specification PWM output Below, the technical specifications of the PWM protocol are provided. The output signal can be converted by either directly measuring the pulse-duration or alternatively by employing a low-pass filter and measuring the output voltage. Base Frequency 80 Hz DutyCycle linear from 0 to 100% (0 ppm to 5000 ppm) Minimal Stepsize of DutyCycle 11 ppm Output 3.0V Push/Pull Driver Signal Conversion CO2 concentration [ppm] = www.sensirion.com Version 1.0 – D1 – May 2020 𝑡ℎ𝑖𝑔ℎ ⁄𝑡 ∗ 5′000 𝑏𝑎𝑠𝑒 6/21 1.3.3 Low pass filter parametrization Typically, the PWM signal is converted to a voltage signal via a low pass filter. Upon conversion of the PWM signal to a voltage signal the CO2 concentration is defined as follows: CO2 concentration [ppm] = 𝑉𝑚𝑒𝑎𝑠𝑢𝑟𝑒⁄3 ∗ 5′000. Since there’s an inherent trade-off between settling time, the ripple and the current consumption, the ideal parameterization of the low pass filter differs depending on the application. Nevertheless, an example parameter set for a first order low-pass is provided below: 1.4 Sensor commands The command set of the SCD30 is defined as follows. All commands are available via Modbus and I2C. - Trigger continuous measurement with optional ambient pressure compensation - Stop continuous measurement - Set measurement interval - Get data ready status - Read measurement - (De-)Activate continuous calculation of reference value for automatic self-calibration (ASC) - Set external reference value for forced recalibration (FRC) - Set temperature offset for onboard RH/T sensor - Altitude compensation - Read firmware version - Soft reset www.sensirion.com Version 1.0 – D1 – May 2020 7/21 1.4.1 Trigger continuous measurement with optional ambient pressure compensation Starts continuous measurement of the SCD30 to measure CO2 concentration, humidity and temperature. Measurement data which is not read from the sensor will be overwritten. The measurement interval is adjustable via the command documented in chapter 1.4.3, initial measurement rate is 2s. Continuous measurement status is saved in non-volatile memory. When the sensor is powered down while continuous measurement mode is active SCD30 will measure continuously after repowering without sending the measurement command. The CO2 measurement value can be compensated for ambient pressure by feeding the pressure value in mBar to the sensor. Setting the ambient pressure will overwrite previous settings of altitude compensation. Setting the argument to zero will deactivate the ambient pressure compensation (default ambient pressure = 1013.25 mBar). For setting a new ambient pressure when continuous measurement is running the whole command has to be written to SCD30. Protocol Command (hex) I2C 0x0010 argument Protocol Function Code Address Data to write Modbus 6 0x0036 0x0000 or pressure in mBar Argument Description Format: uint16 Available range: 0 & [700 … 1400]. Pressure in mBar. Triggers continuous measurement. Ambient pressure is compensated by setting argument. argument = 0 deactivates pressure compensation. Full sequence examples: Protocol Data to write / read Start Start Write Header 0xC2 Request: Slave Addre ss 0x61 Functi on Code 0x06 I2C Description Cmd MSB 0x00 Addre ss MSB 0x00 CMS LSB 0x10 Addre ss LSB 0x36 Pressure MSB 0x00 Conte nt MSB 0x00 Conte nt LSB 0x00 Pressure LSB 0x00 CRC Stop 0x81 Stop CRC LSB CRC MSB 0x60 0x64 Content LSB 0x00 CRC LSB 0x60 Start continuous measurement without ambient pressure compensation Modbus Response: Slave Function Address Code 0x61 0x06 www.sensirion.com Address MSB 0x00 Address LSB 0x36 Content MSB 0x00 Version 1.0 – D1 – May 2020 CRC MSB 0x64 8/21 1.4.2 Stop continuous measurement Stops the continuous measurement of the SCD30. Protocol Command (hex) Description I2C 0x0104, no argument Protocol Function Code Address Data to write Modbus 6 0x0037 0x0001 Stops continuous measurement. Full sequence examples: Protocol Data to write Start I2C Start Request: Slave Address 0x61 Modbus Description Write Header 0xC2 Cmd MSB 0x01 Cmd LSB 0x04 Stop Stop Function Code 0x06 Address MSB 0x00 Address LSB 0x37 Content MSB 0x00 Content LSB 0x01 CRC LSB 0xF0 Response: Slave Function Address Code 0x61 0x06 Address MSB 0x00 Address LSB 0x37 Content MSB 0x00 Content LSB 0x01 CRC LSB 0xF0 CRC MSB 0x64 Stops continuous measurement. CRC MSB 0x64 1.4.3 Set measurement interval Sets the interval used by the SCD30 sensor to measure in continuous measurement mode (see chapter 1.4.1). Initial value is 2 s. The chosen measurement interval is saved in non-volatile memory and thus is not reset to its initial value after power up. Protocol Command (hex) Argument Description I2C 0x4600 argument Protocol Function Code Address Data to write Modbus 6 0x0025 argument Format: unit16 Interval in seconds. Available range: [2 … 1800] given in 2 byte in the order MSB, LSB. Sets the interval for continuous measurement mode. Standard measurement interval is 2. Full sequence examples: Protocol I2C Data to write Set measurement interval Start Write Cmd Header MSB Start 0xC2 0x46 Get measurement interval Write: Start Write Cmd Header MSB Start 0xC2 0x46 Read: Start Read Interv Header al MSB Start 0xC3 0x00 www.sensirion.com Description Cmd LSB 0x00 Interval MSB 0x00 Interval LSB 0x02 Cmd LSB 0x00 Stop Inter val LSB 0x02 CRC Stop 0xE3 Stop CRC Stop 0xE3 Stop Set measurement interval to 2s Stop Version 1.0 – D1 – May 2020 9/21 Set measurement interval Request: Slave Functi Addre Addre on ss ss Code MSB 0x61 0x06 0x00 Response: Slave Function Address Code 0x61 0x06 Addre ss LSB 0x25 Conte nt MSB 0x00 Conte nt LSB 0x02 CRC LSB CRC MSB 0x10 0x60 Address MSB 0x00 Address LSB 0x25 Content MSB 0x00 Content LSB 0x02 CRC LSB 0x10 CRC MSB 0x60 Get measurement interval Request Slave Function Address Address Code MSB Address LSB No. of register s LSB 0x01 CRC LSB CRC MSB 0x9C 0x61 CRC LSB 0xB9 CRC MSB 0x8D Modbus 0x61 0x03 Response: Slave Function Address Code 0x61 0x03 0x00 0x25 No. of register s MSB 0x00 No. of Bytes 0x02 Content MSB 0x00 Content LSB 0x02 1.4.4 Get data ready status Data ready command is used to determine if a measurement can be read from the sensor’s buffer. Whenever there is a measurement available from the internal buffer this command returns 1 and 0 otherwise. As soon as the measurement has been read by the return value changes to 0. Note that the read header should be send with a delay of > 3ms following the write sequence. It is recommended to use data ready status byte before readout of the measurement values. Protocol Address (hex) Description I2C 0x0202, no argument needed Protocol Function Code Address Modbus 3 0x0027 Data ready status. Status equals “1” when a measurement is available to be read from the sensor. Full sequence examples: Protocol I2C Data to write/Read Write: Start Write Header Start 0xC2 Read: Start Start Request Slave Address 0x61 Modbus Read Header 0xC3 Description Cmd MSB 0x02 Cmd LSB 0x02 Stop Data Ready MSB 0x00 Data Ready LSB 0x01 CRC Stop 0xB0 Stop Stop Function Code Address MSB Address LSB 0x03 0x00 0x27 No. of Bytes 0x02 Content MSB 0x00 Response: Slave Function Address Code 0x61 0x03 No. of registers MSB 0x00 Content LSB 0x01 No. of registers LSB 0x01 CRC LSB 0xF9 CRC LSB CRC MSB 0x3D 0xA1 Reading Data Ready status (returning 1) CRC MSB 0x8C I2C: SDA is controlled by the I2C master in clear blocks and by the sensor in dark blocks. www.sensirion.com Version 1.0 – D1 – May 2020 10/21 1.4.5 Read measurement When new measurement data is available it can be read out with the following command. Note that the read header should be send with a delay of > 3ms following the write sequence. Make sure that the measurement is completed by reading the data ready status bit before read out. Protocol Address (hex) Description I2C 0x0300, no argument needed Reads a single measurement of CO2 concentration. Protocol Function Code Address Modbus 3 0x0028 - 0x002D Full sequence examples: Protocol Data to write/read Write: Start Write Header Start 0xC2 Description Cmd MSB 0x03 Cmd LSB 0x00 Stop Stop Read: Read Header 0xC3 Start I2C Start T MMSB 0x41 T MLSB 0xD9 RH MMSB 0x42 RH MLSB 0x43 Request Slave Address 0x61 Modbus CO2 MMSB 0x43 CO2 MLSB 0xDB CRC 0x70 CRC 0xBF T LMSB 0xE7 T LLSB 0xFF RH LMSB 0x3A RH LLSB 0x1B Address MSB Address LSB 0x03 0x00 0x28 No. of Bytes 0x0C CO2 MMSB 0x43 T MMSB T MLSB T LMSB T LLSB 0x41 0xD9 0xE7 0xFF CRC LSB 0x50 0xCB Function Code Response: Slave Function Address Code 0x61 0x03 CO2 LMSB 0x8C CRC RH MMS B 0x42 CRC 0x8F CRC 0xF5 No. of register s MSB 0x00 CO2 MLSB 0xDB CO2 LLSB 0x2E CRC Stop 0x74 Stop No. of register s LSB 0x06 CRC LSB CRC MSB 0x4C 0x60 CO2 LMSB 0x8C Example with sensor returning: CO2 Concentration = 439 PPM Humidity = 48.8 % Temperature = 27.2 °C CO2 LLSB 0x2E RH MLSB RH LMSB RH LLSB 0x43 0x3A 0x1B CRC MSB 0x07 SDA is controlled by the I2C master in clear blocks and by the sensor in dark blocks. www.sensirion.com Version 1.0 – D1 – May 2020 11/21 I2C read-out stream: Table 2 and Error! Reference source not found. shows the data layout of the data read out from the sensor. Using I2C for read-out the sensor will stream out the data in the given order. Preceding Command Read measurement Consecutive read Byte1: CO2 concentration MMSB Byte2: CO2 concentration MLSB Byte3: CRC Byte4: CO2 concentration LMSB Byte5: CO2 concentration LLSB Byte6: CRC Byte7: Temperature MMSB Byte8: Temperature MLSB Byte9: CRC Byte10: Temperature LMSB Byte11: Temperature LLSB Byte12: CRC Byte13: Humidity MMSB Byte14: Humidity MLSB Byte15: CRC Byte16: Humidity LMSB Byte17: Humidity LLSB Byte18: CRC Description Data read-out table for I2C communication. Measurement of CO2 concentration, humidity and temperature has to be finished before read-out. Table 2: I2C data read-out table. Read-out of measurement data can be aborted by sending a NACK followed by a stop condition after any data byte. Example: The CO2 concentration 400 ppm corresponds to 0x43c80000 in Big-Endian notation. Modbus read-out stream: Using Modbus for read-out the sensor will stream out the data in the given order. Table 3: Modbus data read-out table. Preceding Command Read measurement Consecutive read Word0: CO2 MSW Word1: CO2 LSW Word2: Temperature MSW Word3: Temperature LSW Word4: Humidity MSW Word5: Humidity LSW Description Data read-out table for Modbus communication. Measurement of CO2 concentration, humidity and temperature has to be finished before read-out. Example: The CO2 concentration 400 ppm corresponds to 0x43c80000 in Big-Endian notation. www.sensirion.com Version 1.0 – D1 – May 2020 12/21 1.4.6 (De-)Activate Automatic Self-Calibration (ASC) Continuous automatic self-calibration can be (de-)activated with the following command. When activated for the first time a period of minimum 7 days is needed so that the algorithm can find its initial parameter set for ASC. The sensor has to be exposed to fresh air for at least 1 hour every day. Also during that period, the sensor may not be disconnected from the power supply, otherwise the procedure to find calibration parameters is aborted and has to be restarted from the beginning. The successfully calculated parameters are stored in non-volatile memory of the SCD30 having the effect that after a restart the previously found parameters for ASC are still present. Note that the most recently found self-calibration parameters will be actively used for selfcalibration disregarding the status of this feature. Finding a new parameter set by the here described method will always overwrite the settings from external recalibration (see chapter 0) and vice-versa. The feature is switched off by default. To work properly SCD30 has to see fresh air on a regular basis. Optimal working conditions are given when the sensor sees fresh air for one hour every day so that ASC can constantly re-calibrate. ASC only works in continuous measurement mode. ASC status is saved in non-volatile memory. When the sensor is powered down while ASC is activated SCD30 will continue with automatic self-calibration after repowering without sending the command. Protocol Command (hex) Argument Description I2C 0x5306 argument Protocol Function Code Address Data to write See notes above, feature is switched off by default. Modbus 6 0x003A Argument Format: uint16 “1”: Activate continuous ASC “0”: Deactivate continuous ASC Full sequence examples: Protocol I2C Data to write Deactivate Automatic Self-Calibration Start Write Cmd Cmd Header MSB LSB Start 0xC2 0x53 0x06 ASC MSB 0x00 ASC LSB 0x00 CRC Stop 0x81 Stop Get Automatic Self-Calibration Status Write: Start Write Cmd Cmd Stop Header MSB LSB Start 0xC2 0x53 0x06 Stop Read: Start Start Modbus Description Read Header 0xC3 ASC MSB 0x00 ASC LSB 0x00 CRC Stop 0x81 Stop Deactivate Automatic Self-Calibration Request: Slave Function Address Address Address Code MSB LSB 0x61 0x06 0x00 0x3A Content MSB 0x00 Response: Slave Function Address Code 0x61 0x06 Content LSB 0x00 CRC LSB 0xA0 CRC MSB 0x67 Address MSB 0x00 Address LSB 0x3A Content MSB 0x00 Content LSB 0x00 CRC LSB 0xA0 CRC MSB 0x67 Get Automatic Self-Calibration Request Slave Function Address Address Code MSB Address LSB No. of registers LSB 0x01 CRC LSB CRC MSB 0xAD 0xA7 CRC LSB 0x38 CRC MSB 0x4C 0x61 0x03 Response: Slave Function Address Code 0x61 0x03 www.sensirion.com 0x00 0x3A No. of registers MSB 0x00 No. of Bytes 0x02 Content MSB 0x00 Content LSB 0x00 Version 1.0 – D1 – May 2020 Example: deactivate ASC 13/21 Set Forced Recalibration value (FRC) Forced recalibration (FRC) is used to compensate for sensor drifts when a reference value of the CO2 concentration in close proximity to the SCD30 is available. For best results, the sensor has to be run in a stable environment in continuous mode at a measurement rate of 2s for at least two minutes before applying the FRC command and sending the reference value. Setting a reference CO2 concentration by the method described here will always supersede corrections from the ASC (see chapter 1.4.6) and vice-versa. The reference CO2 concentration has to be within the range 400 ppm ≤ cref(CO2) ≤ 2000 ppm. The FRC method imposes a permanent update of the CO2 calibration curve which persists after repowering the sensor. The most recently used reference value is retained in volatile memory and can be read out with the command sequence given below. After repowering the sensor, the command will return the standard reference value of 400 ppm. Protocol Command (hex) I2C 0x5204 argument Protocol Function Code Address Data to write Modbus 6 0x0039 Argument Argument Description Format: uint16 CO2 concentration in ppm See notes above. Full sequence examples: Protocol I2C Data to write Set Forced Recalibration value Start Write Cmd Header MSB Start 0xC2 0x52 Get Forced Recalibration value Write: Start Write Cmd Header MSB Start 0xC2 0x52 Read: Start Start Modbus Read Header 0xC3 FRC MSB 0x01 Description Cmd LSB 0x04 FRC MSB 0x01 FRC LSB 0xC2 Cmd LSB Stop 0x04 Stop FRC LSB CRC Stop 0xC2 0x50 Stop CRC Stop 0x50 Stop Set Forced Recalibration value Request: Slave Function Address Address Code MSB 0x61 0x06 0x00 Address LSB 0x39 Content MSB 0x01 Response: Slave Function Address Code 0x61 0x06 Address MSB 0x00 Address LSB 0x39 Content MSB 0x01 Content LSB 0xC2 CRC LSB 0xD0 CRC MSB 0x66 Get Forced Recalibration value Request: Slave Function Address Address Code MSB Address LSB No. of registers LSB 0x01 CRC LSB CRC MSB 0x5D 0xA7 CRC LSB 0xB8 CRC MSB 0x4D 0x61 0x03 Response: Slave Function Address Code 0x61 0x03 www.sensirion.com 0x00 0x39 No. of registers MSB 0x00 No. of Bytes 0x02 Content MSB 0x01 Content LSB 0xC2 Content LSB 0xC2 CRC LSB 0xD0 Version 1.0 – D1 – May 2020 CRC MSB 0x66 Example: Set FRC with argument 450 ppm 14/21 1.4.7 Set Temperature Offset The on-board RH/T sensor is influenced by thermal self-heating of SCD30 and other electrical components. Design-in alters the thermal properties of SCD30 such that temperature and humidity offsets may occur when operating the sensor in end-customer devices. Compensation of those effects is achievable by writing the temperature offset found in continuous operation of the device into the sensor. Temperature offset value is saved in non-volatile memory. The last set value will be used for temperature offset compensation after repowering. Protocol Command (hex) I2C 0x5403 argument Protocol Function Code Address Data to write Modbus 6 0x003B argument Argument Description Format: uint16 Temperature offset, unit [°C x 100], i.e. one tick corresponds to 0.01°C See notes above. Full sequence examples: Protocol Data to write Set Temperature Offset Start Start I2C Write Header Cmd MSB Cmd LSB 0xC2 0x54 0x03 Get Temperature Offset Write: Start Write Cmd Header MSB Start 0xC2 0x54 Cmd LSB 0x03 Stop SHT Offset LSB 0xF4 CRC Stop 0x33 Stop Read: Start Start Modbus Description Read Header 0xC3 SHT Offset MSB 0x01 SHT Offset MSB 0x01 SHT Offset LSB 0xF4 CRC Stop 0x33 Stop Stop Set Temperature Offset Request: Slave Function Address Address Code MSB 0x61 0x06 0x00 Address LSB 0x3B Content MSB 0x01 Response: Slave Function Address Code 0x61 0x06 Address MSB 0x00 Address LSB 0x3B Content MSB 0x01 Content LSB 0xF4 CRC LSB 0xF1 CRC MSB 0xB0 Get Temperature Offset Request: Slave Function Address Address Code MSB Address LSB No. of registers LSB 0x01 CRC LSB CRC MSB 0xFC 0x67 CRC LSB 0x38 CRC MSB 0x5B 0x61 0x03 Response: Slave Function Address Code 0x61 0x03 www.sensirion.com 0x00 0x3B No. of registers MSB 0x00 No. of Bytes 0x02 Content MSB 0x01 Content LSB 0xF4 Content LSB 0xF4 CRC LSB 0xF1 Version 1.0 – D1 – May 2020 CRC MSB 0xB0 Example: Set temperature offset to 5 K 15/21 1.4.8 Altitude Compensation Measurements of CO2 concentration based on the NDIR principle are influenced by altitude. SCD30 offers to compensate deviations due to altitude by using the following command. Setting altitude is disregarded when an ambient pressure is given to the sensor, please see section 1.4.1. Altitude value is saved in non-volatile memory. The last set value will be used for altitude compensation after repowering. Protocol Command (hex) I2C 0x5102 argument Protocol Function Code Address Data to write Modbus 6 0x0038 argument Argument Description Format: uint16 Height over sea level in [m] above 0. See notes above. Full sequence examples: Protocol I2C Data to write Set altitude: Start Write Header Start 0xC2 Cmd MSB 0x51 Cmd LSB 0x02 Altitude MSB 0x03 Get altitude: Write: Start Write Header Start 0xC2 Cmd MSB 0x51 Cmd LSB 0x02 Stop Altitude MSB 0x03 Altitude LSB 0xE8 CRC Stop 0xD4 Stop Set altitude: Request: Slave Function Address Code 0x61 0x06 Address MSB 0x00 Address LSB 0x38 Content MSB 0x03 Content LSB 0xE8 Response: Slave Function Address Code 0x61 0x06 Address MSB 0x00 Address LSB 0x38 Content MSB 0x03 Content LSB 0xE8 CRC LSB 0x01 CRC MSB 0x19 Get altitude: Request: Slave Function Address Code Address MSB Address LSB CRC MSB 0x00 0x38 No. of registers LSB 0x01 CRC LSB 0x61 No. of registers MSB 0x00 0x0C 0x67 No. of Bytes 0x02 Content MSB 0x03 Content LSB 0xE8 CRC LSB 0x38 CRC MSB 0xF2 Read: Start Start Modbus Read Header 0xC3 0x03 Response: Slave Function Address Code 0x61 0x03 www.sensirion.com Description Altitude LSB 0xE8 CRC Stop 0xD4 Stop Stop CRC LSB 0x01 Version 1.0 – D1 – May 2020 CRC MSB 0x19 Set altitude to 1000m above sea level 16/21 1.4.9 Read firmware version Following command can be used to read out the firmware version of SCD30 module Protocol Address (hex) Description I2C 0xD100, no argument needed Protocol Function Code Address Modbus 3 0x0020 Returns the firmware version Full sequence examples: Protocol I2C Modbus Data to write/Read Write: Start Write Header Start 0xC2 Description Cmd MSB 0xD1 Cmd LSB 0x00 Stop Firmware version major 0x03 Firmware version minor 0x42 CRC Stop 0xF3 Stop No. of regist ers LSB 0x01 CRC LSB CRC MSB 0x8C 0x60 Stop Read: Start Read Header Start Request Slave Addre ss 0xC3 Functi on Code Addre ss MSB Addre ss LSB 0x61 0x03 0x00 0x20 Response: Slave Function Address Code 0x61 0x03 No. of Bytes 0x02 No. of regist ers MSB 0x00 Firmwa re version major 0x03 Firmwa re version minor 0x42 CRC LSB CRC MSB 0xB8 0x8D Firmware version: Major.Minor I2C: SDA is controlled by the I2C master in clear blocks and by the sensor in dark blocks. www.sensirion.com Version 1.0 – D1 – May 2020 17/21 1.4.10 Soft reset The SCD30 provides a soft reset mechanism that forces the sensor into the same state as after powering up without the need for removing the power-supply. It does so by restarting its system controller. After soft reset the sensor will reload all calibrated data. However, it is worth noting that the sensor reloads calibration data prior to every measurement by default. This includes previously set reference values from ASC or FRC as well as temperature offset values last setting. The sensor is able to receive the command at any time, regardless of its internal state. In order to start the soft reset procedure the following command should be sent. Protocol Command (hex) Argument I2C 0xD304 Protocol Function Code Address Data to write Modbus 6 0x0034 0x0001 Description Restarts the sensor Full sequence examples: Protocol I2C Data to write Start Start Write Header 0xC2 Request: Slave Address 0x61 Modbus Description Cmd MSB 0xD3 Cmd LSB 0x04 Stop Stop Function Code 0x06 Address MSB 0x00 Address LSB 0x34 Content MSB 0x00 Content LSB 0x01 CRC LSB 0x00 CRC MSB 0x64 Response: Slave Function Address Code 0x61 0x06 Address MSB 0x00 Address LSB 0x34 Content MSB 0x00 Content LSB 0x01 CRC LSB 0x00 CRC MSB 0x64 www.sensirion.com Version 1.0 – D1 – May 2020 Restarts the sensor 18/21 1.5 Signal conversion to physical values All data read from the sensor are float numbers in big-endian format2. Conversion of digital values Sx, (x = c(CO2), RH, T) to physical values and respective units are shown in the following table Physical quantity Conversion formula Units Range CO2 concentration c(CO2) c(CO2) = Sc(CO2) ppm 0 – 10000 Temperature T T = ST °C -40 – 125°C Relative humidity RH RH = SRH %RH 0 – 100 Table 4: Signal conversion table. Conversation of temperature to °F as well as relative humidity to absolute humidity and dew point temperature can be found in Sensirion’s online support center3 Sample pseudo code for converting data read from the sensor to physical value can be found below. // CO2 concentration float co2Concentration; unsigned int tempU32; // read data is in a buffer. In case of I2C CRCs have been removed // beforehand. Content of the buffer is the following unsigned char buffer[4]; buffer[0] buffer[1] buffer[2] buffer[3] = = = = 0x43; 0xDB; 0x8C; 0x2E; // // // // MMSB MLSB LMSB LLSB CO2 CO2 CO2 CO2 // cast 4 bytes to one unsigned 32 bit integer tempU32 = (unsigned int)((((unsigned int)buffer[0])
SEK-SCD30 价格&库存

很抱歉,暂时无法提供与“SEK-SCD30”相匹配的价格&库存,您可以联系我们找货

免费人工找货