NXP Designs Knowledge Base

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

NXP Designs Knowledge Base

Discussions

Sort by:
Demo Watch as the i.MX 8 development vehicle takes data in from the camera and uses one GPU and applies an image segmentation algorithm. The info is then fed to another GPU dedicated to a neural network inference engine which recognizes the traffic sign Products i.MX 8 Series Applications Processors|NXP  Training i.MX 8 Applications Processors Family Overview: i.MX 8, i.MX 8X, i.MX 8M  i.MX 8M Processor Overview and the Road Ahead  Micron’s Memory Solutions for the New i.MX 8 Microprocessor   
View full article
For showing text, graphics, animations in the LED panel, I decided to use the well known eGUI graphic library, porting the code to Kinetis SDK 1.3 + FreeRTOS and develop an eGUI low level driver for the LED panel.   http://www.nxp.com/egui http://github.com/Gargy007/eGUI   This porting will have two goals:   Use the eGUI for controlling the LED panel Use a QVGA display connected to FRDM-K82 to develop and simulate applications that will work in the LED panel   FRDM-K82 + Uctronics display:     eGUI Demo running:   I also ported PEG to FRM-K82 and Uctronics display in case could be used for bigger panels, 30 x 16 is not supported by PEG, so eGUi will be used as graphic library in this project. http://www.nxp.com/peg   PEG running in this platform:     Emulating the application that  will work on the LED panel is possible using the QVGA display:   Find attached  : eGUI Porting to FRDM-K82 with KSDK 1.3 and FreeRTOS running the eGUI demo application eGUI Porting to FRDM-K82 with KSDK 1.3 and FreeRTOS running the same application we will run in the LED panel. It also includes SEGGER_SYSVIEW.   Part 2: LED control method using the FlexIO Part 4: Software for panel control Or Return to Project page: LED Panel control with FlexIO
View full article
  From GUI to prototype to Product - Fast The evolution of Embedded GUI Design   Products ARM Cortex-A9|i.MX 6 Multicore Processors   Links NXP Partner Program - Crank Software Partner Profile   Other Demo Videos Storyboard Demo Launcher on Freescale's iMX6 Sabre Lite From Photoshop to Crank Storyboard Suite to i.MX Series Hardware in Minutes
