NXP Designs Knowledge Base

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

NXP Designs Knowledge Base

Discussions

Sort by:
App-based accessory demo for an EKG (Electrocardiogram) using the Tower System with TWR-DOCK module. Combines an EKG probe and a microcontroller to acquire and monitor heart rate data and passes the data to an iOS device where an app displays the data.     NXP Recommend Product Link Tower System Dock Module Tower System Dock Module | NXP  Kinetis K53 Tower System Module TWR-K53N512|Tower System Board|Kinetis MCUs | NXP  Tower System Elevator Module Tower System Elevator Module | NXP  Electrocardiograph Development Kit for Tower System Electrocardiograph Development Kit for Tower System | NXP    Featured NXP Products App-based accessory demo for an EKG (Electrocardiogram) using the Tower System with TWR-DOCK module Combines an EKG probe and a Microcontroller to acquire and monitor heart rate data and passes the data to an iOS device where an app displays the data
View full article
  Overview   NXP provides full solutions to power high-end payment terminals. NXP is at the forefront of contact and contactless payment solutions and is a leader in providing security solutions for the banking and payment industries. Combining NXP's portfolio of microprocessors, microcontrollers, interface peripherals and connectivity solutions can help to create a feature rich and easy-to-use payment terminal or tablet solution.   Block Diagram     Recommended Products   Category Name MCU Arm® Cortex®-M4|Kinetis K81 150 MHz 32-bit MCUs | NXP  Arm® Cortex®-M4 core + DSP up to 150 MHz, 16 kB CPU CacheAdvanced public key crypto and tamper detection. Low-power peripherals and DMA for continuous system operation in reduced power stat. Ideal for entry level, highly secure POS terminals. i.MX 6UltraLite Applications Processor | Single Arm® Cortex®-A7 @ 696 MHz | NXP  Cortex-A7 @ 696 MHz, 128 kB L2 cache. Security Block: TRNG, Crypto Engine (AES with DPA, TDES/SHA/RSA), Tamper Monitor, Secure Boot, SIMV2/EVMSIM X 2, OTF DRAM. Encryption, PCI4.0 precertification. Ideal for high-end, high-quality HMI POS terminals. LPC55S6x|Arm® Cortex®-M33|32-bit Microcontrollers (MCUs) | NXP  Cortex-M33 processor, running at a frequency of up to 100 MHz. Security features: Arm TrustZone, PRINCE module, AES-256, SHA2, Physical Unclonable Function, RNG, 128-bit UUID, and Secure GPIO. Ideal for entry level, highly secure POS terminals.   Category Name NFC Contact Readers | NXP  Highly versatile family of ISO7816 compatible contact reader ICs. NFC - Near Field Communication | NXP  Wide range of NFC and reader ICs for physical access systems, POS terminals, PC solutions, eGovernment applications, public transport schemes, Pay TV solutions, eMetering, gaming, industrial and white goods applications. PN5180 | Full NFC Forum-compliant frontend IC | NXP  Optimized for POS terminal applications, allows to achieve compliancy to EMVCo 3.0 analog and digital and implements a high-power NFC frontend.   Category Name Power Management DC-to-DC Solutions | NXP  Highly integrated and cost-effective power conversion solution. BC3770 | 2 A Switch-Mode Li-ion/polymer Battery Charger | NXP  Power Supplies and Package Programmable charge parameters via I2C compatible interface High-efficiency synchronous switching regulator Extensive protection Power Management Integrated Circuits (PMICs) | NXP  The new PF series of PMICs brings advanced levels of configurability and programmability in a system level PMIC solution, enabling a single device to be easily configured to provide power to a wide range of processors and peripherals.   Category Name Secure Arm® Cortex®-M0+|Kinetis KL8x Ultra-Low Power MCUs | NXP  The K8x Arm® Cortex®-M4 MCUs are designed with expandable memory & advanced security capabilities targeting IOT applications such as payment & identification. Kinetis® K8x Secure Microcontrollers (MCUs) based on Arm® Cortex®-M4 Core | NXP  The K8x Arm® Cortex®-M4 MCUs are designed with expandable memory & advanced security capabilities targeting IOT applications such as payment & identification.   Category Name Peripheral I²C LED Controllers ICs | NXP  Our I2C LED controllers enable core functions in some of today’s most ubiquitous devices and applications. Load Switches | NXP  Integrated Type C functionality, Fast Reverse Current Protection and Recovery, High Voltage Tolerance. Bluetooth®Smart/Bluetooth Low Energy | NXP  Highly integrated SoCs with up to 512 KB Flash and 128 KB RAM utilizing Arm® Cortex®-M4F cores. Ultra-low-power, 1.8 V, 1 deg. C accuracy, digital temperature sensor with I2C bus interface | NXP  Tiny WLCSP6 package Accuracy: 0.5 °C from 0 °C to +85 °C Low quiescent current: 30 μA Active and 1 μA Shut-down Supply range: 1.8 V ± 0.15 V Resolution: 12 bits
