infineon XENSIVTM PAS CO2 Shield2Go User Guide
- June 8, 2024
- infineon
Table of Contents
infineon XENSIVTM PAS CO2 Shield2Go
Scope and purpose
This user manual serves as a starting guide and will focus on the setup and communication of the XENSIVTM PAS CO2 Shield2Go. Main focus will be the hardware along with a quick example of how to set up communication and start basic measurement with the provided software library using the XMC 2Go, the Arduino Due and the Arduino Uno in combination with the my IoT adapter.
Intended audience
Application engineers, system engineers and makers.
Order information
- Sales Name: SHIELD_PASCO2_SENSOR
- SP-No : SP005569590
- Opn : SHIELDPASCO2SENSORTOBO1
Introduction
- The XENSIVTM PAS CO2 sensor is a real carbon dioxide (CO2) sensor in an unprecedentedly small form factor. Designed on the basis of a unique photoacoustic spectroscopy (PAS) concept, the sensor saves more than 75 percent space compared to existing commercial real CO2 sensors. Its direct ppm readings, SMD capability and simple design allow for quicker and easier integration into customers’ systems in low- and high-volume applications alike.
- The photoacoustic principle can be traced back to over 100 years ago, first discovered by Alexander Graham Bell in 1880. The photoacoustic effect involves the formation of sound waves (pressure changes) following light absorption in a material sample. The sound signal is quantified by detectors such as microphones. In order to obtain this effect, the light intensity must vary. A PAS gas sensor is based on the principle that gases absorb light in a specific wavelength of the infrared spectrum. CO2 molecules, for example, have strong absorption in the λ = 4.2 μm wavelength.
- The XENSIVTM PAS CO2 sensor module integrates, on the same PCB, the PAS transducer, a microcontroller for signal processing, algorithms and a MOSFET. As depicted in the block diagram, the PAS transducer includes: i) a proprietary infrared emitter with blackbody radiation, which is periodically chopped by the MOSFET; ii) a narrowband optical filter passing the CO2 specific wavelength λ = 4.2 μm, significantly improving the sensor selectivity compared to other gases, including humidity; and iii) Infineon’s high-SNR (signal-to-noise ratio) MEMS microphone XENSIVTM IM69D130, detecting the pressure changes generated by the CO2 molecules. All the components are developed and designed in-house in accordance with Infineon’s high-quality guidelines. The sensor therefore benefits from Infineon’s illustrious record of accomplishments in MEMS design and acoustic capabilities, resulting in it being best-in-class for price/performance.
- The XENSIVTM PAS CO2 sensor is ideal for smart-home and building automation as well as various indoor air quality IoT devices such as air purifiers, thermostats, weather stations and personal assistants. The sensor enables end users to track, understand and improve the air quality surrounding them in a timely and highly energy-efficient manner.
Shield2Go platform
Infineon’s Shield2Go boards are equipped with one featured Infineon IC and
provide a standardized form factor and pin layout for fast orientation. All
boards come with solderless connectors allowing designers to stack the boards
instead of soldering them. This makes the Shield2Go boards simple, reusable
and flexible. In addition, each Shield2Go comes with a dedicated and free
software library for Arduino. The Shield2Go boards are compatible with Arduino
Uno with Infineon’s My IoT adapter. This combination of flexible hardware
components and accompanying software speeds up the prototyping process.
Engineers and makers can develop customized system solutions by freely
selecting and combining Shield2Go boards in multiple ways based on their needs
and use cases. Learn more about the Shield2Go approach and the available
portfolio on the dedicated product page.
https://www.infineon.com/cms/en/tools/landing/infineon-for-makers/shield-2go-
my-iot/
The My IoT adapter board is also part of the evaluation environment that acts
as the gateway to external hardware – such as the popular hardware platforms
like Arduino, Raspberry Pi or Espressif Wi-Fi Chips -, making it possible to
combine the Shield2Go boards into systems easily and flexibly. The adapter
offers multiple sockets which allow free and flexible combination of various
Shield2Go boards. Thereby, users do not have to care about pin allocation,
level shifting or system integration.
More and detailed information can be found on the dedicated My IoT product
page.
https://www.infineon.com/cms/en/product/evaluation-boards/my-iot-adapter/
XENSIVTM PAS CO2 Shield2Go
The XENSIVTM PAS CO2 Shield2Go includes every necessary component to fully
supply the XENSIVTM PAS CO2 with all the available features enabled and
optimized. The necessary stable 12 V supply for the IR emitter is generated on
board with a boost converter and also additionally an LDO for the 3.3 V supply
is integrated on board which reduces the required supplies to a single 5 V
supply. If user wants to use their own design it is possible to break apart
the head which only consists of the XENSIVTM PAS CO2 module with all the pins
routed out on castellated pads to easily mount the XENSIVTM PAS CO2 to the
other PCBs. PWM and INT functionality is also covered in both cases. Please
refer to the programming guide and register map for full detailed description
and examples.
https://www.infineon.com/dgdl/Infineon-
programming_guide_PAS_CO2_evaluationkit-
ApplicationNotesv02_00-EN.pdf?fileId=5546d4627600a6bc0176041139e77780
<https://www.infineon.com/dgdl/Infineon-Registermap_description_PASCO2_MA2
-ApplicationNotes-v02_00-EN.pdf?fileId=5546d4627600a6bc017604238d967785
Two communication interfaces are available. By default, the I2C interface is configured but with a simple rearrangement from the pull-up resistor R5 to pull-down resistor R6 can the UART interface be selected. To fully disable the I2C interface and the connected pull-up resistors on the SDA/Tx and SCL lines solder jumpers can be\ cut and disconnected. Figure 4 is showing the two positions the resistor can take depending on desired interface and also above the solder jumpers for isolating the pull-up resistors R8 and R9.
Pin | Symbol | Type | Function |
---|---|---|---|
1 | VDD5 | Power supply (5 V) | 5 V step up to 12 V power supply for the IR |
emitter
2| NC| NC| Not connected
3| NC| NC| Not connected
4| P11: SDA| Input/Output| I 2 C data pin (3.3 V domain)
5| P10: SCL| Input/Output| I 2 C clock pin (3.3 V domain)
6| GND| Ground| Ground
7| VDD3V3| Power supply (3.3 V)| 3.3 V digital power supply
8| P9: INT| Output| Interrupt output pin (3.3 V domain)
9| P8: PWM| Output| PWM output pin (3.3 V domain)
10| P7: TX| Input/Output| UART transmitter pin (3.3 V domain)
11| P6: RX| Input| UART receiver pin (3.3 V domain)
12| P5: RST| Input| Communication interface select input pin (3.3 V domain)1)
13| P4: GPIO1| Input| PWM disable input pin (3.3 V domain)2)
14| NC| NC| Not connected
15| NC| NC| Not connected
16| NC| NC| Not connected
17| NC| NC| Not connected
Pin descriptions of head part
Pin | Symbol | Type | Function |
---|---|---|---|
1 | VDD | Power supply (3.3 V) | 3.3 V digital power supply |
2 | RX | Input | UART receiver pin (3.3 V domain) |
3 | SCL | Input/Output | I 2 C clock pin (3.3 V domain) |
4 | TX_SDA | Input/Output | UART transmitter pin/I 2 C data pin (3.3 V |
domain)
5| PWM_DIS| Input| PWM disable input pin (3.3 V domain)2)
6| GND| Ground| Ground
7| INT| Output| Interrupt output pin (3.3 V domain)
8| PSEL| Input| Communication interface select input pin (3.3 V domain)1)
9| PWM| Output| PWM output pin (3.3 V domain)
10| VDD12| Power supply (12 V)| 12 V power supply for the IR emitter
- High level selects UART and low level selects I2C. It is recommended to the user to hard wire the pin to VDD or GND, depending on the wanted interface.
- If a communication interface is used by the application, it is recommended to hard-wire pin PWM_DIS to GND.
Note : In this case the device will start in continuous mode and not idle
mode which needs to be considered when changing the measurement period.
Note : PSEL and PWM_DIS are both by default connected to GND on board of
XENSIVTM PAS CO2 Shield2Go
Software and library integration
Setting up Arduino IDE
- Install Arduino IDE. If you are new to Arduino, please download the program and install it first. https://www.arduino.cc/en/software
- Install the library. In the Arduino IDE, go to the menu Sketch > Include library > Manage libraries. Type pas-co2-sensor and install the library.
- In case of using XMC boards as microcontroller, install board package. The official Arduino boards are already available in the Arduino software, but other third-party boards as the Infineon XMC MCU based need to be explicitly included. Follow the instructions in section 3 “Quick start with XMC 2Go” to add the XMC board family to Arduin
Library overview
The core library is C based and provides a platform-independent driver for the XENSIV™ PAS CO2 sensor. It provides full access to all features of the sensor. The driver consists of 4 files.
Source code | Description |
---|---|
xensiv_pasco2_ver.h | Contains the exact version of the XENSIVTM PAS CO2 sensor |
xensiv_pasco2_regs.h | Contains the register definitions for interacting with |
the XENSIVTM PAS CO2 sensor
xensiv_pasco2.h| Contains full functions for interacting with the XENSIVTM PAS
CO2 sensor
xensiv_pasco2.c| Contains full functions for interacting with the XENSIVTM PAS
CO2 sensor
Software and library integration
Full documentation and overview to the driver can be found on the GitHub.
https://github.com/Infineon/sensor-xensiv-pasco2
And the documentation with detail explanation for all macros, enumerations and
functions can be found here:
https://infineon.github.io/sensor-xensiv-
pasco2/html/group__group__board__libs.html
The Arduino library is using this core C driver with a C++ wrapper to follow
the ecosystem design pattern so that
Arduino users find in this library what they are used to.
Source code | Description |
---|---|
pas-co2-pal-ino.cpp | Target platform-specific implementation |
pas-co2-platf-ino.hpp | Default board definition and selection by conditional |
compiling
pas-co2-ino.hpp| Contains functions for interacting with the XENSIVTM PAS CO2
sensor adapted from the core driver
pas-co2-ino.cpp| Contains functions for interacting with the XENSIVTM PAS CO2
sensor adapted from the core driver
The Arduino library includes 6 examples which the user can modify and use as a reference
Example | Description |
---|---|
alarm-notification | Readout of the sensor CO2 concentration based on threshold |
crossing and synched via hardware interrupt
device-id| Readout of the sensor devices product and revision identifiers
single-shot-mode| Readout of the sensor CO2 concentration value using single
shot measurement mode
continuous-mode| Readout of the sensor CO2 concentration value using
continuous measurement mode
forced-compensation| Set CO2 reference offset using forced compensation
early-notification| Readout of the sensor CO2 concentration based on early
notification synched via hardware interrupt
Full documentation of the Arduino library can be found on the GitHub.
https://github.com/Infineon/arduino-pas-co2-sensor
Quick start with XMC 2Go
The XMC 2Go is designed to evaluate the capabilities of the XMC1100 Microcontroller and the powerful, free of charge tool chain DAVETM. Thanks to the standardized form factor of the XENSIVTM PAS CO2 Shield2Go it is directly compatible with the XMC 2Go and can be used easily used in combination by plugging the XENSIVTM PAS CO2 Shield2Go on top of the XMC 2Go. But one important thing to consider is that the 5 V supply for the XENSIVTM PAS CO2 Shield2Go is not provided by the XMC 2Go and therefore needs to be supplied externally.
Topic | Features |
---|---|
Processor | XMC1100 microcontroller (ARM® Cortex™-M0 based) in a 4 x 4 mm |
VQFN-24 package
Flash| 64 kB
RAM| 16 kB
Clock Generation| Internal Oscillator
Frequencies| 32 MHz CPU clock, 64 MHz Timer clock
Dimensions| 14.0 x 38.5 mm
Power Supply| from USB via Debug probe (J-Link) or 3.3V external power
Connectors| Two 8-pin header (pin pitch: 2.54 mm ≙0.1” / between rows: 10.16
mm ≙0.4”) Pin header fits to breadboard
Debugger| On-Board J-Link Debugger supports
· Serial Wire Debug (SWD, ARM Standard)
· Single Pin Debug (SPD)
· UART-to-USB bridge (virtual COM)
Peripherals| Mapped to pin header X1/X2:
· 2 Channel USIC (UART, SPI, I2C, I2S, LIN)
· 6 Channel Analog to Digital Converter (12-Bit resolution)
· External Interrupts (via ERU)
· 4 x 16-Bit Timer Others:
· Real Time Clock
· Random Number Generator
---|---
Others| 2 User LEDs @ P1.0 and P1.1
Quick start with XMC 2Go
More and detailed information can be found on the dedicated XMC 2Go product
page.
https://www.infineon.com/cms/de/product/evaluation-
boards/kit_xmc_2go_xmc1100_v1/
Step by step CO2 concentration readout example
Position | Symbol | Connection to the XMC 2Go |
---|---|---|
1 | VDD5 | Not available on XMC 2Go, 5 V power supply needs to be supplied |
externally
2| NC| Not connected
3| NC| Not connected
4| P11: SDA| I 2 C data pin (3.3 V domain)
5| P10: SCL| I 2 C clock pin (3.3 V domain)
6| GND| Ground
---|---|---
7| VDD3V3| 3.3 V power supply
8| P9: INT| Digital pin D9
9| P8: PWM| Not connected (in this case)
10| P7: TX| Not connected (in this case)
11| P6: RX| Not connected (in this case)
12| P5: RST (PSEL)| Not connected (in this case)
13| P4: GPIO1 (PWM_DIS)| Not connected (in this case)
14| NC| Not connected
15| NC| Not connected
16| NC| Not connected
17| NC| Not connected
Figure 8 is just to visualize the connection because the XENSIVTM PAS CO2 Shield2Go can be simply stacked on top of the XMC 2Go via pin headers as seen in figure 9.
In order to use and program the Infineon XMC microcontrollers in the Arduino IDE, SEGGER J-Link must be installed first. Please follow the link to SEGGER J-Link and install the J-Link Software and Documentation Pack for your operating system. If you have already installed ‘DAVETM – Development Platform for XMCTM Microcontrollers’, you can skip this step as the respective drivers/programs are already installed on your system. https://www.segger.com/downloads/jlink
Quick start with XMC 2Go
Afterwards Infineon’s microcontroller boards can be added to the Arduino IDE by pasting the following URL into the ‘Additional Boards Manager URLs’ input field under File > Preferences. <https://github.com/Infineon/Assets/releases/download/current/package_infineon_index.json
To install the boards, please navigate to Tools > Board > Boards Manager… and search for XMC. You will find options to install the board files for the microcontrollers. Click “Install” to add the boards to your Arduino IDE
Quick start with XMC 2Go
In the boards list Tools > Board, the XMC microcontroller boards are added and can be used from now on. After that make sure to select the respective board (XMC1100 XMC2Go) and COM port in the Tools dropdown menu.
Quick start with XMC 2Go
With everything ready, one of the library examples can now be opened, uploaded and run. The library examples provided can be opened in File > Examples > pas- co2-sensor.
Quick start with XMC 2Go
In this case the serial-periodic example is used. The user can configure the
I2C frequency, measurement period and reference pressure. The sensor supports
both standard-mode (100 kHz) and fast-mode (400 kHz). In case of communication
issues, it is recommended to lower the frequency to the standard-mode. For the
measurement period the default value is 10 s and it is recommended to not go
lower than that. In this example the pressure is set to 900 hPa. For correct
operation, the user shall ensure that the pressure value programmed is within
the specified pressure operating range of the device. This valid range of
operation is 750 hPa to 1150 hPa.
Pressure must be set between 750 hPa and 1150 hPa
- Remember to connect the 5 V pin prior to starting sensor
- Ensure J-Link is installed before compiling
Quick start with Arduino Due
Pinout of Arduino Due from https://content.arduino.cc/assets/Pinout- Due_latest.pdf
Position | Symbol | Connection to the Arduino Due |
---|---|---|
1 | VDD5 | 5 V power supply |
2 | NC | Not connected |
3 | NC | Not connected |
4 | P11: SDA | I 2 C data pin (3.3 V domain) |
5 | P10: SCL | I 2 C clock pin (3.3 V domain) |
6 | GND | Ground |
7 | VDD3V3 | 3.3 V power supply |
8 | P9: INT | Digital pin D9 |
9 | P8: PWM | Not connected (in this case) |
10 | P7: TX | Not connected (in this case) |
11 | P6: RX | Not connected (in this case) |
12 | P5: RST (PSEL) | Not connected (in this case) |
13 | P4: GPIO1 (PWM_DIS) | Not connected (in this case) |
14 | NC | Not connected |
15 | NC | Not connected |
16 | NC | Not connected |
17 | NC | Not connected |
Quick start with Arduino Due
Similar as with the XMC 2Go the Arduino Due board package needs to be installed first. As it is not a third-party board like the XMC 2Go, the right package “Arduino SAM Boards” (32-bit ARM® Cortex-M3) which is including the Arduino Due can be directly added with the board manager
Afterwards the exact same steps with selecting the right board/COM port and opening, uploading and running a library example can be done as instructed previously with the XMC 2Go
Quick start with Arduino Uno and My IoT adapter
As introduced in section 1.2 the XENSIVTM PAS CO2 Shield2Go in combination with the My IoT adapter can be simply stacked on top of the Arduino Uno via pin headers. Pin allocation, level shifting and system integration is already covered.
Pinout of Arduino Due from https://docs.arduino.cc/hardware/uno-rev3
Afterwards the exact same steps with selecting the right board/COM port and
opening, uploading and running a library example can be done as instructed
previously with the XMC 2Go.
In case of any technical questions please visit our community forum and have a
look if similar questions are already posted or create a new one.
https://community.infineon.com/t5/CO-sensor/bd-p/CO2Sensors
Appendix
Revision history
Document version | Date of release | Description of changes |
---|---|---|
V 1.0 | 01.04.2022 | Creation |
V 1.1 | 01.07.2022 | Update library overview and figures, added example using My |
IoT adapter
V1.2| 15.08.2022| Highlighting important notes
| |
Edition 2022-08-15 UM_2205_PL38_2206_121720 Published by Infineon Technologies
AG 81726 Munich, Germany
© 2022 Infineon Technologies AG.
All Rights Reserved.
Do you have a question about this document?
Email : erratum@infineon.com
IMPORTANT NOTICE
The information contained in this user manual is given as a hint for the
implementation of the product only and shall in no event be regarded as a
description or warranty of a certain functionality, condition or quality of
the product. Before implementation of the product, the recipient of this user
manual must verify any function and other technical information given herein
in the real application. Infineon Technologies hereby disclaims any and all
warranties and liabilities of any kind (including without limitation
warranties of noninfringement of intellectual property rights of any third
party) with respect to any and all information given in this user manual.
The data contained in this document is exclusively intended for technically
trained staff. It is the responsibility of customer’s technical departments to
evaluate the suitability of the product for the intended application and the
completeness of the product information given in this document with respect to
such application.
For further information on the product, technology, delivery terms and conditions and prices please contact your nearest Infineon Technologies office (www.infineon.com).
WARNINGS
Due to technical requirements products may contain dangerous substances. For information on the types in question please contact your nearest Infineon Technologies office.
Except as otherwise explicitly approved by Infineon Technologies in a written
document signed by authorized representatives of Infineon
Technologies, Infineon Technologies’ products may not be used in any
applications where a failure of the product or any consequences of the use
thereof can reasonably be expected to result in personal injury
Trademarks
All referenced product or service names and trademarks are the property of
their respective owners.
References
- Semiconductor & System Solutions - Infineon Technologies
- Semiconductor & System Solutions - Infineon Technologies
- CO₂ Sensor – Sensors Forum | Infineon Community
- UNO R3 | Arduino Documentation | Arduino Documentation
- GitHub - Infineon/arduino-pas-co2-sensor: Arduino library for Infineon's XENSIV™ Photoacoustic Spectroscopy (PAS) CO2 miniaturized sensor
- github.com/Infineon/Assets/releases/download/current/package_infineon_index.json
- GitHub - Infineon/sensor-xensiv-pasco2: This library provides APIs to interface with the PAS CO2 sensor that allows user to read the CO2 concentration.
- sensor-xensiv-pasco2
- Software | Arduino
- KIT_XMC_2GO_XMC1100_V1 - Infineon Technologies
- MY IOT ADAPTER - Infineon Technologies
- Infineon for Makers | Shield2Go & My IoT - Infineon Technologies
- Semiconductor & System Solutions - Infineon Technologies
- Semiconductor & System Solutions - Infineon Technologies
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>