Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
Rapid IoT 酷炫开箱体验视频 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 观看此视频,了解快速物联网开箱即用的体验。 我们很想听听您对该视频的看法以及使用 Rapid IoT 的体验。 尽情享受! Javier 应用视频 快速物联网
View full article
UICantC#_Milestone_1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> プロジェクト1:光学式ソーター付きコンベヤーベルトマイルストーン1: Codul pentru controlul motoarelor este pe repo-ul de git in folderul src. In faza experimentala este si scriptul de openCV pentru datele primite de la camera.  (マイビデオで視聴) Linux Embedded Challenge 2017 (英語)
View full article
RDDSP56F8SMTVC:56F80Xまたは56F8300 DSCを使用した3相PM同期モータートルクベクトル制御 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Overview 特長 ブロック図 ボード Overview このリファレンス・デザインは、エンコーダ位置センサ付きの 3 相 PMSM モータを使用するトルク制御アプリケーション向けの NXP® 56F80x および 56F83XX デジタル・シグナル・コントローラ (DSC) の適合性と利点を示しています。 また、56F81XXデジタル・シグナル・コントローラにも適合させることができます PM同期モーターは、幅広いアプリケーション分野で人気があります PM同期モーターには整流子がないため、DCモーターよりも信頼性があります PM同期モーターには、AC誘導モーターと比較した場合にも利点があります 特長 対象:56F80X、56F83XX、および56F81XXデジタル信号コントローラ トルク発生電流コンポーネントの閉ループ 位置フィードバックによるベクトル電流制御 エンコーダー位置フィードバック 過電圧、低電圧、および過電流の故障保護機能 FreeMASTERディスプレイインターフェース 手動インターフェース ブロック図 ボード レガシーデザイン
View full article
iMX93に基づくカスタムボードを使用してLinuxイメージをFlash NOR QSPIにロードする方法 みなさん 私はUUUの.wicを使用してカスタムiMX93ボードにフラッシュしようとしています。私はこの組み込みコマンドを使用しています: uuu.exe -b qspi core-image-minimal-imx93-11x11-lpddr4x-evk.rootfs-20250328061745.wic しかし、それはうまくいきません。   動作するのはブートローダーだけです。実際、次のコマンドを使用するとき: uuu.exe -b qspi imx-boot-imx93-11x11-lpddr4x-evk-sd.bin-flash_singleboot ブートモード設定の「FlexSPI Serial NOR」でボードをリセットしてもブートローダーは起動するので、メモリに正しくフラッシュされていると思います。 私は.wicで何が間違っていますかダウンロード。 .wicをフラッシュするために何をすべきですかQSPI-flashにファイルしますか? ブートローダーのソースファイルに何かを変更する必要がありますか、それともnxpサイトからのものとして機能する必要がありますか? よろしくお願いいたします。 よろしくお願いいたします。 ボブ 日時:iMX93に基づくカスタムボードを使用してLinuxイメージをFlash NOR QSPIにロードする方法 おかげで、それは私を大いに助けました。 ボブ 日時:iMX93に基づくカスタムボードを使用してLinuxイメージをFlash NOR QSPIにロードする方法 こんにちは Flash-NOR QSPIを使用しています。 日時:iMX93に基づくカスタムボードを使用してLinuxイメージをFlash NOR QSPIにロードする方法 Hello @saxejeh , ありがとう、私はimx93のパッチに従ってそれを試してみます、そして私はあなたに知らせます。 よろしくお願いいたします。 ボブ 日時:iMX93に基づくカスタムボードを使用してLinuxイメージをFlash NOR QSPIにロードする方法 Hello, 次のコマンドは、ブートイメージをFlexSPI NANDに焼き付けます。 uuu -b spi_nand i.MX 93 で FlexSPI NAND ブートのブート イメージを生成するには、次のコマンドを実行します。 make SOC=iMX93 flash_singleboot_spinand 注: 次の 2 つのバイナリが生成されます。 • SPI NANDに焼き付けられたブートイメージflash.bin。 • flash_fw.bin UUUツールで使用されるNAND UUU FW画像です。 よろしくお願いします。 日時:iMX93に基づくカスタムボードを使用してLinuxイメージをFlash NOR QSPIにロードする方法 私はこのドキュメントに従いました、そしてそれは動作します。https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/all-bootloader-device-tree-Linux-kernel-rootfs-in-spi-nor-demo/ta-p/1663994
View full article
RAppID ブートローダ rbf ファイル for MPC5746R <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> UART0 通信は、最新バージョンの .rbf MPC5746R ブートローダでサポートされていますファイル(以下に添付) + 対応UART0/LINFlexD_0:PD13-PD14ピン(速度:115200b/s)   開発ボードでテスト済み:   開発ボード MPC5746R-252DC MPC57xx-マザーボード プロセッサ PPC5746RTMMT5 - 1N83M  
View full article
连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> FreeRTOS 通过计数滴答来跟踪系统中经过的时间。主机 MCU 中可用的定时器之一生成的周期性中断例程内的滴答计数会增加。当 FreeRTOS 运行空闲任务挂钩时,微控制器可以进入低功耗模式。根据低功耗模式,可以禁用一个或多个外围设备,以节省尽可能多的能源。FreeRTOS 无滴答空闲模式允许在空闲期间停止滴答中断。停止滴答中断可使微控制器保持深度省电状态,直到唤醒事件发生。 应用程序需要配置模块(计时器、ADC 等),以便在执行下一个 FreeRTOS 任务之前唤醒微控制器。为此,在执行 vPortSuppressTicksAndSleep(启用无滴答空闲时由 FreeRTOS 调用的函数)期间,MCU 可以保持休眠状态的最大时间量作为输入参数传递,以便正确配置唤醒模块。一旦 MCU 唤醒并且 FreeRTOS 滴答中断重新启动,就必须恢复 MCU 睡眠期间丢失的滴答计数。 在连接软件 FreeRTOS 演示中,无滴答模式默认未启用。在这篇文章中,我们将 展示如何启用它。对于此示例,我们将使用 QN9080x 来演示实现。 低功耗 Freertos 无滴答 无滴答 以下文件中实施了更改: \框架\低功耗\源\QN908XC\PWR.c \框架\低功耗\接口\QN908XC\PWR_Interface.h \freertos\fsl_tickless_generic.h \source\common\ApplMain.c 以下文件已从项目中删除 fsl_tickless_qn_rtc.c PWR.C 和 PWR_Interface.h 此文件中的更改旨在让 QN9080 准备好使用 RTC 计时器唤醒。其他部件,如 MKW41Z,可能会为此目的启用其他模块(如 LPTMR),并且可能不需要更改这些文件。 *** PWR.c *** 添加 RTC 的驱动程序。这是我们将用来唤醒 QN908x 的计时器 /*Tickless: Add RTC driver for tickless support */ #include "fsl_rtc.h"‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 添加局部变量 uint64_t mLpmTotalSleepDuration;        //Tickless uint8_t mPWR_DeepSleepTimeUpdated = 0;  //Tickless: Coexistence with TMR manager‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 添加私有函数 uint32_t PWR_RTCGetMsTimeUntilNextTick (void);         //Tickless void PWR_RTCSetWakeupTimeMs (uint32_t wakeupTimeMs);   //Tickless void PWR_RTCWakeupStart (void);                        //Tickless‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 在 PWR.C 中进行以下更改。所有需要的更改都标记为注释,其中“Start”表示更改的开始位置,“End”表示更改的结束位置 #if (cPWR_UsePowerDownMode && (cPWR_EnableDeepSleepMode_1 || cPWR_EnableDeepSleepMode_2 || cPWR_EnableDeepSleepMode_3 || cPWR_EnableDeepSleepMode_4)) static void PWR_HandleDeepSleepMode_1_2_3_4(void) { #if cPWR_BLE_LL_Enable     uint8_t   power_down_mode = 0xff;     bool_t    enterLowPower = TRUE;     __disable_irq(); /****************START***********************************/     /*Tickless: Configure wakeup timer */     if(mPWR_DeepSleepTimeUpdated){       PWR_RTCSetWakeupTimeMs(mPWR_DeepSleepTimeMs);       mPWR_DeepSleepTimeUpdated = FALSE;        // Coexistence with TMR Manager     }         PWR_RTCWakeupStart(); /*****************END**************************************/     PWRLib_ClearWakeupReason();     //Try to put BLE in deep sleep mode     power_down_mode = BLE_sleep();     if (power_down_mode < kPmPowerDown0)     {         enterLowPower = false; // BLE doesn't allow deep sleep     }     //no else - enterLowPower is already true     if(enterLowPower)     { /****************START**************************/         uint32_t freeRunningRtcPriority; /****************END****************************/         NVIC_ClearPendingIRQ(OSC_INT_LOW_IRQn);         NVIC_EnableIRQ(OSC_INT_LOW_IRQn);         while (SYSCON_SYS_STAT_OSC_EN_MASK & SYSCON->SYS_STAT) //wait for BLE to enter sleep         {             POWER_EnterSleep();         }         NVIC_DisableIRQ(OSC_INT_LOW_IRQn);         if(gpfPWR_LowPowerEnterCb != NULL)         {             gpfPWR_LowPowerEnterCb();         } /* Disable SysTick counter and interrupt */         sysTickCtrl = SysTick->CTRL & (SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_TICKINT_Msk);         SysTick->CTRL &= ~(SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_TICKINT_Msk);         ICSR |= (1 << 25); // clear PendSysTick bit in ICSR, if set /************************START***********************************/         NVIC_ClearPendingIRQ(RTC_FR_IRQn);         freeRunningRtcPriority = NVIC_GetPriority(RTC_FR_IRQn);         NVIC_SetPriority(RTC_FR_IRQn,0); /***********************END***************************************/         POWER_EnterPowerDown(0); //Nighty night! /************************START**********************************/         NVIC_SetPriority(RTC_FR_IRQn,freeRunningRtcPriority); /************************END************************************/         if(gpfPWR_LowPowerExitCb != NULL)         {             gpfPWR_LowPowerExitCb();         }         /* Restore the state of SysTick */         SysTick->CTRL |= sysTickCtrl;         PWRLib_UpdateWakeupReason();     }     __enable_irq(); #else     PWRLib_ClearWakeupReason(); #endif /* cPWR_BLE_LL_Enable */ } #endif /* (cPWR_UsePowerDownMode && cPWR_EnableDeepSleepMode_1) */ ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ void PWR_SetDeepSleepTimeInMs(uint32_t deepSleepTimeMs) { #if (cPWR_UsePowerDownMode)     if(deepSleepTimeMs == 0)     {         return;     }     mPWR_DeepSleepTimeMs = deepSleepTimeMs; /****************START******************/     mPWR_DeepSleepTimeUpdated = TRUE; /****************END*********************/ #else     (void) deepSleepTimeMs; #endif /* (cPWR_UsePowerDownMode) */ }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 在文件末尾添加/替换以下函数定义 /*--------------------------------------------------------------------------- * Name: PWR_GetTotalSleepDurationMS * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ uint32_t PWR_GetTotalSleepDurationMS(void) {     uint32_t time;     uint32_t currentSleepTime;     OSA_InterruptDisable();     currentSleepTime = RTC_GetFreeRunningInterruptThreshold(RTC);     if(currentSleepTime >= mLpmTotalSleepDuration){     time = (currentSleepTime-mLpmTotalSleepDuration)*1000/CLOCK_GetFreq(kCLOCK_32KClk);     }     else{     time = ((0x100000000-mLpmTotalSleepDuration)+currentSleepTime)*1000/CLOCK_GetFreq(kCLOCK_32KClk);     }     OSA_InterruptEnable();     return time; } /*--------------------------------------------------------------------------- * Name: PWR_ResetTotalSleepDuration * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ void PWR_ResetTotalSleepDuration(void) {     OSA_InterruptDisable();     mLpmTotalSleepDuration = RTC_GetFreeRunningCount(RTC);     OSA_InterruptEnable(); } /*--------------------------------------------------------------------------- * Name: PWR_RTCGetMsTimeUntilNextTick * Description: - * Parameters: - * Return: Time until next tick in mS *---------------------------------------------------------------------------*/ uint32_t PWR_RTCGetMsTimeUntilNextTick (void) {     uint32_t time;     uint32_t currentRtcCounts, thresholdRtcCounts;     OSA_InterruptDisable();     currentRtcCounts = RTC_GetFreeRunningCount(RTC);     thresholdRtcCounts = RTC_GetFreeRunningResetThreshold(RTC);     if(thresholdRtcCounts > currentRtcCounts){     time = (thresholdRtcCounts-currentRtcCounts)*1000/CLOCK_GetFreq(kCLOCK_32KClk);     }     else{     time = ((0x100000000-currentRtcCounts)+thresholdRtcCounts)*1000/CLOCK_GetFreq(kCLOCK_32KClk);     }     OSA_InterruptEnable();     return time; } /*--------------------------------------------------------------------------- * Name: PWR_RTCSetWakeupTimeMs * Description: - * Parameters: wakeupTimeMs: New wakeup time in milliseconds * Return: - *---------------------------------------------------------------------------*/ void PWR_RTCSetWakeupTimeMs (uint32_t wakeupTimeMs){     uint32_t wakeupTimeTicks;     uint32_t thresholdValue;     wakeupTimeTicks = (wakeupTimeMs*CLOCK_GetFreq(kCLOCK_32KClk))/1000;     thresholdValue = RTC_GetFreeRunningCount(RTC);     thresholdValue += wakeupTimeTicks;     RTC_SetFreeRunningInterruptThreshold(RTC, thresholdValue); } /*--------------------------------------------------------------------------- * Name: PWR_RTCWakeupStart * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ void PWR_RTCWakeupStart (void){   if(!(RTC->CNT2_CTRL & RTC_CNT2_CTRL_CNT2_EN_MASK)){     RTC->CNT2_CTRL |= 0x52850000 | RTC_CNT2_CTRL_CNT2_EN_MASK | RTC_CNT2_CTRL_CNT2_WAKEUP_MASK | RTC_CNT2_CTRL_CNT2_INT_EN_MASK;   }   else{     RTC->CNT2_CTRL |= 0x52850000 | RTC_CNT2_CTRL_CNT2_WAKEUP_MASK | RTC_CNT2_CTRL_CNT2_INT_EN_MASK;   } } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ *** PWR_接口.h *** 在文件末尾添加以下函数声明 /*--------------------------------------------------------------------------- * Name: PWR_GetTotalSleepDurationMS * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ uint32_t PWR_GetTotalSleepDurationMS(void); /*--------------------------------------------------------------------------- * Name: PWR_ResetTotalSleepDuration * Description: - * Parameters: - * Return: - *---------------------------------------------------------------------------*/ void PWR_ResetTotalSleepDuration(void); #ifdef __cplusplus } #endif #endif /* _PWR_INTERFACE_H_ */ ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ FSL_TICKLESS_GENERIC 以下更改的目的是让系统做好准备,以恢复低功耗期间错过的滴答声。 在 fsl_tickless_generic.h 中进行以下更改。所有需要的更改都标记为注释,其中“Start”表示更改的开始位置,“End”表示更改的结束位置 /* QN_RTC: The RTC free running is a 32-bit counter. */ #define portMAX_32_BIT_NUMBER (0xffffffffUL) #define portRTC_CLK_HZ (0x8000UL) /* A fiddle factor to estimate the number of SysTick counts that would have occurred while the SysTick counter is stopped during tickless idle calculations. */ #define portMISSED_COUNTS_FACTOR (45UL) /* * The number of SysTick increments that make up one tick period. */ /****************************START**************************/ #if configUSE_TICKLESS_IDLE == 1     static uint32_t ulTimerCountsForOneTick; #endif /* configUSE_TICKLESS_IDLE */ /************************END*********************************/ /* * Setup the timer to generate the tick interrupts. */ void vPortSetupTimerInterrupt(void); #ifdef __cplusplus } #endif #endif /* FSL_TICKLESS_GENERIC_H */ ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 应用程序主程序 这是主要的应用程序文件。在这里我们将调用适当的 API 来进入低功耗模式的 MCU 并执行滴答恢复序列。 包含所需的 RTC 和 FreeRTOS 头文件 /*Tickless: Include RTC and FreeRTOS header files */ #include "fsl_rtc.h" #include "fsl_tickless_generic.h" #include "FreeRTOS.h" #include "task.h"‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ QN9080 包含几种低功耗模式。睡眠模式可使大多数模块保持活动状态。断电模式会关闭大多数模块,但允许用户配置一些模块保持活动状态,以便在必要时唤醒 MCU。使用无滴答 FreeRTOS 需要在执行下一个就绪任务之前通过某个计时器唤醒。对于 QN908x,此计时器将是 RTC,它需要 32.768kHz 振荡器保持活动状态。我们将更改连接软件电源库以使用深度睡眠模式 3(QN908x 的断电模式 0),以保持 32.768kHz 振荡器开启。这个改变是在main_task函数中实现的。 #if !defined(MULTICORE_BLACKBOX)         /* BLE Host Stack Init */         if (Ble_Initialize(App_GenericCallback) != gBleSuccess_c)         {             panic(0,0,0,0);             return;         } #endif /* MULTICORE_BLACKBOX */ /*************** Start ****************/ #if (cPWR_UsePowerDownMode)     PWR_ChangeDeepSleepMode(3); #endif /*************** End ****************/     }         /* Call application task */     App_Thread( param ); }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 此外,无滴答 FreeRTOS 需要一个特殊的空闲函数,该函数将 MCU 在需要执行下一个任务之前可以保持休眠状态的 RTOS 滴答数作为输入参数。当启用无滴答模式时,以下更改将禁用连接软件演示中提供的默认空闲功能。 /************************************************************************************ ************************************************************************************* * Private prototypes ************************************************************************************* ************************************************************************************/ #if (cPWR_UsePowerDownMode || gAppUseNvm_d) #if (mAppIdleHook_c)     #define AppIdle_TaskInit()     #define App_Idle_Task() #else #if (!configUSE_TICKLESS_IDLE)     static osaStatus_t AppIdle_TaskInit(void);     static void App_Idle_Task(osaTaskParam_t argument); #endif // configUSE_TICKLESS_IDLE #endif #endif‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ /************************************************************************************ ************************************************************************************* * Private memory declarations ************************************************************************************* ************************************************************************************/ /******************************** Start ******************************/ #if ((cPWR_UsePowerDownMode || gAppUseNvm_d) && !configUSE_TICKLESS_IDLE) /******************************** End ******************************/ #if (!mAppIdleHook_c) OSA_TASK_DEFINE( App_Idle_Task, gAppIdleTaskPriority_c, 1, gAppIdleTaskStackSize_c, FALSE ); osaTaskId_t gAppIdleTaskId = 0; #endif #endif  /* cPWR_UsePowerDownMode */‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ #if !gUseHciTransportDownward_d         pfBLE_SignalFromISR = BLE_SignalFromISRCallback; #endif /* !gUseHciTransportDownward_d */ /**************************** Start ************************/ #if ((cPWR_UsePowerDownMode || gAppUseNvm_d) && !configUSE_TICKLESS_IDLE) /**************************** End ************************/ #if (!mAppIdleHook_c)         AppIdle_TaskInit(); #endif #endif‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ /***************************START**************************/ #if (cPWR_UsePowerDownMode && !configUSE_TICKLESS_IDLE) /******************************END***************************/ static void App_Idle(void) {     PWRLib_WakeupReason_t wakeupReason;     if( PWR_CheckIfDeviceCanGoToSleep() )     {         /* Enter Low Power */         wakeupReason = PWR_EnterLowPower(); #if gFSCI_IncludeLpmCommands_c         /* Send Wake Up indication to FSCI */         FSCI_SendWakeUpIndication(); #endif #if gKBD_KeysCount_c > 0         /* Woke up on Keyboard Press */         if(wakeupReason.Bits.FromKeyBoard)         {             KBD_SwitchPressedOnWakeUp();             PWR_DisallowDeviceToSleep();         } #endif     }     else     {         /* Enter MCU Sleep */         PWR_EnterSleep();     } } #endif /* cPWR_UsePowerDownMode */ #if (mAppIdleHook_c) void vApplicationIdleHook(void) { #if (gAppUseNvm_d)     NvIdle(); #endif /*******************************START****************************/ #if (cPWR_UsePowerDownMode && !configUSE_TICKLESS_IDLE) /*********************************END*******************************/     App_Idle(); #endif } #else /* mAppIdleHook_c */ /******************************* START ****************************/ #if ((cPWR_UsePowerDownMode || gAppUseNvm_d) && !configUSE_TICKLESS_IDLE) /******************************* END ****************************/ static void App_Idle_Task(osaTaskParam_t argument) {     while(1)     {   #if gAppUseNvm_d         NvIdle(); #endif         #if (cPWR_UsePowerDownMode)         App_Idle(); #endif         /* For BareMetal break the while(1) after 1 run */         if (gUseRtos_c == 0)         {             break;         }     } } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 一旦默认的空闲功能被禁用,就必须实现特殊的空闲功能。在ApplMain.c的末尾添加以下代码文件。 /*Tickless: Implement Tickless Idle */ #if (cPWR_UsePowerDownMode && configUSE_TICKLESS_IDLE) extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) {     uint32_t time_ms = xExpectedIdleTime * portTICK_PERIOD_MS;     uint32_t tmrMgrExpiryTimeMs;     ulTimerCountsForOneTick = 160000;//VALUE OF THE SYSTICK 10 ms #if (cPWR_UsePowerDownMode)     PWRLib_WakeupReason_t wakeupReason;         //TMR_MGR: Get next timer manager expiry time     tmrMgrExpiryTimeMs = TMR_GetFirstExpireTime(gTmrAllTypes_c);     // TMR_MGR: Update RTC Threshold only if RTOS needs to wakeup earlier     if(time_ms<tmrMgrExpiryTimeMs){       PWR_SetDeepSleepTimeInMs(time_ms);     }         PWR_ResetTotalSleepDuration();     if( PWR_CheckIfDeviceCanGoToSleep() )     {         wakeupReason = PWR_EnterLowPower();                 //Fix: All the tick recovery stuff should only happen if device entered in DSM         xExpectedIdleTime = PWR_GetTotalSleepDurationMS() / portTICK_PERIOD_MS;     // Fix: ticks = time in mS asleep / mS per each tick (portTICK_PERIOD_MS)         /* Restart SysTick so it runs from portNVIC_SYSTICK_LOAD_REG         again, then set portNVIC_SYSTICK_LOAD_REG back to its standard         value. The critical section is used to ensure the tick interrupt         can only execute once in the case that the reload register is near         zero. */         portNVIC_SYSTICK_CURRENT_VALUE_REG = 0UL;         portENTER_CRITICAL();         portNVIC_SYSTICK_CTRL_REG |= portNVIC_SYSTICK_ENABLE_BIT;         vTaskStepTick( xExpectedIdleTime );         portNVIC_SYSTICK_LOAD_REG = ulTimerCountsForOneTick - 1UL;         portEXIT_CRITICAL(); #if gKBD_KeysCount_c > 0         /* Woke up on Keyboard Press */         if(wakeupReason.Bits.FromKeyBoard)         {           KBD_SwitchPressedOnWakeUp();           PWR_DisallowDeviceToSleep();         } #endif     }     else     {       /* Enter MCU Sleep */       PWR_EnterSleep();     } #endif /* cPWR_UsePowerDownMode */ } #endif  //cPWR_UsePowerDownMode && configUSE_TICKLESS_IDLE ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 从前面的函数中可知,ulTimerCountsForOneTick的值用于在唤醒后恢复RTOS滴答定时器的计数。该值取决于 FreeRTOSConfig.h 中定义的 RTOS Tick 间隔并使用以下公式计算: SYST_RNR = F_Systick_CLK(赫兹) * T_FreeRTOS_Ticks(毫秒) 其中: F_Systick_CLK(Hz) = AHB 或 SYST_CSR 选择的 32KHz T_FreeRTOS_Ticks(ms) = 滴答计数值。 FreeRTOS配置.h 最后,在 FreeRTOSConfig.h文件中,确保 configUSE_TICKLESS_IDLE 设置为 1 * See http://www.freertos.org/a00110.html. *----------------------------------------------------------*/ #define configUSE_PREEMPTION                    1 #define configUSE_TICKLESS_IDLE                 1 //<--- /***** Start *****/ #define configCPU_CLOCK_HZ                      (SystemCoreClock) #define configTICK_RATE_HZ                      ((TickType_t)100) #define configMAX_PRIORITIES                    (18) #define configMINIMAL_STACK_SIZE                ((unsigned short)90)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 测试无滴答 RTOS 为了测试是否成功添加了无滴答支持,我们实现了一个切换 LED 的示例应用程序。此应用程序配置一个 RTOS 定时器,每 500 毫秒切换一次 LED,并在空闲时间进入 DSM3 中的 MCU。电源分析演示就是为此目的而使用的。 电源分析.c 确保已包含以下头文件 #include "FreeRTOS.h" #include "task.h"‍‍‍‍ 创建一个 RTOS 任务,使 LED 每 500 毫秒闪烁一次。首先声明任务函数、任务ID和任务本身。 void vfnTaskLedBlinkTest(void* param); //New Task Definition OSA_TASK_DEFINE(vfnTaskLedBlinkTest, 1, 1, 500, FALSE ); osaTaskId_t gAppTestTask1Id = 0; // TestTask1 Id‍‍‍‍‍‍ 在BleApp_Init函数中创建新任务 void BleApp_Init(void) {     PWR_AllowDeviceToSleep();     mPowerState = 0;   // Board starts with PD1 enabled     /******************* Start *****************/     gAppTestTask1Id = OSA_TaskCreate(OSA_TASK(vfnTaskLedBlinkTest), NULL); //Task Creation     /*******************  End  *****************/ }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 最后在文件末尾添加任务函数定义。 void vfnTaskLedBlinkTest(void* param) {     uint16_t wTimeValue = 500; //500ms     while(1)     {         LED_BLUE_TOGGLE();         vTaskDelay(pdMS_TO_TICKS(wTimeValue));     } }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 我们可以监控 MCUXpresso IDE ,带有 功率测量工具。有了它,我们可以看到消耗的电流并证明实施情况符合预期。 配置功率测量工具 消耗电流 BLE软件 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 即使在无滴答模式或裸板模式下,电源配置文件也可以达到合理的功耗。 然而,有一个陷阱,需要小心。 如果从电源模式 PD1 恢复,在无滴答空闲任务中,在睡眠前已关闭 32K OSC, PWRLib_LPTMR_Stop将崩溃以操作断电外设。 如果电源模式为 PD0,则 OSC 工作时不会出现该问题,并且在睡眠期间保持通电。 如何修复: 判断从PD1还是PD0恢复。 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 温度传感器示例似乎在无滴答模式下工作。 与电源配置文件示例相比,睡眠消耗略高 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 哪个示例最适合用于测试无滴答 freertos 和低功耗操作? 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi: 最新的 SDK v2.2 已经支持 freertos 的 tickless 功能,需要在app_preinclude.h中启用以下宏 configUSE_TICKLESS_IDLE :为1 以下定义用于计算无滴消逝时间 /* RTC 在 PD1 中不运行,因此禁用 PWR 模块中的 RTC 相关代码 */ #定义 cPWR_EnableLpTmrRunning 1 #定义cPWR_EnablePD0RtcInterrupt 1 回复:连接软件:在 FreeRTOS 中实现无滴答模式 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本指南是否可以更新为最新的 SDK?QN9080 的 SDK 中似乎实现了对无滴答模式的部分支持?
View full article
Kinetis Motor Suite <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> NXP 不再支持 KINETIS DESIGN STUDIO。 请点击此链接获取更多信息: Kinetis Motor Suite Demo Kinetis电机套件是一种非常直观的电机控制开发解决方案,支持迅速高效地设计有传感器和无传感器BLDC和PMSM电机控制应用,使电机控制经验有限乃至无相关经验的设计人员也能开发应用。 功能: Kinetis电机套件(KMS)是一款能够简化设计并加快电机控制应用开发的软件解决方案。 KMS包含4个主要组件:电机调谐器、电机管理器、电机观察器和开源参考解决方案。该解决方案采用独特的支持SpinTAC™的电机控制器,能够改进电机系统的整体性能。 KMS适用于不同水平的开发人员,与Kinetis Design Studio紧密集成,可通过图形用户界面进行快速开发,也可以在启动调谐和配置后,直接通过固有的API接口控制功能模块。 KMS适合完整工作范围内具有任何功率水平的任何类型3相PMSM或BLDC电机的速度和位置控制。 提高效率 为了在提高电机效率的同时进一步加快产品上市速度,Kinetis采用来自LineStream Technologies的SpinTAC™控制系统(包含自抗扰控制(ADRC)技术),简化您的设计。 Kinetis电机套件的以下特性能够进一步加快产品的上市速度: 有源抗扰度: 单参数调节:传统的 PID 回路控制由于调节过程中反复试验而耗时,并且需要深入的知识。KMS 使用单一、直观的变量来调节电机响应。 自动电机参数识别:识别电机特性并利用这些特性自动调整控制回路。 自动系统惯性估计:通过测量和结合更多有关机械系统的知识,KMS 实现了对系统运动的严格控制,进一步提高了系统性能。 _______________________________________________________________________________________________________________________ 特色恩智浦产品: 产品 链接 Kinetis ® V系列 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 面向 Kinetis ® KV3x 系列 MCU 的 Freedom 开发平台 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 低压三相 PMSM 电机控制开发平台 FRDM-MC-LVPMSM|Freedom开发平台|恩智浦 面向FRDM平台的低压3相电机套件 FRDM-MC-LVMTR|Freedom开发平台|恩智浦 高压开发平台 https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kv-series-cortex-m4-m0-plus-m7/high-volt-development-platform:HVP-MC3PH?&fsrch=1&sr=1&pageNum=1 低压三相电机控制塔®系统模块 https://www.nxp.com/design/development-boards/tower-development-boards/peripheral-modules/low-volte-3-phase-motor-control-tower-system-module:TWR-MC-LV3PH?&lang_cd=en _______________________________________________________________________________________________________________________ 在线培训: Kinetis V系列MCU在线培训|恩智浦 博客 从零到英雄:BLDC 电机控制 Kinetis Motor Suite (KMS) 简介 _______________________________________________________________________________________________________________________ 工业控制
View full article
S32K344 I2c の例 Hi,  私はS32K344 EVBボードでI2Cサンプルコードをテストしようとしていましたが、説明されているように、プルアップ抵抗を追加で追加する必要がありますか、それとも抵抗がボードに挿入されていますか、これ以上接続する必要はありませんか?感謝。 Re: S32K344 I2c の例 Hi @yqs77, 情報をありがとうございます。 この例では、LPI2C に PTC6 と PTC7 を使用しています。 ボード上にはすでにプルアップ抵抗があります。 よろしくお願いします。 Daniel Re: S32K344 I2c の例 Hi,  RTD バージョンは SW32K3_RTD_4.4_1.0.0_D2110 です。 例の名前は SW32K3_S32M27x_RTD_R21-11_4.0.0\eclipse\plugins\ です。I2c_TS_T40D34M40I0R0\examples\S32DS\S32K3XX\I2c_Example_S32K344. ボードバージョンはS32K3X4EVB-Q257 47827 PCB RevX1 SCH RevAです。 ありがとうございます。 Re: S32K344 I2c の例 Hi @yqs77, 具体的にお答えください 例の名前、RTD バージョン EVB品番、リビジョン、回路図番号 ありがとうございました。 BR, Daniel
View full article
SMART-PLUG: スマート・プラグ・リファレンス・デザイン <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Overview 特長 ブロック図 設計・リソース Overview このリファレンス・デザインは、メータリングと WiFi の両方の機能を提供します。 メータリング - 単相の電子電力を測定するために使用されます。 WiFi - 無線制御に使用されます。 プラグの状態は、現在の有効電力、無効電力、グリッド周波数、履歴ランタイムなど、スマートフォンのアプリケーションを介して確認できます。オン/オフ設定タイマーも利用可能。 特長 Kinetis MKM14Z64 MCUがベース QFM2202に基づくWIFIモジュール 入力電圧220V、最大電流10A 24Bit SD ADCによる25ppm 5mΩ電流サンプラーによる相電流サンプリング 24Bit SD ADCによる25ppm抵抗分圧器ネットワークによる位相電圧サンプリング オンチップ電圧コンパレータ(高精度グリッド周波数検出用) 5ppm RTC用のシングル32.788K水晶振動子入力 外部拡張可能な64Mb SPIフラッシュ 内蔵RTCの使用を含む低電力モード キャリブレーション用3チャンネルLEDパルス出力(kWh、kVarh) 有効電力、無効電力、皮相電力、グリッド周波数、および履歴ランタイムを取得するためのAndroidアプリケーションを提供します プラグのON/OFF設定、決まった時間にON/OFFのタイマー設定、RTC時間を設定するAndroidアプリ プラグwifiモジュールを省電力モードに設定するAndroidアプリケーション コスト効果の高い部品表 (BOM) UART接続を備えた外部拡張可能なWIFIモジュール ブロック図 設計・リソース レガシーデザイン
View full article
i.MX8X オンライン設計リソースガイド <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> www.nxp.com公网资源 .............................................. 2 1.1 www.nxp.com Documentation ................................ 3 1.2 www.nxp.com Tools&Software ............................... 7 2 nxp share point资源(仅对有访问权限客户开放) ....... 14 2.1 i.MX 8X Family Board, Software POR and How to Purchase ...................................................................... 14 2.2 Development Platforms ........................................ 14 2.3 Device Dcoumentation ......................................... 15 2.4 Security Reference Manual .................................. 16 2.5 Software Documentation ...................................... 16 3 nxp 社区资源 ........................................................... 16 i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus Re: i.MX8X 网上设计资源向导 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi これらのリンクはファイルにアクセスできません。
View full article
摩托车ABS系统解决方案 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Demo 车轮旋转由 SB0400 直流电机预驱动器控制。当手动停止车轮时,车轮速度传感器 -KMI23- 会检测到并向 SB0400 电机预驱动器和 S32K MCU 发送信号以激活电磁铁 产品 32位汽车通用MCU|恩智浦 摩托车两轮防抱死制动系统 (ABS) | 恩智浦 KMI23_KMI25|NXP  链接 摩托车两轮防抱死制动系统 (ABS) | 恩智浦 模拟专家软件和工具|恩智浦 推荐产品 链接 S32K144EVB https://www.nxp.com/design/development-boards/automotive-development-platforms/s32k-mcu-platforms/s32k144-evaluation-board:S32K144EVB?&fsrch=1&sr=1&pageNum=1 汽车电子 回复:摩托车ABS系统解决方案 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 现在有一个“ 摩托车ABS”项目,在演示中找到了解决方案“摩托车ABS(S32K+SB0400)”。 您能告诉我在哪里可以获得参考设计吗?   顺祝商祺! Kiger 
View full article
在 P1024 参考设计板上启用 SD 接口 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 要在 p1024RDB 上的 SPI 启动中启用 SD 接口: 1. 在 u-boot 中执行以下更新 a) 修改 pmuxcr 以在 SPI 启动时启用 SD 总线 b) 在 u-boot 中更新相应的静态多路复用器实现 2. 在 Linux 中执行以下更新 a) 从设备树和内核 defconfig 中禁用 IFC 启用 SD 接口的补丁详细信息如下。一个 zip 文件,AN4336SW.zip,包含 u-boot 和 Linux 补丁的随附应用说明。该文件可以从[ 1 ]下载。 U-Boot 从 QorIQ SDK 1.0.1 iso 中提取 u-boot 代码 应用补丁 u-boot-p1024rdb-enabling-sd-in-spi-boot.patch 使用“make”命令为 SPI Flash 编译 u-boot    make ARCH=powerpc   CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnu- p1024RDB_SPIFLASH 使用 boot_format 实用程序生成 spiimage。更多信息请参见 SDK 手册。 使用上面构建的spiimage更新SPI Flash Linux 从 QorIQ SDK 1.0.1 iso 中提取 Linux 源代码 应用补丁 linux-p1024rdb-enabling-sd-in-spi-boot.patch 使用 make 命令编译 Linux #make ARCH=powerpc  CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnuarch/  powerpc/configs/qoriq_sdk_nonsmp_defconfig  #make ARCH=powerpc  CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnu- 编译dts ./sripts/dtc/dtc -f -I dts -O dtb -R 8 -S 0x3000  arc/powerpc/boot/dts/p1024rdb.dts.dts > p1024rdb.dtb.dtb 使用更新的 SPI 引导加载程序、Linux uImage 和 p1024rdb.dtb,用户必须能够在 P1024RDB 上启用 SD 接口。 附注 仅当用户特别要求使用 SPI 启动的 SD 接口时才必须进行上述更改。 对于所有其他启动方法,不得使用这些补丁。 QorIQ P1设备
View full article
i.MX8MP MIPI CSI2 帯域幅の制限 Hi, LF6.1.1を使用しています私のIMX8MPLUS SoC用のYoctoコードベース。私は4レーンのMIPI CIS2、1350Mbps /レーンのカメラモジュールを使用しています。 このようなボーレートでは、データを取得できません。しかし、750Mbpsに下げると、カメラは正常に動作します。 HSSettleの設定は正しいです-1350Mbpsの別のセトル値を試しました-それは役に立ちません。 コントローラMIPI_CSI ERR_SOT_HSエラーについて報告します。750Mbpsモード-エラーなし。 MIPI PHY または MIPI CSI コントローラーの入力 CLK を増やす必要がありますか。 事前に感謝いたします。 Re:i.MX8MP MIPI CSI2帯域幅制限 ビデオストリーミング中に0x32E40024を設定するときは、取得できるクロックを測定する必要があります。次に、タイミング設定を確認するために、安定したビデオをどのように得るかはまだわかりません。DTSで0x30を設定し、次に0x32E40024を0x5000001Fに設定し、その後、0x32E40024を再度0x3000001Fに設定する必要がありますか? Re:i.MX8MP MIPI CSI2帯域幅制限 つまり、ビデオストリーミング中(v4l2-ctlアプリケーションと/ dev / video0) 安定したFPSを取得するには、次のことを行う必要があります。 devmem2 0x32E40024 w 0x5000001F devmem2 0x32E40024 w 0x3000001F Re:i.MX8MP MIPI CSI2帯域幅制限 これを機能させる唯一の方法は、ストリーミング中にHSSETTLE値を変更することです。 >どういう意味ですか?DTSのHSTを0x30に設定する必要があるということですか、ビデオをストリーミングするときは、HSTelectを0x5に変更して0x3する必要がありますか? Re:i.MX8MP MIPI CSI2帯域幅制限 テストの結果、ビデオはまだ安定していないことがわかりました。 デバイスツリーに追加した後: csis-hs-settle = <0x30>; それでも有効なビデオを取得できません。 これを機能させる唯一の方法は、ストリーミング中にHSSETTLE値を変更することです。 ストリーミング中の正しいシーケンス: 0x32E40024 w 0x5000001F 0x32E40024 w 0x3000001F RXスキューキャリブレーションを有効にする必要がありますか? Re:i.MX8MP MIPI CSI2帯域幅制限 バリュー 0x30は1.5Gbps/laneで正常に動作します Re:i.MX8MP MIPI CSI2帯域幅制限 HSsettleを29または30に設定するのはどうですか?そして、CLKSETTLECTLを0に設定しますが、これは使用するmipi phyのバージョンによって異なりますので、まず0を試すことができます Re:i.MX8MP MIPI CSI2帯域幅制限 レーン数を 4 に設定。 1350Mbpsの蒸気はセンサーから供給されます。オシロスコープで測定された時計。 HSSETTLEは2、7、15を試しましたが、運がありませんでした。   Re:i.MX8MP MIPI CSI2帯域幅制限 どのレーンを設定しますか?そして、どうやって1350Mbps /レーンを手に入れますか?ツールで?また、どのHSSETTLEを設定しますか?ERR_SOT_HSエラーの場合は、HSSETTLEを設定して修正する必要があります
View full article
マッサージチェア用3相ホールセンサー <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 形容 ブロック図 製品 関連ドキュメント 関連ソフトウェア コミュニティからの関連デモ 形容 NXPは、マッサージチェアのマッサージローラーのような電気ノイズの多い環境でのモータ制御に最適な、信頼性の高い5V電源MCUを提供しています。このアプリケーションに最適なモーター制御技術は、フィールド指向のモーター制御を備えた3相ホールセンサーPMSMモーター制御です。 ブロック図 製品 カテゴリ名1 MCU KE02-40 MHz 製品URL 1 https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/freedom-development-platform-for-kinetis-ke02-mcus:FRDM-KE02Z40M 製品説明1 KE02-40MHzマイコンには、6チャネルのFlexTimerが1台搭載されています。FlexTimersは、エッジアライメント、センターアライメント、および位相シフトPWM信号に対して4組の相補PWM信号を生成できます。これらの機能は、PMSMモータの機能をマスク、反転、および制御します。さらに、5Vの機能により、このMCUは高電気ノイズ環境で使用されるアプリケーションで高い信頼性を発揮します。 関連ドキュメント Document URL タイトル https://www.nxp.com/docs/en/application-note/AN5237.pdf Kinetis KVおよびKEにおけるセンサレスPMSMフィールド指向制御 https://www.nxp.com/docs/en/application-note/AN5294.pdf 低コストPMSMセンサレスフィールド - Rev. 1、2017年5月、アプリケーションノート KE02に基づく指向制御 https://www.nxp.com/docs/en/application-note/AN5380.pdf KE1xFでFTM、PDB、ADCを使用し、デュアルPMSM FOCとPFCを駆動 https://www.nxp.com/docs/en/application-note/AN4869.pdf FRDM-KE04Zとタワーボードに基づくホールセンサを用いたBLDCMの正弦波制御 関連ソフトウェア ソフトウェアURL https://www.nxp.com/webapp/Download?colCode=AN5309SW https://www.nxp.com/docs/en/application-note-software/AN5321SW.ZIP https://www.nxp.com/downloads/en/reference-applications/MCRSP_PMSM_V1.2.0.exe コミュニティからの関連デモ コミュニティデモのURL https://community.nxp.com/thread/465280 https://community.nxp.com/docs/DOC-101472 ブロック図 スマートホーム
View full article
P1023リファレンスデザインボードでのSDインターフェイスの有効化 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> p1023RDB の SPI ブートで SD インターフェイスを有効にするには: 1. u-boot で次の更新を実行します a) SPI ブートの場合に pm uxcr を変更して SD バスを有効にします b) u-boot 2 の対応する静的マルチプレクサ インプリメンテーションを更新します。Linuxで次の更新を実行しますa)デバイスツリーとカーネルdefconfigからIFCを無効にします SDインターフェースを有効にするためのパッチの詳細を以下に示します。zip ファイル AN4336SW.zipu-boot と Linux のパッチは、このアプリケーションノートに付属しています。ファイルはからダウンロードできます [1]. U-Boot QorIQ SDK 1.0.1 isoからu-bootコードを抽出します。 パッチ u-boot-p1023rdb-enabling-sd-in-spi-boot.patch を適用します。 SPI フラッシュの "make" コマンドを使用して u-boot をコンパイルします    make ARCH=powerpc   CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnu- p1023RDB_SPIFLASH boot_format ユーティリティを使用して、スピイメージを生成します。詳細については、SDK マニュアルを参照してください。 上記のビルドされた spiimage で SPI フラッシュを更新します Linux QorIQ SDK 1.0.1 isoからのLinuxソース・コードの抽出 パッチ linux-p1023rdb-enabling-sd-in-spi-boot.patch を適用します。 makeコマンドを使用してLinuxをコンパイルします #make ARCH=powerpc  CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnuarch/  powerpc/configs/qoriq_sdk_nonsmp_defconfig  #make ARCH=powerpc  CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnu- dts をコンパイルします ./sripts/dtc/dtc -f -I dts -O dtb -R 8 -S 0x3000  arc/powerpc/boot/dts/p1023rdb.dts.dts > p1023rdb.dtb.dtb 更新されたSPIブートローダー、Linux uImage、p1023rdb.dtbを使用すると、ユーザーは、p1023RDBでSDインターフェースを有効にできる必要があります。 手記 上記の変更は、ユーザーが SPI ブートを使用する SD インターフェイスを特に必要とする場合にのみ行う必要があります。 他のすべてのブート方法では、これらのパッチを使用しないでください。 QorIQ P1デバイス
View full article
電源管理: RUN、VLPW、LLS モードの電源モニタ [SDK 2.0] <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、皆さん。 組み込みシステム業界は、機能を低下させることなくアプリケーションで低電力モードを使用して、バッテリー寿命の延長を目指し、電力管理のパフォーマンスを向上させるために製品を最適化する傾向があります。これを念頭に置いて、これらのコンパクトなデバイス、電源モニターの要件が発生します。 このドキュメントでは、Kinetisファミリのさまざまな電源モードで使用できるいくつかの機能について簡単に説明します。また、KSDK 2.0を使用してこれらの機能を実装し、電源電圧を監視し、この電圧が決定値に低下したことを検出する方法に焦点を当てます。このドキュメントはマイコンK21に基づいていますが、同じ原理をKinetisのK/Lファミリに適用することができます。IDEとしてKDS 3.2を使用し、ターゲットとしてTWR-K21F120M評価ボードを使用します。   お役に立てれば幸いです よろしくお願いいたします。 Jorge Alcala Kinetis KシリーズMCU Kinetis Lシリーズ・マイクロコントローラ
View full article
RDS12GHVAC:S12G自動車用HVAC制御プラットフォーム <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Overview 特長 ブロック図 設計・リソース Overview NXP ®  S12G車載用HVACプラットフォーム・リファレンス・ソリューションは、スケーラブルなS12G 16ビット・マイクロコントローラ・ファミリとMC33905、MC33932、およびMC33937アナログ・デバイスを使用して、ステッピング、DC、およびBLDCモータを駆動し、車載HVACアプリケーション向けの機能豊富なソリューションを提供します。 中央制御盤(HMI、モータ制御基板、フラップモータ、ブロワモータ) 温度、光、湿度、空気質のセンシングインターフェースと設定可能な自動気候制御ソフトウェアアルゴリズムを使用して、車両の気候を効率的に制御する自動HVACの基本機能を実現 全体的な設計作業を削減し、市場投入までの時間を短縮し、12Vと24Vの両方のシステムに合わせて調整可能 特長 3種類のモーター制御センサーレスBLDC DCステッピングモーター 自動環境制御 複数の温度ゾーンのサポート 超低電力モード、HMIまたはLIN CANバスでウェイクアップ可能 CANおよびLIN通信インターフェース 3 x 3マトリクス・キーパッドと2つのエンコード・ノブ入力 4 x 37セグメントLCDと調整可能なバックライト 温度、明るさ、湿度、大気向けセンサ・インターフェースが利用可能 コンプレッサ霜取りモジュールへの2つのロジックリレーインターフェース 日時のリアルタイム表示、カレンダ用に調整 タッチ・キーボードまたはタッチスクリーン・ボードで拡張機能 12ボルトと24ボルトの両方のHVACシステムに適しています ブロック図 設計・リソース レガシーデザイン
View full article
快速简便地设置 i.MX 评估板,通过 USB 对 i.MX 板进行编程 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 例如,i.MX 评估板可以作为在工厂中对 i.MX 板进行编程的简单解决方案。 i.MX 评估板不适用于工业用途,但您可以在网上找到大量便宜的 i.MX 工业板。 这里我使用 i.MX8QXP rev B0 MEK 板,并将对 i.MX6Q SABRE SD 板进行编程。 第一步是生成图像。按照文档步骤生成“验证”图像。 您将需要稍微定制一下 local.conf 文件(在 conf/local.conf 中)以包含 git、cmake、gcc 和其他缺失的包。 编辑 local.conf 并在文件末尾添加以下行: IMAGE_INSTALL_append = " git cmake htop packagegroup-core-buildessential xz p7zip rsync"‍‍‍‍‍ 我已经在本地添加了 rsync 包,它可以替代 cp(复制),但使用 --progress 选项您可以看到复制进度。P7zip 取代了我们在 nxp.com 上提供的图像档案的解压缩,以解决大文件的问题。 然后重新烘焙你的图像: bitbake -k fsl-image-validation-imx‍‍‍‍‍ 完成后,进入 tmp/deploy/image/ 并使用 uuu 对你的电路板进行编程(我使用 SD 卡;因此我可以轻松增加分区): sudo ./uuu -b sd_all imx-boot-imx8qxpmek-sd.bin-flash fsl-image-validation-imx-imx8qxpmek.sdcard.bz2/*‍‍‍‍‍ 由于 rootfs 可能太小,因此可以使用 Linux 下的 gparted 来增加分区的大小。 放入 SD 卡并启动您的主板。 这里是肮脏的部分...... 您可能知道 archlinux|ARM 网站( Arch Linux ARM ),那里有很多预编译的包。因此,您可以在板上下载它,并将文件复制到 /usr 文件夹中(例如,您可以使用它来获取最新的 openSSL!)。 将以太网电缆插入主板并检查其是否已启动: ifconfig -a ifconfig eth0 up‍‍‍‍‍‍‍‍‍‍ 现在您应该可以访问互联网了。 在 uuu 网页上,您可以找到所需的所有软件包(这里我使用的是 4.14.98_2.0.0 Linux): mkdir missinglibs cd missinglibs wget http://mirror.archlinuxarm.org/aarch64/core/bzip2-1.0.8-2-aarch64.pkg.tar.xz wget http://mirror.archlinuxarm.org/aarch64/core/nettle-3.5.1-1-aarch64.pkg.tar.xz wget http://mirror.archlinuxarm.org/aarch64/core/libusb-1.0.22-1-aarch64.pkg.tar.xz wget http://mirror.archlinuxarm.org/aarch64/extra/libzip-1.5.2-2-aarch64.pkg.tar.xz wget http://mirror.archlinuxarm.org/aarch64/core/zlib-1:1.2.11-3-aarch64.pkg.tar.xz wget http://mirror.archlinuxarm.org/aarch64/extra/p7zip-16.02-5-aarch64.pkg.tar.xz cd ..‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 等待所有档案下载完毕(否则您将在档案下载之前解压缩)因为 wget 正在后台运行! 现在解压档案并将其复制到 rootfs(脏)中: tar -xJf libzip-1.5.2-2-aarch64.pkg.tar.xz tar -xJf libusb-1.0.22-1-aarch64.pkg.tar.xz tar -xJf nettle-3.5.1-1-aarch64.pkg.tar.xz tar -xJf bzip2-1.0.8-2-aarch64.pkg.tar.xz cp zlib-1:1.2.11-3-aarch64.pkg.tar.xz zlib tar -xJf zlib tar -xJf p7zip-16.02-5-aarch64.pkg.tar.xz cd usr sudo cp -R . /usr cd ../../ ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 下载并编译uuu: git clone git://github.com/NXPmicro/mfgtools.git cd mfgtools/ cmake . make‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 例如,在 nxp.com 上下载图像。 我已经下载了 i.MX6 4.14.98_2.0.0 图像并将其放在 USB 密钥上。 然后将其解压到uuu文件夹中: 7z e L4.14.98_2.0.0_ga_images_MX6QPDLSOLOX.zip‍‍‍‍ 正如之前提到的,unzip 无法处理大文件...所以像我一样使用 7z 将 i.MX6Q SABRE SD 插入 i.MX8X 并对 i.MX6 开发板进行编程: ./uuu uuu.auto-imx6qsabresd‍ uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.3.74-0-g64eeca1 Success 1 Failure 0 ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano i.MX6_全部 i.MX6DL i.MX6 双核 i.MX6DualPlus6QuadPlus i.MX6 四核 i.MX6S i.MX6SL i.MX6SoloX i.MX6UL
View full article
Dictum Health - 一連のケアにおける次の進化 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Demo バーチャルドクター       特長 いつでもどこでも患者と臨床医をつなぎ、安全な患者データ、バイタルサイン、診断、ビデオ会議を実現します Integrated Medical Tablet IDM100は、臨床および家庭での使用向けに設計された安全なHIPAA準拠のヘルスケアプラットフォームです NXPのIMX6x MCUを搭載し、Healthcare AFEリファレンスデザインを使用して試作   NXPの推奨事項 i.MX 6Dualプロセッサ|高性能3Dグラフィックス Kinetis K20 100MHz|ARM Cortex-M4|32ビットUSB MCU i.MXプロセッサ用パワー・マネジメント   リンク ディクタムヘルス   P13 オートモーティブ
View full article
占有センサーノード <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Overview 特長 ブロック図 ボード 設計・リソース Overview Occupancy Sensor Node リファレンス・デザインは、コンパクトなフォーム・ファクタのオープン・ソース・デザインです。これにより、ThreadやZigBeeなどのIEEE 802.15.4プロトコルに基づく低電力ノードが、ワイヤレスセンサーネットワークにデータを通信できます。NXPは、ハードウェア評価ボードと開発ボード、ソフトウェア開発IDE、デモアプリケーションとドライバなどのツールとソフトウェアでKinetis KW2xDを補完します。 特長 MKW24D512 802.15.4 Kinetis MCU Threadネットワーク用のIEEE 802.15.4に完全準拠したワイヤレスノード 統合PCB蛇行水平アンテナ 2つの割り込み押しボタンスイッチ(LLWU) 1 FXOS87000CQ Combo sensor 1コイン電池ホルダー 1 EEPROM 1 バッテリー充電器 ブロック図 ボード 設計・リソース レガシーデザイン
View full article