View full article
JN516x-EK004 ZigBee Smart Home Kit with NFC Commissioning All necessary hardware components to demonstrate, evaluate and develop ZigBee wireless network solutions with IoT connectivity and NFC commissioning Firmware pre-loaded with demonstration software for both ZigBee nodes and IoT Gateway Free support resources for developing ZigBee applications for the JN516x microcontrollers Expandable with the addition of extra ZigBee nodes, available separately             JN516x-EK004 Evaluation Kit                               NFC Controller on Raspberry Pi Board Physical Components The JN516x-EK004 ZigBee Smart Home Evaluation Kit includes the following hardware components: Gateway Component Raspberry Pi single-board computer to act as IoT Gateway Host JN5169 USB dongle (OM15020) to act as ZigBee Control Bridge Wi-Pi Raspberry Pi dongle for Wi-Fi connectivity NFC controller (PN7120) for NFC commissioning of ZigBee nodes ZigBee Node Components Carrier boards (OM15022) to accommodate expansion board and ZigBee JN5169 module, and incorporating NFC connected tag (NTAG I 2 C) including NFC antenna ZigBee modules (JN5169-001-T00/T01) providing processing platform and RF interface Generic expansion board (DR1199) with switch and level control functionality Lighting/Sensor expansion board (DR1175) with white light, colour light and sensor functionality Software Pre-loaded ZigBee Smart Home demonstration Flash programming utility for firmware re-programming Software Developer’s Kits (SDKs) for developing applications for JN516x microcontrollers Eclipse-based Integrated Development Environment (IDE) for easy application development Application Notes containing example applications and templates This Demo Is Probably of Interest If You: Work with Home Automation, Smart Energy or other similar IoT applications Need a state-of-the-art ZigBee solution Need a secure and convenient way to commission devices to your ZigBee network Key Benefits of Kit All-in-one kit to rapidly get started with your ZigBee application development Leverages NXP NFC solution to commission ‘smart nodes’ out of the box, securely and in just one tap Comprehensive support software and collateral for developing custom ZigBee solutions with IoT connectivity Video Link : 4980 JN516x-EK004 Evaluation Kit Leaflet JN516x-EK004 Evaluation Kit User Guide JN5169 ZigBee Wireless Microcontroller JN5169 USB Dongle for ZigBee (OM15020) ZigBee 3.0 Wireless Network Protocol ZigBee Generic Node Expansion Kit (JN5169XK010) ZigBee Lighting/Sensor Node Expansion Kit (JN5169XK020) NFC Controller (PN7120) NFC Connected Tags (NTAG I 2 C)
View full article
Description Factory automation systems connect with each other through robust communication paths and with the user through intuitive HMIs. To meet these needs and the demand for greener, more efficient industrial processes, these systems require ultra-reliable solutions for fast connectivity and solid security. NXP’s robot motion control solution provides the computing performance, embedded connectivity, low latency and a real-time open source operating system to address the requirements for multi-axis motion. The Layerscape LS1043A family provides a huge range of computing performance, with 2 and 4 core SoCs with either the power efficient A53 ARM core. In addition, the LS1043A includes integrated connectivity options that enable the low latency and low jitter required in the motion control and robotics space. Features High-accuracy Rot-Vector High-end PLC Industrial security gateway High-performance moto and driver Block Diagram Products Category Name 1: MCU Product URL 1 QorIQ® Layerscape 1043A | NXP  Product Description 1 The QorIQ LS1043A and LS1023A processor includes a four-lane, 10 GHz multi-protocol SerDes providing support for high-speed interfaces, including up to six Gigabit Ethernet ports with IEEE® 1588 support, three DMA controlled PCI Express® generation 2.0 ports and a single SATA 3.0 port. Category Name 2: Transceiver 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. Product URL 2 22-bit bi-directional low voltage translator | NXP  Product Description 2 The GTL2000 allows bi-directional voltage translations between 1.0 V and 5.0 V without use of a direction pin. Category Name 3: Sensor Product URL 1 PCT2075: I2C-bus Fm+, 1 Degree C Accuracy | NXP  Product Description 1 The PCT2075 is a temperature-to-digital converter featuring ±1 °C accuracy over ‑25 °C to +100 °C range. Category Name 4: RTC Product URL 1 PCF85363A | NXP  Product Description 1 The PCF85363A is a CMOS Real-Time Clock (RTC) and calendar optimized for low power consumption and with automatic switching to battery on main power loss. Tools Product Link QorIQ® LS1043A Development Board QorIQ® LS1043A Development Board | NXP  OM13257: Universal Temperature Sensor Daughter Card for the Fm+ Development Kit Universal Temperature Sensor Daughter Card for the Fm+ Development Kit | NXP  OM13514: PC evaluation board for the I²C-bus RTC PCF85363A PC evaluation board for the I²C-bus RTC PCF85363A | NXP 
View full article
  Features 2.7 kHz Maximum bandwidth Operates up to 105 Celsius Ranges: +/- 2G to +/- 8G Ranges: +/- 4G to +/- 16G Sample at Output Data rate: 125 samples / second to 5000 samples / second   Links Sensors  
