The hardware used for evaluation of the CN0583 smoke detector module is composed of two parts — the EVAL-CN0583-SOM smoke detector system-on-module (SOM), and the EVAL-CN0583-CRR1 carrier board.
The EVAL-CN0583-SOM is a standalone module designed for development of smoke detection applications. The CN0583 SOM integrates an ADPD188BI smoke sensor, a MAX32660 microcontroller, and regulated DC power supplies needed for proper operation. The SOM only requires DC power and ground connections from a host system to run a smoke detection application, and will output an alarm signal via a GPIO pin.
The EVAL-CN0583-CRR1 is an easy to use carrier board developed for evaluation of the SOM and enable rapid prototyping. The CN0583 carrier board has an onboard debugger based on the MAX32625PICO that allows drag-and-drop programming of the SOM and USB-UART communication. An indicator LED and buzzer are also included on the board to allow users to implement a basic alarm function in their smoke detector application.
The SOM has 28 castellated “pins” divided into two 14-pin rows, and arranged in a dual in-line pattern. These pins are used to supply power and interface external circuitry with the SOM hardware, allowing access to the GPIO pins of the MAX32660 and ADPD188BI. The table below shows the default pinout of the SOM when programmed with the CN0583 demo application.
|Pin Number||Pin Name||Function|
|1||VBATT||Supply Voltage Input (2.2 V to 5.5 V)|
|6||GPIO0||GPIO pin used for optional timing signals. Connected to GPIO0 of the ADPD188BI.|
|7||GPIO1||GPIO pin used for optional timing signals. Connected to GPIO1 of the ADPD188BI.|
|8||LED_OUT||GPIO pin used to trigger an external visual indicator (e.g., LED). Connected to P0.4 of the MAX32660.|
|9||BUTTON_IN||GPIO pin used for reading user inputs from an external button. Connected to P0.2 of the MAX32660.|
|10||ALARM_OUT||GPIO pin used to trigger an external audio device (e.g., buzzer). Connected to P0.5 of the MAX32660.|
|13||VBATT||2.2 V to 5.5 V Supply.|
|15||SWDIO||Serial Wire Debug Data. Connected to P0.0 of the MAX32660.|
|16||SWDCLK||Serial Wire Debug Clock. Connected to P0.1 of the MAX32660.|
|18||RESET||Hardware Power Reset. Active-Low Input.|
|19||UART_TX||UART Tx Data. Connected to P0.6 of the MAX32660.|
|20||UART_RX||UART Rx Data. Connected to P0.7 of the MAX32660.|
|22||SCLK||SPI Clock. Connected to P0.12 of the MAX32660.|
|23||CS||SPI Chip Select. Connected to P0.13 of the MAX32660.|
|24||MISO||SPI Master Input, Slave Output. Connected to P0.10 of the MAX32660.|
|25||MOSI||SPI Master Output, Slave Input. Connected to P0.11 of the MAX32660.|
|27||VBATT||2.2 V to 5.5 V Supply.|
The actual functions of the digital pins are user-configurable, and are determined by how the MAX32660 GPIO pins are configured in the SOM firmware. When changing the pin assignments, check if the new pinout will conflict with the onboard circuity of the the carrier board.
Do not set P0.0 and P0.1 to any other function besides SWDIO and SWDCLK to avoid issues with reprogramming the SOM using the carrier board.
If this was accidentally done and there is a need to upload a new firmware, the flash memory of the MAX32660 must first be erased prior to reprogramming. To do this, install Maxim Microcontrollers SDK and Visual Studio Code, then perform the following steps:
There are 4 test points on the SOM that can be used to access the UART port of the MAX32660 with an external cable. This can be used to configure the smoke detector module during run time, or stream the measured data back to a serial terminal program.
|Pin Number||Pin Name||Function|
|1||1V8||Optional 1.8 V Supply. Alternative to VBATT.|
|3||UART_RX||UART Tx Data. Connected to P0.7 of the MAX32660.|
|4||UART_TX||UART Rx Data. Connected to P0.6 of the MAX32660.|
Input power to the SOM can be supplied either through the VBATT pins on the board castellation, or via pin 1 of JP1.
Refer to the table below on setting the JP1 and JP4 jumpers to select the power source.
|1:2||A/B||Input power is sourced from the carrier board via the VBATT pins. Default.|
|2:3||B||Input power is sourced from a UART cable via the P1 test points.|
Depending on your specific power and application requirements, it may be desirable to only supply power to one of the internal LEDs of the ADPD188BI. Refer to the table below on setting the JP2 and JP3 jumpers to enable the LED supply voltages.
|JP2||A||5V supply for the ADPD188BI blue LED is enabled. Default.|
|B||5V supply for the ADPD188BI blue LED is disabled.|
|JP3||A||3.3V supply for the ADPD188BI infrared LED. Default.|
|B||3.3V supply for the ADPD188BI infrared LED.|
The two rows of pogo pins (P1, P2) are spring-loaded connectors used to mount the SOM. The SOM is inserted between these connectors “one side at a time” by aligning one castellated edge with a row of carrier board pogo pins, and then pressing into them. Once one row of pins has been pushed in, the other side of the SOM can be lowered and similarly inserted. Once released, the SOM will be mechanically secured with each of the castellated pin electrically connected with the pogo pins.
|EXT. SUPPLY||External 2.2V to 5.5V power via the P3 header.|
|USB POWER||USB bus power via the P6 connector. Default.|
Only the input power source of the SOM can be switched using jumper JP1. The onboard programmer/debugger on the carrier board will always draw power from the USB connector.
There are two buttons on the CN0583 carrier board.
There are two LEDs on the CN0583 carrier board.
The buzzer on the carrier board can be used as an audible alarm for the smoke detector application loaded on the SOM. This is connected to P0.5 of the MAX32660 on the SOM via pin 5 of P1.
|JP2||ON||Enable micro-SD card functionality. Default.|
|OFF||Disable micro-SD card functionality.|
The debugger circuit used in the carrier board is based on the MAX32625PICO application platform. By default, the included MAX32625 is already programmed with a bootloader and DAPLINK application firmware so that it can be used immediately out of the box. The included bootloader can be enabled by holding the UPDATE button while powering on the board. If necessary however, the MAX32625 can be reprogrammed via the SWD signals available on a keyed 10-pin connector (P7).
|Pin Number||Pin Name||Function|
|1||VTREF||Logic-Level Reference Voltage for the SWD interface. Connected to VDDIO (1.8V) of the MAX32625.|
|2||SWDIO||SWD Data I/O . Connected to TMS/SWDIO of the MAX32625.|
|4||SWCLK||SWD Clock. Connected to TCK/SWDCLK of the MAX32625.|
|6||DBG_TX||UART Tx. Connected to P2.1 of the MAX32625.|
|8||DBG_RX||UART Rx. Connected to P2.0 of the MAX32625.|
|10||RST||Software Reset. Connected to SRSTN of the MAX32625.|
The following are required to implement the example CN0583 demo application:
A serial terminal is an application that runs on a PC or laptop that is used to display data and interact with a connected device (including many of the Circuits from the Lab reference designs). The device's UART peripheral is most often connected to a UART to USB interface IC, which appears as a traditional COM port on the host PC/ laptop. (Traditionally, the device's UART port would have been connected to an RS-232 line driver / receiver and connected to the PC via a 9-pin or 25-pin serial port.) There are many open-source applications, and while there are many choices, typically we use one of the following:
Before continuing, please make sure you download and install one of the above programs.
There are several parameters on all serial terminal programs that must be setup properly in order for the PC and the connected device to communicate. Below are the common settings that must match on both the PC side and the connected UART device.
In many instances there are other options that each of the different serial terminal applications provide, such as local line echo or local line editing, and features like this can be turned on or off depending on your preferences. This setup guide will not go over all the options of each tool, but just the minor features that will make it easier to read back data from the connected devices.
Example setup using PuTTY
Typing help (or simply h) after the initial calibration sequence will display the list of commands and their shortened versions.
|Function||Short Command||Verbose Command||Description||Example|
|Application Control||h||help||Display the help tooltip.|
|s <no>||stream <no>|| Put the device in GO mode and stream data from the device to the terminal.|
<no> = number of samples to stream to the terminal. If left unspecified, this is automatically assumed infinite when s is executed.
| To stream data indefinitely:
To stream only 5 samples:
|i||idle||Stop the stream and put the device in program mode.|
|ms <opt>||mode_set <opt>|| Set the output mode of the data.|
<opt> = 'code' to stream data in codes; 'ptr' to stream data in PTR.
| To set the output mode to PTR:
|os <odr>||odr_set <odr>|| Set the output data rate.|
<odr> = new data rate.
| To set the output data rate to 2.45 samples per second:
|og||odr_get||Display the current output data rate.|
|n <string>||note <string>|| Print user note on the console.|
<string> = text to be printed.
| To print 'Note 1' on the console:
n Note 1
|SD Card Control||fo <name>||file_open <name>|| Open a text file (*.txt) on the micro-SD card to store data. If the specified text file does not exist, it will be created and saved on the card automatically.|
<name> = name of the file to be opened.
| To open 'file1.txt' on the micro-SD card:
|fc||file_close||Save changes to the currently open text file and close it.|
|ADPD188BI Control||rr <addr>||reg_read <addr>|| Read a specified ADPD188BI register and display its current value on the terminal.|
«addr» = register address in hexadecimal.
| To read register 0x0A:
|rw <addr> <val>||reg_write <addr> <val>|| Write a specified value to a ADPD188BI register.|
«addr» = register address in hexadecimal.
«val» = value to be written to the register in hexadecimal.
| To write '0x12C' to register '0x0A':
rw a 12c
|rd||reg_dump||Reads and displays the values of all ADPD188BI registers.|
By default, the output mode and data rate are set to PTR and 0.163 (1/6) samples per second, respectively.
Below are examples of the CN0583 boards outputting data in PTR and raw codes and then exiting after several samples:
There are no-OS drivers provided for controlling the digital devices on the CN0583 boards.
Receive software update notifications, documentation updates, view the latest videos, and more when you register your hardware. Register to receive all these great benefits and more!
End of Document