View full article
[KW36, Hybrid]多个蓝牙LE连接+通用FSK演示应用程序 USL:https://community.nxp.com/docs/DOC-344510     文档目的 该文档通过描述一个与GFSK(通用频移键控)进行并行通信的多低功耗蓝牙连接节点拓扑,提供了一个混合应用程序(Wireless_UART + GFSK Advertising)的示例。这是SDK之外的另一个附加示例,SDK中我们定义了一个混合应用程序,演示了与GFSK并行通信的蓝牙LE广播和扫描。   读者 该文档的目的是为想要在低功耗蓝牙应用程序中使用、适配和集成GFSK功能的软件开发者提供指南。       搭建开发环境 工具链:     -IAR Embedded Workbench 8.32或更高版本;     https://www.iar.com/iar-embedded-workbench/ SDK: -此版本的固件已使用SDK_2.2.1_FRDM-KW36进行了测试,可以使用以下 链接下载:http://mcuxpresso.nxp.com/en/select     (请考虑选择Toolchain/IDE: All toolchains);     硬件: -2到5 块FRDM-KW36 开发板:https://www.nxp.com/demoboard/FRDM-KW36     操作流程: 此演示应用程序是针对FRDM-KW36平台设计的,可以轻松集成到使用KW35/36系列 MCU的任何电路板上。   该功能基于SDK(移动无线系统-MWS模块)上的共存机制。基于硬件链路层的实现,低功耗蓝牙具有比GFSK协议更高的优先级,因此,GFSK通信在低功耗蓝牙的空闲状态(非活动时段)内执行。   有关MWS模块的更多详细信息,请参阅SDK中的连接框架文档(Connectivity Framework Reference Manual.pdf)。   低功耗蓝牙同时支持central和peripheral两个角色。   KW36 SDK的集成 -下载附件并解压到…\SDK_2.2.1_FRDM-KW36\boards\frdmkw36\wireless_examples\hybrid 文件夹:   -打开IAR项目(SDK_2.2.1_FRDM-KW36_2019_07_19\board\frdmkw36\wireless_examples\hybrid\ble_w_uart_gfsk\freertos\iar\ble_w_uart_gfsk_freertos.eww)。   -该项目的组织方式如下:     功能   开关功能: -该功能在main.c文件中的BleApp_Handle Keys函数中定义; -FRDM-KW36: -SW2-开始扫描- Central设备; -长按SW2-开始扫描-peripheral设备;(长按 SW2指按住SW2键3秒钟以上) -SW3-启动/停止GFSK TX操作(扫描); -长按SW3-启动/停止GFSK RX操作(长按SW3指按住SW3键 3秒钟以上) 日志: -串口输出电路板的不同状态; -波特率115200;   验证 该解决方案已使用1个主设备和4个从设备进行了验证,如下所示:   1.创建网络     a.打开所有设备的串行通讯。重置后,您将看到以下消息:     b.在Central设备上,按SW2开始扫描; c.在peripheral设备上,长按SW2开始广播并等待串口上的确认;     d.在所有从设备上重复步骤b和c。 e.当Central设备的网络成功创建时,您将看到以下内容:           f.检查空中链路(连接间隔=312.5ms):   2.验证低功耗蓝牙的功能: -从每个从设备(peripheral)的串口写入一条消息(例如:testslaveX)并检查该消息是否打印在主设备的串口上。   -在主设备(Central)的串口终端上进行相同的测试。   -以下是该步骤的示例:     -空中日志:   3.启动GFSK通讯: -在其中的一块开发板上按SW3开始GFSK TX操作(AdvAddress = 0909090909的广播数据包);每隔1秒钟(gGenFskApp_Txlnterval_c)在空中发送一个ADV数据包。   -选择另一块开发板并长按 SW3以启动GFSK RX操作(RX间隔 = 100ms = gGenFskApp_Rxlnterval_c)   -收到来自地址 = 0909090909的ADV数据包时,它将在串口上打印出来,如下所示:   -空中GFSK TX数据包被列为ADV_NONCONN_IND:   4.验证GFSK和Bluetooth LE并行能力: -在主设备(Central)串口上写一条消息,并检查从设备(peripheral)串行终端上的反馈:     附上此应用程序的源代码。 真挚的问候 Ovidiu   附件 BLE+GFSK_Demo_application.zip(https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/wireless-connectivity%40tkb/253/1/BLE+GFSK_Demo_application.zip)  
View full article
The Attach demo consists of a 3 board stack up using the Arduino connectors on the Kinetis FRDM-KL26Z board. The demo runs from a Li Ion polymer battery and consists of 1x FRDM-KL26Z board, 1x FRDM-BATT board (including battery and loudspeaker) and 1x Arduino LCD touch screen board. The code builds using either CodeWarrior V10.6 or IAR EWARM V7.20.2. The software uses eGUI to drive the Arduino LCD and runs demos for the following Sensors - FXOS8700 (combined 3-axis Accelerometer and Magnetometer) and FXAS21000 (3-axis MEMs Gyro). The demo also includes 7-element eCompass code for which full source code is available. Finally, the board also uses the MC34673 1.2A charger for Li Ion batteries, charging is accomplished via either of the USB ports on the FRDM-KL26Z. All datasheets, schematics, source code and bill of materials are included in the zip archive. NOTE: software update which now includes 10-element eCompass software and Kalman filtering code creating a far more accurate eCompass solution. Recommended Products Product Link Freedom Development Platform for Kinetis® KL16 and KL26 MCUs (up to 128 KB Flash) FRDM-KL26Z|Freedom Development Platform|Kinetis® MCU | NXP 
View full article
Demo This demo showcases the MAC57D5xx microcontroller rendering on a LVDS 1280x480 display for a full digital graphic instrument cluster and a Head-up Display on a secondary panel showcasing the warping capabilities of the microcontroller.       Single-chip instrument cluster solution with powerful graphics subsystem, including inline Head-Up Display warping functionality Dual-core ARM® Cortex®-A5/M4 for real-time and application processing and additional Cortex-M0+IOP core Cryptographic Services Engine, tamper detection and password protection for Flash memory and JTAG   Links Ultra-Reliable Multi-Core ARM-based MCU
View full article
Demo This demo combines Multi-standard Digital Radio by means of Software Defined Radio and combining broadcast radio with internet radio to get the best audio listening experience for the end user. By downloading a different FW start-up of the device this HW platform can service as a global digital radio receiver for the whole world, supporting DAB+, HD-Radio and the DRM standards. This demo can also demonstrate that the internet/IP (which is making its way into more and more cars these days) can also be used as an alternative to broadcast radio. By aligning the two streams (IP-FM), the radio can seamlessly switch between IP and FM to create a continuous audio stream for the listener, especially in the car where radio reception condition change every second     Demo / product features Digital radio and processing system-on-chip (SAF360x) Car radio Digital Signal Processor (SAF775x)   NXP Recommends Multi Standard Digital Radio features and benefits Software defined radio Technology   Links  Software-Defined Radio: One Global Platform for Car Entertainment     A06
View full article
Demo DJI Phantom 1 quadcopter drone with customised ESC module containing a single Kinetis KV5x MCU controlling all 4 propellers. Includes four MC34GD3000 3-ph Motor Driver ICs.   Features KV5x 240MHz ARM Cortex-M7 MCU with high speed ADCs & timers controlling all 4 BLDC motors GD3000 BDLC motor pre-driver featuring fast switching to drive low Q MOSFETs Single MCU solution unique in the market – reduced component count and BOM cost with superior performance   Featured NXP Products KV5x|Kinetis KV5x Connected Control MCUs|NXP KV4x |Kinetis KV4x High Precision Control MCU|NXP 3-Phase Brushless Motor Pre-Driver|NXP   Other Videos  
View full article
引言 FRDM-KW36包含带有32 kHz晶体振荡器的RTC模块。此模块为以极低功耗模式运行的MCU生成32 kHz时钟源。该振荡器包括一组用作CLOAD的可编程电容器。改变这些电容器的值可以改变振荡器提供的频率。 此可配置电容的范围为0 pF(禁用电容器组)至30 pF,步长为2 pF。 这些值是通过组合启用的电容器获得的。可用值为2 pF,4 pF,8 pF和16 pF。可以完成这四个数值的任意组合。如果可以使用外部电容器,建议禁用这些内部电容器(清除RTC控制寄存器SFR中的SC2P,SC4P,SCS8和SC16位)。 要调整振荡器提供的频率,必须首先能够测量该频率。使用频率计数器将是非常好的,因为它提供了比示波器更精确的测量。您还需要输出振荡器频率。要输出振荡器频率,以任意一个蓝牙演示应用程序为例,您应该执行以下操作: 调整频率示例 本示例将利用Connectivity Software Stack中的心率传感器演示(freertos版本),并假定开发人员具有从SDK到IDE导入或打开项目的知识。 1.从SDK中打开或克隆“心率传感器”项目。 2.在工作区的board文件夹中找到board.c和board.h文件。 3.如下图所示在board.h文件中声明一个void函数。该函数将RTC管脚复用设置为输出到PTB3并能够测量频率。 4. 如下所示在board.c文件中开发BOARD_EnableRtcClkOut函数。 5. 代码如下: 6. 在BOARD_BootClockRUN(board.c文件)之后立即在hardware_init函数中调用BOARD_EnableRtcClkOut函数。 7. 在工作区的board文件夹中找到clock_config.c文件。 8. 在文件顶部添加以下定义。 9. 在BOARD_BootClockRUN函数内部(也在clock_config.c文件中)搜索对函数的CLOCK_CONFIG_EnableRtcOsc调用,然后通过上述任意定义来编辑变量。 10. 最后,在项目源文件夹中的“ preinclude.h”文件中禁用低功耗选项和LED支持: 此时,您可以在PTB3中进行测量,并使用频率计数器进行频率调整。每次对电路板进行编程时,都需要执行POR以获得正确的测量。下表是从FRDM-KW36板版本B获得的,可用作调整频率的参考。 请注意,电容不仅由启用的内部电容组成,还包括封装,内部走线,芯片焊盘和PCB走线中的寄生电容。因此,尽管下面给出的参考测量值应接近实际值,但您还应该在电路板上进行测量,以确保频率是专门针对您的电路板和布局进行调整的。 Labels:KW   KW35 | 36 kinetis kw36a
View full article
  Introduction   In this document, we are focusing on the usage of two functions of FreeRTOS: Creation of tasks and the use of queues as a way to trigger a generic functionality in our application. NXP’s SDK abstraction layer for the QN908x is intended to give the customer a simpler way of FreeRTOS usage and control functionalities. Hardware Requirements: QN9080DK Software Requirements: MCUXpresso IDE v11.1.0 or newer QN908XCDK SDK with BLE stack and examples (It can be downloaded from the SDK Builder) This document is based on the Wireless UART example from the SDK. Setting up the required variables and definitions Import the FreeRTOS version of the wireless_uart example included in the QN9080’s SDK.   Note: Be sure to select UART as your debug console.    2. In order to change the default role of the QN9080 board it is required to change the definition of the mGapRole variable, from gGapCentral_c to gGapPeripheral_c in PROJECT_FILE_NAME > source > wireless_uart.c > BleApp_Config(). //wireless_uart.c //static void BleApp_Config(void) { /* By default, always start node as GAP central */ //mGapRole = gGapCentral_c; mGapRole = gGapPeripheral_c; (void)Serial_Print(gAppSerMgrIf, "\n\rWireless UART starting as GAP Peripheral, press the role switch to change it.\n\r", gAllowToBlock_d); mAdvState.advOn = TRUE; mScanningOn = FALSE; //...}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍    3. It is important to change the macro value of: osNumberOfMessageQs in PROJECT_FILE_NAME > framework > OSAbstracion > Interface > fsl_os_abstraction_config.h to a value > 0.  //fsl_os_abstraction_config.h #ifndef osNumberOfMutexes #define osNumberOfMutexes 5 #endif #ifndef osNumberOfMessageQs #define osNumberOfMessageQs 1 #endif #ifndef osNumberOfMessages #define osNumberOfMessages 10 #endif‍‍‍‍‍‍‍‍‍ //...‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ Then, to start the task implementation it is needed to edit the file: PROJECT_FILE_NAME > framework > OSAbstracion > Source > fsl_os_abstraction_free_rtos.c.        First, we create the prototype of the main task function, then define the task using the “OSA_TASK_DEFINE” definition. The syntax should be the following: This function is part of the thread Management, it helps the user define the creation of a new thread, controlling the priority and stack requirements. The following parameters are used in the function definition. name: Should be the name of the function used as our task priority: The scheduler will grant a minor or major priority to our function with this parameter. instances: This parameter give us the control to limit the number of instances in order to manage the memory in the most optimal way. stackSz : This parameter has a default value, which is defined by the abstraction layer as: gMainThreadStackSize_c as 1024 bytes. useFloat : This parameter is part of the thread definition structure, is a Boolean, It defines if the thread will use floating point.   //fsl_os_abstraction_free_rtos.c /*! ********************************************************************************* ************************************************************************************* * Private functions ************************************************************************************* ********************************************************************************** */ OSA_TASK_DEFINE(startup_task, gMainThreadPriority_c, 1, gMainThreadStackSize_c, 0) ; void vfnTaskPWM(void* param); //New Task Definition OSA_TASK_DEFINE(vfnTaskPWM, 1, 1, 500, FALSE ); osaTaskId_t gAppTestTask1Id = 0; // TestTask1 Id osaTaskId_t pwmTask_queue = 0; //get defines from wireless_uart int main (void) { /* Initialize MCU clock */ hardware_init(); OSA_TaskCreate(OSA_TASK(startup_task), NULL); //Task and Queue creation. gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskPWM), NULL); //Task Creation pwmTask_queue = OSA_MsgQCreate(1); //Scheduler starting vTaskStartScheduler(); return 0; } //..‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍   4. The function: OSA_TaskCreate returns a taskID it is required to create a osaTaskId_t variable as the following: osaTaskId_t gAppTestTask1Id = 0; and also another osaTaskId_t variable for the FreeRTOS queue we will be using : osaTaskId_t pwmTask_queue = 0.‍‍‍‍‍‍‍ 5. Inside the main function we will create our task in the same fashion the startup_task is created: gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskPWM), NULL);‍‍‍‍‍‍‍ 6. We also need to create the queue using the same type of variable and using the OSA_MsgQCreate() function to create a new Queue: pwmTask_queue = OSA_MsgQCreate(1);‍‍‍‍‍‍‍ 7. After this statements the scheduler should start: vTaskStartScheduler(); 8. In the wireless_uart.c file it is required to add pwmTask_queue, created for the queue as an extern variable. //wireless_uart.c static uint8_t gAppSerMgrIf; static uint16_t mAppUartBufferSize = mAppUartBufferSize_c; static volatile bool_t mAppUartNewLine = FALSE; static volatile bool_t mAppDapaPending = FALSE; extern osaMsgQId_t pwmTask_queue; /************************************************************************************ ************************************************************************************* * Private functions prototypes ************************************************************************************* ************************************************************************************/ /* Gatt and Att callbacks */ static void BleApp_AdvertisingCallback(gapAdvertisingEvent_t *pAdvertisingEvent);‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ Tasks and Queues implementation in our application code In this example we implemented the use of OSA_MsgQPut() to place the message received from the central peripheral in a queue by using: //wireles_uart.c static void BleApp_ReceivedUartStream(deviceId_t peerDeviceId, uint8_t *pStream, uint16_t streamLength) { static deviceId_t previousDeviceId = gInvalidDeviceId_c; char additionalInfoBuff[10] = { '\r', '\n', '[', '0', '0', '-', 'M', ']', ':', ' '}; uint8_t *pBuffer = NULL; uint32_t messageHeaderSize = 0; if (mAppUartNewLine || (previousDeviceId != peerDeviceId)) { streamLength += (uint32_t)sizeof(additionalInfoBuff); } /* Allocate buffer for asynchronous write */ pBuffer = MEM_BufferAlloc(streamLength); if (pBuffer != NULL) { /* if this is a message from a previous device, print device ID */ if (mAppUartNewLine || (previousDeviceId != peerDeviceId)) { messageHeaderSize = sizeof(additionalInfoBuff); if (mAppUartNewLine) { mAppUartNewLine = FALSE; } additionalInfoBuff[3] = '0' + (peerDeviceId / 10U); additionalInfoBuff[4] = '0' + (peerDeviceId % 10U); if (gGapCentral_c != maPeerInformation[peerDeviceId].gapRole) { additionalInfoBuff[6] = 'S'; } FLib_MemCpy(pBuffer, additionalInfoBuff, sizeof(additionalInfoBuff)); } FLib_MemCpy(pBuffer + messageHeaderSize, pStream, (uint32_t)streamLength - messageHeaderSize); /**** Adding a message into a Queue ****/ OSA_MsgQPut(pwmTask_queue, (void*)&pBuffer); /**************************************/ (void)Serial_AsyncWrite(gAppSerMgrIf, pBuffer, streamLength, Uart_TxCallBack, pBuffer); } /* update the previous device ID */ previousDeviceId = peerDeviceId; }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ This function points to the external queue variable created before the main() function of the project. Also points to the buffer pointer of the message received in BleApp_ReceivedUartStream(), These parameters can be accessed by using OSA_MsgQGet() function. osaStatus_t OSA_MsgQGet(osaMsgQId_t msgQId, void *pMessage, uint32_t millisec)‍‍ This function gets the message from the head of the message queue, the parameters of this function are the following: msgQId : Is the identifier of the queue function. pMessage : Is a pointer to the same message sent fromOSA_MsgQPut(); millisec : Is the number of milliseconds to wait for a message.   Inside the task created: vfnTaskPWM() there is an infinite while loop checking if a message is in the queue, this is accomplished by using the os_abstraction function: The rest of the task implementation is in a different C file. The external queue variable is defined in this file in addition to the task function prototype: /*pwmApplication.c*/ /*Global Variables*/ static uint8_t gAppSerMgrIf; extern osaMsgQId_t pwmTask_queue; /*Function Prototypes*/ void signalConfigValues(int red, int green, int blue); void getValuesRGB(uint8_t* msgString); int getInt(char *stringInteger, int size); /****Task Definition****/ void vfnTaskPWM(void* param); /* * Task to configure the PWM pins and start the timer * */ void vfnTaskPWM(void* param) { uint8_t* msgString; char msgString1[20] = { '\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0','\0', '\0', '\0', '\0'}; while(1) { /* * If there is a new message on queue the value will return a 0 according to the OSA_MsgQGet function * to compare the incoming message * */ while((OSA_MsgQGet(pwmTask_queue,(void*)&msgString,10)) == 0){ //shift-up the pointer value to get the payload message if(*msgString == '\r'){ while(*msgString != 32){ msgString++; } msgString++; } FLib_MemCpy(msgString1,msgString,20); if(FLib_MemCmp(msgString1, "OFF", 4)){ (void)Serial_Print(gAppSerMgrIf,"\n\r OFF: ", gAllowToBlock_d); //configure the PWM new function signalConfigValues(0,0,0) and StartTimers(CTMRA,CTMRB) signalConfigValues(0,0,0); } else{ //a function to convert values from a string to integers getValuesRGB(msgString); } } } } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