View full article
Demo LS1021A TSN Reference Design Solution   The demo showcases key features of the LS1021A TSN Reference Design Solution including: Deterministic Ethernet for critical control traffic Converge IT and OT networks Open Industrial Linux SDK Flexible IO for IoT applications As industrial OEMs design solutions for Industry 4.0, they must converge the operational technology (OT) domain with their information technology (IT) infrastructure. Current technologies in the OT domain are often limited to 10-100 Mbps, and do not have the bandwidth to support new technologies that are being applied to manufacturing, such as high-definition video.  Time-sensitive networking supports legacy IT equipment and OT equipment on the same network, enabling Gigabit bandwidth while simplifying network deployment and management. TSN represents the next step in the evolution of Ethernet as a ubiquitous networking technology and TSN-enabled Ethernet will play an important role in the Internet of Things (IoT) and the Industry 4.0 revolution.   NXP Product Product Link Time-Sensitive Networking Solution for Industrial IoT Time-Sensitive Networking Solution for Industrial IoT | NXP       
View full article
  Overview NXP ® 's wireless charging reference design uses inductive charging technology to charge high-capacity, multi-cell Li-Ion battery packs. The reference design is capable of charging four battery packs simultaneously, using a single NXP digital signal controller. The reference design consists of two main components: a transmitter that sends the requested power level to the battery packs, and a receiver embedded in the battery packs. The receiver provides a controlled charge to the battery by implementing a charging algorithm. Each transmitter channel adjusts its energy transfer independently by responding to commands from the receiver embedded in the battery pack. The intelligent charging method is software-controlled and has the ability to dynamically adjust the power transfer. Archived content is no longer updated and is made available for historical reference only.   Features 80% transfer efficiency Four charging stations to charge four battery packs simultaneously Supports Qi communications protocol Overtemp, overcurrent and overvoltage protection    
