MCUXpresso Config Tools Knowledge Base

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MCUXpresso Config Tools Knowledge Base

Labels

Discussions

Sort by:
We are pleased to announce that MCUXpresso Config Tools v13 are now available.
View full article
We are pleased to announce that MCUXpresso Config Tools v12.1 are now available. Downloads It’s a part of MCUXpresso IDE https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Revision History 12.1 PLU tool Integrated into the Mcuxpresso Config tools Reworked to cooperate with Peripherals tool PLU register init component Pins tool Deinit function now sets also the routing and direction to it's default state. It also tries to route the original peripheral signal to it's default pin Support of RT1041xxxB/RT1042xxxxB   Community MCUXpresso Config Tools   TIP: Check new Expansion Boards in MCUXpresso Config Tools training id:mcuxpresso-config
View full article
Description This tutorial shows how to create a touch-controlled LED light strip to place it over the kitchen counter, for example. For this tutorial, the LED strip is abstracted by the onboard LED instead of using MOSFET (with a proper MOSFET driver circuit) that would control a higher voltage LED strip. The touch control must be encoded due to the presence of only a single touch pad for multiple actions. Used components LPCXpresso845-BRK breakout board SDK 2.8.0 for LPC845 MCUXpresso 11.3 Used peripherals CAPT Capacitive touch (CAPT) control allows you to place the button under the product cover for keeping the design of the product consistent. You can cover touch pads with dielectric materials and hide them inside the product. The CAPT peripheral in YH mode works by counting cycles until the charge is transferred from the small charging capacitor to the larger measuring one.  A human finger or capacitive stylus causes partial grounding of the charge that causes an increase or decrease of the cycles needed to fully charge the measuring capacitor. CTIMER A counter triggers a toggle of the output pin’s logic level that creates a PWM signal on that pin. The peripheral increases the counter with each peripheral clock cycle and when the counter matches the required number the output logic level is toggled. MRT A counter triggers interrupts after a defined number of peripheral clock cycles.  This peripheral can be programmed to create an interrupt repetitively or only after a specified number of cycles. Figure 1 Block diagram Touch control Description As mentioned previously, the board has only a single touch pad, and there are 3 different actions in this tutorial that must be controlled by it. Turn on/off the PWM output by tapping and removing the finger/stylus from the pad. Increase the PWM duty cycle by keeping the finger/stylus over the touch pad for a long time, keep touched for more increase. Decrease the PWM duty cycle by taping the touch pad, removing the finger, and taping again with keeping the finger/stylus over the touch pad, keep touched for more decrease. The touch pad is periodically measured for touch or no touch events. Such events can store the state of the touch pad in a ring buffer. The ring buffer represents the history of the touches over a short time and can be analyzed for a long uninterrupted touch or double tap. Figure 2 Encoding state diagram Steps IDE project Create a project and select the lpc845 breakout from your installed SDK version. Figure 3 Creating a project in MCUXpresso IDE In the project setup wizard, click the Drivers tab in the Components section in the lower half of the wizard. Select CAPT, CTIMER, and MRT in this table. Figure 4 Adding required peripheral drivers to the project To make active the newly created project (if it is not active yet), select it and open the Pins tool either in the context menu or by clicking the Config tools button. Figure 5 The Config tools button Pin routing Open the Pins tool and create a functional group for our application. Set it to be called by the default initialization function and set other functional groups not to be called by the initialization function. Figure 6  Properties of Pins tool functional groups Figure 7 Routing details Steps: Route CTIMER channel 0 to the pin that is connected to the onboard LED. Route X0 signal of CAPT to one side of the touch pad. Route signals YL and YH to the other side of the touch pad. Enable the invert function of the CTIMER channel 0 signal (see notes). Set the mode of all configured CAPT and CTIMER pins to Inactive (see notes). NOTE: The LED is connected to the MCU in a way that 90 % of the duty cycle would create only 10 % of the on-time.  To achieve the expected behavior, invert the signal. The CAPT peripheral requires the mode of the pins to be inactive to work properly. Activating a pull-up, pull-down resistor, or any other integrated circuit causes false measurements, and touch control does not work or causes false touch events. Clock configuration Open the functional group's dialog and select BOARD_BootClockFRO30M as the initialized functional group. Figure 8 Properties of Clocks tool functional groups Steps: Set SYSAHBCLKDIV to /3 Activate the output of CAPTCLKSEL and choose fro as the input clock Figure 9 System clock divider setting Figure 10 Selection of clock source for CAPT peripheral NOTE: The system clock is slowed down to 10 MHz because it is used for the MRT peripheral as a source and the period with 30 MHz is too short for the purposes of this tutorial. Peripheral configuration MRT This peripheral is used to delay the execution of events. Steps: Add the MRT component (use the version that is part of your SDK version). Add 1 channel. Set Channel ID to Channel_wait. Set Time interval input to 400 ms. Set Start timer to false by unchecking the checkbox. Enable Interrupt request of the channel by checking the checkbox. Enable Interrupt vector by checking the checkbox. Copy the handler template by clicking the button. Paste the handler template to the application code. Figure 11 Configuration of the MRT peripheral NOTE: For this application, the delay must be 400 ms. You can achieve it only by using a 10 MHz clock or by creating a counter in memory that is increased every time the interrupt handler is executed. Only when the counter has the required value, the delayed event executes, and the counter is reset. You need a counter because the MRT register, which has only 24 bits and overflows before reaching the number of ticks calculated from 400 ms. CTIMER For the PWM output, configure the CTIMER peripheral in the following way. Figure 12 Configuration of the CTIMER peripheral Steps: Add the CTIMER component (use the version that is part of your SDK version). Select the PWM mode of the CTIMER peripheral. Set the prescaler to 1 (see note for explanation). Check the checkbox Start timer in the initialization code if it is not checked already. Set the PWM frequency to 100 Hz (see note for explanation). Add 1 channel if it is not present already. Set the PWM duty of the channel to half of the value that is displayed below the PWM frequency setting notes: NOTE: The prescaler set to 1 (no prescaling) allows the most precise duty cycle (for example, if the resolution must be more than one percent).  The frequency of the output must be in the range between not noticing the flickering of the LED and potential unintentional overheating of the MOSFET that could be connected to the output due to high frequency. The frequency of 100 Hz is selected because unless the board is moving the LED looks dim and does not flicker, and the potential MOSFET does not overheat. The duty cycle is set in ticks, and at runtime is computed as a percentage. CAPT Steps: Create an instance of the CAPT component (use the version that is part of your SDK version). Set the Function clock divider setting to 15 to obtain a 2 MHz clock. Enable pin 0 by checking the checkbox in the X pins selection table. Select the value User calibration function (default name) in the setting Default function name. Copy the name and create the function in the application code. Select Counter higher than threshold could in the setting Touch activation. Set Time out count to the highest available value. Select Don’t wait for Measurement delay. Set Reset delay to the highest available value. Set Poll delay to 100 ms. Check the checkbox Initialize poll mode. Select Continuous in the setting Polling mode. Figure 13 Configuration of the CAPT peripheral NOTE: The CAPT peripheral requires the input clock to be maximally 4 MHz. Therefore, a frequency of 2 MHz was chosen as it was easily achievable and easy to calculate the resulting period. On the breakout board, only signal 0 is routed to the touch pad, and other signals can be routed to external connectors on the board. For the CAPT to function properly, calibrate touch and no touch events to obtain the number of cycles required to transfer the charge. Enable the usage of the calibration method and either use the default name or provide your name of the function. The other method is to use a constant that was measured during development. However, keep in mind that the measured value might differ when the board is inside the final product and covered by a layer of material. A touch event can happen either when the counter is higher or lower than the threshold. The selection depends on the final product design. A value higher than the threshold option was used in this tutorial because the finder/stylus grounds a part of the charge that is transferred and causes a higher cycles count required to fully charge the measured capacitor. The timeout count is a counter of the number of ticks when a timeout interrupt is created. It is not used in this example, so set the highest value to avoid timeout instead of touch or no touch events. The measurement delay setting represents the number of ticks until the measuring capacitor is sampled. When the YH method is used, it must be measured immediately. The reset delay is a wait after a touch or no touch event and waiting discharges the capacitors before the next measurement cycle. The poll delay is a delay between repetitive measurement cycles and should be high since the physical movement of the finger/stylus is slow relative to the speed of the MCU and unnecessary measurements can be avoided. Update code The changes you made must be written on the disk before using them in the application code. Open the Update code dialog and confirm the changes. Figure 14 Update code action on the main panel Figure 15 Update code dialog Application code For the convenience of working with the code, create the following defines: #define WAIT_MS 400U // How long to wait before making decisions #define POLL_WAIT_MS 100U // How long it takes before next CAPT measurement #define TOUCH_DATA_SIZE 32U // Size of ring buffer Create the ring buffer, index of the current position, and functions that fill and analyze it. The ring buffer must hold 2-3 seconds of data and since the poll delay of the CAPT is 100 ms then 32 is sufficient. Functions for analysis scan the ring buffer and let the application know whether a double tap was performed, for how many measurements the touch pad was held, and how many measurements ago the touch pad was touched. Create functions for storing and clearing data in the ring buffer. unsigned int g_touchDataIndex = 0; bool g_touchData[TOUCH_DATA_SIZE] = {false}; /**  * Checks whether double tap was performed  */ bool wasDoubleTap() {        bool untouched = false;        for (int i = 0; i < TOUCH_DATA_SIZE; i++) {               if (!g_touchData[(g_touchDataIndex - i) % TOUCH_DATA_SIZE]) {                      untouched = true;               } else if (untouched) {                      return true;               }        }        return false; } /**  * Returns number of data writes that represent continuous touch.  */ int getContinuousTouchCount() {        int count = 0;        for (int i = 0; i < TOUCH_DATA_SIZE; i++) {               if (g_touchData[(g_touchDataIndex - i) % TOUCH_DATA_SIZE]) {                      count++;               } else {                      return count;               }        }        return -1; } /**  * Returns number that represents count of data writes until tap is found in history.  * Returns -1 in case nothing is found.  */ int getPreviousTouch() {        for (int i = 0; i < TOUCH_DATA_SIZE; i++) {               if (g_touchData[(g_touchDataIndex - i) % TOUCH_DATA_SIZE]) {                      return i;               }        }        return -1; } /**  * Clears touch data in ring buffer  */ void clearTouchData() {        for (int i = 0; i < TOUCH_DATA_SIZE; i++) {               g_touchData[(g_touchDataIndex - i) % TOUCH_DATA_SIZE] = false;        } } /**  * Stores touch data in ring buffer  */ void storeTouchData(bool data) {        ++g_touchDataIndex;        g_touchDataIndex = g_touchDataIndex % TOUCH_DATA_SIZE;        g_touchData[g_touchDataIndex] = data; } Create storage for the current state of the PWM signal and the state machine. Create a function to change the PWM output of the CTIMER channel.  The function must check the wanted duty cycle to be in a reasonable range. int currentPWMDuty = 50; bool PWMOutputEnabled = true; enum STATE {        IDLE = 0,        WAITING_FOR_TIMER = 100,        TOGGLE = 200,        INCREASE = 300,        DECREASE = 400 }; enum STATE state = IDLE; /**  * Sets PWM output according to currently wanted duty cycle if output is enabled  */ void setPWMOutput() {        if (currentPWMDuty < 5) {               currentPWMDuty = 5;        }        if (currentPWMDuty > 100) {               currentPWMDuty = 100;        }        int ticks = PWMOutputEnabled ? ((CTIMER0_PWM_PERIOD / 100) * currentPWMDuty) : 0;        CTIMER_SetupPwmPeriod(CTIMER0_PERIPHERAL, CTIMER0_PWM_0_CHANNEL, CTIMER0_PWM_PERIOD, ticks, false); } Calibration of the CAPT peripheral must be done in the CAPT_doCalibration function as it was set in the Peripherals tool. /*  * @brief   Calibration of the CAPT peripheral. Returns number of charge cycles in not activated state  */ uint32_t CAPT_doCalibration(CAPT_Type *base) {        // Here can be placed code that uses one time polling multiple times and the results would be averaged        // or a constant returned        return 70; } When a 400 ms delay passes,  the MRT peripheral runs this interrupt and after clearing the status flag the logic follows. After obtaining information on whether the touch pad is touched and for how many measurement cycles it is not held, the decision of what state follows is made. When the touch pad is not touched and it is more than or equal to 4 (400 ms/100 ms) measurement cycles, the PWM output will be disabled. If it is touched, the decision whether the INCREASE or DECREASE state should follow is made. To increase the PWM duty cycle, the touch pad must be currently held touched, it must be held for more than or equal to 4 (400 ms/100 ms) measurement cycles and the PWM output must be enabled. To decrease the PWM duty cycle, the touch pad must be held,  double-tap (not holding for at least one measurement cycle) is done and output is enabled. In all other cases, the state falls back to IDLE since it is not a valid encoding of the command. /* MRT0_IRQn interrupt handler */ void MRT0_IRQHANDLER(void) {   /* Add for ARM errata 838869, affects Cortex-M4, Cortex-M4F      Store immediate overlapping exception return operation might vector to incorrect interrupt. */   #if defined __CORTEX_M && (__CORTEX_M == 4U)     __DSB();   #endif        uint32_t mrtWaitStatus = MRT_GetStatusFlags(MRT0, MRT0_CHANNEL_WAIT);        MRT_ClearStatusFlags(MRT0, MRT0_CHANNEL_WAIT, mrtWaitStatus);     if (mrtWaitStatus != 0) {               int previousTouch = getPreviousTouch();               bool currentlyTouched = g_touchData[g_touchDataIndex];               if (!currentlyTouched && previousTouch >= (WAIT_MS / POLL_WAIT_MS) - 1) { // Tap, currently not pressed and no taps after the initial one                      PWMOutputEnabled = !PWMOutputEnabled;                      setPWMOutput();                      clearTouchData();                      state = IDLE;           } else if (currentlyTouched && getContinuousTouchCount() >= (WAIT_MS / POLL_WAIT_MS) && PWMOutputEnabled) { // Tap, currently pressed and touch pad held until now                      state = INCREASE;        } else if (currentlyTouched && wasDoubleTap() && PWMOutputEnabled) { // Tap, currently pressed and double tap was performed                           state = DECREASE;           } else {                           state = IDLE; // Error -> reset           }     } } The interrupt from CAPT is performed every 100 ms and the data with interrupt status must be read and status cleared. When the touch pad is touched, the current state is checked and one of the following actions happens: When the current state is IDLE, a 400 ms delay is started and the state changes to WAITING_FOR_TIMER. When the INCREASE state is active, the PWM duty cycle is increased every 100 ms for as long as the touch pad is touched. The DECREASE state decreases the PWM duty cycle every 100 ms for as long as the touch pad is touched. When the touch pad is not touched, the INCREASE or DECREASE state is changed to IDLE state and ring buffer is cleared. In other states nothing happens. /* CMP_CAPT_IRQn interrupt handler */ void CAPT_IRQHANDLER(void) {   /* Add for ARM errata 838869, affects Cortex-M4, Cortex-M4F      Store immediate overlapping exception return operation might vector to incorrect interrupt. */   #if defined __CORTEX_M && (__CORTEX_M == 4U)     __DSB();   #endif     uint32_t mask;     capt_touch_data_t g_data;        CAPT_GetTouchData(CAPT, &g_data);        mask = CAPT_GetInterruptStatusFlags(CAPT);        CAPT_ClearInterruptStatusFlags(CAPT, mask);        if (mask & kCAPT_InterruptOfYesTouchEnable && g_data.yesTouch)        {               PRINTF("Touch\n");               storeTouchData(true);               switch(state) {                      case IDLE: {                            MRT_StartTimer(MRT0, MRT0_CHANNEL_WAIT, MRT0_CHANNEL_WAIT_TICKS);                            state = WAITING_FOR_TIMER;                            break;                      }                      case INCREASE: {                            currentPWMDuty += 5;                            setPWMOutput();                            break;                      }                      case DECREASE: {                            currentPWMDuty -= 5;                            setPWMOutput();                            break;                      }                      default: {                            // Do not react - unexpected state                      }               }        }        if (mask & kCAPT_InterruptOfNoTouchEnable) {               PRINTF("No touch\n");               storeTouchData(false);               switch(state) {                      case INCREASE: {                            state = IDLE;                            clearTouchData();                            break;                      }                      case DECREASE: {                            state = IDLE;                            clearTouchData();                            break;                      }                      default: {                            // Do not react - unexpected state                      }               }        } } /*  * @brief   Application entry point.  */ int main(void) {     /* Init board hardware. */     BOARD_InitBootPins();     BOARD_InitBootClocks();     BOARD_InitBootPeripherals(); #ifndef BOARD_INIT_DEBUG_CONSOLE_PERIPHERAL     /* Init FSL debug console. */     BOARD_InitDebugConsole(); #endif     while(1) {           __asm__("nop");     }     return 0; } Summary Now you can compile the application and upload it to the board. You do not require additional steps to make the application work.
View full article
This community and forum is for the growing set of Kinetis Expert System Conguration Tools. The tools are acessible online on Welcome to Kinetis Expert | Kinetis Expert and include right now the 'Build an SDK' and 'Power Estimation' tools: So if you have any questions or need any further advice and information about the Kinetis Expert System Configuration Tools, this is the community for it!
View full article
We are pleased to announce that MCUXpresso Config Tools v13.1 are now available. Downloads It’s a part of MCUXpresso IDE https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Release Notes Config Tools v13.1 Pins tool Fix incomplete routing of deinit functions Update of data for Config Tools v13 and v13.1 General Update of MC56F80xxx support to the latest processor data Fix of missing MIMXRT1170-EVKB board configuration Pins tool Bug fix of incorrect labels of PMOD expansion header in Pins tool Peripherals tool Register init. components Bug fix of PLU Register init. component on LPC550x/S0x processors Bug fix of Peripherals tool FlexIO RIC SDK init. components Support of fcb Peripherals tool component for RT104x and RT116x processors Memory validation tool Update of DDR tool data for i.MX8M and i.MX93 processors Update of Memory validation tool data for Layerscape and i.MX RT processors Community MCUXpresso Config Tools  
View full article
The following article has quick steps and videos how to get started with Kinetis Expert SDK and Design Studio:   https://community.freescale.com/docs/DOC-329662   Enjoy!
View full article
If you are using LPCSxx microcontrollers and the TEE tool for configuration of resources isolation, you may encounter a tool warning or the chip’s behaviour differs from the expectations. This article may help you in configuring the Private Peripheral Bus (PPB) area properly. The 0xE000_0000 – 0xFFFF_FFFF area has specific behaviour in the TrustZone. The area’s security can be configured in the SAU, however, multiple regions are either exempt from security checking, or are fixed as Secure. Especially: 0xE000_0000 - 0xE000_2FFF – exempt from security violation checks 0xE000_E000 - 0xE000_EFFF – exempt from security violation checks 0xE002_E000 - 0xE002_EFFF – exempt from security violation checks 0xE004_0000 - 0xE004_1FFF – exempt from security violation checks 0xE00F_F000 - 0xE00F_FFFF – exempt from security violation checks 0xE000_0000 - 0xEFFF_FFFF – exempt from security violation checks for instruction fetch 0xF000_0000 – 0xFFFF_FFFF – fixed as Secure Therefore if you configure any address range mentioned above as a Non-Secure region in the SAU, the TEE tool generates a warning.
View full article
This tip will show you how to use MCUXpresso Config Tools V4.1 generate codes for KV5x with 50MHz external reference clock. The fec_extal in datasheet shows that the maximum frequency of Input clock frequency (external clock mode) is 48MHz. It will lead code generation failed when you configure 50MHz as the external reference clock in latest MCUXpresso Config Tools V4.1. (Code generation in case of warnings shouldn't be blocked. It will be fixed for MCUXpresso Config Tools V5.) Some customer had met this issue when using TWR-KV58F220M board, this board connect a 50MHz_OSC to EXTAL0. My colleague have prepared a hot fix for this issue (for all MKV5x MCUs). After install the attached hot_fix_MCUXpresso_Config_Tools_V4_1_data_MKV58_MCUCM-3936, customer is able to overcome it.(Notice: The ProgramData folder was hidden by default.)
View full article
We are pleased to announce that MCUXpresso Config Tools v12.1 are now available. Downloads It’s a part of MCUXpresso IDE https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Revision History 12.1 PLU tool Integrated into the Mcuxpresso Config tools Reworked to cooperate with Peripherals tool PLU register init component Pins tool Deinit function now sets also the routing and direction to it's default state. It also tries to route the original peripheral signal to it's default pin Support of RT1041xxxB/RT1042xxxxB   Community MCUXpresso Config Tools id:mcuxpresso-config
View full article
The following article describes how to configure code generation for the clock gates and how to perform a full initialization with the Pins Tool: https://mcuoneclipse.com/2016/07/19/nxp-pins-tool-clock-gates-and-controlling-the-bits/  
View full article
We are pleased to announce that MCUXpresso Config Tools v15.0 are now available. Downloads It’s a part of MCUXpresso IDE https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Release Notes Full details on the release (features, known issues...) Config Tools v15.0 • The product is based on Eclipse 2023-06. • Support for SDK 2.15 in the Project cloner and Detect toolchain project is added. TEE – Setting a security level for a special three-state model is improved. – Validation for the uniqueness of DID, match and mask input for XRDC2 is added. – Default global access templates are now created if needed by checkers and missing within MEX. PLU – An error is now reported when a Verilog code contains a signal that was not declared. – A capability to select one input for some logic gates for which it does not make sense is removed. – A button to erase the whole diagram is added. – Support to keep intermediate files generated by an external program for debugging purposes is added. – The behavior of selecting the LUT type Custom to keep the previous logic table and added buttons to set it to zeros or ones is changed. – The status bar to the schematic view is added. Peripherals – A bug with the documentation view in a version integrated to the MCUXpresso IDE is fixed. – The mechanism that handles opening views that were opened in the previous session to work with identification of the configuration instead of its location on disk is updated. – A new optional experimental loading mechanism for components is prepared. This mechanism will be used by default in the next release. Pins – Validation to ensure that elements can be configured by the selected core is added.– Rows are sorted in the Peripheral Signals routing dialog. – The connected pins column in External User Signals always shows the pin's full name. – The missing scroll bar in the External User Signals view is fixed.   Clocks – Support for multicore code generation is added. – Global configuration elements now support tree structure and can be categorized. – Fractional PLL now supports a custom range and negative numerator. – Scrolling in the clock diagram by pressing the mouse wheel (drag and drop) is supported.   DCD – An issue with the code generation that stopped working after drag and drop of a group is fixed.   MCUXpresso IDE integration – Support for multiple MEX files within one project (toolbar Project combo + autoload MEX on IDE startup) is improved.   Community MCUXpresso Config Tools  
View full article
We are pleased to announce that MCUXpresso Config Tools v24.12 are now available. Downloads It’s a part of MCUXpresso IDE https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Release Notes Full details on the release (features, known issues...) Version 24.12 • The creation (cloning) of the projects based on the SDK examples will no longer be supported in the future releases of the MCUXpresso Config Tools. Please start using the  MCUXpresso SDK CMake, Kconfig-based build, and configuration system to create MCUXpresso SDK standalone projects for the IAR Embedded Workbench, Keil uVision, GCC ARM Embedded, and/or CodeWarrior Development Studio toolchains. For detailed documentation, see the SDK Build And Configuration System documentation. • A new Radio option to create configuration for Zephyr in the New Configuration Wizard is added. • Clocks – Modular clocks initialization is supported. – Initialization mode is visible in the Clocks diagram and Details view. – A new Modular Initialization view for the configuration of initialization mode and core selection of the module is created. • TEE – The configuration and overview of areas with the same address and different address space is supported. – The Code generation can be toggled for global options groups. – The process for releasing ELE crypto before setting up TRDC is supported. – Support for MCUs with multiple SAUs, MPUs, NVIC triggers and interrupts (per core) is added. – A new tab to Security Access Configuration view for AXBS cross-bar switch configuration is added. – Flash Logical Window (FLW) configuration is supported. – TRDC Memory region checkers (MRC) restrictive overlap handling is supported. • Pins – The Miscellaneous tab for various Pins configuration options is added. – Filtering for routing dialogs is added. – Import of DTSI files is added.
View full article
We are pleased to announce that MCUXpresso Config Tools v16.0 are now available. Downloads It’s a part of MCUXpresso IDE https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Release Notes Full details on the release (features, known issues...) The product is based on Eclipse 2023-12 - A new command-line argument ( -UpdateCode) has been added. It performs the same action as the Update Code button in the user interface. It must be used with -HeadlessTool. - The command-line argument -CreateFromProject is improved, it no longer requires the -HeadlessTool argument and opens the toolchain project in the UI. - The command-line arguments -CreateFromProject and -ImportProject are improved. They no longer allow setting the toolchain project file path (for example, *.cbuild-gen-idx.yml, *.uvprojx, *.ewp, CMakeLists.txt) directly. TEE – The query for pins labels and routed signals is updated to work on the new NPI. – Global tool options now support enum, boolean, and string with the ability to define the regex validator. – Access templates are now greyed out when the global ones are used. – The legacy source names option is disabled when ROM output is selected. – MPU tabs are now sorted by top domain index and then alphabetically. – The correct representation of TRDC domains is implemented by removing mix domains. – Peripheral areas are now correctly stored within the correct tab. – The side-channel attack warning is added to the RAM security settings. – The Trigger tab for configuration of the ITRC register RW fields is added. PLU – Minor bug fixes Peripherals – Support for unique identification of configuration components is finished. – Support for settings with indentation, but no label content is added. Pins – Simultaneous routing detection (routing of one signal may result in multiple signals being routed based on the same register settings) is added. In that case, such signals are offered to be added into the configuration. – Support of internal pins that are not available on the package is added. Clocks – Creation of the clock model has been accelerated. Open-CMSIS generator – The open-CMSIS solution is supported as a new toolchain. – The generation of the .cgen.yml file is supported. – The generation of new source files inside the project output folder is supported. – The location of the MEX file inside the project output folder is supported.
View full article
We are pleased to announce that MCUXpresso Config Tools v16.1 are now available. Downloads It’s a part of MCUXpresso IDE https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Release Notes Full details on the release (features, known issues...) • Fixed missing information about the toolchain project in the Overview dialog shown for the first time. – The Update code dialog opened from the Overview dialog shows the *.cgen.yml file. • Incorrect detection of the selected toolchain file after the command-line execution is fixed. The problem occurs for the folders with multiple different toolchain project files. • Creating a configuration from the toolchain project that does not contain the tool configuration in the MEX file or in the tools source file is allowed. • Open-CMSIS generator support – The usage of the path information from *.cbuild-gen-idx.yml for generation of the *.cgen.yml file is supported. • Clocks – Disabling enabled clock outputs that have settings with shared bit-fields after reopening the configuration is fixed. – Clock slices with multiple outputs are supported. • TEE – An incorrect number of the MPU region attributes shown for the configuration of RT1180 is fixed. – An incorrect domain visibility and tab names when DAC is disabled on RT1180 is fixed.
View full article
We are pleased to announce that MCUXpresso Config Tools v15.1 are now available. Downloads It’s a part of MCUXpresso IDE https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Release Notes Full details on the release (features, known issues...) Config Tools v15.1 • On MacOS aarch64, the missing Overview is fixed. • TEE – Pin tables now only contain items for specific configuration (mask/security/interrupts).   Community MCUXpresso Config Tools      
View full article
We are pleased to announce that MCUXpresso Config Tools v25.03 are now available. Downloads It’s a part of MCUXpresso IDE (Version 25.03 can be updated from IDE) https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Release Notes Full details on the release (features, known issues...) Version 25.03 • Output Paths Overrides for toolchain project is fixed. • "Filter source files" search bar with case-sensitive checkbox is removed. • TEE – Sort for Peripheral Configurations table is added.
View full article
We are pleased to announce that MCUXpresso Config Tools v25.06 are now available. Downloads It’s a part of MCUXpresso IDE https://www.nxp.com/mcuxpresso/ide/download In order to use it with other toolchains, download the installer for all platforms, please login to our download site via:  https://www.nxp.com/mcuxpresso/config Please refer to MCUXpresso Config Tools documentation for installation and quick start guides. For online version, login into MCUXpresso site: MCUXpresso WEB Release Notes Full details on the release (features, known issues...) • DCD – The pattern for identifying the tool source files is improved. • Clocks – Support for read-only element settings is added. – Filtering all settings of Initialization modules in the Details view is supported. • Peripherals – The wizard to export the Registers view data in the CSV format is added. – Performance of the tool is improved. • An ability to export/import Expansion Boards, Expansion Headers, and System Manager components is added.
View full article
How to set up Zephyr pins through MCUXpresso Config tools - create DTSI file for your custom board. Create a new project for Zephyr pins tool Interface introduction - where to find what? Create DTSI for custom boards MCUXpresso Config tools download page 
View full article