RLX COMPONENTS s.r.o. , Electronic Components Distributor.
RLX COMPONENTS s.r.o. , Electronic Components Distributor.
Spectral 3 click (MIKROE-2961) AS7263 digital 6-channel spectrometer
Spectral 3 click is a multispectral sensing device, which uses the state-of-the-art sensor IC for a very accurate near-IR (NIR) sensing. The sensor on the Spectral 3 click provides multi-spectral sensing in the NIR wavelengths from approximately 610nm to 860nm with the full width at half maximum (FWHM) of 20nm. Spectral 3 click provides a direct reading of the six different channels with the 16bit precision, as well as the calibrated reading, that gives 32bit float values with an 8bit biased exponent and a 23bit fraction part, processed through the Spectral ID engine. The sensor also integrates two programmable LED channels with constant current drivers, useful for indication and for providing the backlight for the measured color object.
The onboard sensor has minimal drift over time and with temperature, which makes it very reliable, even after long periods of time. The integrated temperature sensor compensates for all the thermal influences from the environment. Equipped with such an advanced multispectral sensor IC, Spectral 3 click can be used in various spectrometry applications, used for the product authentication applications, spectral identification, banknote and document validation, chemical analysis, food, beverage safety, etc. Essentially, for any professional grade applications that require a high degree of NIR spectral sensing accuracy and consistency.
The multispectral sensor IC used on the Spectral 3 click is the AS7263, a 6 channel NIR Spectral_ID device with electronic shutter and smart Interface. This is a very advanced multispectral sensor, which incorporates a 6 photodiodes array element. Every photo element is filtered through the Gaussian filters, implemented through the nano-optic deposited interference filter technology, designed to provide ranges for 6 near-IR spectral channels: R = 610nm, S = 680nm, T = 730nm, U = 760nm, V = 810nm and W = 860nm, each with 20nm FWHM. The filter characteristics are tested and measured with the diffused white light. This technology ensures minimal drift of the readings and temperature stability. It should be noted that the filter accuracy will be affected by the angle of incidence, determined by an integrated aperture and the internal microlenses, which is ±20° for the AS7263 IC.
The measurements from the photo elements are digitized by the 16bit ADC converter and processed by the Spectral_ID engine. Besides the raw values of the six color elements, the engine calculates all the calibrated values available on this device and outputs them as 32bit float values. After the specified integration time (2.8ms min), those values are available in their respective registers and are accessible via the smart high-level UART interface driven by simple AT commands, or the I2C communication protocol bus. Even the temperature sensor can be accessed via its register. A complete list of all the available color coordinates and the registers which hold these values can be found in the AS7263 datasheet.
The sensor data is organized in two banks. The first bank contains readings from the S, T, U and V photodiodes, while the second bank contains readings from the R, T, U, and W photodiodes. Different modes allow readings to be made from each bank, as well as the combinations between these two banks. There is also a mode for one-shot reading when time-critical or triggered measurement needs to be made. The photodiode letter codes above, represent the channels of the respective wavelengths (Channel R, Channel S, Channel T…).
An interrupt can be triggered when the data is ready to be read by the host, depending on the selected bank mode. If the interrupt is enabled (INT = 1), the INT line is pulled to a LOW logic level and DATA_RDY bit of the control register is set to 1. The INT line is released when the control register is read. The DATA_RDY bit will be cleared whenever the measurement registers are read. The interrupt will be generated after one or more integrating cycles are completed, depending on the selected bank mode. The INT line of the AS7263 is routed to the mikroBUS™ INT pin and can be used to trigger an interrupt on the host MCU. More about bank reading modes and the interrupts can be found in the provided AS7263 datasheet.
The RESET line of the sensor is routed to the mikroBUS™ RST pin. If this line is pulled to a LOW level for more than 100ms, it will reset the device.
The sensor firmware is kept externally, on the auxiliary flash memory IC. The AT25SF041, an SPI serial flash memory is used for storing the firmware of the AS7263 sensor. The AT25SF041 IC communicates with the sensor via the SPI lines, internally routed on the Spectral 3 click.
UART and I2C lines of the AS7263 sensor are routed to the mikroBUS™ respective UART pins (RX/TX and SDA/SCL). To select which interface will be used to drive the sensor IC, three onboard SMD jumpers labeled as COM SEL need to be moved either to the left position (to enable UART), or to the right position (to enable I2C). It should be noted that all the SMD jumpers need to be moved at once - if some of them are set as UART and some as I2C, the communication might not be possible at all.
There are two integrated programmable LED drivers on the AS7263 sensor. The first LED constant current driver can be programmed up to 10mA and it can be used as the status indicator. It is also activated during the sensor firmware programming. The second LED driver is intended for driving of the light source for the measurement surface illumination. It can drive high brightness LED with up to 100mA. Both of these LED drivers are available through the communication interfaces.
Type | Optical |
Applications | Spectral 3 click can be used in various spectrometry applications, for the product authentication, spectral identification, banknote and document validation, chemical analysis, food, and beverage safety, etc |
On-board modules | AS7263, a digital 6-channel spectrometer for spectral identification in the near IR (NIR) light wavelength range, with electronic shutter and smart interface, from ams; AT25SF041, a 4Mb SPI serial flash from Adesto Technologies |
Key Features | Compact 6-channel near-IR spectrometry solution realized by the proprietary silicon interference filters, lifetime-calibrated sensing with no drift over time or temperature, on-chip data processing, auxiliary illumination LED drivers, smart UART interface |
Interface | I2C,UART |
Input Voltage | 3.3V |
Click board size | L (57.15 x 25.4 mm) |
This table shows how the pinout on Spectral 3 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | - | Power LED indicator |
LD2 | IND | - | Programmable constant current LED indicator |
LD3 | DRV | - | Programmable constant current LED illuminator |
JP1 | COM.SELL. | Left | Communication Interface Selection I2C/UART, left position UART, right position I2C |
JP2 | COM.SELL. | Left | Communication Interface Selection I2C/UART, left position UART, right position I2C |
JP3 | COM.SELL. | Left | Communication Interface Selection I2C/UART, left position UART, right position I2C |
We provide a library for Spectral 3 click on our Libstock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo application can run on all the main MikroElektronika development boards.
Library Description
The library carries a generic command parser adopted for AT command based modules. Generic parser.
Key functions:
spectral3_cmdSingle
- Sends the provided command to the module.spectral3_setHandler
- Handler assignation to the provided command.spectral3_modulePower
- Turns on the module.Examples Description
The demo application is composed of three sections:
void applicationTask()
{
spectral3_process();
spectral3_cmdSingle(&cmdData[0]);
spectral3_getData(&rspBuffer[0],&readData[0]);
IntToStr(readData[0],text);
mikrobus_logWrite( "-- R value:", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_LINE );
IntToStr(readData[1],text);
mikrobus_logWrite( "-- S value:", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_LINE );
IntToStr(readData[2],text);
mikrobus_logWrite( "-- T value:", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_LINE );
IntToStr(readData[3],text);
mikrobus_logWrite( "-- U value:", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_LINE );
IntToStr(readData[4],text);
mikrobus_logWrite( "-- V value:", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_LINE );
IntToStr(readData[5],text);
mikrobus_logWrite( "-- W value:", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_LINE );
mikrobus_logWrite( "---------------------", _LOG_LINE );
Delay_1sec();
}
Along with the demo, application timer initialization functions are provided. Note that timer is configured according to default development system and MCUs, changing the system or MCU may require an update of timer init and timer ISR functions.
The full application code, and ready to use projects can be found on our Libstock page.
mikroE Libraries used in the example:
Additional notes and information
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.