View full article
KINETIS DESIGN STUDIO IS NO LONGER SUPPORTED BY NXP. Follow this link for more information:Kinetis Motor Suite  Demo Kinetis motor suite is a highly intuitive motor control development solution that enables the design of sensored and sensorless BLDC & PMSM motor control applications quickly and efficiently, allowing those with limited or no motor control experience to develop an application. Features: Kinetis Motor Suite (KMS) is a software solution that simplifies the design and accelerates the development of motor control applications. KMS consists of 4 main components: motor tuner, motor manager, motor observer, and an open source reference solution that improves overall motor system performance due to its unique SpinTAC™ enabled motion controller. KMS is designed for developers of all experience levels, enabling rapid development via the graphical user interface and close integration with Kinetis Design Studio, or by directly controlling the function blocks via the natural API interface after initial tuning and configuration. KMS enables speed and position control across the complete operating range of any type of 3-ph PMSM or BLDC motor regardless of power level. Increased Efficiency To increase your motor’s efficiency while further reducing time-to-market, Kinetis Motor Suite streamlines your design by implementing the SpinTAC™ control system from LineStream Technologies that includes Active Disturbance Rejection Control (ADRC) Technology. Kinetis Motor Suite reduces your time to market further with: Active disturbance rejection: Single Parameter tuning: traditional PID loop control is time consuming due to trial and error nature of tuning, and requires in-depth knowledge. KMS uses a single, intuitive variable to tune motor response. Automatic motor parameter identification: identifies motor characteristics and uses these to automatically tune the control loops. Automatic System Inertia Estimation: by measuring and incorporating greater knowledge of the mechanical system, KMS achieves tight control of the system’s motion further improving system performance. _______________________________________________________________________________________________________________________ Featured NXP Products: Product Link Kinetis® V Series https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kv-series-cortex-m4-m0-plus-m7:KINETIS_V_SERIES?&cof=0&am=0 Freedom Development Platform for Kinetis® KV3x Family MCUs https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/freedom-development-platform-for-kinetis-kv3x-family-mcus:FRDM-KV31F?&lang_cd=en NXP® Freedom Development Platform for Low-Voltage, 3-Phase PMSM Motor Control FRDM-MC-LVPMSM|Freedom Development Platform | NXP  Low-Voltage, 3-Phase Motor Kit for FRDM platform FRDM-MC-LVMTR|Freedom Development Platform | NXP  High-Voltage Development Platform https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kv-series-cortex-m4-m0-plus-m7/high-voltage-development-platform:HVP-MC3PH?&fsrch=1&sr=1&pageNum=1 Low-Voltage, 3-Phase Motor Control Tower® System Module https://www.nxp.com/design/development-boards/tower-development-boards/peripheral-modules/low-voltage-3-phase-motor-control-tower-system-module:TWR-MC-LV3PH?&lang_cd=en _______________________________________________________________________________________________________________________ Online Training: Kinetis V Series MCU Online Training|NXP Blogs Zero to Hero: BLDC Electric Motor Control Introduction to Kinetis Motor Suite (KMS) _______________________________________________________________________________________________________________________
View full article
New Family of Doherty IC Power Amplifiers Coupled with a Dual-Path Pre-distortion Linearizer Demo / product features A2I20D040N 5 W final 42% efficiency 1.8-2.2 GHz wideband Doherty NXP’s A2I20D040N The Maxim SC2200 dual path linearizer enhances the already high linearity of the NXP devices with LTE signals as wide as 3x20 MHZ Maxim’s solution provides improvement of up to 28 dB in ACLR and 38 dBm in IMD NXP Recommends A2I20D040Nhttp://www.nxp.com/products/rf/rf-power-transistors/rf-cellular-infrastructure/1450-2200-mhz/1400-2200-mhz-5-w-avg.-28-v-wideband-integrated-rf-ldmos-amplifier:A2I20D040N?fsrch=1&sr=1&pageNum=1 SC2200: www.maximintegrated.com/SC2200 Fast-track 5G with NXP Application Note AN5296 - Effective Small Cell Solutions for MIMO Radios
View full article
Description With the RF Cicuit Collection, NXP customer can browse, dowlnload and order through a large number of Reference Circuit documentation. Video Introduction to the RF Circuit Collection  Step by step Guide 1. Go to www.nxp.com/rfcollection. 2. Accept the click-through licence. 3. Browse across 400 reference circuits by frequency or power using the sorting tool or doing a direct search in the search engine 4. Depending on documentation availability, either download or request the desired documentation by clicking the corresponding button. 5. Do you need a board? Order it through our distributor partners by using the distributor button in the collection. Products NXP Product Link NXP RF Cicruit collection www.nxp.com/rfcollection 
View full article
Overview    This demo uses the i.MX RT600 EVK (MIMXRT685-EVK) with a GUI software to playback MP3 files. An equalizer can be switch on to demonstrate the HiGi-4 audio DSP. Beside the board itself it requires a SD-card with MP3 music tracks and a portable speaker or headphone.    The i.MX RT600 is a crossover MCU family optimized for 32-bit immersive audio playback and voice user interface applications combining a high-performance Cadence® Tensilica® HiFi 4 audio DSP core with a next-generation Cortex-M33 core. The i.MX RT600 family of crossover MCUs is designed to unlock the potential of voice-assisted end nodes with a secure, power-optimized embedded processor. Demoing Guide No software installation required to demo this board. To build this demo, pls. refer to the description at the end of this guide. Insert the SD-Card with mp3 files to on-board SD Card connector, not to the one below the LCD board Connect headphones or external speakers to the 3.5mm jack Line Out (J4) Supply the board through Micro-USB connector (J5) in the upper right edge Three main windows/tabs on the GUI: File playback This screen shows: • Album artwork/NXP logo • Current track information (title, artist, album) • Media controls (prev, play/stop, next) • Volume slider Playlist This screen shows: • Playlist information from mp3 files found in SD card • A track for playback can be selected by touching the line Spectrum visualizer This screen shows: • Seven vertical bars showing the frequency spectrum of the current track being played. • Button for toggling Equalizer On/Off o if on the sound is AM radio style Products i.MX RT600 Evaluation Kit | NXP 
View full article
Overview This reference design demonstrates the configuration of two nodes which include the NXP® 56F8300 Digital Signal Controllers (DSCs) with the FlexRay MFR4200 modules. These nodes communicate together on (over) two channels This application demonstrates a transmission in the static and dynamic part of the cycle, receive buffer and receive FIFO configuration It operates in the interrupt-driven mode and also in the poll-driven mode Features Utilizes MC56F8300 EVBs and FlexRay daughter cards Utilizes in-house developed FlexRay low-level driver Redundant data transmission on two channels Deterministic as well as dynamic data transmission Data rates at 10 Mbits/sec per channel Visual feedback of communication between two FlexRay controllers via FreeMASTER software Block Diagram Board Design Resources
View full article
  Features Packet Tools Software gives you insight you normally only get from sophisticated test equipment. Packet Tools uses the on-chip debug and trace capabilities of the QorIQ Processors to give you unprecedented insights into your system. This is the same insight you'll use to create real differentiation in your products. This video gives you a VERY quick overview of the Packet Tools so you can get a great idea of what the software is all about.   Featured NXP Products Processor Expert QorIQ Optimization Suite Processor Expert QorIQ Packet Analysis Tool
