This is the OPTIGA™ Authenticate NBT Host Library for ModusToolbox™, which supports the utilization of the OPTIGA™ Authenticate NBT in embedded ModusToolbox™ applications.
The OPTIGA™ Authenticate NBT Host Library for ModusToolbox™ is an adapted version of the generic OPTIGA™ Authenticate NBT Host Library for C and targets ModusToolbox™ applications that interact with the OPTIGA™ Authenticate NBT via the I2C interface. The ModusToolbox™ version bundles the OPTIGA™ Authenticate NBT Host Library for C for embedded devices alongside a platform integration for the PSOC™ 62S2 Wi-Fi Bluetooth® Prototyping Kit that is part of the OPTIGA™ Authenticate NBT Development Kit. As the integration is relying heavily on the ModusToolbox™ HAL layer, it can be easily ported to any other I2C-enabled microcontroller supported by ModusToolbox™.
The availability of the library via ModusToolbox™ vastly simplifies the steps to integrate the library into existing, or new ModusToolbox™ applications. Further, the library provides an easy-to-use abstraction of the I2C communication to the OPTIGA™ Authenticate NBT to speed-up the development of applications with the OPTIGA™ Authenticate NBT. The embedded example applications for the OPTIGA™ Authenticate NBT are provided in the form of ModusToolbox™ applications (see OPTIGA™ Authenticate NBT - GitHub overview) that build their application logic on top of this host library. Furthermore, this host library can be easily integrated in any ModusToolbox™-based application which targets to utilize an OPTIGA™ Authenticate NBT device.
Refer to the OPTIGA™ Authenticate NBT - GitHub overview repository for an overview of the available host software for the OPTIGA™ Authenticate NBT. The OPTIGA™ Authenticate NBT - product page contains a collection of all available documentation and support material for the OPTIGA™ Authenticate NBT.
- NFC-to-I2C bridge commands for device-to-device interactions via the OPTIGA™ Authenticate NBT
- C host library (bare-metal and RTOS support)
- Multiple example applications showing the usage of this host library in different use cases of the OPTIGA™ Authenticate NBT
This section contains information on how to integrate and utilize the ModusToolbox™ C host library in custom ModusToolbox™ applications.
Infineon offers two reference hardware bundles to simplify the evaluation of the OPTIGA™ Authenticate NBT, the OPTIGA™ Authenticate NBT Development Kit and the OPTIGA™ Authenticate NBT Development Shield.
Figure 1. OPTIGA™ Authenticate NBT Development Kit
The OPTIGA™ Authenticate NBT Development Kit is an assembly of hardware components which includes all required hardware components to develop and evaluate applications for the OPTIGA™ Authenticate NBT. The kit includes the OPTIGA™ Authenticate NBT Development Shield and, additionally, the PSOC™ 62S2 Wi-Fi Bluetooth® Prototyping Kit as host microcontroller board. For more information about the OPTIGA™ Authenticate NBT Development Kit refer to the user guide, available on its product page.
Figure 2. OPTIGA™ Authenticate NBT Development Shield (including Arduino-UNO compatible adapter)
The OPTIGA™ Authenticate NBT Development Shield is an assembly of hardware components which can be used in combination with a host microcontroller board to develop and evaluate applications for the OPTIGA™ Authenticate NBT. The shield consists of the OPTIGA™ Authenticate NBT device, an NFC antenna, and a pin-header to connect to any custom microcontroller via I2C (for embedded applications). Per default, the bundle comes with a detachable Arduino-UNO compatible adapter (see figure) to allow plug-and-play operation with various host microcontroller boards. For more information about the OPTIGA™ Authenticate NBT Development Shield, refer to the user guide, available on its product page.
Infineon provides multiple example applications for different use cases of the OPTIGA™ Authenticate NBT, refer to the OPTIGA™ Authenticate NBT - GitHub overview repository for an overview. The embedded example applications are provided as ModusToolbox™ code examples and utilize the OPTIGA™ Authenticate NBT Host Library for ModusToolbox™.
Use case | ModusToolbox™ example |
---|---|
Host parameterization via async. data transfer | NBT Asynchronous Data Transfer embedded application |
Host parameterization via pass-through | NBT Pass-Through embedded application |
Static connection handover | NBT Static Connection Handover embedded application |
The applications show the usage of the ModusToolbox™ C host library in combination with the OPTIGA™ Authenticate NBT Development Kit in simple examples of different use cases.
For the evaluation of the OPTIGA™ Authenticate NBT, other host boards than the OPTIGA™ Authenticate NBT Development Kit's default host board (PSOC™ 62S2 Wi-Fi Bluetooth® Prototyping Kit) may be desired. The easiest option to evaluate the OPTIGA™ Authenticate NBT in an alternative microcontroller setup is by utilizing the OPTIGA™ Authenticate NBT Development Shield and connecting it to the desired host microcontroller (board). See the OPTIGA™ Authenticate NBT Development Shield's product page for more information.
Table 1. Mapping of the OPTIGA™ Authenticate NBT Development Shield's pins to a an alternative microcontroller board
OPTIGA™ Authenticate NBT Development Shield | Alternative MCU board | Function |
---|---|---|
SDA | SDA-capable GPIO | I2C data |
SCL | SCL-capable GPIO | I2C clock |
IRQ | IRQ-capable GPIO | Interrupt |
3V3 | 3V3 | Power and pad supply (3V3) |
GND | GND | Common ground reference |
The host microcontroller's pins to connect to the OPTIGA™ Authenticate NBT Development Shield can be freely chosen. But as shown in the table, it has to be made sure that the desired pins of the alternative microcontroller support the required functionality.
If the desired microcontroller board is supported and available in ModusToolbox™, it is recommended to utilize this ecosystem and the included OPTIGA™ Authenticate NBT Host Library for ModusToolbox™ for the evaluation and development of applications. The host library for ModusToolbox™ includes the implementation of a platform-abstraction for the (PSOC™ 62S2 Wi-Fi Bluetooth® Prototyping Kit), based on the ModusToolbox™ HAL layer. This implementation can be utilized to reduce the effort of migrating the OPTIGA™ Authenticate NBT library/applications to any platform supported by ModusToolbox™.
The following steps are required after adding this host library to a custom ModusToolbox™, application. The application needs to configure and initialize its peripherals according to the connection with the OPTIGA™ Authenticate NBT. The resulting HAL abstraction objects (for example, I2C and IRQ) can then be passed to the respective initialization functions of the host library. After the initialization, the library implicitly utilizes the platform-specific hardware peripherals to communicate with the OPTIGA™ Authenticate NBT. While certain interfaces are implicitly handled within the library's communication stack (for example I2C), others need to be handled by the application itself (for example the IRQ).
Both, the I2C HAL object and the IRQ HAL object need to be defined and initialized in the application. A HAL I2C object is to be passed to the OPTIGA™ Authenticate NBT library during its initialization, since the library implicitly handles the I2C communication. Since the interrupt functionality is not handled by the library stack, the functionality to recognize an interrupt and react accordingly has to be implemented on application level.
Refer to the ModusToolbox™ example applications, their implementations and project structures for concrete examples of how to initialize the host library for ModusToolbox™ and utilize the library's included PAL implementation. Usage in custom projects provides further details about the required configuration to utilize the host library in custom ModusToolbox™ applications.
If the desired microcontroller platform is not supported by ModusToolbox™ it is recommended to use the generic OPTIGA™ Authenticate NBT Host Library for C. This library provides more flexibility for integrating into custom applications on arbitrary platforms. Since this library is the base of the OPTIGA™ Authenticate NBT Host Library for ModusToolbox™, the embedded example applications for ModusToolbox™ can also be utilized to support the application development with the generic OPTIGA™ Authenticate NBT Host Library for C.
To use the libraries in your own projects, you can use standard ModusToolbox™ functionality with minor configuration on top.
- Create a ModusToolbox™ project with the target board for the application.
- Add the following dependencies to the project using the ModusToolbox™ library manager:
- optiga-nbt-lib-c-mtb – OPTIGA™ Authenticate NBT: ModusToolbox™ C Library
- (OPTIONAL) retarget-io – Utility library to retarget STDIO messages to a UART port - only required if logging framework is used.
- (OPTIONAL) freertos – FreeRTOS for Infineon MCUs. The OPTIGA™ Authenticate NBT library will detect if an RTOS is being used and configure itself accordingly.
- (OPTIONAL) Add the FreeRTOSConfig.h file to your project based on the selected core.
- Update the Makefile configurations
- Define the required macro
T1PRIME_INTERFACE_I2C
The line should look like this:DEFINES+=T1PRIME_INTERFACE_I2C
- (OPTIONAL) Define the macro
CY_RETARGET_IO_CONVERT_LF_TO_CRLF
if using the logging framework. The line should look like this:DEFINES+=CY_RETARGET_IO_CONVERT_LF_TO_CRLF
- (OPTIONAL) Add the component definitions
FREERTOS
andRTOS_AWARE
. This is obviously only required if targeting FreeRTOS. The line should look like this:COMPONENTS+=FREERTOS RTOS_AWARE
- Define the required macro
- OPTIGA™ Authenticate NBT - product page
- OPTIGA™ Authenticate NBT - GitHub overview
- OPTIGA™ Authenticate NBT Development Kit - product page
- OPTIGA™ Authenticate NBT Development Shield - product page
- ModusToolbox™ Software Environment, Quick Start Guide, Documentation, and Videos
This project is licensed under the MIT License - see the LICENSE file for details.