Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
P2020 消費電力 P2020プロセッサについて質問があります、P2020NXE2KHC。ご助言いただけますでしょうか。データシート(P2020EC rev.3)の34ページに記載されているコア消費電力データに関して、各VDDピン(またはブロック)ごとの消費電力の内訳や割合を示す情報はありますか? VDDピンは34本あります(ピン番号K10~K20、L10、L20、.....、Y18、Y19、Y20)。例えば、VDD1~VDD7がコア0の約xx%を占め、VDD8~VDD34がコア1の約xx%を占め、AVDD_CORE0がxx%を占め、AVDD_CORE1がxx%を占めるといったデータはありますか? データシートには、第1コアが100%の利用率で動作し、第2コアが50%の利用率で動作するテスト条件が記載されている。 このことから、各VDDピンまたはブロック間で消費電力に違いが生じるものと推測されます。 事前に感謝いたします。 Re: P2020 Power consumption P2020NXE2KHC / P2020EC Rev. 3に関して、NXPがVDDピンごとの電力内訳やCore0/Core1の電力パーセンテージを提供しているという証拠は見当たりません。入手可能なデータは、個々のVDDボールや特定のコアへの割り当てとしてではなく、レールレベルの総電力として扱うべきである。 文書化されている内容: 項目 ドキュメントが提供するもの VDDピン 34個のVDDボールはまとめて「VDD - コア電源」として記載されており、データシートのピン表では、Core0用のVDD1~VDD7とCore1用のVDD8~VDD34に分けられていません。 AVDD_CORE0 / AVDD_CORE1 これらは、それぞれピンF15とF16で、コアPLL0電源とコアPLL1電源として識別されます。 コアパワー表 表5は、定義された周波数、VDD、接合部温度、および電力モード条件におけるP2020コアの消費電力を示しています。例えば、1.05V、125℃の場合、最大電力は800MHzで6.1Wから1333MHzで7.2Wまでとなっています。 表5の適用範囲 NXPのサポートは、表5のP2020コア電力値は両方のコアの価値であり、どちらか一方のコアを倍増させるものではないと説明しました。 入出力電源 表6は、DDR、PCI Express、eLBC、eTSEC、シリアルRapidIO、SGMII、eSDHC、USB、eSPI、DUART、I²C、GPIOなどのインターフェース/ブロックごとの推定I/O電力を示しています。 ピンごとのデータ NXPのサポートドキュメントには明確に「これらの部品のピンごとのパワー値を生成する予定はありません」と明記されています。  例えば、あなたの例の質問 — 「VDD1からVDD7はCore0のxx%、Core1はVDD8からVDD34、AVDD_CORE0はxx%、AVDD_CORE1 xx%」という質問についてですが、答えはこうです:その割り当てデータは取得したNXPのドキュメント/サポート資料には含まれていません。VDDボールは、コアごとまたはピンごとに個別に指定するのではなく、共通のコア電源ネットワークとして扱うべきである。これは、NXP P2020のリファレンス回路図の注記にも記載されているように、P2020では、シングルコアデバイスとデュアルコアデバイスの両方でVDDピンがすべて共通であるという記述とも一致しています。 あなたの推論は物理的に妥当です。一方のコアが100%の利用率で、もう一方のコアが50%の利用率の場合、ダイ内部の瞬間的な電流分布は完全に均一にはなりません。しかし、公開されているP2020ECのデータには、その内部分布は示されていない。基板レベルの電力設計、レギュレータサイズ、PDN、熱解析では、個々のVDDピンやコアにパーセンテージを割り当てるのではなく、表5のVDD/AVDDコアの総電力と表6の該当するI/O電力推定値を用いてください。 要点:NXPはP2020コアレールの合計電力を提供しており、VDDピンごとやCore0/Core1の割合の内訳ではありません。すべてのVDDピンは、表5の電力値から共通コア電源および設計として扱ってください。
查看全文
PN7642のクリック音の問題 皆さん、こんにちは。  2秒間オフの後に再びRFフィールドをオンにするとカチカチという音が鳴ります。私のソフトウェアにはlpuart/GPIO/CardDetectのタスクがあります。カードが検出されると、ブザーで2秒が発動しました(RFフィールドは2秒オフ)。以下は関連するコードです。 void CardDetect ( void * pParams) { phStatus_t st; uint32_t dwStatus = 0; uint16_t wStatus = 0; uint16_t wTagsDetected; uint8_t bAtqa[2] = {0x00}; phOsal_ThreadSecureStack(512); /*ディスクループ設定を初期化します(1回のみ) */ st = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_TYPEA_DEVICE_LIMIT, 1); st = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_BAIL_OUT, PHAC_DISCLOOP_POS_BIT_MASK_A); ( 1) { DEBUG_PRINTF( "\r\n[CardDetect] 検出準備完了\r\n" ); /* ---- DiscLoop ポール(追加のRFトグルなし、ビープ音なし)---- */ do { st = phhalHw_FieldOff(pHal); CHECK_STATUS(st); // st = phhalHw_Wait(pHal, PHHAL_HW_TIME_MICROSECONDS, 5100); CHECK_STATUS( st ); vTaskDelay(pdMS_TO_TICKS(100)); if (Buzzer_Status==2) { vTaskDelay(pdMS_TO_TICKS(2000)); } else if (Buzzer_Status==1) { vTaskDelay(pdMS_TO_TICKS(200)); } st = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE、 PHAC_DISCLOOP_POLL_STATE_DETECTION); CHECK_STATUS(st); st = phacDiscLoop_Run(pDiscLoop, PHAC_DISCLOOP_ENTRY_POINT_POLL ); /* カードなし:RFデューティサイクルを短縮するための短い遅延とビープ音 */ // if (( st & PH_ERR_MASK) != PHAC_DISCLOOP_DEVICE_ACTIVATED) { // vTaskDelay(pdMS_TO_TICKS(200)); // } } while ((st & PH_ERR_MASK) != PHAC_DISCLOOP_DEVICE_ACTIVATED); /* ---- カードが検出されました ---- */ st = phacDiscLoop_GetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_TECH_DETECTED、&wTagsDetected); if ((st & PH_ERR_MASK) != PH_ERR_SUCCESS) continue ; if (!PHAC_DISCLOOP_CHECK_ANDMASK(wTagsDetected, PHAC_DISCLOOP_POS_BIT_MASK_A))続行; /* UID / ATQA / SAK を出力 */ DEBUG_PRINTF( "\r\n[CardDetect] UID: " ); phApp_Print_Buff(pDiscLoop-> sTypeATargetInfo . aTypeA_I3P3 [0]. aUid 、 pDiscLoop-> sTypeATargetInfo 。 aTypeA_I3P3 [0]。 bUidSize ); DEBUG_PRINTF( "\r\n[CardDetect] ATQA: " ); phApp_Print_Buff(pDiscLoop-> sTypeATargetInfo.aTypeA_I3P3 [ 0] .aAtqa , 2 ); DEBUG_PRINTF( "\r\n[CardDetect] SAK: 0x%02X\r\n" , pDiscLoop- > sTypeATargetInfo.aTypeA_I3P3 [0] .aSak ) ; /* Bridge DiscLoop ?phNfcLib stateでカードプロセッシング機能が動作します */ Bridge_DiscLoopToNfcLib(); // DEBUG_PRINTF(" \r\n[CardDetect] ATQA=0x%04X SAK=0x%02X アクティブ化されたタイプ: %d (0x%08X)、UID len =%d \r\n", // PeerInfo.uTi.uInitiator.tIso14443_3a.wAtqa, // PeerInfo.uTi.uInitiator.tIso14443_3a.bSak, // ( int )PeerInfo.dwActivatedType、 // (unsigned int )PeerInfo.dwActivatedType、 // PeerInfo.uTi.uInitiator.tIso14443_3a.bUidLength); /* 検出されたカードを処理する */ switch(PeerInfo.dwActivatedType) { CASE E_PH_NFCLIB_MIFARE_CLASSIC_1K: case E_PH_NFCLIB_MIFARE_CLASSIC_4K: DEBUG_PRINTF(" \r\n[CardDetect] => MIFARE Classic \r\n"); dwStatus = NfcLib_MifareClassic_1k_Reference_app(); 壊す; ケースE_PH_NFCLIB_TYPEA_LAYER4: DEBUG_PRINTF( " \r\n[CardDetect] => タイプ A レイヤー 4 (CPU カード) \r\n" ); dwStatus = NfcLib_Layer4TypeA_Reference_app(); 壊す; デフォルト: DEBUG_PRINTF( " \r\n[CardDetect] => 不明なタイプ、処理されません \r\n" ); dwStatus = PH_NFCLIB_STATUS_INTERNAL_ERROR; 壊す; } /* phNfcLibの状態をリセットしてDiscLoopが再度ポーリングできるようにしてください */ gphNfcLib_State.bNfcLibState = eNfcLib_InitializedState ;​ /* ---- カードの取り外しを待つ ---- */ DEBUG_PRINTF( "\r\n[CardDetect] カードを取り外してください\r\n" ); st = phhalHw_FieldReset(pHal); CHECK_STATUS(st); /* UART経由でレポートカードのUIDと認証結果を送信 */ // st = phhalHw_FieldOff(pHal); CHECK_STATUS( st ); //vTaskDelay(pdMS_TO_TICKS(50)); report_card_result(( uint8_t )dwStatus); vTaskDelay(pdMS_TO_TICKS(100)); do { wStatus = ( uint16_t )phpalI14443p3a_WakeUpA( pDiscLoop-> pPal1443p3aDataParams 、 pDiscLoop- > sTypeATargetInfo.aTypeA_I3P3 [0] .aAtqa ) ; if (wStatus != PH_ERR_SUCCESS) 壊す; ( void )phpalI14443p3a_HaltA(pDiscLoop-> pPal1443p3aDataParams ); //phhalHw_Wait(pHal, PHHAL_HW_TIME_MILLISECONDS, 50); vTaskDelay(pdMS_TO_TICKS(50)); } while (1); //while(Buzzer_Status); } } void Buzzer_Burst_2S ( void ) { uint32_t i; ブザーの状態 = 2; ( i = 0; i < 2000; i++) { GPIO_PinWrite (DEMO_BUZZER_GPIO_PIN, 0U); DelayUs(BUZZER_HALF_PERIOD_US); GPIO_PinWrite (DEMO_BUZZER_GPIO_PIN, 1U); DelayUs(BUZZER_HALF_PERIOD_US); } GPIO_PinWrite (DEMO_BUZZER_GPIO_PIN, 1U); ブザーの状態 = 0; } void Led_Task ( void *pDataParams) { ( void )pDataParams; uint32_t tick = 0; uint8_t led_on = 0; uint8_t led_reset = 0; uint32_t blink_ticks = 0; card_status_t prev_status = CARD_STATUS_IDLE ; uint32_t prev_seq = 0; bool beep_done = false; phOsal_ThreadSecureStack(512); のために(;;) { if (g_card_status != prev_status || g_card_event_seq != prev_seq) { prev_status = g_card_status; prev_seq = g_card_event_seq; ティック = 0; led_on = 0; led_reset = 0; blink_ticks = 0; beep_done = false; } スイッチ (g_card_status) { ケースCARD_STATUS_ACCESS_GRANTED: { /* LED1 緑色 250ms 点滅 */ GPIO_PinWrite (LED2_GPIO_PIN, 1U); if (++tick >= BLINK_FAST_TICKS) { tick = 0; led_on = !led_on; } GPIO_PinWrite (LED1_GPIO_PIN, led_on ? 0U : 1U); led_reset = 0; /* リレーパルス:最初の100msはオン、その後オフ */ if (blink_ticks < 2) GPIO_PinWrite (RELAY_GPIO_PIN, 0U); そうでない場合、 GPIO_PinWrite (RELAY_GPIO_PIN, 1U); /* 100ms間隔で150msのビープ音を2回鳴らします */ if (!beep_done) { beep_done = true; ブザー音(); } if (++blink_ticks >= SEQUENCE_TICKS) g_card_status = CARD_STATUS_IDLE ; 壊す; } ケースCARD_STATUS_ACCESS_DENIED: { /* LED2 赤 500ms 点滅 */ GPIO_PinWrite (LED1_GPIO_PIN, 1U); if (++tick >= BLINK_SLOW_TICKS) { tick = 0; led_on = !led_on; } GPIO_PinWrite (LED2_GPIO_PIN, led_on ? 0U : 1U); led_reset = 0; /* 2秒ごとに1回のビープ音 */ if (!beep_done) { beep_done = true; ブザーが2秒間鳴り続ける(); } if (++blink_ticks >= SEQUENCE_TICKS) g_card_status = CARD_STATUS_IDLE ; 壊す; } デフォルト: /* アイドル状態: LED1点灯、LED2消灯、リレーオフ */ if (!led_reset) { led_reset = 1; GPIO_PinWrite (LED1_GPIO_PIN, 0U); GPIO_PinWrite (LED2_GPIO_PIN, 1U); GPIO_PinWrite (RELAY_GPIO_PIN, 1U); ティック = 0; led_on = 0; } 壊す; } vTaskDelay(pdMS_TO_TICKS(TICK_MS)); } } #define RX_TASK_PRIORITY 3 #define TX_TASK_PRIORITY 3 #define CARD_TASK_PRIO 2 #define UART_TASK_PRIO 3 #define LED_TASK_PRIO 4 なぜRFフィールドをオンにした後にカチカチという音がするのですか?そして、この問題をどうやって大事にすればいいのか。 ありがとうございます。 イーソン Re: PN7642 clicking sound issue こんにちは@wangea お客様が直面されている問題は、オンラインデバッグが必要です。例えば、RFをオフにしてから再びオンにした後、アプリケーションはどのような動作をしましたか?クリック音はブザーの動作によるものかもしれません。適切なブレークポイントを設定し、オンラインデバッグを実行して問題を特定することをお勧めします。 Re: PN7642 clicking sound issue こんにちは、NXPさん。 他に誰かが、なぜ2秒間オフ後にRFフィールドをオンにすると必ずカチカチという音がするのか説明できるでしょう。ブザーは2秒間一度だけ作動しましたが、その後はRFフィールドをオン・オフするたびにカチカチという音が鳴りました。 ありがとうございます。
查看全文
PN7642 clicking sound issue Hello All,  A clicking sound occurs when the RF field is turned on again after being off for 2 seconds. there are lpuart/gpio/carddetect task with my software. after card detected, buzzer activated 2s(RF field off for 2s). below are the relevant codes. void CardDetect(void* pParams) { phStatus_t st; uint32_t dwStatus = 0; uint16_t wStatus = 0; uint16_t wTagsDetected; uint8_t bAtqa[2] = {0x00}; phOsal_ThreadSecureStack(512); /* Init disc loop config (once) */ st = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_TYPEA_DEVICE_LIMIT, 1); st = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_BAIL_OUT, PHAC_DISCLOOP_POS_BIT_MASK_A); while(1) { DEBUG_PRINTF("\r\n[CardDetect] Ready to detect\r\n"); /* ---- DiscLoop poll (no extra RF toggle, no beep) ---- */ do { st = phhalHw_FieldOff(pHal); CHECK_STATUS(st); // st = phhalHw_Wait(pHal, PHHAL_HW_TIME_MICROSECONDS, 5100); CHECK_STATUS(st); vTaskDelay(pdMS_TO_TICKS(100)); if(Buzzer_Status==2) { vTaskDelay(pdMS_TO_TICKS(2000)); } else if(Buzzer_Status==1) { vTaskDelay(pdMS_TO_TICKS(200)); } st = phacDiscLoop_SetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE, PHAC_DISCLOOP_POLL_STATE_DETECTION); CHECK_STATUS(st); st = phacDiscLoop_Run(pDiscLoop, PHAC_DISCLOOP_ENTRY_POINT_POLL); // /* No card: brief delay to reduce RF duty cycle & beeping */ // if ((st & PH_ERR_MASK) != PHAC_DISCLOOP_DEVICE_ACTIVATED) { // vTaskDelay(pdMS_TO_TICKS(200)); // } } while((st & PH_ERR_MASK) != PHAC_DISCLOOP_DEVICE_ACTIVATED); /* ---- Card detected ---- */ st = phacDiscLoop_GetConfig(pDiscLoop, PHAC_DISCLOOP_CONFIG_TECH_DETECTED, &wTagsDetected); if ((st & PH_ERR_MASK) != PH_ERR_SUCCESS) continue; if (!PHAC_DISCLOOP_CHECK_ANDMASK(wTagsDetected, PHAC_DISCLOOP_POS_BIT_MASK_A)) continue; /* Print UID / ATQA / SAK */ DEBUG_PRINTF("\r\n[CardDetect] UID: "); phApp_Print_Buff(pDiscLoop->sTypeATargetInfo.aTypeA_I3P3[0].aUid, pDiscLoop->sTypeATargetInfo.aTypeA_I3P3[0].bUidSize); DEBUG_PRINTF("\r\n[CardDetect] ATQA: "); phApp_Print_Buff(pDiscLoop->sTypeATargetInfo.aTypeA_I3P3[0].aAtqa, 2); DEBUG_PRINTF("\r\n[CardDetect] SAK: 0x%02X\r\n", pDiscLoop->sTypeATargetInfo.aTypeA_I3P3[0].aSak); /* Bridge DiscLoop �?phNfcLib state so card processing functions work */ Bridge_DiscLoopToNfcLib(); // DEBUG_PRINTF(" \r\n[CardDetect] ATQA=0x%04X SAK=0x%02X Activated type: %d (0x%08X), UID len=%d \r\n", // PeerInfo.uTi.uInitiator.tIso14443_3a.wAtqa, // PeerInfo.uTi.uInitiator.tIso14443_3a.bSak, // (int)PeerInfo.dwActivatedType, // (unsigned int)PeerInfo.dwActivatedType, // PeerInfo.uTi.uInitiator.tIso14443_3a.bUidLength); /* Process detected card */ switch(PeerInfo.dwActivatedType) { case E_PH_NFCLIB_MIFARE_CLASSIC_1K: case E_PH_NFCLIB_MIFARE_CLASSIC_4K: DEBUG_PRINTF(" \r\n[CardDetect] => MIFARE Classic \r\n"); dwStatus = NfcLib_MifareClassic_1k_Reference_app(); break; case E_PH_NFCLIB_TYPEA_LAYER4: DEBUG_PRINTF(" \r\n[CardDetect] => Type A Layer 4 (CPU Card) \r\n"); dwStatus = NfcLib_Layer4TypeA_Reference_app(); break; default: DEBUG_PRINTF(" \r\n[CardDetect] => Unknown type, not handled \r\n"); dwStatus = PH_NFCLIB_STATUS_INTERNAL_ERROR; break; } /* Reset phNfcLib state so DiscLoop can poll again */ gphNfcLib_State.bNfcLibState = eNfcLib_InitializedState; /* ---- Wait for card removal ---- */ DEBUG_PRINTF("\r\n[CardDetect] Please remove card\r\n"); st = phhalHw_FieldReset(pHal); CHECK_STATUS(st); /* Report card UID + auth result via UART */ //st = phhalHw_FieldOff(pHal); CHECK_STATUS(st); //vTaskDelay(pdMS_TO_TICKS(50)); report_card_result((uint8_t)dwStatus); vTaskDelay(pdMS_TO_TICKS(100)); do { wStatus = (uint16_t)phpalI14443p3a_WakeUpA( pDiscLoop->pPal1443p3aDataParams, pDiscLoop->sTypeATargetInfo.aTypeA_I3P3[0].aAtqa); if (wStatus != PH_ERR_SUCCESS) break; (void)phpalI14443p3a_HaltA(pDiscLoop->pPal1443p3aDataParams); //phhalHw_Wait(pHal, PHHAL_HW_TIME_MILLISECONDS, 50); vTaskDelay(pdMS_TO_TICKS(50)); } while(1); //while(Buzzer_Status); } } void Buzzer_Burst_2S(void) { uint32_t i; Buzzer_Status = 2; for (i = 0; i < 2000; i++) { GPIO_PinWrite(DEMO_BUZZER_GPIO_PIN, 0U); DelayUs(BUZZER_HALF_PERIOD_US); GPIO_PinWrite(DEMO_BUZZER_GPIO_PIN, 1U); DelayUs(BUZZER_HALF_PERIOD_US); } GPIO_PinWrite(DEMO_BUZZER_GPIO_PIN, 1U); Buzzer_Status = 0; } void Led_Task(void *pDataParams) { (void)pDataParams; uint32_t tick = 0; uint8_t led_on = 0; uint8_t led_reset = 0; uint32_t blink_ticks = 0; card_status_t prev_status = CARD_STATUS_IDLE; uint32_t prev_seq = 0; bool beep_done = false; phOsal_ThreadSecureStack(512); for (;;) { if (g_card_status != prev_status || g_card_event_seq != prev_seq) { prev_status = g_card_status; prev_seq = g_card_event_seq; tick = 0; led_on = 0; led_reset = 0; blink_ticks = 0; beep_done = false; } switch (g_card_status) { case CARD_STATUS_ACCESS_GRANTED: { /* LED1 green 250ms blink */ GPIO_PinWrite(LED2_GPIO_PIN, 1U); if (++tick >= BLINK_FAST_TICKS) { tick = 0; led_on = !led_on; } GPIO_PinWrite(LED1_GPIO_PIN, led_on ? 0U : 1U); led_reset = 0; /* Relay pulse: first 100ms ON, then OFF */ if (blink_ticks < 2) GPIO_PinWrite(RELAY_GPIO_PIN, 0U); else GPIO_PinWrite(RELAY_GPIO_PIN, 1U); /* Two 150ms beeps with 100ms gap */ if (!beep_done) { beep_done = true; Buzzer_Burst(); } if (++blink_ticks >= SEQUENCE_TICKS) g_card_status = CARD_STATUS_IDLE; break; } case CARD_STATUS_ACCESS_DENIED: { /* LED2 red 500ms blink */ GPIO_PinWrite(LED1_GPIO_PIN, 1U); if (++tick >= BLINK_SLOW_TICKS) { tick = 0; led_on = !led_on; } GPIO_PinWrite(LED2_GPIO_PIN, led_on ? 0U : 1U); led_reset = 0; /* Single beep every 2s */ if (!beep_done) { beep_done = true; Buzzer_Burst_2S(); } if (++blink_ticks >= SEQUENCE_TICKS) g_card_status = CARD_STATUS_IDLE; break; } default: /* IDLE: LED1 on, LED2 off, relay off */ if (!led_reset) { led_reset = 1; GPIO_PinWrite(LED1_GPIO_PIN, 0U); GPIO_PinWrite(LED2_GPIO_PIN, 1U); GPIO_PinWrite(RELAY_GPIO_PIN, 1U); tick = 0; led_on = 0; } break; } vTaskDelay(pdMS_TO_TICKS(TICK_MS)); } } #define RX_TASK_PRIORITY 3 #define TX_TASK_PRIORITY 3 #define CARD_TASK_PRIO 2 #define UART_TASK_PRIO 3 #define LED_TASK_PRIO 4 why there is the clicking sound after turning on the RF field? and how can i slove this issue. Thanks. Eason Re: PN7642 clicking sound issue Hello @wangea The problem you're facing requires online debugging. For example, what did your application do after the RF was turned off and then on again? The clicking sound might be due to a buzzer operation. We suggest you set appropriate breakpoints and debug online to trace the issue! Re: PN7642 clicking sound issue Hello NXP, anyone else could explain why there is always a clicking noise with the RF field when turning on the RF field after being off for 2 seconds.  Buzzer only activated once for 2s, but afterwords, each time the RF field is switched on or off, there was a clicking noise. Thanks.
查看全文
LID2580 EVAL-Bord PCB設計 8GHz RF信号線分布定数回路。 Q1、 これは何でしょうか?スタブの役割 回答1:インピーダンス整合スタブ? 回答2:スタブフィルタ? 回答3:不審な拒否スタブ? Q2、 ボード素材 回答2_1:FR4プリプレグを使用する理由は何ですか? Ans2_2: Ans2_1に関するマターですか Q3に関する件に関連して Q3、誘電体1および誘電体3の薄い Ans3_1:なぜ薄い0.3mmなのですか? Re: LID2580 UM12152 EVAL-Bord PCB design こんにちは、 プライベートメッセージを送りました。 良い1日を! よろしくお願いいたします。 リカルド
查看全文
P2020 功耗 我有一个关于P2020处理器(型号为P2020NXE2KHC)的问题。请问您能否提供一些建议?关于数据手册(P2020EC rev.3)第34页的核心功耗数据,是否有任何信息可以显示每个VDD引脚(或模块)的功耗细分或百分比分配? VDD 有 34 个引脚(引脚编号 K10 - K20、L10、L20、.....、Y18、Y19、Y20)。例如,是否有如下数据:VDD1 至 VDD7 约占 Core 0 的 xx%,VDD8 至 VDD34 约占 Core 1 的 xx%,AVDD_CORE0 占 xx%,AVDD_CORE1 占 xx%? 数据手册规定了一种测试条件,其中第一个核心的利用率为 100%,第二个核心的利用率为 50%。 基于此,我推测各个 VDD 引脚或模块的功耗会有所不同。 提前谢谢您。 Re: P2020 Power consumption 对于 P2020NXE2KHC / P2020EC Rev. 3,我没有看到任何证据表明 NXP 提供了逐引脚的 VDD 引脚或 Core0/Core1 的功耗百分比细分。应将可用数据视为总轨级功率,而不是分配给单个 VDD 焊球或特定内核的功率。 已记录的内容: 项目 文档提供了哪些内容? VDD引脚 34 个 VDD 焊球统称为“VDD — Core 电源” ;在数据手册引脚表中,它们没有被分为 Core0 的 VDD1…VDD7 和 Core1 的 VDD8…VDD34。 AVDD_CORE0 / AVDD_CORE1 这些分别被标识为核心 PLL0 电源和核心 PLL1 电源,位于引脚 F15 和 F16。 核心功率表 表 5 给出了P2020 内核在特定频率、VDD、结温和电源模式条件下的功耗;例如,在 1.05 V 和 125 °C 时,最大功率从 800 MHz 时的 6.1 W 到 1333 MHz 时的 7.2 W 不等。 表5的范围 NXP 支持人员澄清说,表 5 P2020 核心功耗值是两个核心的总功耗,而不是一个核心的功耗翻倍。 I/O 电源 表6列出了各接口/模块的估计I/O功耗,例如DDR、PCI Express、eLBC、eTSEC、串行RapidIO、SGMII、eSDHC、USB、eSPI、DUART、I²C和GPIO。 每引脚数据 NXP 的支持文档明确指出: “我们既没有也没有计划为这些器件生成每个引脚的功耗值。” 所以,对于您的示例问题——“VDD1 到 VDD7 占 Core0 的 xx%,VDD8 到 VDD34 占 Core1 的 xx%,AVDD_CORE0 占 xx%,AVDD_CORE1 占 xx%”——答案是:在检索到的 NXP 文档/支持材料中没有该分配数据。VDD 焊球应被视为一个公共核心供电网络,而不是按核心或引脚单独指定。这与 NXP P2020 参考原理图说明一致,该说明指出,对于 P2020,所有 VDD 引脚对于单核和双核设备都是通用的。 你的推理在物理上是合理的:当一个核心的利用率为 100%,而另一个核心的利用率为 50% 时,芯片内部的瞬时电流分布不会完全均匀。然而,已公布的 P2020EC 数据并未揭示这种内部分布情况。对于板级电源设计、稳压器尺寸、PDN 和热分析,请使用表 5 中的总 VDD/AVDD 内核功率加上表 6 中的适用 I/O 功率估算值,而不是尝试将百分比分配给各个 VDD 引脚或内核。 要点:NXP 提供的是 P2020 内核电源总功率,而不是每个 VDD 引脚或 Core0/Core1 的百分比细分;将所有 VDD 引脚视为公共内核电源,并根据表 5 中的总功率值进行设计。
查看全文
P2020 Power consumption I have a question on P2020 processor, P2020NXE2KHC. Would you please advise. Regarding the Core Power Consumption data on page 34 of the datasheet (P2020EC rev.3), is there any information available showing the power consumption breakdown or percentage allocation for each VDD pin (or block) ?   There are 34 VDD pins (pin# K10 - K20, L10, L20, ..... , Y18, Y19, Y20). For example, is there any data such as: VDD1 to VDD7 account for approximately xx% for Core 0, VDD8 to VDD34 account for approximately xx% for Core 1, AVDD_CORE0 accounts for xx%, and AVDD_CORE1 accounts for xx%? The datasheet specifies a test condition where the first core is operating at 100% utilization and the second core at 50%. Based on this, I assume there would be differences in power consumption among the respective VDD pin or blocks. Thank you in advance. Re: P2020 Power consumption For P2020NXE2KHC / P2020EC Rev. 3, I do not see evidence that NXP provides a VDD-pin-by-pin or Core0/Core1 percentage power breakdown. The available data should be treated as aggregate rail-level power , not as an allocation to individual VDD balls or to specific cores. What is documented: Item What the documentation provides VDD pins The 34 VDD balls are listed collectively as “VDD — Core Supply” ; they are not divided into VDD1…VDD7 for Core0 and VDD8…VDD34 for Core1 in the datasheet pin table.  AVDD_CORE0 / AVDD_CORE1 These are identified as Core PLL0 Supply and Core PLL1 Supply , at pins F15 and F16 respectively.  Core power table Table 5 gives P2020 Core Power Consumption at defined frequency, VDD, junction temperature, and power mode conditions; for example, at 1.05 V and 125 °C, maximum power is listed from 6.1 W at 800 MHz up to 7.2 W at 1333 MHz.  Scope of Table 5 NXP support clarified that the Table 5 P2020 core power value is for both cores , not one core to be doubled.  I/O power Table 6 provides estimated I/O power by interface/block, such as DDR, PCI Express, eLBC, eTSEC, serial RapidIO, SGMII, eSDHC, USB, eSPI, DUART, I²C, and GPIO.  Per-pin data NXP support documentation explicitly states: “We don't have nor plan to generate per pin power values for these parts.”  So, for your example question — “VDD1 to VDD7 account for xx% for Core0, VDD8 to VDD34 for Core1, AVDD_CORE0 for xx%, AVDD_CORE1 for xx%” — the answer is: that allocation data is not available in the retrieved NXP documentation/support material . The VDD balls should be considered a common core supply network, not separately specified per core or per pin. This is also consistent with an NXP P2020 reference schematic note stating that, for P2020, all VDD pins are common for both single- and dual-core devices .  Your reasoning is physically reasonable: with one core at 100% utilization and the other at 50%, the instantaneous internal current distribution inside the die will not be perfectly uniform. However, the published P2020EC data does not expose that internal distribution. For board-level power design, regulator sizing, PDN, and thermal analysis, use the total VDD/AVDD core power from Table 5 plus the applicable I/O power estimates from Table 6, rather than trying to assign percentages to individual VDD pins or cores.  Takeaway: NXP provides aggregate P2020 core-rail power, not a per-VDD-pin or Core0/Core1 percentage breakdown; treat all VDD pins as the common core supply and design from the total Table 5 power values.
查看全文
LID2580 EVAL-Bord PCB design 8GHz RF Signal Line Distributed constant circuit. Q1, What this?   The Role of a Stub  Ans_1 : Impedance matching Stub ?  Ans_2 : Stub Filter?   Ans_3 : Suprious Rejection Stub ? Q2, Bord Material Ans2_1 :  Why Use FR4 Prepreg ? Ans2_2:  Is the matter regarding Ans2_1                related to the matter regarding Q3 Q3, Dielectric1& Dielectric3 thin       Ans3_1 :Why thin 0.3mm? Re: LID2580 UM12152 EVAL-Bord PCB design Hello, I sent you a private message. Have a nice day! Regards, Ricardo
查看全文
MPC5777C MPU 是否有可能增加核心间时序干扰? 你好, 我想知道在 MPC5777C 中使用 MPU 是否会增加内存访问时间。具体来说,我想知道当两个核心同时执行通过 MPU 的访问时(例如,CPU0 对 PRAMC_0 的访问与 CPU1 对 EBI 的访问同时进行——两者都会经过 MPU_0)。 谢谢! 里卡多 Re: MPC5777C MPU potentially increasing inter-core timing interferences? 你好, MPU不会在两个核心之间引入任何额外的争用或延迟。MPU 使用组合逻辑独立且并行地评估其每个从端口上的访问——MPU 模块内部的从端口之间没有共享资源或序列化。 在您提供的具体示例中(CPU0 通过 MPU_0 从端口 1 访问 PRAMC_0,CPU1 通过 MPU_0 从端口 0 访问 EBI),两个从端口同时提供服务,MPU 端不会进行任何干扰。 核心间时序干扰的真正来源是 XBAR(交叉开关),当两个主设备同时访问同一个 XBAR 从设备端口时,XBAR 会仲裁访问权限。由于 PRAMC_0 和 EBI 是不同的 XBAR 从端口(分别是端口 2 和端口 1),因此您的示例场景也不会在 XBAR 级别引起争用。 顺祝商祺! Peter Re: MPC5777C MPU potentially increasing inter-core timing interferences? 希望以下文档对您有所帮助。顺便问一下,你为什么想知道时间安排?有任何相关的申请吗? AN12080:时钟监测单元 (CMU) – 应用笔记 AN12176:MPC5777C 时钟计算器指南 – 应用笔记 Re: MPC5777C MPU potentially increasing inter-core timing interferences? 谢谢大家的回复!@db16122 ,我正在评估在双核配置中使用 MPC5777C 的情况,该配置用于一个安全关键型应用,必须满足非常严格的准则——必须了解并表征内核之间所有潜在的干扰源,以确保我们的时序分析是安全的。正如@petervlna指出的,对共享资源的 XBAR 仲裁是一个已知的干扰源,我想知道如果我启用 MPU 来验证对其可保护的内存的访问,是否会发生类似的情况。令人欣慰的是,MPU 不是另一个资源争用点。 顺祝商祺! 里卡多
查看全文
S32G2 Enabling Multicore Application Hi, nxp fellows: We are preparing to use multi-core to run programs in the S32G274A chip, using A53 to run Linux and M7 to run LLCE_CAN. We referred to "Enabling Multicore Application on S32G2 using S32G2 Platform Software Integration", according to 5.2. Configure the bootloader, installed the recommended software packages, and configured them following the steps. zhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.png There is an error in 5.3. Build The Bootloader during compilation. The launch.bat file was edited. zhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.png An error occurred after running launch.bat.  zhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.png After commenting out the relevant code. zhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.png zhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.png I found the CryptoDal.h file in the installation directory. zhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.png zhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.png Where could there be any mistakes? Thanks. Re: S32G2 Enabling Multicore Application Hi,zhipeng Is Secure Boot enabled in the configuration? Try to enable the Secure boot, check if the issue will disappear. Joey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.png BR Joey Re: S32G2 Enabling Multicore Application Hi, @Joey_z  Yes, after adding, it will show "undeclared" on the third image. Commenting out will show "No such file or directory", on the fifth image. zhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.png "CryptoDal.h" is located in D:\NXP\Integration_Reference_Examples_S32G2_2022_06\code\framework\realtime\bsw\dal\cryptodal\generic\include "Hse_Ip.h" is located in D:\NXP\SW32G_RTD_4.4_3.0.2_HF01\eclipse\plugins\Crypto_TS_T40D11M30I2R0\include I have found both files in their respective folders, and the file paths are also written in launch.bat. The current problem feels like the plugin path was not included during the compilation process. BR Re: S32G2 Enabling Multicore Application Hi,zhipeng For your issue, will there be an error if the following contents are added? Is it commenting out won't cause an error? Joey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.png BR Joey 回复: S32G2 Enabling Multicore Application Hi,ZhiPeng Thank you for your information. Could you share more information with me? 1.Do you only boot ATF and uboot on A core? Have any output on the UART of A core? 2.What is the M core function? is it about the UART/CAN function? BR Joey 回复: S32G2 Enabling Multicore Application Hi, @Joey_z  The previous bootloader compilation was successful. Now, I have written the image into the NOR flash and after booting, there is no output on the UART. I referred to AN13750. Here are my operation steps: I followed the "S32G2_LinuxBSP_42.0_User_Manual.pdf", and installed u-boot bsp42.0-2022.04 and ATF bsp42.0-2.10 in Ubuntu 20. I modified s32_mmc.c and s32_common.mk according to 0001-fip-align-and-mmc-init.patch. zhipeng_0-1787646642108.pngzhipeng_0-1787646642108.pngzhipeng_0-1787646642108.pngzhipeng_0-1787646642108.png zhipeng_1-1787646670172.pngzhipeng_1-1787646670172.pngzhipeng_1-1787646670172.pngzhipeng_1-1787646670172.png zhipeng_2-1787646683855.pngzhipeng_2-1787646683855.pngzhipeng_2-1787646683855.pngzhipeng_2-1787646683855.png I compiled u-boot and ATF. make CROSS_COMPILE=/opt/S32G/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=aarch64 PLAT=s32g274ardb2 BL33=../u-boot/u-boot-nodtb.bin Image Layout DCD: Offset: 0x200 Size: 0x1c IVT: Offset: 0x1000 Size: 0x100 AppBootCode Header: Offset: 0x1200 Size: 0x40 Application: Offset: 0x1240 Size: 0x33e00 Boot Core: A53_0 IVT Location: SD/eMMC Load address: 0x342f8f00 Entry point: 0x34302000 I wrote the fip.s32 onto the SD card. After replacing the fip, the SD card was still able to boot, and the date of the u-boot changed. U-Boot 2022.04-00213-g5a6f62071f (Aug 24 2026 - 10:35:21 +0800) Configure the bootloader. zhipeng_3-1787647428751.pngzhipeng_3-1787647428751.pngzhipeng_3-1787647428751.pngzhipeng_3-1787647428751.png zhipeng_4-1787647490093.pngzhipeng_4-1787647490093.pngzhipeng_4-1787647490093.pngzhipeng_4-1787647490093.png zhipeng_5-1787647533346.pngzhipeng_5-1787647533346.pngzhipeng_5-1787647533346.pngzhipeng_5-1787647533346.png zhipeng_6-1787647547310.pngzhipeng_6-1787647547310.pngzhipeng_6-1787647547310.pngzhipeng_6-1787647547310.png Generate S32G Boot Image zhipeng_7-1787647657415.pngzhipeng_7-1787647657415.pngzhipeng_7-1787647657415.pngzhipeng_7-1787647657415.png select the bt_m7_blob.bin to write it to the address 0x0. select the fip.bin to write it to the address 0x100000. select theS32G274A_M7.bin to write it to the address 0x200000. zhipeng_8-1787647865193.pngzhipeng_8-1787647865193.pngzhipeng_8-1787647865193.pngzhipeng_8-1787647865193.png Now neither the UART nor the CAN is responding. Please help me analyze the situation. Thanks. 回复: S32G2 Enabling Multicore Application Hi, @Joey_z  Thanks for your reply. 1. Yes, only ATF and u-boot were booted on the A core. The UART did not have any output. 2. The M core ran the LLCE_CAN and Lpspi programs, integrating the "Can_Llce_DS_Loopback_S32G274A_M7" and "Lpspi_Ip_Transfer_S32G274A_M7" routines. It first used SPI communication and then ran LLCE_CAN. I would like to add some more information: 1. The entire process was carried out according to AN13750, with only a few differences: I used BSP42 and S32DS3.5 versions; I replaced the IPCF routines with LLCE_CAN and only configured M7_0. 2. I compiled BSP42 using Yocto and generated the.sdcard. After importing the SD card, Linux could be started. 3. I compiled the u-boot and ATF of BSP42 according to the "AN13750, 4. Prepare images for Cortex-A53 cores" section. After re-importing the.sdcard and fip.s32 into the SD card, Linux could still be started in SD mode. However, when importing the bootloader and fip.bin into the norflash, no output was obtained. 4. I burned a UART routine for the M7 core separately in the norflash, and Linux could be started and outputted. This proved that the burning tool and norflash were normal. 5. I burned the LLCE_CAN program separately in the norflash. The program did not run, and there was no CAN output. 6. I attempted to configure the EB bootloader to start A53 separately, but re-burning the norflash still did not result in any output. Thanks. 回复: S32G2 Enabling Multicore Application Hi,zhipeng 1. I understand that your LLCE_CAN is running on the M core. Please test the bootloader's startup of this program M core independently. During the startup process, do not load the A core Image. 2. In your testing, the bootloader can start the UART program of M7, but can it cannot start the LLCE_CAN? 3. Have you tried using the bootloader to only boot the A53?  I have created a new case for this issue in the system in Chinese, the case number is the: 01000969. This will facilitate communication. BR Joey
查看全文
UUU with iMX95 Hi, I want to download and run U-Boot on a iMX95 based system. I created this script cmd.lst: # { SDPS: boot -f flash.bin SDPS: done SDPV: delay 1000 SDPV: write -f flash.bin -skipspl SDPV: jump SDPV: done # } If I follow this commands step by step on command line it works fine.  But if I call => sudo /usr/bin/uuu -v -b ./cmd.lst  it hangs Wait for Known USB Device Appear... New USB Device Attached at 1:41-636B3EF4AB264648 1:41-636B3EF4AB264648>Start Cmd:SDPS: boot -f flash.bin 100%1:41-636B3EF4AB264648>Okay (3.007s) 1:41-636B3EF4AB264648>Start Cmd:SDPS: done 1:41-636B3EF4AB264648>Okay (0s) Is it not allowed to do this steps within one command list? Or what is wrong with this command list? Re: UUU with iMX95 Yes, SDPS and SDPV steps can be in one UUU command list. For i.MX95 the intended sequence is: first SDPS: boot -f flash.bin starts SPL, then SDPV: write -f flash.bin -skipspl and SDPV: jump complete/start U-Boot . The script examples I found use the same combined SDPS→SDPV flow without an SDPS: done between them . What is wrong in your case is most likely the done placement, and possibly the way you invoke the script: uuu_version 1.5.233 SDPS: boot -f flash.bin SDPV: delay 1000 SDPV: write -f flash.bin -skipspl SDPV: jump Run it as a custom script file directly: sudo /usr/bin/uuu -v ./cmd.lst not as: sudo /usr/bin/uuu -v -b ./cmd.lst The -b option is documented for UUU built-in scripts such as sd , emmc , sd_all , or emmc_all , while a custom script file is normally passed directly to uuu . Also, done is described as the last command for the whole flow, so putting SDPS: done immediately after the first boot stage can make UUU stop that stage and wait for the next known USB device instead of continuing cleanly into the SDPV stage . So I would change your file from: SDPS: boot -f flash.bin SDPS: done SDPV: delay 1000 SDPV: write -f flash.bin -skipspl SDPV: jump SDPV: done to: uuu_version 1.5.233 SDPS: boot -f flash.bin SDPV: delay 1000 SDPV: write -f flash.bin -skipspl SDPV: jump If it still waits at the SDPS→SDPV transition, try a newer UUU release; one i.MX95 report specifically recommends moving from uuu_1.5.201 to uuu_1.5.233 for hangs at 100% . You can also increase the stage-switch wait timeout with -T , which is the timeout for waiting for the next known USB device at a stage switch . Use one script, but remove the intermediate done lines and run the file directly with uuu -v ./cmd.lst ; then update UUU or increase -T only if the board still does not re-enumerate into the SDPV stage. Re: UUU with iMX95 Hi and thank you@yipingwang  Please excuse the late feedback.... When I changed the cmd-lst to: SDPS: boot -f flash.bin SDPV: delay 1000 SDPV: write -f flash.bin -skipspl SDPV: jump SDPV: done and then switched to uuu_1.5.233 it worked fine. But the call must be: => ./uuu -v -b ./cmd.lst With => ./uuu -v ./cmd.lst it seems uuu try to load the cmd.lst as a botloader binary. It returns: New USB Device Attached at 3:5-636B3EF4AB264648 3:5-636B3EF4AB264648>Start Cmd:SDPS: boot -f "./cmd.lst"
查看全文
SDKの例:フラッシュとLWIPハードフォールト こんにちは、 「frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33」と「frdmimxrt1186_flexspi_nor_polling_transfer_cm33」という2つのSDK例を組み合わせると、「FLEXSPI_SoftwareReset(base);」という関数を実行した後に最終的にハードフォルトが発生します。また、「ベース」アドレス0x445E0000が変化することも確認しました。私はFRDM-RT1186 EVAキットを使用しています。これは何が原因でしょうか? 私はMCUXpressoIDE_25.6.136を使用しています。 フィードバックありがとうございます。 Re: SDK example flash and LWIP hard-fault こんにちは、パブロさん。 連絡してくれてありがとう。 私はSDK 26.03.00(928 2026-03、Manifest バージョン3.15.0)を使っています。 「frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33」から始めます。 これは特定の条件なしに、常に発生する現象です。 例「frdmimxrt1186_flexspi_nor_polling_transfer_cm33」からファイルをインポートします。 board/hardware_init_Flash.c ドライバ/fsl_flexspi.C ドライバ/fsl_flexspi.H source/appFlash/flexspi_nor_flash_ops.c source/appFlash/flexspi_nor_polling_transfer.c board/app.h// これには app.h の両方が含まれています source/lwip_ipv4_ipv6_echo_freertos.c // これには2つの関数呼び出しが含まれます。 int main(void) ヤージュ BOARD_InitHardware(); BOARD_InitHardware_Flash(); main_Flash(); void BOARD_InitHardware_Flash(void) ヤージュ BOARD_CommonSetting(); // BOARD_ConfigMPU(); // bord.c= identisch mit Lwip prj // BOARD_InitBootPins(); // pin_mux.c「」 BOARD_InitFLASHPins(); // BOARD_InitBootClocks(); // clock_config.c「」 // BOARD_InitDebugConsole(); // board.c「」 } int main_Flash(void) ヤージュ uint32_t i = 0; status_t ステータス; uint8_t vendorID = 0; // BOARD_InitHardware_Flash(); ... 1を返す。 /* (1) ヤージュ } */ } これで全部だと思います。 事前に感謝いたします。 ゲルト Re: SDK example flash and LWIP hard-fault こんにちは、 @GerdMartin さん。 2つのSDKの例をどのように組み合わせたのか、もう少し詳しく教えていただけますか? どのような変更が加えられましたか? どの例を起点として使いましたか? 現在どのSDKバージョンを使っていますか? また、FLEXSPI_SoftwareReset(base); を実行した後に最終的にハードフォルトが発生するとおっしゃっていましたね。この現象は、関数が呼び出されるたびに必ず発生しますか、それとも特定の条件下でのみ発生しますか? よろしくお願いします、 パブロ Re: SDK example flash and LWIP hard-fault こんにちは、最新情報があります。例のflexspiからlinkscriptフォルダをコピーするのを忘れていました。今度は別のハードフォルト init lwip が発生しますが、flexspi init は正常に動作しています。 ゲルト Re: SDK example flash and LWIP hard-fault パブロさん、こんにちは。私の問題について何か情報をお持ちでしょうか? どうもありがとうございます。 ゲルト Re: SDK example flash and LWIP hard-fault こんにちは、SDKの別の例(lwip_dhcp)とflexSpiを組み合わせてテストを行いましたが、ランダム化hard_faultも出ます。それで、プロジェクトで問題があるんだ。もし、約1KBのデータをフラッシュメモリに保存する別の方法があれば、教えてください。 ゲルトさん、どうもありがとうございました。 Re: SDK example flash and LWIP hard-fault こんにちは、 @GerdMartin さん。 私はその現象を再現することができ、いくつかのテストを行った結果、以下のことが分かりました。 あなたが組み合わせた最初の2つの例では、flexspi_nor_polling_transfer_cm33はメモリ領域を消去して書き込みます。デフォルトでは、この例で使用されるリージョンは、結合されたプロジェクトイメージの一部です。 例がアクセスするセクターを計算できます。この場合、例はセクター20を使い、セクターサイズは4kです。 したがって、FlexSPIの例では、次のアドレスを変更します。 20 × 4k + FlexSPI2_AMBA_BASE = 0x4014000 main_FLASH()への呼び出し前後のメモリ内容を調べると、プロジェクトイメージの一部が上書きされていることがわかります。 Pablo_Ramos_0-1787777815010.pngPablo_Ramos_0-1787777815010.pngパブロ_ラモス_0-1787777815010.png Pablo_Ramos_1-1787777823697.pngPablo_Ramos_1-1787777823697.pngパブロ_ラモス_1-1787777823697.png FlexSPIの例で使われているメモリ領域を、プロジェクトのイメージと重複しないように変更できますか? この変更を行った後も、問題は発生しますか? よろしくお願いします、 パブロ Re: SDK example flash and LWIP hard-fault ありがとうございます、以上です。私は、定義EXAMPLE_SECTORを20から、結果オフセットが私のコードに含まれない値に変更しました。さあ、話を続けられます。 ゲルト
查看全文
iMX95搭載のUUU こんにちは、 iMX95ベースのシステムにU-Bootをダウンロードして実行したい。 私はこのスクリプト cmd.lst を作成しました。 # ヤミン・アメックス SDPS: boot -f flash.bin SDPS: 完了 SDPV: 遅延 1000 SDPV: write -f flash.bin -skipspl SDPV: ジャンプ SDPV: 完了 # } コマンドラインでこれらのコマンドを手順通りに実行すれば、問題なく動作します。 でも私が電話したら => sudo /usr/bin/uuu -v -b ./cmd.lst それはぶら下がっている 既知のUSBデバイスが表示されるまでお待ちください... 新しいUSBデバイスが1:41-636B3EF4AB264648に接続されました 1:41-636B3EF4AB264648>コマンド開始:SDPS: boot -f flash.bin 100%1:41-636B3EF4AB264648>OK (3.007秒) 1:41-636B3EF4AB264648>コマンド開始:SDPS:完了 1:41-636B3EF4AB264648>OK (0秒) これらの手順を1つのコマンドリスト内で実行することは許可されていないのですか? あるいは、このコマンドリストのどこが間違っているのでしょうか? Re: UUU with iMX95 はい、SDPSとSDPVのステップは1つのUUUコマンドリストにまとめることができます。i.MX95の場合、意図された手順は次のとおりです。まずSDPS: boot -f flash.binSPL を起動し、次に SDPV: write -f flash.bin -skipspl および SDPV: jump complete/start U-Boot を起動します。私が見つけたスクリプトの例では、SDPS: done を挟まずに、同じ結合された SDPS→SDPV フローを使用しています。 あなたの場合の問題はおそらく設置方法と、スクリプトの呼び出し方にある可能性が高いです。 uuu_version 1.5.233 SDPS: boot -f flash.bin SDPV: 遅延 1000 SDPV: write -f flash.bin -skipspl SDPV: ジャンプ カスタムスクリプトファイルとして直接実行する: sudo /usr/bin/uuu -v ./cmd.lst としてではなく: sudo /usr/bin/uuu -v -b ./cmd.lst -b オプションは、sd、emmc、sd_all、emmc_all などの UUU 組み込みスクリプトについて文書化されていますが、カスタム スクリプト ファイルは通常、uuu に直接渡されます。また、「done」は全体のフローの最後のコマンドとして説明されているため、最初のブートステージの直後にSDPS: doneを入れると、UUUがそのステージを停止し、SDPVステージにスムーズに進む代わりに次の既知のUSBデバイスを待つことがあります。 ですので、以下のファイルからファイルを変更したほうがいいと思います: SDPS: boot -f flash.bin SDPS: 完了 SDPV: 遅延 1000 SDPV: write -f flash.bin -skipspl SDPV: ジャンプ SDPV: 完了 、 uuu_version 1.5.233 SDPS: boot -f flash.bin SDPV: 遅延 1000 SDPV: write -f flash.bin -skipspl SDPV: ジャンプ SDPS→SDPV遷移でまだ待機状態が続く場合は、より新しいUUUリリースを試してください。i.MX95レポートの1つでは、100%でハングアップする場合にuuu_1.5.201からuuu_1.5.233に移行することを特に推奨しています。また、-Tでステージスイッチの待機タイムアウトを増やすこともできます。-Tは、ステージスイッチで次の既知のUSBデバイスを待つためのタイムアウトです。 1 つのスクリプトを使用しますが、中間の done 行を削除し、uuu -v ./cmd.lst でファイルを直接実行します。その後、ボードがまだ SDPV ステージに再列挙されない場合にのみ、UUU を更新するか、-T を増やします。 Re: UUU with iMX95 こんにちは、そしてありがとうございます、@yipingwang フィードバックが遅くなり申し訳ありません。 cmd-lst を次のように変更しました。 SDPS: boot -f flash.bin SDPV:ディレイ1000 SDPV: write -f flash.bin -skipspl SDPV:ジャンプ SDPV:完了 その後、uuu_1.5.233に切り替えたら問題なく動作しました。 しかし、呼びかけはこうでなければならない。 => ./uuu-v -b ./cmd.lst と => ./uuu-v ./cmd.lst どうやら、cmd.lst をボットローダーバイナリとしてロードしようとしているようです。 返される値: 新しいUSBデバイスが3:5-636B3EF4AB264648に接続されました 3:5-636B3EF4AB264648>コマンド開始:SDPS: boot -f "./cmd.lst"
查看全文
SDK example flash and LWIP hard-fault Hi,  When I combine the two SDK examples “frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33” and “frdmimxrt1186_flexspi_nor_polling_transfer_cm33,” I eventually get a hard fault after executing the function “ FLEXSPI_SoftwareReset(base);” eventually results in a hard fault. I also notice that the “base” address 0x445E0000 changes. I'm using the FRDM-RT1186 EVA kit. What could be causing this? I'm using MCUXpressoIDE_25.6.136. Thank´s for feedback. Re: SDK example flash and LWIP hard-fault Hi Pablo, thank´s to go in contact with me. I use SDK 26.03.00 (928 2026-03 , Manifest Version 3.15.0 I start with "frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33". This happens consistensly, no specific conditions. I import the files from the example "frdmimxrt1186_flexspi_nor_polling_transfer_cm33" board/hardware_init_Flash.c drivers/fsl_flexspi.c drivers/fsl_flexspi.h source/appFlash/flexspi_nor_flash_ops.c source/appFlash/flexspi_nor_polling_transfer.c board/app.h  // this containes both app.h source/lwip_ipv4_ipv6_echo_freertos.c  // this includes two function-calls: int main(void) { BOARD_InitHardware(); BOARD_InitHardware_Flash(); main_Flash(); void BOARD_InitHardware_Flash(void) { BOARD_CommonSetting(); // BOARD_ConfigMPU(); // bord.c = identisch mit Lwip prj // BOARD_InitBootPins(); // pin_mux.c "" BOARD_InitFLASHPins(); // BOARD_InitBootClocks(); // clock_config.c "" // BOARD_InitDebugConsole(); // board.c "" } int main_Flash(void) { uint32_t i = 0; status_t status; uint8_t vendorID = 0; // BOARD_InitHardware_Flash(); ... return 1; /* while (1) { } */ } I think that's it. Thank you in advance. Gerd Re: SDK example flash and LWIP hard-fault Hi @GerdMartin, Could you please provide more details about how you combined the two SDK examples? What changes were made? Which example did you use as the starting point? Which SDK version are you currently using? Also, you mentioned that a hard fault eventually occurs after executing FLEXSPI_SoftwareReset(base);. Does this happen consistently every time the function is called, or only under specific conditions? Best Regards, Pablo Re: SDK example flash and LWIP hard-fault Hi Pablo, I'd like to know if you have any information about my problem. Thank you very much Gerd Re: SDK example flash and LWIP hard-fault Hi, I have one update. I forgott to copy the folder linkscript from example flexspi . now, I get an other hard-fault init lwip, but the flexspi init is working. Gerd Re: SDK example flash and LWIP hard-fault Hi, I have done a test with another example from SDK (lwip_dhcp) together with flexSpi, but I get also an randomize hard_fault. So, I have a problem to go in my project. May be, if there is another solution to store data aprox. 1 KB) into the flash, please let me know. Many thanks Gerd Re: SDK example flash and LWIP hard-fault Hi @GerdMartin, I was able to reproduce the behavior, and after performing some tests, I observed the following: In the first two examples that you combined, flexspi_nor_polling_transfer_cm33 erases and writes to a memory region. By default, the region that this example uses is part of the combined project image. We can calculate the sector that the example accesses. In this case, the example uses sector 20, with a sector size of 4k. Therefore, the FlexSPI example modifies the following address: 20 × 4k + FlexSPI2_AMBA_BASE = 0x4014000 If we examine the memory contents before and after the call to main_FLASH(), we can see that part of the project image is being overwritten. Pablo_Ramos_0-1787777815010.pngPablo_Ramos_0-1787777815010.pngPablo_Ramos_0-1787777815010.png Pablo_Ramos_1-1787777823697.pngPablo_Ramos_1-1787777823697.pngPablo_Ramos_1-1787777823697.png Could you modify the memory region used by the FlexSPI example so that it does not overlap with the project image? After making this change, does the issue still occur? Best Regards, Pablo Re: SDK example flash and LWIP hard-fault Thank´s, that´s it. I have modify the define EXAMPLE_SECTOR from 20 to a value that the result offset is not in my code. Now, I can go on. Gerd
查看全文
S32G2によるマルチコアアプリケーションの実現 こんにちは、NXPの皆さん: S32G274Aチップでプログラムを動かすにはマルチコアを使い、LinuxにはA53、LLCE_CANはM7で動かす準備をしています。 5.2に基づき「S32G2プラットフォームソフトウェア統合を使ったマルチコアアプリケーションをS32G2で有効化する」と述べました。ブートローダーを設定し、推奨するソフトウェアパッケージをインストールし、手順に従って設定してください。 zhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.png 5.3にエラーがあります。コンパイル時にブートローダーを構築する。 launch.batファイルが編集されました。 zhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.png launch.bat の実行後にエラーが発生しました。 zhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.png 関連するコードをコメントアウトした後。 zhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.png zhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.png CryptoDal.hを見つけましたインストールディレクトリ内のファイル。 zhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.png zhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.png どこに間違いがあるでしょうか? ありがとうございます。 Re: S32G2 Enabling Multicore Application こんにちは、ジペン ご指摘の件についてですが、以下の内容を追加した場合、エラーが発生しますか?コメントアウトしてもエラーは発生しませんか? Joey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.png BR ジョーイ Re: S32G2 Enabling Multicore Application こんにちは、 @Joey_z はい、追加後、3枚目の画像に「未申告」と表示されます。 コメントアウトすると、5番目の画像に「そのようなファイルまたはディレクトリはありません」と表示されます。 zhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.png 「CryptoDal.h」は、D:\NXP\Integration_Reference_Examples_S32G2_2022_06\code\framework\realtime\bsw\dal\cryptodal\generic\include にあります。 「Hse_Ip.h」は、D:\NXP\SW32G_RTD_4.4_3.0.2_HF01\eclipse\plugins\Crypto_TS_T40D11M30I2R0\include にあります。 両方のファイルはそれぞれのフォルダ内に見つかりました。また、ファイルパスはlaunch.batにも記載されています。 現在の問題は、コンパイルプロセス中にプラグインのパスが含まれていなかったことが原因のようです。 BR Re: S32G2 Enabling Multicore Application こんにちは、ジペン 設定でセキュアブートは有効になっていますか?セキュアブートを有効にして、問題が解消されるかどうか確認してみてください。 Joey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.png BR ジョーイ 回复: S32G2 Enabling Multicore Application こんにちは、 @Joey_z 前回のブートローダーのコンパイルは成功しました。NORフラッシュにイメージを書き込んだ後、起動してもUARTから何も出力されません。 私はAN13750を参照しました。私の操作手順は以下のとおりです。 「S32G2_LinuxBSP_42.0_User_Manual.pdf」に従いました。Ubuntu 20 に u-boot bsp42.0-2022.04 と ATF bsp42.0-2.10 をインストールしました。 s32_mmc.cを修正しましたおよび s32_common.mk は 0001-fip-align-and-mmc-init.patch に従っています。 zhipeng_0-1787646642108.pngzhipeng_0-1787646642108.pngzhipeng_0-1787646642108.pngzhipeng_0-1787646642108.pngzhipeng_0-1787646642108.png zhipeng_1-1787646670172.pngzhipeng_1-1787646670172.pngzhipeng_1-1787646670172.pngzhipeng_1-1787646670172.pngzhipeng_1-1787646670172.png zhipeng_2-1787646683855.pngzhipeng_2-1787646683855.pngzhipeng_2-1787646683855.pngzhipeng_2-1787646683855.pngzhipeng_2-1787646683855.png u-bootとATFをコンパイルしました。 make CROSS_COMPILE=/opt/S32G/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=aarch64 PLAT=s32g274ardb2 BL33=../u-boot/u-boot-nodtb.bin Image Layout DCD: Offset: 0x200 Size: 0x1c IVT: Offset: 0x1000 Size: 0x100 AppBootCode Header: Offset: 0x1200 Size: 0x40 Application: Offset: 0x1240 Size: 0x33e00 Boot Core: A53_0 IVT Location: SD/eMMC Load address: 0x342f8f00 Entry point: 0x34302000 fip.s32ファイルをSDカードに書き込みました。fipを交換した後も、SDカードは起動可能で、u-bootの日付も変更された。 U-Boot 2022.04-00213-g5a6f62071f (Aug 24 2026 - 10:35:21 +0800) ブートローダーを設定します。 zhipeng_3-1787647428751.pngzhipeng_3-1787647428751.pngzhipeng_3-1787647428751.pngzhipeng_3-1787647428751.pngzhipeng_3-1787647428751.png zhipeng_4-1787647490093.pngzhipeng_4-1787647490093.pngzhipeng_4-1787647490093.pngzhipeng_4-1787647490093.pngzhipeng_4-1787647490093.png zhipeng_5-1787647533346.pngzhipeng_5-1787647533346.pngzhipeng_5-1787647533346.pngzhipeng_5-1787647533346.pngzhipeng_5-1787647533346.png zhipeng_6-1787647547310.pngzhipeng_6-1787647547310.pngzhipeng_6-1787647547310.pngzhipeng_6-1787647547310.pngzhipeng_6-1787647547310.png S32Gブートイメージを生成する zhipeng_7-1787647657415.pngzhipeng_7-1787647657415.pngzhipeng_7-1787647657415.pngzhipeng_7-1787647657415.pngzhipeng_7-1787647657415.png bt_m7_blob.binを選択して、アドレス0x0に書き込みます。 fip.binを選択して、アドレス0x100000に書き込みます。 S32G274A_M7.binを選択して、アドレス0x200000に書き込みます。 zhipeng_8-1787647865193.pngzhipeng_8-1787647865193.pngzhipeng_8-1787647865193.pngzhipeng_8-1787647865193.pngzhipeng_8-1787647865193.png 現在、UARTもCANも応答していません。状況を分析するのを手伝ってください。 ありがとうございます。 回复: S32G2 Enabling Multicore Application こんにちは、ZhiPeng 情報提供ありがとうございます。 もっと詳しい情報を教えてもらえますか? 1. Aコア上でATFとubootのみを起動していますか? AコアのUARTに何らかの出力はありますか? 2. Mコア機能とは何ですか?UART/CAN関数のことですか? BR ジョーイ 回复: S32G2 Enabling Multicore Application こんにちは、 @Joey_z ご返信ありがとうございます。 1. はい、AコアではATFとu-bootのみが起動されました。UARTからの出力が全くありませんでした。 2. MコアはLLCE_CANおよびLpspiプログラムを実行し、「Can_Llce_DS_Loopback_S32G274A_M7」および「Lpspi_Ip_Transfer_S32G274A_M7」ルーチンを統合しました。最初はSPI通信を使用し、その後LLCE_CANを実行した。 さらにいくつか情報を付け加えたいと思います。 1.プロセス全体はAN13750に従って実行されましたが、いくつかの違いがあります。BSP42とS32DS3.5バージョンを使用し、IPCFルーチンをLLCE_CANに置き換え、M7_0のみを設定しました。 2. Yoctoを使ってBSP42をコンパイルし、.sdcardを作成しました。SDカードをインポートした後、Linuxを起動できました。 3. 私は「AN13750」に従ってBSP42のu-bootとATFをまとめました。4.Cortex-A53コアの画像を準備してください」セクション。.sdcardとfip.s32をSDカードに再インポートした後も、LinuxはSDモードで起動できました。しかし、ブートローダーとfip.binをnorflashにインポートしても、何も出力されませんでした。 4. M7コア用のUARTルーチンを別途Norflashに書き込み、Linuxを起動して出力できました。これは、焼き付けツールとノーフラッシュが正常であったことを証明した。 5. LLCE_CANプログラムをnorflashに別途書き込みました。プログラムは実行されず、CAN出力もありませんでした。 6.EBブートローダーを設定してA53を個別に起動しようと試みましたが、norflashを再書き込みしても何も出力されませんでした。 ありがとうございます。 回复: S32G2 Enabling Multicore Application こんにちは、志鵬 1.LLCE_CANがMコア上で動作していることは理解しています。このプログラムMコアのブートローダーの起動を個別にテストしてください。起動プロセス中は、Aコアイメージを読み込まないでください。 2. テストでは、ブートローダーはM7のUARTプログラムを起動できますが、LLCE_CANを起動できないのでしょうか? 3. ブートローダーを使ってA53だけを起動してみましたか? この問題のために中国語のシステムに新しいCASEを作成しました。CASE番号は01000969です。これはコミュニケーションを円滑にするだろう。 BR ジョーイ
查看全文
SDK示例闪存和LWIP硬故障 你好, 当我将两个 SDK 示例“frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33”和“frdmimxrt1186_flexspi_nor_polling_transfer_cm33”组合在一起时,执行函数“FLEXSPI_SoftwareReset(base);”后最终导致硬故障。我还注意到“基址”0x445E0000 发生了变化。我使用的是 FRDM-RT1186 EVA 套件。造成这种情况的原因可能是什么? 我使用的是 MCUXpressoIDE_25.6.136。 感谢您的反馈。 Re: SDK example flash and LWIP hard-fault 嗨,Pablo, 感谢您与我联系。 我使用的是 SDK 26.03.00 (928 2026-03 , 清单版本 3.15.0 )。 我以“frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33”开始。 这种情况经常发生,没有特定条件。 我从示例“frdmimxrt1186_flexspi_nor_polling_transfer_cm33”中导入文件; board/hardware_init_Flash.c drivers/fsl_flexspi.c drivers/fsl_flexspi.h source/appFlash/flexspi_nor_flash_ops.c source/appFlash/flexspi_nor_polling_transfer.c board/app.h// 这包含 app.h source/lwip_ipv4_ipv6_echo_freertos.c // 这包含两个函数调用: int main(void) { BOARD_InitHardware(); BOARD_InitHardware_Flash(); main_Flash(); void BOARD_InitHardware_Flash(void) { BOARD_CommonSetting(); // BOARD_ConfigMPU(); // bord.c= identisch mit Lwip prj // BOARD_InitBootPins(); // pin_mux.c"" BOARD_InitFLASHPins(); // BOARD_InitBootClocks(); // clock_config.c"" // BOARD_InitDebugConsole(); // board.c"" } int main_Flash(void) { uint32_t i = 0; status_t status; uint8_t vendorID = 0; // BOARD_InitHardware_Flash(); ... 返回 1; /* 当(1) { } */ } 我想就是这样了。 提前谢谢您。 格尔德 Re: SDK example flash and LWIP hard-fault 嗨@GerdMartin , 请问您能否详细说明一下您是如何将这两个 SDK 示例结合起来的? 做了哪些改动? 你以哪个例子作为出发点? 您目前使用的是哪个SDK版本? 另外,您提到在执行 FLEXSPI_SoftwareReset(base) 后最终会发生硬故障。每次调用该函数时都会发生这种情况,还是只在特定条件下才会发生? 此致, 巴勃罗 Re: SDK example flash and LWIP hard-fault 嗨,Pablo,我想知道你是否了解我的问题。 非常感谢 格尔德 Re: SDK example flash and LWIP hard-fault 您好,我有一个更新。我忘记从示例 flexspi 中复制文件夹 linkscript 了。现在,我遇到了另一个硬故障初始化 lwip,但 flexspi 初始化工作正常。 格尔德 Re: SDK example flash and LWIP hard-fault 您好,我用 SDK 中的另一个示例 (lwip_dhcp) 和 flexSpi 进行了测试,但我仍然遇到了随机硬故障。所以,我的项目遇到了问题。如果还有其他方法可以将大约 1 KB 的数据存储到闪存中,请告诉我。 非常感谢格尔德 Re: SDK example flash and LWIP hard-fault 嗨@GerdMartin , 我成功重现了该行为,经过一些测试后,我观察到以下情况: 在你合并的前两个示例中,flexspi_nor_polling_transfer_cm33 会擦除和写入内存区域。默认情况下,此示例使用的区域是组合项目图像的一部分。 我们可以计算出示例访问的扇区。在这个例子中,使用了扇区 20,扇区大小为 4k。 因此,FlexSPI 示例修改了以下地址: 20 × 4k + FlexSPI2_AMBA_BASE = 0x4014000 如果我们检查调用 main_FLASH() 前后的内存内容,可以看到项目映像的一部分被覆盖了。 Pablo_Ramos_0-1787777815010.pngPablo_Ramos_0-1787777815010.pngPablo_Ramos_0-1787777815010.png Pablo_Ramos_1-1787777823697.pngPablo_Ramos_1-1787777823697.pngPablo_Ramos_1-1787777823697.png 能否修改 FlexSPI 示例使用的内存区域,使其不与项目映像重叠? 做出此项更改后,问题是否仍然存在? 此致, 巴勃罗 Re: SDK example flash and LWIP hard-fault 谢谢,就这些了。我已将 EXAMPLE_SECTOR 的定义从 20 修改为一个值,但结果偏移量在我的代码中并不存在。现在,我可以继续了。 格尔德
查看全文
在 Linux 系统上安装适用于 ARM 2.2 的 S32 DS 后,S32K1xx SDK 不可用。 我在Windows系统下使用S32DS已经有一段时间了,用起来很顺手。我最近在 Ubuntu Linux 20.04 上安装了适用于 ARM 2.2 的 S32 DS。为此,我完成了《S32 Design Studio for ARM 2.2 安装指南》中列出的所有先决条件,然后执行了 S32DS_ARM_Linux_v2.2.bin 文件。安装过程很顺利,S32DS 可以正常运行。 首次运行S32DS后,系统提示我安装S32DS扩展和更新中的几个项目,我照做了。然后我执行了帮助菜单中的“检查更新”选项,系统提示我升级几个项目。重启S32DS后,我在“帮助”菜单中运行了“安装新软件...”复选框,并选择了“所有来源”。最终,我收到了一份项目清单,其中有几项显示需要更新。 我附上了一些文件,展示我完成所有升级后的结果。 我的问题是,尽管SDK出现在软件包/功能列表中,但它似乎并未激活/启用。例如: 1.当我选择“新建”和“S32DS应用程序项目”时,我选择了S32K148目标平台和“ARM裸机32位目标二进制工具链”。然后,我点击 SDK 的“...”选项,却只看到 FreeMaster_S32xx 和 S32K14x_AMMCLIB 选项。 2. 当我选择“新建”和“从示例中创建 S32DS 项目”时,我没有看到任何 SDK 示例项目。 3. “显示视图”下没有“处理器专家”菜单选项,也没有“处理器专家”选项。 我需要做什么才能“启用”S32K1xx SDK? Re: S32K1xx SDK Not Available after S32 DS for ARM 2.2 Installed on Linux 在 S32DS 3.6.10 中仍然无法正常工作。我尝试了很多变通方法(例如直接通过 Eclipse 安装 RTD;修改区分大小写等)。 为了让这个程序能在 S32K142 上运行,我希望能够轻松地设置我的外设/HAL,类似于 CubeMX 为 ST 所做的那样。 真是浪费时间,而且到现在还没人提供任何相关信息。 Re: S32K1xx SDK Not Available after S32 DS for ARM 2.2 Installed on Linux 如此重大的限制应该在S32DS文档的各个角落用粗体字标明。这完全不可接受,并造成了大量时间的浪费。 Re: S32K1xx SDK Not Available after S32 DS for ARM 2.2 Installed on Linux 嗯,这一点没有得到妥善记录。当前 SDK 和 RTD 软件包在 Linux 系统中不受支持。这个问题之前在社区里讨论过好几次了。例如: https://community.nxp.com/t5/S32-Design-Studio/S32K3-SDK-Re-Attach-RTD-SDK-from-command-line/mp/1463363/highlight/true#M8614 我听说有计划在 Linux 中支持 RTD,目前看来它将在 S32 Design Studio 3.6 的下一个版本中提供。 问候, 卢卡斯 Re: S32K1xx SDK Not Available after S32 DS for ARM 2.2 Installed on Linux 嗨,卢卡斯, 哇,这真是个惊人的说法!如果 SDK 不支持 Linux,那么 Linux 实际上就不是 S32DS 的支持目标平台。 1. 这适用于所有版本的S32DS,还是仅适用于2.2版本? 2. 这个限制是否有任何相关文档记录? 3. 要在 Linux 上构建,我想可以复制 SDK 源文件并将其作为项目的一部分。恩智浦是否为这一过程提供任何指导? Re: S32K1xx SDK Not Available after S32 DS for ARM 2.2 Installed on Linux 嗨@tsweaver 遗憾的是,该 SDK 不支持 Linux 主机。唯一的选择是使用Windows系统。 此致, Lukas Re: S32K1xx SDK Not Available after S32 DS for ARM 2.2 Installed on Linux 为什么是 S32K1xx SDK 3.0.0安装 S32DS .2.2 时没有安装?我需要怎么做才能得到它? 我通过这个链接安装了S32DS: 适用于 Linux 系统的 S32 Design Studio for ARM 2.2 安装 910.4 MB S32DS_ARM_Linux_v2.2.bin Re: S32K1xx SDK Not Available after S32 DS for ARM 2.2 Installed on Linux 我还要补充一点,SDK 实际并不存在于软件文件夹中。在Windows系统上,我认为安装S32DS时就会同时安装SDK。显然,Linux 系统并非如此,或者是我没有使用正确的安装程序。谢谢你的帮助。 trent@Ubuntu20:~/NXP/S32DS_ARM_v2.2/S32DS/software$ls -l 总共20 drwxrwxr-x 5 trent trent 4096 3月19日 13:12 AMMCLIB_v1.1.18 drwxrwxr-x 5 trent trent 4096 3月 19日 13:12 AMMCLIB_v1.1.19 drwxrwxr-x 5 trent trent 4096 3月19日 13:12 AMMCLIB_v1.1.20 drwxrwxr-x 8 trent trent 4096 3月 19 13:12 FreeMASTER_Serial_Communication_Driver_V2_0 drwxrwxr-x 7 trent trent 4096 3月19日 13:12 Sample_Drivers_for_KEAxxx_Evaluation_grade trent@Ubuntu20:~/NXP/S32DS_ARM_v2.2/S32DS/software$ Re: S32K1xx SDK Not Available after S32 DS for ARM 2.2 Installed on Linux 更新:现在在 Windows 11 虚拟机中尝试,问题依旧。 我已在 C:\NXP 目录下安装了以下软件: SW32K1_S32M24x_RTD_R21-11_3.0.0 SW32K1_S32M24x_RTD_R21-11_3.0.0_QLP07 S32_SDK_S32K1xx_RTM_4.0.2 S32DS.3.6.10 在 S32DS\software\ 中: PlatformSDK_S32K1_S32M24 但是,在创建项目时尝试选择 SDK 时,仍然没有任何内容显示。这非常令人恼火;为什么要提供一款后续需要大量额外代码包,软件包的软件,而且这些代码包,软件包都需要版本兼容,并且很难找到? S32DS扩展管理器显示所有内容均已正确安装(包括RTD)。 Re: S32K1xx SDK Not Available after S32 DS for ARM 2.2 Installed on Linux 我发现最新的 RTD 软件包不支持 GCC 11.4(最新版本)。不得不切换到 10.2 版本。此外,RTD 无法创建 C++ 项目。真丢脸。 遗憾的是,版本匹配方面完全没有任何透明度,没有任何提示,什么都没有。或许藏在版本说明的某个地方(不过话说回来,谁会去看那些东西呢……)。 这方面肯定还有改进的空间。也就是说,不要要求用户下载版本兼容性未知的外部软件包并手动安装,而是使用您显然投入了相当多时间开发的集成扩展管理器?
查看全文
S32K144EVB-Q100 NXP様、 現在、TCUのアプリケーションにはS12XET256コントローラを使用しています。私たちはS32K144でS12Xコントローラのアップグレードの可能性を探っています。コントローラーはMBDTに対応していることが理解されています。 モデルベースの設計ツールボックスとワークフローの両方を学ぶためにEVBを購入する予定です。デバッグやデータのスニッフ、EVBを使うプロジェクトなどの他のインターフェースコンポーネントについて、さらに詳しく教えてもらえますか? また、ブロックがピンの設定やソフトウェアの構築、ECU内でのフラッシュに使えるのか、それともプロセッサ・イン・ループ(PIL)シミュレーション専用なのかも重要です。 よろしくお願いいたします。 アルンチャンダル・M. Re: S32K144EVB-Q100 こんにちは、 @Arunchandar さん。 利用可能なボードは2種類あります。 S32K144EVB-Q100 - NXP UJA1169 SBC、オンボードのOpenSDAデバッガ、JTAG/SWDポート、CANおよびLINコネクティビティを搭載。 FRDM-A-S32K144 - NXP FS23 SBCを搭載し、CANおよびLINコネクティビティ、USB Type-C電源供給、オンボードのOpenSDAデバッガ、JTAG/SWDポートを備えた新しいFRDMボードです。 データスニッフィングとランタイムモニタリングには、 FreeMASTERが主要なツールとして用いられます。MBDTに組み込まれており、Simulinkブロックから直接設定できます。 MBDTは、シミュレーションに限らず、完全なスタンドアロン型のコード生成およびデプロイメントツールチェーンです。 MBDTやFreeMASTERのサポートについては、専用コミュニティをご利用ください: MBDT: https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/bd-p/mbdt FreeMASTER: https://community.nxp.com/t5/FreeMASTER/bd-p/freemaster   よろしくお願いいたします。 ダニエル Re: S32K144EVB-Q100 こんにちは、 @danielmartynek さん、 詳細を教えていただきありがとうございます。評価ボード(S32K144EVB-Q100)はやや古いものの、多くのプロジェクト成果物が利用可能です。 この評価ボードを選ぶ場合、コードを起動したりデバッグしたりフラッシュしたりするためにインターフェースハードウェアは必要でしょうか? よろしくお願いいたします。 アルンチャンダル・M. Re: S32K144EVB-Q100 こんにちは、 @Arunchandar さん。 両ボードは同じMCUを共有しており、主な違いはSBCです。ですので、どのSBCを使うかにもよります。 古いS32K144EVBはマイクロUSB経由で5Vで電源を供給できますが、LINが必要な場合は12Vの外部電源(J107の位置変更)が必要です。マイクロUSBは搭載デバッガ(PE Micro OpenSDA)にも接続されているため、外部のデバッグやフラッシュプローブは不要です。 よろしくお願いいたします。 ダニエル
查看全文
S32G2 启用多核应用程序 各位恩智浦的同事们,大家好: 我们准备在 S32G274A 芯片中使用多核来运行程序,使用 A53 运行 Linux,使用 M7 运行 LLCE_CAN。 根据 5.2,我们参考了“使用 S32G2 平台软件集成在 S32G2 上启用多核应用程序”。配置引导加载程序,安装推荐的软件包,并按照步骤进行配置。 zhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.png 5.3 中有错误。在编译过程中构建引导加载程序。 launch.bat 文件已被编辑。 zhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.png 运行 launch.bat 后发生错误。 zhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.png 在注释掉相关代码之后。 zhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.png zhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.png 我找到了 CryptoDal.h安装目录中的文件。 zhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.png zhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.png 哪里可能会出错? 谢谢。 Re: S32G2 Enabling Multicore Application 嗨,志鹏 对于您的问题,如果添加以下内容,是否会出现错误?注释掉这段代码不会导致错误吗? Joey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.png BR 乔伊 Re: S32G2 Enabling Multicore Application 嗨, @Joey_z 是的,添加后,第三张图片上会显示“未声明”。 注释掉该行后,第五张图片将显示“没有该文件或目录”。 zhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.png “CryptoDal.h”位于 D:\NXP\Integration_Reference_Examples_S32G2_2022_06\code\framework\realtime\bsw\dal\cryptodal\generic\include “Hse_Ip.h”位于 D:\NXP\SW32G_RTD_4.4_3.0.2_HF01\eclipse\plugins\Crypto_TS_T40D11M30I2R0\include 目录下。 我在各自的文件夹中找到了这两个文件,并且 launch.bat 中也写入了文件路径。 目前的问题似乎是编译过程中没有包含插件路径。 BR Re: S32G2 Enabling Multicore Application 嗨,志鹏 配置中是否启用了安全启动?尝试启用安全启动,看看问题是否会消失。 Joey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.png BR 乔伊 回复: S32G2 Enabling Multicore Application 嗨,志鹏 谢谢你提供的信息。 您能提供更多信息吗? 1.您是否只在A核上启动ATF和uboot?A核的UART有任何输出吗? 2.M核心功能是什么?是关于UART/CAN功能吗? BR 乔伊 回复: S32G2 Enabling Multicore Application 嗨, @Joey_z 之前的引导加载程序编译成功。现在,我已经将镜像写入 或非 闪存,启动后,UART 上没有任何输出。 我指的是 AN13750。以下是我的操作步骤: 我按照“S32G2_LinuxBSP_42.0_User_Manual.pdf”中的说明操作,并在 Ubuntu 20 中安装了 u-boot bsp42.0-2022.04 和 ATF bsp42.0-2.10。 我修改了 s32_mmc.c以及根据 0001-fip-align-and-mmc-init.patch 的 s32_common.mk。 zhipeng_0-1787646642108.pngzhipeng_0-1787646642108.pngzhipeng_0-1787646642108.png志鹏_0-1787646642108.png zhipeng_1-1787646670172.pngzhipeng_1-1787646670172.pngzhipeng_1-1787646670172.png志鹏_1-1787646670172.png zhipeng_2-1787646683855.pngzhipeng_2-1787646683855.pngzhipeng_2-1787646683855.png志鹏_2-1787646683855.png 我编译了 u-boot 和 ATF。 make CROSS_COMPILE=/opt/S32G/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=aarch64 PLAT=s32g274ardb2 BL33=../u-boot/u-boot-nodtb.bin Image Layout DCD: Offset: 0x200 Size: 0x1c IVT: Offset: 0x1000 Size: 0x100 AppBootCode Header: Offset: 0x1200 Size: 0x40 Application: Offset: 0x1240 Size: 0x33e00 Boot Core: A53_0 IVT Location: SD/eMMC Load address: 0x342f8f00 Entry point: 0x34302000 我将 fip.s32 写入了 SD 卡。更换 fip 后,SD 卡仍然能够启动,并且 u-boot 的日期发生了变化。 U-Boot 2022.04-00213-g5a6f62071f (Aug 24 2026 - 10:35:21 +0800) 配置引导加载程序。 zhipeng_3-1787647428751.pngzhipeng_3-1787647428751.pngzhipeng_3-1787647428751.png志鹏_3-1787647428751.png zhipeng_4-1787647490093.pngzhipeng_4-1787647490093.pngzhipeng_4-1787647490093.png志鹏_4-1787647490093.png zhipeng_5-1787647533346.pngzhipeng_5-1787647533346.pngzhipeng_5-1787647533346.png志鹏_5-1787647533346.png zhipeng_6-1787647547310.pngzhipeng_6-1787647547310.pngzhipeng_6-1787647547310.png志鹏_6-1787647547310.png 生成 S32G 启动映像 zhipeng_7-1787647657415.pngzhipeng_7-1787647657415.pngzhipeng_7-1787647657415.png志鹏_7-1787647657415.png 选择 bt_m7_blob.bin 并将其写入地址 0x0。 选择 fip.bin 并将其写入地址 0x100000。 选择 S32G274A_M7.bin 并将其写入地址 0x200000。 zhipeng_8-1787647865193.pngzhipeng_8-1787647865193.pngzhipeng_8-1787647865193.png志鹏_8-1787647865193.png 现在UART和CAN都没有响应了。请帮我分析一下情况。 谢谢。 回复: S32G2 Enabling Multicore Application 嗨, @Joey_z 感谢您的回复。 1. 是的,A 核心上只启动了 ATF 和 u-boot。UART接口没有任何输出。 2. M 内核运行 LLCE_CAN 和 Lpspi 程序,集成了“Can_Llce_DS_Loopback_S32G274A_M7”和“Lpspi_Ip_Transfer_S32G274A_M7”例程。它首先使用 SPI 通信,然后运行 LLCE_CAN。 我想补充一些信息: 1.整个过程按照 AN13750 进行,只有一些不同之处:我使用了 BSP42 和 S32DS3.5 版本;我用 LLCE_CAN 替换了 IPCF 例程,并且只配置了 M7_0。 2. 我使用 Yocto 编译了 BSP42,并生成了 .sdcard。导入SD卡后,即可启动Linux系统。 3. 我按照“AN13750” 4. 为 Cortex-A53 内核准备镜像 部分编译了 BSP42 的 u-boot 和 ATF。将 .sdcard 和 fip.s32 重新导入 SD 卡后,Linux 仍然可以在 SD 模式下启动。但是,当将引导加载程序和 fip.bin 导入到 norflash 时,没有获得任何输出。 4. 我在 norflash 中单独烧录了 M7 内核的 UART 例程,Linux 可以启动并输出。这证明燃烧工具和诺弗拉什(Norflash)都是正常的。 5. 我将 LLCE_CAN 程序单独烧录到 norflash 中。程序没有运行,也没有CAN输出。 6.我尝试配置 EB 引导加载程序以单独启动 A53,但重新烧录 norflash 后仍然没有任何输出。 谢谢。 回复: S32G2 Enabling Multicore Application 嗨,志鹏 1.我了解到您的 LLCE_CAN 运行在 M 内核上。请独立测试该程序 M 核心的引导加载程序启动情况。启动过程中,不要加载 A 核心映像。 2. 在您的测试中,引导加载程序可以启动 M7 的 UART 程序,但无法启动 LLCE_CAN 程序吗? 3. 你有没有试过只使用引导加载程序启动 A53? 我已在系统中用中文为此问题创建了一个新案例,案例编号为:01000969。这将有助于沟通。 BR 乔伊
查看全文
蓝牙固件已通过 UART 接口接收,但控制器始终无法运行;EdgeFast 下载在 3M 处损坏。   我已向 u-blox 提交了一份相关/配套的支持工单,案例编号为: **CA-276115** (相同的硬件,模块供应商问题)。 以下问题与恩智浦半导体(NXP)的**IW416 ROM的固件认证行为**有关。 以及**NXP 自家参考板上的 EdgeFast 下载漏洞** 。每个数字都是 测量数据和完整日志已附上。 ## 1. 总结——两个不同的故障,请分开记录。 在**MIMXRT1170-EVKB Rev C3**中的**u-blox M2-MAYA-W161** (NXP **IW416** )上, BT HCI over LPUART2: **故障A——核心问题。**使用干净的115200波特率UART下载, 蓝牙固件**已完全下载并被接受** (ROM停止请求 数据(并且不会重新广播),然后控制器**永远不会传输** —— 在任何波特率下均无 HCI 响应。 **故障 B — EdgeFast/板错误。** NXP 的 EdgeFast 标准下载流程 下载过程中切换到**3,000,000波特率** ,链接**在**处损坏 此板上的开关**;下载永远不会完成。这与……无关 故障 A 仅在使用 NXP 软件时可重现。 >这些问题的根源不同。修复 B(3 Mbaud 损坏)不会 >问题 A(下载后的沉默)。我们分别询问这两个问题。 同一张卡上的 Wi-Fi (SDIO) 功能完全正常——枚举、站点、微型 AP, 吞吐量——因此该卡、其电源和其电平转换器都运行良好。 --- 2. 配置 | 项目 | 金额 | |---|---| | 芯片组/模块 | NXP **IW416**芯片组,采用 u-blox M2-MAYA-W161-00C-00 封装 | | 主机板 | MIMXRT1170-EVKB Rev C3,M.2 J54,LPUART2 | | SDK | MCUXpresso **v26.06.00-LTS** | | 蓝牙固件 | `uartIW416_bt.bin`**16.92.21.p155.2** ,FP92, `w8978` ,131,840 B | | 也测试了 | **16.92.21.p142.5** (FP91,来自`github.com/NXP/wifi_nb_fw@a91d9d6`,2025年 1 月) — 结果相同 | | 模块选择 | `WIFI_IW416_BOARD_MURATA_1XK_M2` (该 SDK 没有 MAYA 配置文件) | | 电路板返工 | `R404` (PDn) + `R1901` (模块→MCU RXD) 已安装并验证;流控对`R1816` / `R1902` **未**完成 — 参见第5节 | --- ## 3. 故障 A — 图像被接受后,控制器无反应 下载完成并已被接受 我们自己的洁净室 V3 装载机(仅限协议,地址 115200),配备仪器: ``` bt_fw_download=ok chip_id=0x7201 loader_ver=0 start_inds=2 chunks=142 已发送=131856/131840 最大关闭时间=131840 转发=1 CRC错误=0 ``` 总共 131,840 字节;该卡请求了每个数据块(16 字节的头部,2048 字节)。 有效载荷(包括尾部的乱序重新请求);**一个 CRC 错误是 由卡片报告并通过重传恢复**——因此是ROM自身的 完整性检查已启动。 然后就什么反应也没有了——ROM 的行为就像镜像已被接受,而不是被拒绝。 ``` bt_post_dnld[0..3]: n=0(下载后四个 500 毫秒的原始捕获窗口) bt_raw_reset[0..2]: n=0 (原始 HCI_Reset 01 03 0C 00,采样率为 115200,x3) HCI_Reset 在 3000000 / 921600 / 460800 / 115200 处:无响应,帧格式为 0 ``` **关键鉴别器** :UART 下载完成后,ROM **停止请求** 并且不会重新宣布**。相比之下,当下载组合图像时 通过**SDIO** ,蓝牙核心会在 UART 上重新广播( `AB 01 72 00 47`)。 重新出现)——也就是说,这就是“仍在引导加载程序中/未被接受”的样子 关于这部分。因此,UART 下载已**接受,加载程序已退出** ,并且 故障发生在*接受 CRC 验证成功的镜像和运行控制器之间* 。 ### 固件版本不是变量 两个官方版本—— **FP92 p155.2** (2026-03)和**FP91 p142.5** (2025-01, 内部结构不同,加载地址分别为`0x00080000`和`0x000A2010` ,大小分别为 178 和 142。 分块下载)——两者都已完全下载,两者都被接受,两者都离开控制器 静默。所以这不是过时/错误的*版本* 。 ### 针对恩智浦的问题(故障 A) 1. IW416 ROM 是否会验证通过 UART 下载的蓝牙固件? 如果密钥采用 OTP 熔丝, **如何向主机发出拒绝信号?** 我们观察到:每个数据块都被接受,ROM停止请求,没有错误帧,没有 再次宣布后,一片沉寂。这个字节模式是文档中提到的吗? 安全启动/签名拒绝行为,或者说,一个真实的镜像是否表现出这种行为 这样做还有其他原因吗? 2. **是否为通用 / 构建了标准`uartIW416_bt.bin` (16.92.21.p155.2)? 未熔合的 IW416**,还是需要匹配的 OTP/安全启动配置? 部分?(如果该部件是为特定原厂钥匙熔接的,则为库存图片) 预计会被驳回——这将使我们再次关注 u-blox,CA-276115。) 3. **在事件发生后的最初几秒内,控制器的预期行为是什么? UART 下载成功**,地址为 115200 — 是否应响应`HCI_Reset` 立即生效,还是需要先收到厂商指令/延迟通知? --- ## 4. 故障 B — EdgeFast 下载在 3 Mbaud 交换机处损坏 (MIMXRT1170-EVKB) 仅使用NXP 软件在NXP 自有参考板上可重现此问题。 为 1170构建了`examples/edgefast_bluetooth_examples/shell` 已启用`DEBUG_PRINT` ,因此 NXP 的`fw_loader_uart.c`会显示输出信息。从其输出跟踪信息来看: 1. 115200 个标头请求干净且 CRC 有效( `REQ=0xA7 Len=10 Off=0 Err=0` ); 2.发送了一个 5 型 UART 配置块,并已收到确认(因此 5 型命令为:) 在本板/固件的上下文中已接受); 3. `更改波特率请求为 3000000` , `changeBaudrate() 返回 0` — 该开关 **报告成功** ; 4.紧随其后: `无效标头 0x00` / `0x71` , `REQ = 0xA7, Len = 10a7, Off = 5400, Err = 400, CRC = 0` , `CRC 不匹配` , `文件下载:0:131840` — 卡在偏移量 0 处。偏移量是 字节拼接( `5400` = 两个字节连在一起): **帧丢失** ,而非 溢出。 因此,该卡切换到 3 Mbaud 并开始传输;RT1176 LPUART2 处于 该板卡支持 3,000,000 波特率——采用 DMA 传输, **没有可用的硬件流控制** —— 无法恢复帧。库存流量控制设置第一阶段 切换后标头超时,加载器回退到 115200,然后重试。 **无限循环** (观察到超过 20 分钟)。 板载根本原因:**LPUART2 的 RTS/CTS 焊盘是千兆 PHY 芯片。 RESET/中断线**( `R1866` → `ETHPHY_RST_B` , `R1816` → `RGMII1_PHY_INTB` ), 因此,即使在NXP文档中明确指出之后,仍然存在清晰的主机接收反压路径。 五项重构——`R1866`不包含在重构中。3 Mbaud 无流量 主机控制力不足。 ### 针对恩智浦半导体(失败案例 B)的问题 4.在**MIMXRT1170-EVKB**上,是否有 3 Mbaud EdgeFast BT 固件下载? **已知限制,无需进行完整的流程控制重构** (移除`R1816` , 适用于`R1902` )——即使如此,鉴于`R1866`仍将主机 RTS 保留在 PHY 上, RESET, 这块板真的支持 3 Mbaud 吗?还是应该…… `fw_download_secondary_speed`是否应保留为 115200? 5. **无限重试循环**是否发生在备用波特率交换机故障上 ( `fw_loader_uart.c` )是预期行为吗?N次重试后出现硬性失败是远远不够的。 比无休止的进度点流更容易诊断。 ### 次要,低优先级(同一树) 6.在`edgefast_bluetooth`的 shell 中, `SHELL_CMD_REGISTER(bt, ...)`注册了 `bt`命令的参数范围为**0 个参数** ,因此`fsl_shell.c`会拒绝所有此类请求。 子命令( `bt init` → "命令参数错误");工作状态 调用方式是使用点号分隔的`bt.init` 。很可能是`SHELL_ADVANCE` / range-init操作。 不匹配的情况值得一看。 --- ## 5. 我们已经排除的选项(因此无需赘述) 所有芯片均采用硅材料,MIMXRT1170-EVKB: | 假设 | 结论 | |---|---| | 缺少 type-5 UART 配置块 | 我们的独立组网 (SA) 注入被拒绝( `CRC_ERR 0x0001` );但 NXP 的流入 type-5 被接受(§4)——因此这不是故障 A 的阻塞原因 | | 固件版本错误| 已驳回 — FP91 和 FP92 均已接受,均未发出警告(§3) | | 需要通过 SDIO 进行组合 |此模块**不会**启动蓝牙——蓝牙核心会在 SDIO 组合下载完成后从 ROM 重新广播 | | 主机下载截断 | 已驳斥 — 15 秒空闲轮询后`sent`保持不变 | | HCI 波特率 | 已驳回 — 4 个速率, `framing=0` ,零字节 | | `wakeUpControllerFromBootSleep()` GPIO 脉冲 | 已实现;卡片**有反应** (额外问候),但结果不变 | 静默期间的 CPU 状态(SWD,控制台已分离): `DHCSR 0x01010001` (运行中; `S_HALT` / `S_LOCKUP`已清除), `CFSR` / `HFSR` = 0 — 主机 MCU 处于活动状态 程序阻塞在`controller_init`中,但没有崩溃。 故障 A仅剩下**签名/安全启动拒绝**一项,即 正好是 Q1/Q2 — 这是这张票和 u-blox CA-276115 之间的接缝。 --- ## 6. 复现(故障 B,仅限 NXP 软件) ``` west build -b evkbmimxrt1170 examples/edgefast_bluetooth_examples/shell \ --toolchain armgcc --config flexspi_nor_debug -- -Dcore_id=cm7 \ -DCONFIG_MCUX_COMPONENT_component.wifi_bt_module.IW416=y \ -DCONFIG_MCUX_COMPONENT_component.wifi_bt_module.board_murata_1xk_m2=y ``` 刷机、RESET,在`@bt>`提示符下输入`bt.init` 。下载过程会打印进度。 出现点且永远不会完成;在`fw_loader_uart.c`中启用`DEBUG_PRINT`会显示 3 Mbaud 交换机出现故障。( `edgefast_open`是 1170 的较新 shell) 接受以空格分隔的`bt init`并会以同样的方式挂起。) 对于故障 A:已附上完整的仪器化下载文件以及位于 115200 的人机交互证据。 Re: BT firmware accepted over UART but controller never runs; and EdgeFast download corrupts at the 嗨@nicnewdigate , 在我们深入探讨这个问题之前,能否请您确认以下几点? - MIMXRT1170EVKB_hwrework.md 指南列出了五项必要的修改:移除 R183、移除 R1816、填充 R404、填充 R1901 和填充 R1902。 从你的记录来看,R404 和 R1901 似乎已经完成了。您能否也确认一下 R183、R1816 和 R1902 的状态? - 能否提供一份在未对应用程序进行任何更改的情况下运行的标准 NXP 示例的串行日志? 可能是蓝牙外壳。 为 Murata 1XK M2 构建项目 - 请发送完整日志。 - 该电路板仅通过 USB 供电,还是使用了外部 5V 电源?请使用外接电源。 问候, 丹尼尔。 Re: BT firmware accepted over UART but controller never runs; and EdgeFast download corrupts at the 嗨@DanielRuvalcaba - 非常感谢您的快速回复和建议! 您要求的三项任务我都完成了。先给出摘要,再给出日志。 **1.重做工作完成。EdgeFast BT PAL 重制版的全部五项内容如下: MIMXRT1170-EVKB 已完成:R404 和 R1901(之前已安装),另加 **R1902** **R1816 + R183 已移除**。我们确认这两次移除并未造成损害。 可读的 BT 链接——我们自己的 115200 波特率加载器仍然可以下载完整图像。 干净利落地(131,840 字节,帧错误 = 0,与删除前字节完全相同)。 **2.外部电源——已完成。**J38 → 1–2,5V 输入 J43 桶形插孔,SW5 打开。 **3.已捕获未修改的 shell 日志。我们建造了 来自 MCUXpresso SDK v26.06.00-LTS 的 `examples/edgefast_bluetooth_examples/shell` `--config flexspi_nor_debug -Dcore_id=cm7`,armgcc。与库存相比,唯一的变化是 在板的 `prj.conf` 文件中,我们配置了卡的模块选择: ``` CONFIG_MCUX_COMPONENT_component.wifi_bt_module.IW61X=y → IW416=y CONFIG_MCUX_COMPONENT_component.wifi_bt_module.board_murata_2el_m2=y→ board_murata_1xk_m2=y ``` (这是选择模块的两个 Kconfig `choice` 成员。我们的卡是 u-blox MAYA-W161 — 是一款 IW416 — 所以我们选择了您指定的 1XK/IW416 配置。 `CONFIG_BT_SIGNING=y`,其他设置均为默认值。) shell 提示符下的结果: ``` @bt> bt.init [固件下载] 开始从 0x301198fc: 6812 下载固件 下载开始(131840) ......................................................................(141个点) 下载成功! [固件下载]BLE固件已下载:8265 ← 然后,在接下来的 90 多秒内,什么也不会发生。bt.init 始终不返回。 ``` 自我们上次报告以来,有两件事发生了变化,而且这两件事都很重要: **A — 3 Mbaud 下载现已完成。**在进行流量控制改造之前 库存加载器在波特率从 115200 切换到 3,000,000 时损坏并循环运行 无限期。安装 R1902 并移除 R1816(真正的 CTS 背压),它 现在所有 131,840 字节的数据都在约 1.45 秒内传输完毕(时间戳 6812 → 8265 毫秒)。 高速下载)并打印“下载成功!”。所以,重做解决了这个问题。 下载端的问题果然不出所料——谢谢你的坚持。 **B — 下载成功后,控制器仍然没有反应。**这是 核心问题。在“下载成功!”/“BLE固件已下载”之后,协议栈 控制器没有返回任何信息——既没有“蓝牙已初始化”的提示,也没有错误信息——而且 `bt.init` 程序卡住了。主机MCU处于存活状态且处于阻塞状态,并未崩溃;控制台显示正常。 我们脱离了SWD的阅读范围: ``` DHCSR = 0x01010001(运行状态:S_HALT=0,S_LOCKUP=0,S_RETIRE_ST=1) CFSR = 0x00000000(无可配置故障) HFSR = 0x00000000(从未发生过硬故障) ``` 因此,CM7 正在堆栈中等待 HCI 回复,但永远不会收到回复。 现在这是一个非常清晰的数据点:基于NXP**自身未经修改的EdgeFast协议栈**, 经过全面改造并接入外部电源后,该显卡**可接受完整的** CRC校验固件映像,然后不运行HCI控制器**。越早“ “3 Mbaud 下载文件已损坏”的解释不再适用——下载 明显成功。 **我们的问题(未作更改,现已与任何下载完整性变量隔离):** 1. IW416 ROM 是否验证通过 UART 下载的 BT 固件(例如,反对 如果密钥采用 OTP 融合技术,如何向主机发出拒绝信号?我们看到 每个数据块都被接受,显示“下载成功!”,然后就一片寂静——没有错误帧。 不再另行通知。 2. 是否为标准的 `uartIW416_bt.bin`(16.92.21.p155.2) 为通用 / 构建 未熔丝的 IW416,或者特定 OEM 钥匙的熔丝部件是否需要匹配的部件 签名图像?如果真是这样,那就说明问题出在 u-blox 身上(相关案例 CA-276115)。 3. 在 UART 下载成功后的最初几秒内,控制器是否应该 立即以下载后速率响应 `HCI_Reset`,或者是一个供应商 是否需要先执行命令/延迟操作? 我很乐意分享完整的串口捕获数据和完整的SWD寄存器块。 我们可以在 `fw_loader_uart.c` 中启用 `DEBUG_PRINT`。提供旁白下载 追踪一下看是否有帮助。 非常感谢您抽出宝贵时间,付出了很多努力——感激不尽!!! 谢谢 - NIC Re: BT firmware accepted over UART but controller never runs; and EdgeFast download corrupts at the 问题已解决/结束更新——感谢您的帮助,以下是答案: 以后看到这个帖子的人。 完成改造并移至外部电源后(根据丹尼尔的三个步骤) 在满足前提条件的情况下,我们运行了**模块替换测试**。持有*所有其他* 完全相同——相同的 MIMXRT1170-EVKB,相同的返修,相同的外部 5V 电源,相同的 MCUXpresso SDK 版本 26.06.00-LTS,与原版 `uartIW416_bt.bin` 相同,以及*相同的编译 EdgeFast `shell` 二进制文件* — 我们用真正的 u-blox M2-MAYA-W161 替换了 u-blox M2-MAYA-W161。 **嵌入式艺术家 Murata Type 1XK M.2 (EAR00385)**(IW416 模块) `board_murata_1xk_m2` 配置文件目标)。 使用 Murata 1XK 时,`bt.init` 可以顺利运行完成: ``` 下载成功! [固件下载]BLE固件已下载 蓝牙已初始化 设置已加载 ``` 控制器启动正常。使用 u-blox MAYA-W161,二进制*相同* 下载过程完全相同(“下载成功!”),然后控制器静默无声。 所以这不是恩智浦的问题。板、SDK、股票 `uartIW416_bt.bin` 和 EdgeFast 协议栈都是正确的——已由 Murata 验证。 IW416 模块在相同的设置下运行于实时控制器。故障点是 特指 u-blox MAYA-W161(其固件配置/认证), 我们将把这个带到u-blox。 以下两点补充说明对论坛其他成员有所帮助: * **我们之前报告的3 Mbaud下载损坏问题就是缺失的部分 流程控制改造。安装 `R1902` 并移除 `R1816`(NXP 的) 五项 EdgeFast 重制版),库存加载器的 115200 → 3,000,000 波特率切换 下载顺利完成,下载成功。在那次重做之前,它已经损坏了。 开关和循环出现了问题;重新设计后问题就解决了。 * 在 MIMXRT1170-EVKB 上,装载机必须以 3 Mbaud 的波特率保持良好的进料状态,这需要 流程控制改造已到位;在 115200 处,它是无条件的。 再次感谢您指出需要返工和外部供货的问题—— 两者都很重要,他们一起成功地将一个正宗的村田模块升级到了最高版本。 谢谢@DanielRuvalcaba ,我会跟进 uBlox 的事宜。
查看全文
S32K142 LPSPI0 Master (lpspi_transfer example): SCK clock not toggling correctly Hello NXP Community, I am using the NXP lpspi_transfer_s32k142 example with LPSPI0 in Master mode on an S32K142 board, without major changes to the example configuration. My issue is that the SCK/Clock waveform is not toggling correctly. I am monitoring SCK, MOSI, MISO and PCS with a logic analyzer. For an 8-bit (1-byte) transfer, I expect 8 SCK clock pulses, but the logic analyzer shows an abnormal/continuous-looking clock waveform instead of the expected pulses. Configuration: LPSPI0 – Master 500 kHz 8-bit frame PCS0 CPOL = Active High CPHA = 1st edge Transfer type = Interrupt I have attached the logic analyzer screenshot showing the SCK waveform. Could someone please help me understand why the SCK clock is not toggling correctly in the NXP example and what configuration I should check? Thank you. Re: S32K142 LPSPI0 Master (lpspi_transfer example): SCK clock not toggling correctly If possible, I suggest you send me the modified test project so that I can quickly reproduce the problem you encountered on the S32K142EVB. Re: S32K142 LPSPI0 Master (lpspi_transfer example): SCK clock not toggling correctly Hi Robin, Thank you for your response. In my current configuration, PCS continuous is unchecked, and the generated configuration has: .isPcsContinuous = false I have not modified this setting. In the uploaded waveform, I am also not getting the expected clean SPI timing. For a 1-byte transfer, I expect 8 SCK clock pulses while PCS is asserted for the complete transfer (PCS active → 8 clock pulses → PCS inactive). However, my logic analyzer capture does not show this expected behavior clearly. The SCK pulses appear irregular, and the PCS/Enable signal is not showing the expected high/low behavior around the complete SPI frame. I have attached the current waveform for reference. Could you please confirm whether this PCS and SCK behavior is expected with the LPSPI_DRV_MasterTransferBlocking() API and the current LPSPI configuration? I will also test with PCS continuous enabled and share the result. Regards, Resham Re: S32K142 LPSPI0 Master (lpspi_transfer example): SCK clock not toggling correctly Hi The image you uploaded is too blurry; I can't see the SPI waveform clearly. Did you modify the LPSPI0 configuration of lpspi_transfer_s32k142 to select PCS continuous? lpspi_transfer_s32k142 LPSPI0 PCS continuous.pnglpspi_transfer_s32k142 LPSPI0 PCS continuous.pnglpspi_transfer_s32k142 LPSPI0 PCS continuous.pnglpspi_transfer_s32k142 LPSPI0 PCS continuous.pnglpspi_transfer_s32k142 LPSPI0 PCS continuous.png It is recommended to use arrows or text to mark where you think there is a problem on a clear SPI waveform. This will help me quickly understand your question. Best Regards, Robin Re: S32K142 LPSPI0 Master (lpspi_transfer example): SCK clock not toggling correctly Hi, Please find attached the ZIP file containing the modified LPSPI transfer test project for the S32K142EVB. Could you please check the project and let me know if the LPSPI transfer configuration is correct or if any changes are required? Thanks for your support. Best regards, Resham Re: S32K142 LPSPI0 Master (lpspi_transfer example): SCK clock not toggling correctly Why can't I see the .mex file in the SPI.zip you sent? Without the .mex file, I have no way of knowing how you configured LPSPI. Which version of S32DS are you using? I imported your project, and it tells me you are using S32K1 SDK RTM 4.0.1. Please confirm the version of S32DS and SDK so I can install them for testing. I'm unable to compile your project correctly using S32DS v3.4 with S32K1 SDK 4.0.2 and 4.0.3 installed. I suspect your S32DS SDK is not installed correctly, which is why there is no .mex file in your project. Did you obtain the project from another colleague? Is it mandatory to use the same SDK version for development? Please determine which version of the S32K1 SDK you need to install.  S32K1 SDK 4.0.3 can be installed by S32DS Extensions and Updates in S32DS v3.4.  As far as I know, S32K1 SDK 4.0.1 can currently only be available in S32DS v3.3. S32K1 SDK 4.0.2 (SW32K1_S32DS_3.4.1_D2106.zip) can be installed in S32DS v3.4. For installation instructions, please refer to: S32 Design Studio v3.4 S32K1 Service Pack 1 released! Re: S32K142 LPSPI0 Master (lpspi_transfer example): SCK clock not toggling correctly After installing S32K1 SDK 4.0.1 by S32DS Extensions and Updates in S32DS v3.3, I was able to build the project correctly without errors.  install S32K1 SDK 4.0.1 in S32DSv3.3.pnginstall S32K1 SDK 4.0.1 in S32DSv3.3.png install S32K1 SDK 4.0.1 in S32DSv3.3 S32DS Extensions and Updates.pnginstall S32K1 SDK 4.0.1 in S32DSv3.3 S32DS Extensions and Updates.png Below are the SPI waveforms I obtained while debugging your SPI project on the LPSPI0 pin of the S32K142EVB. I used a logic analyzer to capture the SPI waveforms for the following pins: PTB0 PCS0 J4.5 PTB2 SCK0 J2.11 PTE1 SIN0 J5.14 PTB4 SOUT0 J2.7 The SPI waveforms appear to match your configuration. The logic analyzer I'm using is different from yours. I suggest you configure your logic analyzer according to the configuration shown in my screenshot. debug LPSPI0 S32K1 SDK 4.0.1.pngdebug LPSPI0 S32K1 SDK 4.0.1.png
查看全文