View full article
Demo Owner michaelestanley By monitoring the vibration signature of a rotating machinery we can predict the remaining useful life of that machine. Features Condition monitoring Visual characterization of the fundamental frequency of a  motor along with its harmonics Features that can be observed: wavelength, transfer coefficients, statistical measures, standard deviations, variances Preparing work flows where users can use machine learning algorithms to to figure out what feature sets are important, focusing only on the features that are needed to predict the remaining useful life of the machine Links Sensors
View full article
FAST BOOT FOR lx2160 IN adas •Objective To speed ​​​​up bringup of LX2 chip-based systems •Pain Points to Address The bringup time is much longer than 3s, which is very sensitive in ADAS systems or time-sensitive systems. •Value Proposition / Key Features The guide can help customers shorten uboot time from 5s to less than 1.5s, saving more than 70% bootup time. •Deliverables Demo based on LX2160ARDB board. Reference codes and patches. Guide for Fast boot document. Fast boot 广泛用于嵌入式设备,现以lx2160ardb板为例进行相关探索。 启动流程: 优化思路: 1.适当提高FSPI时钟速率 diff --git a/lx2160asi/flexspi_divisor_32.rcw b/lx2160asi/flexspi_divisor_32.rcw index 422139c..0f8d5c9 100644 --- a/lx2160asi/flexspi_divisor_32.rcw +++ b/lx2160asi/flexspi_divisor_32.rcw @@ -7,8 +7,10 @@ * Modify FlexSPICR1 register, to increase FlexSPI clock closer to 50MHz, * with divisor value as 32. * => 750 * 2 / 32 ==> 46.875MHz + *write 0x1e00900,0x00000013 + * 0f -12 =125M */ .pbi -write 0x1e00900,0x00000013 +write 0x1e00900,0x0f .end ​ 2.关键路径优化 固化spd参数 固化ddrc参数 BL33 裁剪 详细patch和测试结果参考附件。
View full article
Demo Owner: Eduardo Montanez   Watch how Kinetis K Series and Kinetis L Series MCUs beat out the competition.     Features Latest Kinetis K2 microcontrollers running a CoreMark benchmark from EEMBC 4 different Microcontrollers are put to the test. Running all the same iteration benchmark with same capacity for all of the products Featured NXP Products K22F KL02 Links Kinetis MCUs|ARM® Cortex®-M Cores|NXP Kinetis L Series MCUs: Energy-Efficiency Benchmark Demo Kinetis L Series MCUs Energy Efficiency Benchmark - YouTube  
View full article
Overview The NXP ®  S12G automotive HVAC platform reference solution uses the scalable S12G 16-bit MCU family with MC33905, MC33932 and MC33937 analog devices to drive stepper, DC and BLDC motors and provide a feature-rich solution for automotive HVAC applications. Consists of a central control board with (HMI, a motor control board, flap and blower motors Enables basic functions of an auto HVAC using temperature, light, humidity and air quality sensing interfaces with configurable automatic climate control software algorithm to efficiently control vehicle climate Reduces overall design effort, shortens time to market and can be tailored for both 12V and 24V systems Features Three types of motor control sensorless BLDC DC stepper motor Automatic climate control Supports multiple temperature zones Ultra low power mode, can be woken up by HMI or LIN CAN bus CAN and LIN communication interfaces 3x3 matrix keypad and two encoder knob inputs 4x37 segment LCD and adjustable backlighting Sensor interfaces for temperature, light, humidity and air quality available Two logic relay interfaces to compressor defrost module Real-time clock and date display, adjustment for calendar Extensible with touch keyboard or touchscreen board Suitable for both 12 volt and 24 volt HVAC systems Block Diagram Design Resources
View full article
Demo This demo shows how the FlexIO peripheral can be utilized to connect directly to an RGB TFT display to deliver a rich graphical display. The demo uses the versatile Tower ecosystem to connect the TWR-K80F150M MCU board to the display. The demo is well documented by an Application note and associated software     Features Dynamic Graphical LCD (480x272) with 16bt RGB interface Images stored in fast external Serial NOR flash FlexIO utilized to generate 16bit interface to TFT display with minimal CPU intervention   _______________________________________________________________________________________________________   Featured NXP Products: Product Link Kinetis® K80 MCU Tower® System Module TWR-K80F150M|Tower® System Board|Kinetis® MCUs | NXP  Graphical LCD Tower System Module with RGB Interface Graphical LCD Tower Module with RGB Interface | NXP  _______________________________________________________________________________________________________ Links AN5275: Using FlexIOhttp://cache.nxp.com/files/microcontrollers/doc/app_note/AN5275.pdf?fsrch=1&sr=1&pageNum=1 AN5280: Using Kinetis FlexIO to drive a Graphical LCD http://cache.nxp.com/files/archives/doc/app_note/AN5280SW.zip
View full article
Watch this demonstration that shows designing made easy with NXP's MMPF0100 and MMPF0200. These devices are optimized for i.MX 6 applications processors. Power-sensitive applications include portable medical devices, gateways, routers, home security systems, e-readers, tablets, and home energy management solutions.   Features MMPF0100 and MMPF0200 (PMIC) evaluation kit PMICs are optimized for i.MX 6 applications processors Light-Load Efficiency Exceptional Quiescent current Large amount of One-Time Programmable memory on board Flexibility: Programming kit connects the device via USB port and user can set up the start-up frequency, voltage levels, current limit and the timing of each regulator on the device Featured NXP Products MMPF0100 MMPF0200https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.nxp.com%2Fproducts%2Fpower-management%2Fpmics%2Fpmics-for-i.mx-processors%2F12-channel-configurable-power-management-ic%3AMMPF0200 Block Diagrams
View full article
Oracle's James Allen demonstrates a variety of NXP hardware running Java technology, a NXP-based IoT Gateway involved in capturing, analyzing and transmitting healthcare data, and a NXP-based IoT Gateway involved in capturing, filter, analyzing and integrating M2M data to enterprise systems, including business processes.   Featured NXP Products K70 Kinetis i.MX6
View full article
Description   An ultrasonic-based measurement or a camera implementation are a key part of applications dealing with non-contact object distance measurement and object detection, like an automotive parking distance sensor, blind spot detection and object detection. For an ultrasonic implementation, the S12ZVC integrates a 16-bit MCU, automotive voltage regulator, CAN physical layer, and high-speed timers with input capture and output compare, making it a single chip solution for low-end parking aid systems. For a camera implementation, the i.MX 8 applications processor along with the S32V234 vision processor offers the power required for image processing and intercommunication between multiple cameras and modules.   Features   Automotive voltage regulator CAN physical layer High speed timers with input capture and output compare Ultrasonic technology or cameras for the detection and avoidance of close objects   Block Diagram       Products   Category Name 1: MCU Product URL 1 S12ZVC Mixed-Signal MCUs|MagniV | NXP  Product Description 1 The S12ZVC platform, part of the S12 MagniV® mixed-signal MCU family, offers a low-cost, highly integrated solution that enables the design of smallest possible automotive CAN-termination nodes, while the family concept gives you scalability for platform design. Product URL 2 i.MX 8 Family Applications Processor | Arm Cortex-A53/A72/M4 | NXP  Product Description 2 Fast multi-OS platform deployment via advanced full-chip hardware virtualization and domain protection. Incorporate vision and speech recognition interactivity via a powerful vision pipeline and audio processing subsystem. Product URL 3 S32V234 Vision Processor | NXP  Product Description 3 The S32V234 MPU offers an Image Signal Processor (ISP), powerful 3D Graphic Processor Unit (GPU), dual APEX-2 vision accelerators, automotive-grade reliability, functional safety, and security capabilities for supporting computation intensive ADAS, NCAP front camera, object detection and recognition, surround view, and automotive image processing.   Category Name 2: Ethernet Product URL 1 SJA 110EL | Five ports AVB Automotive Ethernet Switch | NXP  Product Description 1 The SJA1105EL Ethernet switch offers a flexible solution for implementing modular and cost-optimized ECUs capable of supporting any in-vehicle connectivity requirement. Product URL 2 TJA1101 | 2nd generation PHY Transceiver | NXP  Product Description 2 TJA1101 is a high-performance single port, IEEE 100BASE-T1 compliant Ethernet PHY Transceiver. Product URL 3 TJA1102/TJA1102S | Automotive Ethernet Transceivers | NXP  Product Description TJA1102 (TJA1102S) is a highly integrated dual (respectively single) port, IEEE 100BASE-T1 compliant Ethernet PHY Transceiver.   Category Name 3: Power Management Product URL 1 PMIC for high-performance applications | NXP  Product Description 1 The PF8100/PF8200 PMIC family is designed for high-performance processing applications such as infotainment, telematics, clusters, vehicle networking, ADAS, vision and sensor fusion.   Category Name 4: CAN Product URL 1 TJA1057 | High speed CAN transceiver | NXP  Product Description 1 The TJA1057 is part of the Mantis family of high-speed CAN transceivers. It provides an interface between a Controller Area Network (CAN) protocol controller and the physical two-wire CAN bus.   Documentation S32R Radar Signal Compression: https://www.nxp.com/docs/en/application-note/AN5375.pdf    Tools Product Link DEVKIT-S12ZVC: Development Board for 9S12ZVCA192 MCU Evaluation DEVKIT-S12ZVC development platform for S12ZVC | NXP  MCIMX8QM-CPU: i.MX 8QuadMax Multisensory Enablement Kit (MEK) i.MX 8QuadMax/QuadPlus Multisensory Enablement Kit | NXP  S32V234EVB: S32V Vision and Sensor Fusion Evaluation System S32V Vision and Sensor Fusion Evaluation System | NXP  OM14500-TJA1102: Evaluation Board, TJA1102HN 100BASE-T1 Automotive Ethernet PHY TJA1102/S Evaluation Board | NXP  SJA1105Q-EVB: Ethernet Switch & PHY Evaluation Board. SJA1105Q-EVB | Ethernet Switch and PHY Evaluation Board | NXP 
View full article
About the demo components For this demo, we are using the Sigfox kit, which includes the FRDM-KL43Z and the OM2385 board. Sigfox is an inexpensive, reliable, low-power solution to connect sensors and devices.  With our dedicated radio-based network, we are committed to giving a voice to the physical world and making the Internet of Things truly happen.  The Sigfox protocol focuses on:  Autonomy. Extremely low energy consumption allows years of battery life. Simplicity. No configuration, connection request or signaling. Your device is up and running within minutes! Cost efficiency. From the hardware used in the devices on our network, we optimized every step to be as cost-effective as possible. Small messages. there are no large assets or media allowed on the network.  Only small notifications up to 12 bytes are allowed. Complementarity. Thanks to its low cost and ease of configuration, you can also use Sigfox as a secondary solution to any other type of network, e.g.: Wi-Fi, Bluetooth, GPRS, etc. You can read more about Sigfox in What is Sigfox? | Sigfox build.     The OM2385/SF001 is a development platform dedicated to SIGFOX Wide Area Networking applications. It includes an OL2385 wireless sub-GHz transceiver running the preprogrammed SIGFOX library and is mounted on an FRDM-KL43Z development platform that serves as a host processor for the user's application. The FRDM-KL43Z is an ultra-low-cost development platform for Kinetis L families KL43, KL33, KL27, KL17, and KL13 MCUs built on Arm Cortex-M0+ processor running at 48 MHz.   Video     Limitations: Sigfox is only able to send a small amount of data every day for free, so if your application requires more data to be sent, you need to get a connectivity plan from Sigfox Buy .   Useful Links FRDM-KL43Z and NXP Sigfox OL2385 Board : OM2385/SF001 - SIGFOX Development Kit | NXP  Sigfox Backend Account: Sigfox Buy  Download MCUXpresso: MCUXpresso IDE|Eclipse-based Integrated Development Environment (IDE) | NXP  Download SDK: https://mcuxpresso.nxp.com/en/builder    NXP Product Link FRDM-KL43Z and NXP Sigfox OL2385 Board OM2385/SF001 - SIGFOX Development Kit | NXP  Sigfox Backend Account Sigfox Buy  Download MCUXpresso MCUXpresso IDE|Eclipse-based Integrated Development Environment (IDE) | NXP  Download SDK https://mcuxpresso.nxp.com/en/builder    Required Items:     OL2385 Arduino Shield Board FRDM-KL43Z hardware USB A-to-MiniB cable Sub-GHz Antenna GPS UART module   Hardware Diagram:    SPI OL2585 KL43Z FRDM UART GPS MOSI ---------- MISO ---------- SCK ----------- ACK ----------- CS ------------- PTD07 PTD06 PTD05 PTD02 PTD04 PTE23 PTE22           ----------- TX ----------- RX         This picture shows the board connections made for the project     Step-by-Step Guide After we get the Required items, we need to activate the Sigfox account and register our board: Sigfox Buy  If you are having trouble registering your Sigfox device, don't hesitate to write your question in our NXP community. We register the board in our backend account, and we should see the device on our device list. When we have our board registered, we will start building the application on MCUXpresso. Download the project attached at the end of this document and import it into MCUXpresso IDE.  In the video, how to import the sigfox_console example from the SDK is shown, and a brief explanation of the modifications is given. If you want to download the SDK example to start your project from scratch, you need to add the Sigfox software component to the SDK. After importing the project to our workspace, the only thing left is to make the respective hardware connections and flash the device. Then try your new project in a building-clear area. To be sure your new project will function properly, you should avoid tall buildings to get a stronger signal. The data sent should be seen in your Sigfox backend session. Teraterm console prints the data obtained from the GPS module for your viewing purposes.   Results:       This is the data sent from the Sigfox transceiver to the user backend account. The sent frames are floating-point coordinates converted to four byte-hexadecimal strings.     After the attached project is flashed to the KL43Z, this should be the results seen in the Teraterm console.
View full article
  Overview The USB Type-C allows multi-function signaling over the same connector. Our active cable application supports the connectivity of data, video, security, and power over a single connector. The active cables system for Type-C supports up to 10 Gbps. The MCU provides fundamental signal processing and management duties. It communicates with both the signal conditioner and USB PD PHY to organize signal traffic and power flow. Interactive Block Diagram Recommended Products Category Products MCU Kinetis® K Series: High-Performance Microcontrollers (MCUs) based on Arm® Cortex®-M4 Core | NXP    LPC800 Series: Low-Cost Microcontrollers (MCUs) based on Arm® Cortex®-M0+ Cores | NXP  Authentication A1006 | Secure Authenticator IC: Embedded Security Platform | NXP  Signal Conditioners SuperSpeed USB 3.0 redriver | NXP    PTN36043A: USB Type-C SuperSpeed active switch | NXP  USB PD PHY PTN5100 | NXP    PTN5100D | NXP    PTN5150 | NXP    Featured Videos Link NXP USB Type C | NXP  USB Type C Shield Board | NXP  NXP® End to End Secure USB Type-C Solution | NXP  Documentation Link Features Paving The Way for USB Type-C Connectors  Delivering data, video, security, and power in one small, easy-to-insert connector, the new USB Type-C connector. PTN5110N PD PHY application programming guide  PTN5110N is a 1-port TCPC (Type-C Port controller) compliant USB Power Delivery (PD) PHY IC   Training Link USB Type-C Overview - Part 1| Introduction to USB Type-C | NXP  Authentication for USB Type-C - Part 1 | Introduction to NXP Identification & Security | NXP  NXP USB Type-C Solution - Part 1| Overview of NXP Secure Interfaces & Power Solutions | NXP    Community Links Link Other NXP Products  Secure Authentication  Introduction to USB Type-C and Type-C Solutions from NXP  USB Type-C Overview  MHW-N1910 Authentication for USB Type-C 
View full article