View full article
Overview The NXP® P1020 multi-service Business Gateway (MSBG) solution integrates VortiQa® Secure SMB Software with D2 Technologies vPort VoIP software to provide a production-ready solution in a single product. Designed to quickly and cost-effectively create a range of MSBG applications including unified threat management (UTM) appliances, secured routers, VoIP gateway, VPN routers and secured switches Designed to deliver outstanding performance-to-price ratios and dramatically shorten development cycles, the solution tightly integrates optimized low-level software and production-ready boards with NXP's VortiQa application software and multicore PowerQUICC® and QorIQ® processors Features P1020 in 45nm SOI operating at 533-800MHz dual-core e500 processor with 256KB L2 cache with ECC 256MB to 512MB DDR3 SDRAM 4 FXS ports 1 FXO port 1 GbE RGMII port 1 GbE SGMII port 1 GbE port connected to RGMII 5-port switch 2 mini-USB 2.0 ports 1 mini-PCI Express connector 1 PCI Express VortiQa ®  software with Stateful Packet Inspection Firewall and NAT - performance optimized IPsec Virtual Private Network (VPN) with Quality of Service (QoS) and Traffic Management (TM) D2 Technologies optimized voice G.711-Alaw G.711-MuLaw G.729AB G.726 Voice Compression G.168 Echo Cancellation Advanced telephony Full Distributed Unicast Conferencing Call forwarding Call Waiting/ Caller ID Block Diagram Board Design Resources
View full article
MCAT is a graphical tool for automatic calculation and real-time tuning of selected motor control structure parameters. MCAT can be used with fixed or floating point 16- or 32-bit data so can be used for MPC5xxx Microcontrollers, Kinetis Microcontrollers, Digital Signal Controllers, and The specified item was not found.. It also acts as a plug-in tool for Freemaster which allows real-time monitoring, tuning and parameter updating in a target application. This Tool is a HMTL-based user-friendly graphical plug-in tool for NXP's FreeMASTER. It is intended for the development of PMSM FOC applications, real-time control structure parameter tuning, and will aid motor control users in adapting our MC solutions to their motors without a detailed knowledge of PI controller constant calculations. https://community.nxp.com/players.brightcove.net/4089003392001/default_default/index.html?videoId=4282488626001" style="color: #05afc3; background-color: #ffffff; font-size: 14.4px;" target="_blankFeatures Up to three motor application support with independent access to each motor Utilizing a pole placement method for control parameter estimation Real-time tuning and updating of control parameters Preview of the static configuration of tuned parameters Generic output file with static configuration of tuned parameters Plug-in tool for FreeMASTER, not available as a standalone tool Offers basic and expert tuning mode Modular S/W concept, easy configurable Featured NXP Products MC56F84XXX Qorivva MPC56xx ARM® Cortex®-M4 High Performance MCUs: Kinetis K  Series ARM® Cortex®-M0+/M4 Motor Control MCUs: Kinetis V Series
View full article
Teensy Prop Shield : Motion activated Light This demo shows a basic gesture controlled light sequence using NXP motion sensors available in the Teensy Prop Shield LED lights can be found on the following link: https://www.adafruit.com/product/2238 <script src="https://players.brightcove.net/6153537070001/default_default/index.min.js"></script>(view in My Videos) Features The Teensy Prop Shield is an add-on sensor shield board for the Teensy 3.1 which is an USB based microcontroller development platform. The Teensy 3.1 has a 32 bit ARM Cortex M4 processor from NXP -MK20DX256. The board can be programmed using Arduino IDE + Teensyduino plugin. The prop shield consists of the following devices: Motion Sensors - Allows motion interactive light & sound. Audio Amplifier - Clear quality audio output to a small speaker. Fast LED Driver - Drive APA102 / Dotstar LEDs for colorful lighting with rapid response. Flash Memory - 8 Mbyte storage for images, sound clips, and data logging\ Featured NXP products FXOS8700CQ - 6 Axis Linear Accelerometer & Magnetometer FXAS21002C   - 3 Axis Digital Angular Rate Gyroscope MPL3115A2     - Precision Pressure/Altitude & Temperature sensor MK20DX256   - 32 bit ARM Cortex M4 processor Demo Setup: Wiring[1] : Software: After setup, Download Arduino IDE and Teensyduino add on and follow the instructions as defined in the page below http://www.pjrc.com/teensy/td_download.html Note: Arduino version used for this demo:  1.6.8. Run the “Teensy_RGB_Led_Strip.ino” sketch attached. Sample Code: // Full orientation sensing using NXP's advanced sensor fusion algorithm.  //  // You *must* perform a magnetic calibration before this code will work.  //  // To view this data, use the Arduino Serial Monitor to watch the  // scrolling angles, or run the OrientationVisualiser example in Processing.      #include <NXPMotionSense.h>  #include <Wire.h>  #include <EEPROM.h>  #include <FastLED.h>      #define NUM_LEDS 60  CRGB leds[NUM_LEDS];      NXPMotionSense imu;  NXPSensorFusion filter;  int a;  int acc_rms;  void setup() {    Serial.begin(9600);    imu.begin();    filter.begin(100);    delay(2000);         FastLED.addLeds<APA102,11,13,BGR,DATA_RATE_MHZ(1)>(leds, NUM_LEDS);     pinMode(7, OUTPUT);    digitalWrite(7, HIGH);  // enable access to LEDs  }      void loop() {    float ax, ay, az;    float gx, gy, gz;    float mx, my, mz;    float roll, pitch, heading;        if (imu.available()) {      // Read the motion sensors      imu.readMotionSensor(ax, ay, az, gx, gy, gz, mx, my, mz);          // Update the SensorFusion filter      filter.update(gx, gy, gz, ax, ay, az, mx, my, mz);          // print the heading, pitch and roll      roll = filter.getRoll();      pitch = filter.getPitch();      heading = filter.getYaw();      Serial.print("Orientation: ");      Serial.print(heading);      Serial.print(" ");      Serial.print(pitch);      Serial.print(" ");      Serial.println(roll);      a=abs(roll/3);      Serial.print(" ");            acc_rms=sqrt(ax*ax+ay*ay+az*az)/3;      Serial.println(acc_rms);            //flash red if a violent shake event is detected            if(acc_rms==1)      {         for(int n = 0; n < NUM_LEDS; n++)          {             leds[n] = CRGB::Red;             FastLED.show();             delay(8);             leds[n] = CRGB::Black;        }      }            // Move a single white led as per rotation      for(int n = 0; n < NUM_LEDS; n++)       {         if(a==n)         {            leds[n] = CRGB::White;            FastLED.show();            delay(8);          }         else          {             leds[n] = CRGB::Black;          }      }    }  } PJRC Store Sample Code: // Full orientation sensing using NXP's advanced sensor fusion algorithm.  //  // You *must* perform a magnetic calibration before this code will work.  //  // To view this data, use the Arduino Serial Monitor to watch the  // scrolling angles, or run the OrientationVisualiser example in Processing.      #include <NXPMotionSense.h>  #include <Wire.h>  #include <EEPROM.h>  #include <FastLED.h>      #define NUM_LEDS 60  CRGB leds[NUM_LEDS];      NXPMotionSense imu;  NXPSensorFusion filter;  int a;  int acc_rms;  void setup() {    Serial.begin(9600);    imu.begin();    filter.begin(100);    delay(2000);         FastLED.addLeds<APA102,11,13,BGR,DATA_RATE_MHZ(1)>(leds, NUM_LEDS);     pinMode(7, OUTPUT);    digitalWrite(7, HIGH);  // enable access to LEDs  }      void loop() {    float ax, ay, az;    float gx, gy, gz;    float mx, my, mz;    float roll, pitch, heading;        if (imu.available()) {      // Read the motion sensors      imu.readMotionSensor(ax, ay, az, gx, gy, gz, mx, my, mz);          // Update the SensorFusion filter      filter.update(gx, gy, gz, ax, ay, az, mx, my, mz);          // print the heading, pitch and roll      roll = filter.getRoll();      pitch = filter.getPitch();      heading = filter.getYaw();      Serial.print("Orientation: ");      Serial.print(heading);      Serial.print(" ");       Serial.print(pitch);      Serial.print(" ");      Serial.println(roll);      a=abs(roll/3);      Serial.print(" ");            acc_rms=sqrt(ax*ax+ay*ay+az*az)/3;      Serial.println(acc_rms);            //flash red if a violent shake event is detected            if(acc_rms==1)      {         for(int n = 0; n < NUM_LEDS; n++)          {             leds[n] = CRGB::Red;             FastLED.show();             delay(8);             leds[n] = CRGB::Black;        }      }            // Move a single white led as per rotation      for(int n = 0; n < NUM_LEDS; n++)       {         if(a==n)         {            leds[n] = CRGB::White;            FastLED.show();            delay(8);          }         else          {             leds[n] = CRGB::Black;          }      }        }  }
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: Dominic Selvaraj Firstview Consultants' Dominic Selvaraj demonstrates a custom dashboard application for an 18-wheel truck using i.MX 6 processor at the FTF Americas 2014.     https://community.nxp.com/players.brightcove.net/4089003392001/default_default/index.html?videoId=4282651084001" style="color: #05afc3; background-color: #ffffff; font-size: 14.4px;" target="_blank  Features Showcasing a secondary dashboard application for 18 wheeler trucks The dashboard features a touchscreen interface and runs Android operating system It has 4 cameras in a model truck (360 view around the vehicle) The gauges have been transformed into virtual gauges driven by vector graphics Co-pilot navigation and multimedia radio on vehicle   Featured NXP Products ARM® Cortex®-A9 Cores: i.MX 6 Series Multicore Processors Links NXP Connect - Firstview  
View full article
Introduction LS1046A has four 32-bit/64-bit Arm® Cortex®-v8 A72 CPUs arranged as a single cluster of four cores. LS1046A shares a single 2 MB L2 with and maximum operation of 1.2 GHz, three PCI Express 3.0 controllers in a 23 mm x 23 mm package. Overview The following demo is part of a bundle of examples that shortly will be available in the LSDK. As can be seen in the video, there is a menu for the user to select the desired demo and start testing the different approaches the FRWY LS1046A TPU is capable of executing. This example intends to show the CPU performance according to CoreMark or Dhrystone metrics. This results in CoreMarks/mW or DMIPS performance running on the LS1046A. The user is able to select the number of cores to use for the test and then the results come out as Performance (Iterations/second) and Watts. This is intended to show the customers the LS1046A capabilities of pure CPU performance despite the oriented application. With a cost lower than 10 dollars per unit, the LS1046A returns 32,000 CoreMarks while consuming an average of 10 W working at 1.2 GHz. Block Diagram Video Products NXP Product Link FRWY LS1046A TP LS1046A Freeway Board | NXP 
View full article