NXP Designs ナレッジベース

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

NXP Designs Knowledge Base

ディスカッション

ソート順:
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       
記事全体を表示
  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    
記事全体を表示
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) _______________________________________________________________________________________________________________________
記事全体を表示
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
記事全体を表示
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 
記事全体を表示
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 
記事全体を表示
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
記事全体を表示
  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
記事全体を表示
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
記事全体を表示
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
記事全体を表示
Overview The NXP® Healthcare Analog Front End reference platform is a complete set of portable medical solutions that enable designers with rapid development tools. Provides ready-to-develop hardware and software that facilitates the design of medical assets such as vital signs monitors, glucose meters and digital stethoscopes, among other portable and healthcare professional devices Based on the Kinetis® K53 high-performance, low-cost, low-power MCU Embeds a complete analog measurement engine including Opamps, TRIAMPS, ADCs, DACs and analog comparators among other modules, reducing costs and PCB sizes Features Developed using the Kinetis ®  K53 MCU, featuring an Arm ®  Cortex ® -M4 core Kinetis K53 MCU also provides low-power operation, DSP capabilities, USB and graphic interface support and a complete analog measurement engine Includes six healthcare-specific analog front ends with reusable software and hardware NXP ®  provides a full set of software tools (CodeWarrior ® , USBSTACK, MQX™ RTOS) NXP product longevity program offers up to 15-year availability for selected products Block Diagram Board Video Design Resources
記事全体を表示
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;          }      }        }  }
記事全体を表示
  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); } } } } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
記事全体を表示
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  
記事全体を表示
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 
記事全体を表示
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
記事全体を表示
  Overview Archived content is no longer updated and is made available for historical reference only. The QorIQ ®  P1020EWLAN access point/router is a complete production-ready, bill of materials optimized solution that can support single- or dual-radio 802.11 a/b/g/n/ac devices through MiniPCI or Mini PCI Express ®  interfaces. IEEE ®  802.11N WLAN radios capable of supporting wireless data rates up to 300 Mbps per and the P1020 communication processor is ideal to maximize performance while meeting power and cost budgets Can be powered over a single Ethernet cable in 3 x 3 MIMO mode using a single 802.3af Power over Ethernet (PoE) link Provides complete data and control path processing needs for multiple radio solutions and excellent throughput with best-in-class performance/watt   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. IDE and Build Tools CodeWarrior Development Suites for Networked Applications v11.4.0 Design Resources
記事全体を表示
Overview This reference design of a 3-phase Permanent Magnet Synchronous Motor (PMSM) sensorless vector control drive and a Brushless DC (BLDC) Motor drive without position encoder coupled to the motor shaft uses the NXP® 56F8013 with Processor Expert® software support. PMSM/BLDC motor are excellent choices for many appliances and industrial applications that require low cost and high-performance variable speed operation This design will employ sensorless FOC to control a PMSM and a sensorless algorithm to control BLDC The hardware design supports both motor types with the algorithms fully implemented digitally via software running on the 56F8013 DSC Features General: For PMSM the motor control algorithm employs Field-Oriented Control (FOC). The power stage switches are controlled by means of Space Vector Pulse Width Modulation (SVPWM) The feedback hardware elements are limited to the motor stator phase currents and the bus voltage. No position information devices or stator flux measurement are used; sensorless speed methods are employed The Motor is capable of forward and reverse rotation and has a speed range of 500rpm to 6000rpm The user controls motion profiles, rotation direction, and speed. The RS-232 communication supports further R&D by enabling the easy tuning of control parameters The motor drive system is designed to create minimal acoustic noise Active power factor correction which reduces the negative effects of the load on the power grid in conducted noise and imaginary power Design is low cost General Benefits: Improved End System Performance Energy savings Quieter operation Improved EMI performance System Cost savings Enhanced Reliability Performance: Input voltage: 85 ~265VAC Input frequency: 45 ~65HZ Rating bus voltage: 350V Rating output power: 500W Switch frequency of PFC switch: 100KHZ Switch frequency of inverter: 10KHZ Power factor: >95% Efficiency: >90% Communications: RS232 port for communication with optoisolation Visual Interface: Multi-segment LED indicators Block Diagram Board Design Resources
記事全体を表示
Overview This reference design demonstrates the design of a 3-phase AC induction motor drive with volt per hertz control and supports the NXP® 56F80X and 56F83XX Digital Signal Controllers (DSCs) dedicated for motor control applications. Designed as a low-cost high volume motor drive system for medium power three-phase AC induction motors and is targeted for applications in both industrial and appliance fields The drive runs in a speed closed loop using a speed sensor According to the state of the control signals (Start/Stop switch, speed up/down buttons or PCMaster set speed) the speed command is calculated using an acceleration/deceleration ramp Features Speed Control of 3-phase AC Induction motor with quadrature volt per hertz control Targeted for 56F80X, 56F83XX, and 56F81XX Digital Signal Controllers Running on a High Voltage Medium Power Board for Three Phase Motors Volt-per-Hertz control with a speed closed loop Option to run the motor in open loop Quadrature encoder for motor speed reference Manual interface PC master software control interface and monitor Fault protection Block Diagram Board Design Resources
記事全体を表示