Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
TFLM Inference Issue: Unexpected Outputs with Large ASR Model in SDRAM (i.MX RT1170 EVK) Hello NXP Support Team, We are experiencing an issue with inference accuracy/behavior while running a large Acoustic Speech Recognition (ASR) model using TensorFlow Lite for Microcontrollers (TFLM) on the i.MX RT1170. Because the model and the required tensor arena exceed internal SRAM, both are explicitly placed into external SDRAM. The application runs smoothly without any memory faults or crashes, but the mathematical output of the model is incorrect. Environment: MCU: MIMXRT1170 (Cortex-M7) OS: FreeRTOS Framework: eIQ / TFLM Memory: Model and Tensor Arena residing entirely in external SDRAM Problem Description: We load the model data into the external SDRAM and configure the MPU. The TFLM MicroInterpreter is initialized, and AllocateTensors() completes successfully (kTfLiteOk). We feed pre-computed float features into the input tensor. To ensure DMA/memory coherency, we manually invalidate the DCache for the input buffer prior to inference. interpreter.Invoke() executes and completes successfully with no crashes or HardFaults. The Issue: The output logits returned by the interpreter are completely incorrect (or blank) compared to running the exact same model and input data on a desktop PC. Troubleshooting Steps Taken: Input Verification: Verified that the byte-for-byte input data fed into the MCU tensor exactly matches the input used in our successful PC Python baseline. Cache Management: Configured the MPU for the SDRAM region and ensured DCache is invalidated before inference so the Cortex-M7 doesn't read stale memory. OpResolver: Verified that every TFLite operation required by the model is registered and supported. Questions for the Team: Are there known precision loss issues or mathematical discrepancies with NXP's TFLM implementation when heavy matrix operations execute entirely out of external SDRAM? Does the Cortex-M7 require a specific MPU attribute configuration (e.g., Strongly Ordered vs. Normal memory) for the external SDRAM to ensure TFLM calculates the weights/activations accurately? Are there specific eIQ hardware-accelerator flags that should be disabled if we are forcing TFLM to run operations outside of the tightly coupled memory (DTC/ITC)? Any guidance on debugging this discrepancy between the MCU output and the PC baseline would be greatly appreciated. Thank you, Priyesh shahi Re: TFLM Inference Issue: Unexpected Outputs with Large ASR Model in SDRAM (i.MX RT1170 EVK) Hi , From the description you shared, it seems like the issue would likely be related to a cache coherency issue rather than to a numerical precision limitation. Rather than invalidating the DCache for the input buffer prior to inference, I recommend using non-cacheable regions for shared/DMA-updated buffers. The following application note describes in more detail how to set up and use non-cacheable memory regions: Using NonCached Memory on i.MXRT. Please try using this method instead and let me know if it helps. Addressing your specific questions: 1. We do not have any documented data that describes precision loss issues when implementing heavy matrix operations entirely on an external SDRAM. 2. For external SDRAM used as normal data configuring it as normal memory would be the recommendation in order to ensure it can be configured as non-cacheable. 3. There isn't any specific accelerator flags documented as the correct path to ensure proper execution of the TFLM operations outside the internal RAM. This is another reason why the issue is more likely related to the cache memory handling rather than the actual operation of the model. BR, Edwin. Re: TFLM Inference Issue: Unexpected Outputs with Large ASR Model in SDRAM (i.MX RT1170 EVK) Hi Edwin, We have successfully isolated the issue and can confirm it is a mathematical corruption bug within the CMSIS-NN optimized kernels (specifically affecting dilated convolutions, which our ASR model relies on heavily). Our Proof: 1. We recompiled "libtflm.a" using purely standard C++ Reference Kernels (omitting the "cmsis_nn" directory during compilation) while keeping our SDRAM cache active and using safe DTCM buffers for DMA transfers. 2. With CMSIS-NN bypassed, the model immediately began successfully decoding correct speech tokens. For example, Chunk 7 correctly outputs "[ easy]", and Chunk 10 correctly outputs "[ ch]". 3. When we revert back to the precompiled CMSIS-NN library, the execution speed drops to 537 ms, but the output is completely corrupted back to empty brackets across all chunks. This confirms our memory setup, cache configuration, and DMA buffers are completely correct, and that a mathematical error is occurring within the CMSIS-NN optimized convolution/depthwise convolution paths when processing non-unity dilation (dilation rate greater than 1). Our Questions: - Which version of the eIQ SDK / CMSIS-NN middleware contains the official bugfix for dilated convolutions (dilation rate greater than 1) in arm_convolve_s8 and arm_depthwise_conv_s8? - Can you provide us with a patch or updated libtflm.a that has corrected CMSIS-NN kernels so we can achieve both full accuracy and the optimized 537 ms inference speed? Regards, Priyesh shahi
查看全文
CAN driver recovery Hello, I am working on the FlexCAN driver (interrupt mode) in the FRDM-A-S32K344 platform. I want to verify whether the CAN driver supports automatic recovery from CAN bus faults without a system or ignition reset. If this recovery feature exists in SDK version 3.0.0, where is it implemented or reflected in the driver, and where should I check it? Re: CAN driver recovery Hi @ganavi1, As @shep mentioned, the FlexCAN driver from the RTD package can enable the "AutoBus Recovery" feature. This is set by default, and no additional settings are required. Once the bit is enabled, FLEXCAN will automatically try to recover from the bus-off state to the normal state (assuming the external conditions that caused the bus-off are removed). Best regards, Julián Re: CAN driver recovery The S32K FlexCAN register has support for automatic bus-off recovery. I don't have the SDK manual, but you can search thru the relevant section to see if it interacts with the bit described in the reference manual. Here is the text from the reference manual: CTRL1 Register BOFFREC Bus Off Recovery Determines how FlexCAN recovers from Bus Off state. If 0, automatic recovering from Bus Off state occurs according to the CAN Specification 2.0B. If 1, automatic recovering from Bus Off is disabled. The module remains in Bus Off state until you write 1 to this field. If this field becomes 0 before 128 sequences of 11 recessive bits are detected on the CAN bus, Bus Off recovery happens as if this field had never become 1. If this field becomes 0 after 128 sequences of 11 recessive bits occurred, FlexCAN resynchronizes to the bus. It waits for 11 recessive bits before joining the bus. After this field becomes 0, it can become 1 again during Bus Off, but it will only be effective the next time the module enters Bus Off. If this field becomes 0 when the module is in Bus Off, writing 1 to this field is not effective for the current Bus Off recovery. See Bus Off in the CAN protocol standard ISO 11898-1:2015 for details. NOTE 0b - Enabled 1b - Disabled The default value of the bit is 0, so by default it will perform bus-off recovery automatically. Re: CAN driver recovery Here is some error correction feature as below, hope it helps. Detection and correction of errors in memory read accesses: —Each byte of FlexCAN memory is associated to five parity bits. —The error correction mechanism ensures that errors in one bit of this 13-bit word can be corrected (correctable errors). —Errors in two bits can be detected but not corrected (noncorrectable errors). Re: CAN driver recovery Thanks for your reply
查看全文
i.MX8ULPでのSPI NANDブート こんにちは、 i.MX8ULPのSPI NANDからブートしようとしています。 evkにはSPI NORが搭載されており、そこから起動することはできましたが、当社のボード上のNANDで試したところ、うまくいきませんでした。BT*_CFG*ピンを設定したところ、ブートROMがNANDを読み取ろうとしていることは確認できましたが、M33コアもA35コアも起動しないようなので、ブートイメージが正しくないのではないかと考えています。 imx-mkimage flash_singleboot_m33_flexspiターゲットを使用してイメージを構築していますが、このターゲットはヘッダーブロックとしてfspi_headerファイルを使用します。しかし、このファイル内のコメントを見ると、これはシリアルNOR用でありNAND用ではないようですので、このflexspi構成ブロックヘッダーについて調べています。 ターゲットに適したヘッダーファイルを作成するにはどうすればよいでしょうか? kobs-ngを見つけたのですが、8ulp向けには設計されていないようです(GPMI NANDコントローラーがなく、軽くパッチを適用しても動作しません)。 8ulpのドキュメントにも、FCFBブロックに関するドキュメントは見当たりませんでした。i.MX 8M Mini Applications Processorのリファレンスマニュアル(およびu-boot mkimageにそれに関するオプションを追加するu-bootパッチ)でそれに関するドキュメントを見つけましたが、たとえそれが本当に同じフォーマットだとしても、i.MX8ULPでそれを使用する方法(特にどのLUTテーブルを使用するか)を教えていただけると助かります。 ありがとうございました。 ドミニク・マルティネ Re: SPI NAND boot on i.MX8ULP メッセージを見逃してしまい申し訳ありません。そちらの8ULPとSPI-NANDの回路図の一部を共有していただけますか?また、エラーログ全体も共有していただけますか? Re: SPI NAND boot on i.MX8ULP ご回答ありがとうございます。 ボードはSDカードから正常に起動するため、SoC/メモリに明らかな問題はありません(BT*_CFG*からの切り替え)。 BT CFGの正確なピンと使用されているピンについては後ほど投稿しますが、SPI転送を見ると起動時にNANDが読み取られていることがはっきりと確認できるので、この部分は恐らく正しいと思われます。まずはfspi_headerを確認したいと思います。 昨日さらに調べてみたところ、SPSDKのnxpimageにこのためのコマンドがあることが分かりましたが、8ulpのnorフラッシュしかサポートしていないようです。そのため、依然として様々なパラメータを手動で試すしかなく、デバイス上で実行できるkobsのようなドキュメントやツールがあればありがたいです。 ありがとう Re: SPI NAND boot on i.MX8ULP 遅れてごめんなさい。 参考までに、ボードの構成は以下のとおりです。 - ブートヒューズをクリアしました(受領時の初期状態)。 - QSPI NANDは以下のように接続されます。 PTD12(FLEXSPI2_A_SS0_b) /CS PTD13(FLEXSPI2_A_SCLK) CLK PTD14(FLEXSPI2_A_DATA3) /HOLD(IO3) PTD15(FLEXSPI2_A_DATA2) /WP(IO2) PTD16(FLEXSPI2_A_DATA1) DO(IO1) PTD17(FLEXSPI2_A_DATA0) DI(IO0) - ブートピンは以下のとおり BOOT_MODE0が開いている(0)、BOOT_MODE1がプルアップされている(1)=ピンからブートする BT0_CFG0がプルダウンされました(低電力ブートなし) BT0_CFG1 がダウンロードされました (デュアルブート M33/A35 "eMMC から"...) BT0_CFG2は無視されました BT0_CFG3がプルダウンされ、CFG4がプルアップされました(m33ブートインターフェース。デュアルブートでは無視すべきでしょうか?)。 BT0_CFG5は無視されました BT0_CFG6/7は両方ともプルダウンされています(24MHz外部OSC)。 BT0_CFG[8-11]は無視されました BT0_CFG12/13 はフローティング、CFG14 はプルダウンされています (「flexspi デバイスタイプ」が m33 とは独立したブート設定なのか、両方に影響するのかは不明です。念のため、011 (4B READ(0x13) でフラッシュ、これは当社の NAND がサポートしているもの) に設定してみましたが、目に見える違いはありませんでした)。 BT0_CFG15は無視されました BT1_CFG[0-3]は無視されました BT1_CFG4 がダウンロードされました (eMMC 高速ブートが無効になっています) BT1_CFG5 プルダウン (速度は通常) BT1_CFG6/7 がプルダウンされました (バス幅 4) BT1_CFG8は無視されました BT1_CFG9が起動しました(SDカードブート、SPIブートモードでは無視してください) BT1_CFG10/11/12はそれぞれ下落/上昇/下落しました(USDHC2も同様に無視してください)。 BT1_CFG13/14はそれぞれプルアップ/プルダウンされます(SPI NAND)。 BT1_CFG15 がプルダウンされました (SD ブートへのリカバリ) 他に確認すべき点があれば教えてください。そうでなければ、フラッシュブート設定ブロックに関するドキュメントに引き続き興味があります。 よろしくお願い申し上げます。 Re: SPI NAND boot on i.MX8ULP SPI NANDとブートモードに関するハードウェア設計はどうでしょうか?ボードには、eMMCやSDカードなど、他のフラッシュメモリが搭載されていますか?はいの場合、システムが起動できるかどうか試してみていただけますか? Re: SPI NAND boot on i.MX8ULP こんにちは、 @Rita_Wang お返事ありがとうございます。私はミゾ族で、martinetdの同僚です。 現在、私たちが具体的に知りたいのは、SPI NAND用のブートイメージファイルを作成する方法です。 リファレンス・マニュアルには、FlexSPI2にコネクテッドされたSPI NANDからのブートがサポートされていると記載されています。しかしながら、イメージファイルヘッダーに必要な正確なフォーマットが不明なため、現時点ではブートイメージを作成することができません。 NXPは既に内部的にSPI NANDからi.MX8ULPの起動に成功していると想定します。画像ファイルのヘッダー形式を共有していただくか、このヘッダーを生成するために使用したソフトウェア/ツールをご提供いただければ大変ありがたいです。 ご支援ありがとうございます。 Re: SPI NAND boot on i.MX8ULP こんにちは、 @Rita_Wang さん。 何か進展はありましたか?この件で行き詰まっており、どんなご支援でも大変ありがたく思います。 よろしくお願いします! Re: SPI NAND boot on i.MX8ULP 私はGolden Shiny Oscilloscope ™にアクセスし、その構成で起動すると、チップがNANDの最初の部分を正常に読み取ることを確認しました(ブロック0に対して0x13の読み取りを発行し、NANDがビジー状態でなくなるまでステータスレジスタをポーリングし、その後少なくとも2KBのデータを読み取ります。特に、読み取られたデータは、1KBのゼロとFCFBヘッダーが続くimx-bootイメージの開始部分と一致することを確認しました)。 この時点ではそれ以上何も起こりません。スコープの扱いに慣れていないため、後でさらにデータが読み込まれたかどうかは判断できませんが、読み取りが停止したようです。そのため、私が書いた fspi_header が正しいかどうかを確認したいです (シリアル NOR の 0x01 の代わりにシリアル NAND の 0x02 を入力し、SFlashA1Size、ページ サイズ、セクタ サイズ、ブロック サイズも入力しましたが、それ以外は imx-mkimage リポジトリにあったものをそのまま残しました)。 NAND用の有効なFSPIヘッダーの書き方について、何かヒントをいただけるとありがたいです。 ありがとう Re: SPI NAND boot on i.MX8ULP こんにちは、 @Rita_Wang さん。 この件に関する最新情報はありますか? i.MX 8ULPでSPI NANDからのブートがサポートされていない場合、できるだけ早く代替方法の調査を開始する必要があります。このSoCでSPI NANDブートが実際に可能かどうか、少なくとも確認していただけますか? uboot-imxのソースコードにあるarch/arm/mach-imx/cmd_nandbcb.cを確認したところ、imx8mn、imx8qx/qmなどがサポートされていることがわかりました。このことから、SPI NANDブートは可能であると推測される。 また、i.MX 8ULPと全く同じSPI NANDブート仕様を持つi.MXシリーズのプロセッサが他に存在する場合、それらを参考にさせていただきたいので、どの製品か教えていただけますでしょうか? ご支援いただき、改めて感謝申し上げます。 Re: SPI NAND boot on i.MX8ULP 私も試してみます。完了したらまたご連絡します。 Re: SPI NAND boot on i.MX8ULP こんにちは、 @Rita_Wang さん。 最新情報のご提供ありがとうございます。 私は既に、SPI NANDフラッシュを搭載したi.MX8ULPカスタムボードを自作しました。したがって、ブートイメージの作成方法とプログラム方法を教えていただければ、すぐにテストと検証を行うことができます。 事前に手順と情報だけを共有していただくことは可能でしょうか? よろしくお願いします、 ミゾ族 Re: SPI NAND boot on i.MX8ULP こんにちは、 @Rita_Wang さん。 SPI NANDブートがi.MX91と同じ仕様でサポートされているという情報を受け取りました。こちら側でも導入を試みます。 よろしくお願いします、 ミゾ族 Re: SPI NAND boot on i.MX8ULP i.MX8ULP ROMはSPI NANDブートをサポートしていますが、EVKはSPI NORのみをサポートしています。SPI NANDを使用したい場合は、 i.MX91のコードを参照してください。詳細はメールでご説明しました。
查看全文
NCx3321統合に関する技術サポートおよびドキュメントのリクエスト チームの皆様へ 現在、認証関連機能のために、NCx3321デバイスとTexas Instruments MSPM0G3519コントローラをインターフェースされたアプリケーションを開発しています。統合プロセスに関して、ご指導と技術サポートをお願いしたいのですが。 具体的には、以下のものを探しています。 -NCx3321データシートおよび技術文書、SPI通信プロトコルの詳細、レジスタマップおよび初期化シーケンス、RFフィールドイネーブル手順 - 参考ソフトウェア/サンプルまたはアプリケーションノート カード検出および認証に関する推奨開発フロー NCx3321デバイスを使用した開発を開始するために必要な推奨プロセスとリソースについてご教示いただければ大変助かります。 完全なドキュメントにアクセスするために、NDA(秘密保持契約)の要件、SDKパッケージ、または追加のサポートチャネルなど、遵守すべき事項があればお知らせください。皆様のサポートとご指導を心よりお待ちしております。 Re: Request for Technical Support and Documentation for NCx3321 Integration こんにちは@Ja10 はい、NXPと秘密保持契約(NDA)を締結する必要があります。その後、技術文書を請求できます。NDAを確立するには、 NXPの技術サポートと開発者向けリソース | NXPセミコンダクターズ そして選択する
查看全文
TPL communication is not works in mc33771c I have a custom board that functions perfectly with the MC33771B using its BCC driver library. However, when I replace the IC with an MC33771C and switch to the official NXP BCC driver for the C variant (from the EMBEDDED-SW-MC33771C package), communication fails during BCC_AssignCid due to a CRC error. i think TPL communication is not works because all time received only echo frame not able to receive data. same hardware works with mc33771b just change bcc library according to IC. Re: TPL communication is not works in mc33771c This is our custom board schematic and this is our code for tpl communication The communication works correctly with the MC33771B using a specific implementation and BCC library. I can successfully send commands and receive valid response frames. However, when I use the same communication code and only replace the BCC library/configuration for the MC33771C, I receive only the echo frame and no valid response from the device. The SPI/TPL timing, frame format, and hardware connections remain the same. The wake-up sequence and INIT sequence are also implemented. Has anyone experienced this issue with MC33771C? bcc_status_t BCC_MCU_TransferTpl(uint8_t drvInstance, uint8_t transBuf[], uint8_t recvBuf[], uint16_t recvTrCnt) { // Total receive size = 6 bytes * number of transfers uint16_t recvSize; if(recvTrCnt>0) recvSize = (recvTrCnt-1) * 6U; else recvSize = 6U; HAL_SPI_DeInit(&hspi2); HAL_Delay(2); HAL_SPI_Init(&hspi2); memset(recvBuf,0,sizeof(&recvBuf)); // Start SPI communication HAL_GPIO_WritePin(CS_TX_GPIO_Port, CS_TX_Pin, GPIO_PIN_RESET); HAL_SPI_Receive_IT(&hspi2, recvBuf, 6); rxflag = 0; // --- Transmit one 48-bit frame --- if (HAL_SPI_Transmit_IT(&hspi1, transBuf, 6) != HAL_OK) { HAL_GPIO_WritePin(CS_TX_GPIO_Port, CS_TX_Pin, GPIO_PIN_SET); return BCC_STATUS_PARAM_RANGE; } BCC_MCU_WaitUs(5); if(spi2_rx_done == 1) { HAL_SPI_Receive_IT(&hspi2, recvBuf, recvSize); spi2_rx_done = 0; } HAL_GPIO_WritePin(CS_TX_GPIO_Port, CS_TX_Pin, GPIO_PIN_SET); return BCC_STATUS_SUCCESS; } int MC33771_Init(void) { // Enable MC33664 TPL transceiver first HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_RESET); HAL_Delay(1); HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_SET); HAL_Delay(10); // Wait for MC33664 ready // Configure BCC driver g_bccConfig.drvInstance = 0; g_bccConfig.commMode = BCC_MODE_TPL; g_bccConfig.devicesCnt = 1; g_bccConfig.device[0] = BCC_DEVICE_MC33771C; g_bccConfig.cellCnt[0] = 14; // Initialize BCC library status = BCC_Init(&g_bccConfig); if (status != BCC_STATUS_SUCCESS) { return (int)status; } } int MC33771_ReadAllCellVoltages(float cellVoltages[14]) { uint16_t measurements[BCC_MEAS_CNT]; uint32_t voltage_uv; uint8_t cell; if (cellVoltages == NULL) { return -1; } status = BCC_Meas_StartConversion(&g_bccConfig, BCC_CID_DEV1,BCC_AVG_1); if (status != BCC_STATUS_SUCCESS) { return status; } HAL_Delay(600); // Read measurements status = BCC_Meas_GetRawValues(&g_bccConfig, BCC_CID_DEV1, measurements); if (status != BCC_STATUS_SUCCESS) { return status; } // Extract all cell voltages for (cell = 0; cell < 14; cell++) { voltage_uv = BCC_GET_VOLT(measurements[BCC_MSR_STACK_VOLT + cell]); cellVoltages[13 - cell] = (float)voltage_uv / 1000.0f; cellVoltages[13 - cell] = (float)cellVoltages[13 - cell] / 1000.0f; } return 0; } int main(void) { /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Configure the peripherals common clocks */ PeriphCommonClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DMA_Init(); MX_SPI1_Init(); MX_SPI2_Init(); MX_TIM16_Init(); MX_USART1_UART_Init(); MC33771_Init(); while (1) { temp = MC33771_ReadAllCellVoltages(voltage); HAL_Delay(1000); } } void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) { if (hspi->Instance == SPI2) spi2_rx_done = 1; } static void MX_SPI1_Init(void) { /* USER CODE BEGIN SPI1_Init 0 */ /* USER CODE END SPI1_Init 0 */ /* USER CODE BEGIN SPI1_Init 1 */ /* USER CODE END SPI1_Init 1 */ /* SPI1 parameter configuration*/ hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 7; hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE; hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE; if (HAL_SPI_Init(&hspi1) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN SPI1_Init 2 */ /* USER CODE END SPI1_Init 2 */ } /** * @brief SPI2 Initialization Function * @param None * @retval None */ static void MX_SPI2_Init(void) { /* USER CODE BEGIN SPI2_Init 0 */ /* USER CODE END SPI2_Init 0 */ /* USER CODE BEGIN SPI2_Init 1 */ /* USER CODE END SPI2_Init 1 */ /* SPI2 parameter configuration*/ hspi2.Instance = SPI2; hspi2.Init.Mode = SPI_MODE_SLAVE; hspi2.Init.Direction = SPI_DIRECTION_2LINES_RXONLY; hspi2.Init.DataSize = SPI_DATASIZE_8BIT; hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; hspi2.Init.CLKPhase = SPI_PHASE_2EDGE; hspi2.Init.NSS = SPI_NSS_HARD_INPUT; hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi2.Init.TIMode = SPI_TIMODE_DISABLE; hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi2.Init.CRCPolynomial = 7; hspi2.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE; hspi2.Init.NSSPMode = SPI_NSS_PULSE_DISABLE; if (HAL_SPI_Init(&hspi2) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN SPI2_Init 2 */ /* USER CODE END SPI2_Init 2 */ } Re: TPL communication is not works in mc33771c Dear Miral, if you use recommended software for the MC33771C, then it looks to be a hardware issue. Please refer to the AN12633. If you are switching from MC33771B to MC33771C you need to change some external components.  E.g. the CLPF, CIN in the low pass filter are different. For the external components between the MC33664 and first MC33771B and/or MC33771C node please refer to the section 13.2.6 in MC33771B full datasheet and in MC33771C full datasheet respectively. The MC33771C full datasheet is publicly available, while the MC33771B full datasheet is confidential, can be downloaded with valid NDA from the Secure section.  With Best Regards, Jozef Re: TPL communication is not works in mc33771c Dear Miral, write commands, global write or invalid frames in the MC33771C do not generate a response; only valid read commands return data. This is stricter than many MC33771B examples, where some drivers expect a reply after every frame. MC33771C TPL requires: Proper wake sequence AND waiting time Please try to send a read command (E.g. a STATUS register) and see if the MC33771C responses.  With Best Regards, Jozef Re: TPL communication is not works in mc33771c Hi Miral, your schematic looks to be correct for the MC33771C. For the software I have contacted a software engineer. So far no answer from him. As soon as I receive an answer, I will definitely reply to you. Thank you for your patience. With Best Regards, Jozef Re: TPL communication is not works in mc33771c I checked all the wake-up sequence timing it all looks good but TPL Communication still not works. also we check the required external components for mc33771c I shared my schematic also if there any issue in board.
查看全文
AMDGPU 在 Polaris12 SMU 固件启动期间出现故障 大家好, 我们使用的是恩智浦 T1040RBD 主板,在加载 amdgpu 驱动程序时,它在 Polaris12 SMU 固件启动期间失败。 请查看以下日志以及内核配置和 dtb 文件 amdgpu: 发送信息失败 100 ret is 0 amdgpu: SMU 固件启动失败! amdgpu: 加载 SMU ucode 失败。 amdgpu: fw load failed amdgpu: smu firmware loading failed amdgpu 0001:01:00.0:amdgpu: amdgpu_device_ip_init 失败 amdgpu 0001:01:00.0:amdgpu:GPU 启动过程中出现致命错误 amdgpu 0001:01:00.0:amdgpu:amdgpu:整理设备。 [drm:.gfx_v8_0_set_eop_interrupt_state[amdgpu]] invalid me 2 [drm:.gfx_v8_0_set_eop_interrupt_state[amdgpu]] invalid me 2 [drm:.gfx_v8_0_set_eop_interrupt_state[amdgpu]] invalid me 2 [drm:.gfx_v8_0_set_eop_interrupt_state[amdgpu]] invalid me 2 amdgpu: probe of 0001:01:00.0 failed with error -22 Re: AMDGPU fails during Polaris12 SMU firmware startup 您好 ,有什么办法可以解决驾驶员一侧的问题吗? , Ganesh。 Re: AMDGPU fails during Polaris12 SMU firmware startup 您好, 抱歉 T1040 上的 Polaris12 amdgpu 没有恩智浦的驱动程序修复程序或现成的存储库,因此任何使其正常工作的尝试都将是客户自主的 SDK 内核开发工作,存在重大的 PCIe 窗口和 endianness 风险。 此致 Re: AMDGPU fails during Polaris12 SMU firmware startup 您好, 现有文件支持 T1040RDB 可以托管 PCIe 卡,但不支持或验证 AMD Polaris12 amdgpu 的运行,而且故障与不支持的 big-endian PowerPC 主机兼容性问题最为吻合,而不是已知的恩智浦 PCIe 升级修复问题。 此致
查看全文
SJA1105 和 TJA1120 之间 SGMII 的不同连接方法 Hi,NXP In SJA1105。根据手册说明,在 SGMII 接口的 MAC2PHY 模式下,RX 需要连接到 RX,TX 需要连接到 TX。但在 TJA1120 手册中,RX 需要连接到 TX,即交叉连接。目前,我使用 SJA1105 的接线方法将 SJA1105 与 TJA1120B 连接,但无法成功发送和接收数据。针对这一问题有哪些预防措施和建议? 敬上, xianlong PHY 开关 Re: Different connection methods of SGMII between SJA1105 and TJA1120 您好@wuxianlong、 是的,没错--将输出连接到输入--没有什么隐藏的魔法。 两张图都只是使用了"通用引脚名称" 。 帕维尔 Re: Different connection methods of SGMII between SJA1105 and TJA1120 你好, @PavelL 将一侧的发射器连接到另一侧的接收器。 谢谢您的答复。 根据您的这一原则,当 SJA1105 连接到 TJA1120B 时,正确的接线应为:SGMII_RXP<- SOP,SGMII_RXN SIP,SGMII_TXN -> SIN。我可能接错线了。SJA1105 的方框图有些误导。 敬上, xianlong Re: Different connection methods of SGMII between SJA1105 and TJA1120 您好@wuxianlong、 对于 SJA1105 和 TJA1120B 之间的连接,请将其视为标准 PHY 到 MAC SGMII 连接。尽管这两个文档中的措辞可能看起来不同,但重要的是要遵循信号方向,即将一侧的发射器连接到另一侧的接收器。 对于 TJA1120B,SGMII 信号定义显示 PHY 输出对连接到 MAC 输入对,反之亦然。因此,我建议按照 TJA1120B SGMII 信号图进行线路连接,而不是按字面意思解释 RX/TX 字样。 请参阅以下我的建议,找出根本原因。 在 SJA1105 侧: 尝试将 SGMII 设置为固定速度 1G,禁用自动协商。 检查 SGMII 电平是否根据 AH1704 SJA1105PQRS 应用提示,1.4 版,表 35 进行了相应设置。 SGMII 电平设置。 要进一步诊断问题,请阅读& ,检查 SJA1105P、SJA1105Q、SJA1105R、SJA1105S 的 UM11040 软件用户手册第 3 版第 6.5 SGMII 配置 (SGMII) 章中列出的 SGMII 寄存器。 在 TJA1120 侧: 检查是否设置了 SGMII-PHY 模式。 要进一步诊断问题,请阅读& ,检查 TJA1120 数据表 1.0 版第 79 页表 66 中列出的 SGMII 寄存器。 顺祝商祺! 帕维尔
查看全文
DM-Crypt usage on i.MX Platforms without CAAM hardware IP Hi, I am following a "DM-Crypt usage on i.MX Platforms without CAAM hardware IP" guide from NXP on i.MX93 board. I am using the following steps: modprobe dm-crypt modprobe tee_crypto modprobe trusted export DEV=/dev/loop0 dd if=/dev/zero of=/data/encrypted.img bs=1M count=512 losetup -P $DEV /data/encrypted.img export KEYNAME=dm_trustedkey export KEY="$(keyctl add trusted $KEYNAME 'new 32' @s)" keyctl pipe $KEY >/data/$KEYNAME.blob keyctl list @s export ALGO="capi:cbc-aes-tee-plain" export BLOCKS=$(blockdev --getsz /dev/loop0) export SECTOR_SIZE=4096 export TABLE="0 $BLOCKS crypt $ALGO :32:trusted:$KEYNAME 0 $DEV 0 1 sector_size:$SECTOR_SIZE" dmsetup -v create encrypted --table "$TABLE" However, my kernel crashes with the following OOPS: [ 713.174934] Unable to handle kernel paging request at virtual address ffff8000a1fca858 [ 713.182908] Mem abort info: [ 713.185716] ESR = 0x0000000096000006 [ 713.189477] EC = 0x25: DABT (current EL), IL = 32 bits [ 713.194786] SET = 0, FnV = 0 [ 713.197848] EA = 0, S1PTW = 0 [ 713.200993] FSC = 0x06: level 2 translation fault [ 713.205873] Data abort info: [ 713.208762] ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000 [ 713.214246] CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [ 713.219296] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [ 713.224611] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000089bcd000 [ 713.231309] [ffff8000a1fca858] pgd=10000000fffff003, p4d=10000000fffff003, pud=10000000ffffe003, pmd=0000000000000000 [ 713.241943] Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP [ 713.248199] Modules linked in: tee_crypto dm_crypt crct10dif_ce polyval_ce polyval_generic layerscape_edac_mod rtc_rv8803 at24 btnxpuart flexcan can_dev cfg80211 fuse overlay trusted [ 713.264459] CPU: 0 PID: 532 Comm: dmsetup Not tainted 6.6.52-lts-next-07235-gfdd32c7240b4 #1 [ 713.272880] Hardware name: EVVA i.MX93 Gateway (DT) [ 713.277743] pstate: a0400009 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 713.284694] pc : osq_lock+0x5c/0x134 [ 713.288270] lr : __mutex_lock.constprop.0+0x1f0/0x540 [ 713.293317] sp : ffff800083543750 [ 713.296616] x29: ffff800083543750 x28: ffff000001e3417a x27: 0000000000000001 [ 713.303743] x26: ffff000000a43e00 x25: ffff000005b7dbf0 x24: 00000000ffffffff [ 713.310864] x23: 0000000000000002 x22: fffffc000002e4c0 x21: fffffc000002e884 [ 713.317988] x20: ffff800083543768 x19: fffffc000002e878 x18: 0000000000000001 [ 713.325112] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000 [ 713.332239] x14: 0000000000000000 x13: 01485ce3a37a7a58 x12: ed352f5eedb722c0 [ 713.339360] x11: 0101010101010101 x10: fffffffffa67a3b3 x9 : 0000000000000000 [ 713.346484] x8 : ffff800083543920 x7 : 0000000000000000 x6 : 000000000000003f [ 713.353608] x5 : 0000000000000040 x4 : 0000000003fffbff x3 : ffff800081fcc860 [ 713.360732] x2 : ffff800081cf0d00 x1 : ffff00007fb98d00 x0 : fffffc000002e884 [ 713.367859] Call trace: [ 713.370294] osq_lock+0x5c/0x134 [ 713.373518] __mutex_lock.constprop.0+0x1f0/0x540 [ 713.378215] __mutex_lock_slowpath+0x14/0x20 [ 713.382479] mutex_lock+0x48/0x54 [ 713.385787] tee_device_get+0x20/0x6c [ 713.389444] register_shm_helper+0x3c/0x2e8 [ 713.393624] tee_shm_register_kernel_buf+0x18/0x24 [ 713.398408] skcipher_setkey+0xe8/0x21c [tee_crypto] [ 713.403374] cbc_skcipher_setkey+0x38/0x7c [tee_crypto] [ 713.408589] crypto_skcipher_setkey+0x6c/0x124 [ 713.413029] crypt_setkey+0x104/0x22c [dm_crypt] [ 713.417658] crypt_set_key+0x248/0x360 [dm_crypt] [ 713.422354] crypt_ctr+0x634/0xfb8 [dm_crypt] [ 713.426705] dm_table_add_target+0x218/0x380 [ 713.430969] table_load+0x140/0x3f0 [ 713.434453] ctl_ioctl+0x378/0x648 [ 713.437851] dm_ctl_ioctl+0x10/0x20 [ 713.441334] __arm64_sys_ioctl+0xac/0xf0 [ 713.445252] invoke_syscall+0x48/0x114 [ 713.448996] el0_svc_common.constprop.0+0xc0/0xe0 [ 713.453693] do_el0_svc+0x1c/0x28 [ 713.457001] el0_svc+0x40/0xe4 [ 713.460055] el0t_64_sync_handler+0x120/0x12c [ 713.464402] el0t_64_sync+0x190/0x194 [ 713.468066] Code: 340005c4 51000484 d000f723 91218063 (f864d863) [ 713.474147] ---[ end trace 0000000000000000 ]--- [ 713.478800] note: dmsetup[532] exited with preempt_count 1 I am using 6.6.52_2.2.2 scarthgap release. I think the problematic driver is drivers/tee/crypto/tee_skcipher.c. Here is the output when loading the kernel module: [ 665.731673] tee_client_open_session failed, err: ffff0008 [ 665.737206] tee_crypt algorithms registered in /proc/crypto [ 665.742835] driver 1.0 loaded. The prerequisites from the document have been fulfilled in our BSP: Prerequisites: Ensure that a region of OCRAM is reserved to be accessed by Secure World only. This region is used to save cryptographic keys. Current OCRAM reserved regions: For i.MX 93: 0x20518000 - 0x2051C000 For i.MX 95: 0x204BC000 - 0x204C0000 For i.MX 91: 0x204A0000 - 0x204A4000 For i.MX 943: 0x204BC000 - 0x204C0000 Make sure the following configurations are enabled in the kernel: CONFIG_TEE_CRYPTO = m CONFIG_DM_CRYPT = m CONFIG_TRUSTED_KEYS = m CONFIG_TRUSTED_KEYS_CAAM = n CONFIG_TRUSTED_KEYS_TEE = y In OP-TEE, check whether the following flags in the core/arch/arm/plat-imx/conf.mk platform specific section for which DM-crypt are enabled or not: CFG_IMX_TRUSTED_ARM_CE = y CFG_IN_TREE_EARLY_TAS += trusted_keys/f04a0fe7-1f5d-4b9b-abf7-619b85b4ce8c Any ideas what might be an issue here? Re: DM-Crypt usage on i.MX Platforms without CAAM hardware IP Fixed it. I forgot to update optee blob when rebuilding with CFG_IMX_TRUSTED_ARM_CE = y. Can be closed.
查看全文
从 RT685 上的 DSP 向 PSRAM 写入数据 我使用的是 RT685 平台,通过 FlexSPI 连接 PSRAM。PSRAM (ISSI IS66WVR8M8FALL) 连接到端口 A2,QSPI 闪存连接到端口 A1。 PSRAM 被配置为通过 AHB 访问,FlexSPI 在启动后配置在 MCU 端,几分钟后从 DSP 端写入数据。从 DSP 端写入数据时,PSRAM 中存在一些 0x00 数据,而且数据看起来很规则。为了调试这个问题,我一次写了 192 字节 0x32 然后写了 0x33... 从 MCU 端写入和读取数据没有问题。该问题仅在从 DSP 端写入数据时出现。 FlexSPI 的配置、 const flexspi_config_t FLEXSPI_config = { .rxSampleClock = kFLEXSPI_ReadSampleClkLoopbackInternally, .enableSckFreeRunning = false, .enableDoze = true, .enableHalfSpeedAccess = false, .enableSckBDiffOpt = false, .enableSameConfigForAll = false, .seqTimeoutCycle = 65535, .ipGrantTimeoutCycle = 255, .txWatermark = 8U, .rxWatermark = 8U, .ahbConfig = { .ahbGrantTimeoutCycle = 255, .ahbBusTimeoutCycle = 65535, .resumeWaitCycle = 32, .buffer = { { .priority = 0, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 1, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 2, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 3, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 4, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 5, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 6, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 7, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true } }, .enableClearAHBBufferOpt = true, .enableReadAddressOpt = false, .enableAHBPrefetch = false, .enableAHBBufferable = true, .enableAHBCachable = false } }; PSRAM 的配置、 flexspi_device_config_t FLEXSPI_config_Device_SPIRAM = { .flexspiRootClk = SPIRAM_ROOT_CLOCK_HZ, .isSck2Enabled = false, .flashSize = SPIRAM_SIZE_KBYTES, .CSIntervalUnit = kFLEXSPI_CsIntervalUnit1SckCycle, .CSInterval = 2, .CSHoldTime = 3, .CSSetupTime = 3, .dataValidTime = 0, .columnspace = 0U, .enableWordAddress = false, .AWRSeqIndex = SPIRAM_LUT_SEQ_IDX_WRITE, .AWRSeqNumber = 1U, .ARDSeqIndex = SPIRAM_LUT_SEQ_IDX_READ, .ARDSeqNumber = 1U, .AHBWriteWaitUnit = kFLEXSPI_AhbWriteWaitUnit2AhbCycle, .AHBWriteWaitInterval = 1, .enableWriteMask = false, }; 有人知道这个问题吗? i.MX RT600 Re: Writing Data to PSRAM from DSP on RT685 你好@VincentW 我认为问题很可能是由于多主访问的 FlexSPI AHB 配置不正确造成的。 目前,所有 AHB 缓冲区都分配给主控 0。 .buffer = { { .priority = 0, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 1, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 2, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 3, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 4, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 5, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 6, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 7, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true } }, 您可以尝试为 dsp 分配一个缓冲器。 启用 AHB 写缓冲(enableAHBBufferable = true)可能会延迟或合并写入,这不适合 PSRAM,可能会导致数据丢失。 您可以尝试 enableAHBBufferable = false; BR 哈利 Re: Writing Data to PSRAM from DSP on RT685 谢谢你,哈里。 .mastIndex 有什么含义吗??还是有任何范围? 我只想知道如何选择主 ID。 Re: Writing Data to PSRAM from DSP on RT685 嗨,哈里、 我试着禁用 AHB TX 的缓冲区,但这无助于解决这个问题。 enableAHBBufferable = false; 您知道缓存中是否有任何可能导致这种情况的因素吗? 非常感谢。 Re: Writing Data to PSRAM from DSP on RT685 你好@VincentW 根据 RT600/RT685 的相关文件。缓冲区 [] 对应 AHB RX 缓冲区,即读取路径缓冲区, 的范围。优先级从 0 到 7,7 为最高优先级,0 为最低优先级; 。mastIndex 是 AHB 主设备 ID,用于将某个 AHB RX 缓冲区分配给主设备进行读取访问。文档指出,FlexSPI 将根据主站 ID 选择 RX 缓冲区;一个主站不支持分配多个 RX 缓冲区。 的单位。SDK 结构中的 bufferSize 是字节,但底层寄存器 BUFSZ 的单位是 64 位 详情请参考 RT600 用户手册。 BR 哈利 Re: Writing Data to PSRAM from DSP on RT685 你好@VincentW 我会与我们的内部团队讨论,并尽快给您答复。 BR 哈利 Re: Writing Data to PSRAM from DSP on RT685 你好@VincentW 是的,你说得对。 xthal_set_region_attribute((void *)0x08000000,0x800000,XCHAL_CA_BYPASS,0); BR 哈利 Re: Writing Data to PSRAM from DSP on RT685 你好@VincentW 测试之后 如果 FlexSPI PSRAM 的读写操作由不同的主控(即 CM33 和 DSP)处理,有两点需要注意: 1.对于 DSP,访问 FlexSPI 时会绕过 Cache64,而对于 CM33,访问 FlexSPI 的路径上有 Cache64。详见第一张图。 因此,我建议在 CM33 读取 - DSP 写入和 CM33 写入 - DSP 读取时禁用 cache64。 2.HiFi4 dsp 有指令缓存和数据缓存。对于 PSRAM 的访问,访问是可缓存的。 因此,如果 DSP 写入 PSRAM,那么 CM33 的读数可能会不一致。 因此,我建议在 CM33 读取 - DSP 写入和 CM33 写入 - DSP 读取时,为 FlexSPI PSRAM 设置非高速缓存访问。 我们测试的数据是一致的。 BR 哈利 Re: Writing Data to PSRAM from DSP on RT685 你好@VincentW 您能分享一下您的代码吗? 我想在我这边重现这个问题。 BR 哈利 Re: Writing Data to PSRAM from DSP on RT685 你好@VincentW "由于代码中包含一些商业代码,恐怕我无法与大家分享,对此我深表歉意。" 我们需要编写代码来重现您之前提到的问题。 "根据我对 UM11147 的理解,uSDHC 的 ADMA 无法访问 SPI RAM 的映射地址,对吗?" 是的,你说得对。 BR 哈利 Re: Writing Data to PSRAM from DSP on RT685 谢谢你,哈里。 实际上,我提出了两个与访问 SPI RAM 有关的问题。 两者都在使用连接到 FlexSPI 端口 A2 的 SPI RAM(8MB),还有一个连接到端口 A1 的 SPI 闪存(8MB)。SPI RAM 地址被映射到 0x08800000。 # 1 从 DSP 内核写入 SPI RAM 的数据。 // copy data into SPI RAM from DSP core uint8_t * dst = (uint8_t *)0x08800000; uint8_t src[192] = { 0x30 }; memcpy(dst, src, sizeof(src)); # 2 数据从 SPI RAM 写入 MCU 内核上的 SD 卡 我们使用的文件系统是https://doc.segger.com/UM02001_emFile.html#FS_Write https://doc.segger.com/UM02001_emFile.html#FS_FOpen uint8_t * src=(uint8_t*)0x08800000; FS_FILE * pFile = FS_FOpen("\test.dat", "wb+"); if (pFile) { FS_Write(pFile, src, 0x8000); FS_FClose(pFile); } 在 emFile 的底层代码中,它将使用 ADMA 的源点,类似于 USDHC_SetADMA1Descriptor(, , (const uint32_t *)0x08800000, 0x8000, ); 我想你可以在 EVK 上用 .NET Framework 进行测试、 f_write() Re: Writing Data to PSRAM from DSP on RT685 谢谢你,哈里。 我很想知道如何配置 `.buffer`,例如 .优先级 "的范围是什么? 如何配置 `.masterIndex`? 根据我的理解,缓冲区的总大小应该是 2048。 我没有找到任何资料说明如何配置,如果有的话,请参阅 `fsl_flexspi.h` 中的文档或注释、我想这一定会很有帮助。 在这种情况下,我打算让 DSP 将数据写入 PSRAM,然后让 MCU 读出。根据我的理解,".buffer "是用于 AHB RX 的,那么在我的情况下,是否应该为 DSP 指定任何缓冲区? Re: Writing Data to PSRAM from DSP on RT685 谢谢你,哈里。我还有一个问题,能否将 PSRAM 映射地址用于 MCU 内核中 uSDHS 的 ADMA?例如,如果我将 PSRAM 地址映射到 0x08800000,是否可以使用指针 uint8_t * dataAddr = (uint8_t*)0x08800000; ADMA? Re: Writing Data to PSRAM from DSP on RT685 谢谢你,哈里,这真的很有帮助。 我可以这样禁用 DSP 内核的高速缓存吗? int main(void) { void *spiRamStart; *(uint32_t *)(&spiRamStart) = 0x08800000; xthal_set_region_attribute(spiRamStart, 0x00800000, XCHAL_CA_BYPASS, 0); // ... }
查看全文
Writing Data to PSRAM from DSP on RT685 I am using the RT685 platform, connecting a PSRAM through FlexSPI. The PSRAM (ISSI IS66WVR8M8FALL) is connected to PortA2, and there is a QSPI Flash connected to PortA1. PSRAM was configured to access by AHB, FlexSPI was configured on MCU side after startup, then after a few minutes, wrote data from DSP side. When writing data from DSP side, there were some 0x00 data in the PSRAM, and the data looks regular. To debug this issue, I wrote 192 bytes 0x32 at once and then 0x33 ... There is no problem of writing and reading data from MCU side. This issue only occurred when writing data from DSP side. The configuration of FlexSPI, const flexspi_config_t FLEXSPI_config = { .rxSampleClock = kFLEXSPI_ReadSampleClkLoopbackInternally, .enableSckFreeRunning = false, .enableDoze = true, .enableHalfSpeedAccess = false, .enableSckBDiffOpt = false, .enableSameConfigForAll = false, .seqTimeoutCycle = 65535, .ipGrantTimeoutCycle = 255, .txWatermark = 8U, .rxWatermark = 8U, .ahbConfig = { .ahbGrantTimeoutCycle = 255, .ahbBusTimeoutCycle = 65535, .resumeWaitCycle = 32, .buffer = { { .priority = 0, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 1, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 2, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 3, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 4, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 5, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 6, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 7, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true } }, .enableClearAHBBufferOpt = true, .enableReadAddressOpt = false, .enableAHBPrefetch = false, .enableAHBBufferable = true, .enableAHBCachable = false } }; Configuration of PSRAM, flexspi_device_config_t FLEXSPI_config_Device_SPIRAM = { .flexspiRootClk = SPIRAM_ROOT_CLOCK_HZ, .isSck2Enabled = false, .flashSize = SPIRAM_SIZE_KBYTES, .CSIntervalUnit = kFLEXSPI_CsIntervalUnit1SckCycle, .CSInterval = 2, .CSHoldTime = 3, .CSSetupTime = 3, .dataValidTime = 0, .columnspace = 0U, .enableWordAddress = false, .AWRSeqIndex = SPIRAM_LUT_SEQ_IDX_WRITE, .AWRSeqNumber = 1U, .ARDSeqIndex = SPIRAM_LUT_SEQ_IDX_READ, .ARDSeqNumber = 1U, .AHBWriteWaitUnit = kFLEXSPI_AhbWriteWaitUnit2AhbCycle, .AHBWriteWaitInterval = 1, .enableWriteMask = false, }; Does anyone have idea about this problem? i.MXRT 600 Re: Writing Data to PSRAM from DSP on RT685 Hi @VincentW  I think the issue is most likely caused by incorrect FlexSPI AHB configuration for multi-master access. Currently, all AHB buffers are assigned to master 0. .buffer = { { .priority = 0, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 1, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 2, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 3, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 4, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 5, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 6, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true }, { .priority = 7, .masterIndex = 0U, .bufferSize = 256U, .enablePrefetch = true } }, You can try to assign one buffer to the dsp. Enabling AHB write buffering (enableAHBBufferable = true) may delay or merge writes, which is not suitable for PSRAM and can lead to missing data. You can try to  enableAHBBufferable = false; BR Harry Re: Writing Data to PSRAM from DSP on RT685 Thanks Harry. Is there any meaning of .mastIndex ? or is there any range of it? I just want to know how to choose the Master ID. Re: Writing Data to PSRAM from DSP on RT685 Hi Harry, I tried to disable the buffer of AHB TX, it didn't help to solve this issue. enableAHBBufferable = false; Do you know if there is anything about the cache, which may cause this? Thanks a lot in advance. Re: Writing Data to PSRAM from DSP on RT685 Hi @VincentW  Based on the relevant documents of RT600/RT685,. buffer [] corresponds to AHB RX Buffer, which is the read path buffer, The range of. priority is from 0 to 7, with 7 being the highest and 0 being the lowest; . mastIndex is the AHB Master ID used to allocate a certain AHB RX buffer to a master for read access. The documentation states that FlexSPI will select RX buffer based on master ID; A master does not support allocating multiple RX buffers. The unit of. bufferSize in the SDK structure is bytes, but the unit of the underlying register BUFSZ is 64 bits You can refer to the RT600 user manual for details. BR Harry Re: Writing Data to PSRAM from DSP on RT685 Hi @VincentW  I will discuss with our internal team and get back to you as soon as possible. BR Harry Re: Writing Data to PSRAM from DSP on RT685 Hi @VincentW  Yes, you are right. xthal_set_region_attribute((void *)0x08000000,0x800000,XCHAL_CA_BYPASS,0); BR Harry Re: Writing Data to PSRAM from DSP on RT685 Hi @VincentW  After we tested. If the read and write operations of FlexSPI PSRAM are handled by different masters, namely CM33 and DSP, there are two points that need attention: 1. For DSP, the access to FlexSPI bypasses Cache64, whereas for CM33, Cache64 on the access path to FlexSPI. See the first diagram for details. So I suggest to disable cache64 when CM33 read - DSP write and CM33 write - DSP read. 2. For HiFi4 dsp, there are instruction cache and data cache in it. And for the PSRAM access, the access is cacheable. So if DSP write the PSRAM, then the CM33 reading may be inconsistent. So I suggest to set non-cache access for FlexSPI PSRAM when CM33 read - DSP write and CM33 write - DSP read. The data we tested is consistent. BR Harry Re: Writing Data to PSRAM from DSP on RT685 Thanks Harry. Actually, I included 2 issues related the accessing of SPI RAM. Both were using the SPI RAM (8MB) connected to FlexSPI port A2, there is another SPI Flash (8MB) connected to port A1. SPI RAM address was mapped to 0x08800000. # 1 Data written to SPI RAM from DSP core. // copy data into SPI RAM from DSP core uint8_t * dst = (uint8_t *)0x08800000; uint8_t src[192] = { 0x30 }; memcpy(dst, src, sizeof(src)); # 2 Data written from SPI RAM into SD card on MCU core We were using this file system, https://doc.segger.com/UM02001_emFile.html#FS_Write https://doc.segger.com/UM02001_emFile.html#FS_FOpen uint8_t * src=(uint8_t*)0x08800000; FS_FILE * pFile = FS_FOpen("\test.dat", "wb+"); if (pFile) { FS_Write(pFile, src, 0x8000); FS_FClose(pFile); } in the low level code of emFile, it will use the src point for the ADMA, similar to  USDHC_SetADMA1Descriptor(, , (const uint32_t *)0x08800000, 0x8000, ); I suppose you could test on EVK with , f_write() Re: Writing Data to PSRAM from DSP on RT685 Hi @VincentW  Can you share your code? I want to reproduce this issue on my end. BR Harry Re: Writing Data to PSRAM from DSP on RT685 Hi @VincentW  "I am afraid I could not share the code due to some commercial code included, sorry about that." We need to write code to reproduce the issue you mentioned earlier. "From my understanding of the UM11147, the mapped address of SPI RAM could not be accessed by the ADMA of uSDHC, am I right?" Yes you are right. BR Harry Re: Writing Data to PSRAM from DSP on RT685 Thanks Harry. I am curious about how to configure that `.buffer`, e.g., what's the range of `.priority`? how to configure the `.masterIndex`?  what size should the `.bufferSize` be? as my understand, total bufferSize should be 2048. I didn't find any material indicating how to configure, if there is a document or some comment in `fsl_flexspi.h`, I suppose that will be very helpful. In my case, I plan to let DSP writing data into PSRAM, then let MCU reading out. As my understand, that `.buffer` is for AHB RX, so in my case, should I assign any buffer for DSP? Re: Writing Data to PSRAM from DSP on RT685 Thanks Harry. I have another question, could I use the PSRAM mapped address for the uSDHS's ADMA in MCU core? E.g., if I mapped the PSRAM address to 0x08800000, could I use the pointer uint8_t * dataAddr = (uint8_t*)0x08800000; for the ADMA? Re: Writing Data to PSRAM from DSP on RT685 Thanks Harry, that's really helpful. Could I disable the cache in DSP core like this? int main(void) { void *spiRamStart; *(uint32_t *)(&spiRamStart) = 0x08800000; xthal_set_region_attribute(spiRamStart, 0x00800000, XCHAL_CA_BYPASS, 0); // ... }
查看全文
周期的な測定中にMC33774Aのバランス調整を一時停止する こんにちは。MC33774Aに問題が発生しました。バルポーズを使用して周期的な測定を有効にします(MC33774_ALLM_CFG_OFFSETに3を書き込みます)。偶数セルのバランスをとっている場合にのみ、この方法が機能するようです。奇数セルでバランス調整が有効になっている場合、それらのセルの周期的な測定値がずれます。予想より少ないこともあれば、多いこともある。何が問題なのでしょうか? あるいは、MC33774Aを周期モード(スリープ、測定、スリープを繰り返すモード)に設定するにはどうすればよいでしょうか? SYS_CYC_WAKEUP_CFGに2を書き込んでからSYS_MODEに10を書き込んでも、デバイスはディープスリープ状態になります。 Re: Balancing pause on MC33774A while measuring cyclic measurements こんにちは、andis_bankovicsさん 良い一日! あなたのCASEを検討中です。回答が得られ次第、ご連絡いたします。 良い一日をお過ごしください。幸運を祈ります。 Re: Balancing pause on MC33774A while measuring cyclic measurements もう1週間近く経つのに、あなたからの返信がありません!私たちのプロジェクトは行き詰まっています。もしそのような質問に答えられないのであれば、別のメーカーのチップに切り替えざるを得なくなります! Re: Balancing pause on MC33774A while measuring cyclic measurements こんにちは、andis_bankovicsさん 良い一日! 遅れて申し訳ありません。 ご指摘のレジスタ「MC33774_ALLM_CFG_OFFSET」が見つかりません。あなたはそれをどの文書で読みましたか? ALLM_CFGのことを指していたと仮定します。 まず最初に修正すべき点は、ALLM_CFG の書き込み値です。3 を書き込むと、MEASEN=1 および BALPAUSECYCMODEN=1 となりますが、BALPAUSELEN=0 となります。レジスタマップでは、ビット15:2はBALPAUSELEN、ビット1はBALPAUSECYCMODEN、ビット0はMEASENです。BALPAUSELEN=0000hは明示的にNO_PAUSEです。データシートには、バランス調整のための一時停止時間は、測定前に外部フィルターを安定させるために設けられているとも記載されている。ALLM_CFG = 0x0003 の場合、実際の一時停止時間なしで周期的な自動一時停止機能が有効になるため、バランス調整中に測定値がずれたり、オフセットされたりする可能性があります。 既に以下のものにアクセスできますか? MC33774Aデータシート改訂版2.0 MC33775AおよびMC33774Aの測定 この情報がお役に立てば幸いです。他に何かご不明な点がありましたら、お気軽にお問い合わせください。 良い一日をお過ごしください。幸運を祈ります。
查看全文
S32K3X8EVB-Q289 sch,user guid, example, build guide the example etc...any material dear nxp I have this board in hand and want to test some code on EVB, but I can't find any information about EVB on the official website, can you support it? I need to support customers project. thanks, Bryan Re: S32K3X8EVB-Q289 sch,user guid, example, build guide the example etc...any material Hello @bryan_hong , I can see all requested information on board's main page - https://www.nxp.com/design/design-center/development-boards-and-designs/S32K3X8EVB-Q289 Design Files are available here: User Manual is available here: Best regards, Pavel
查看全文
PFEはA53でスレーブとして初期化できません こんにちは。カスタムボード上のA53コアでPFEスレーブを動作させたいのですが。 しかし、ドライバの初期化プロセスは成功しませんでした。 M7はHIF0をマスターとして使用し、A53はHIF3を使用します。 カーネルログは以下のとおりです。 [ 10.511555] pfeng-slave 46000000.pfe_slave:PFEngイーサネットドライバをロードしています... [ 10.511561] pfeng-slave 46000000.pfe_slave:バージョン: 1.8.0 [ 10.511567] pfeng-slave 46000000.pfe_slave:ドライバコミットハッシュ: M4_DRIVER_COMMIT_HASH [ 10.511573] pfeng-slave 46000000.pfe_slave:マルチインスタンスサポート: SLAVE/mdetect=on [ 10.511579] pfeng-slave 46000000.pfe_slave:作成者: 10.2.1 20201103 [ 10.511849] pfeng-slave 46000000.pfe_slave:PFEコントローラーが起動するまで待機します... [ 10.511875] pfeng-slave 46000000.pfe_slave:PFEコントローラーがUP状態を検出しました [ 10.511881] pfeng-slave 46000000.pfe_slave:Cbusアドレス 0x46000000 サイズ 0x1000000 [ 10.511892] pfeng-slave 46000000.pfe_slave:IHCチャネル:3 [ 10.511899] pfeng-slave 46000000.pfe_slave:マスターIHCチャネル:0 [ 10.511913] pfeng-slave 46000000.pfe_slave:ネットイフ名: pfe0sl [ 10.511921] pfeng-slave 46000000.pfe_slave:DT MACアドレス: 00:04:9f:be:ff:00 [ 10.511932] pfeng-slave 46000000.pfe_slave:netif(pfe0sl) リンクされたphyif: 0 [ 10.511938] pfeng-slave 46000000.pfe_slave:netif(pfe0sl) モード: std [ 10.512765] pfeng-slave 46000000.pfe_slave:netif(pfe0sl) HIFs: カウント 1 マップ 08 [ 10.512788] pfeng-slave 46000000.pfe_slave:HIFチャネルマスク: 0x0008 [ 10.512915] pfeng-slave 46000000.pfe_slave: 割り当てられた予約済みメモリノード pfebufs@83600000 [ 10.512944] pfeng-slave 46000000.pfe_slave:PFE CBUS p0x00000000396a8862 は v0xffffffc00c000000 にマッピングされています [ 10.512962] pfeng-slave 46000000.pfe_slave:マスターアップをお待ちください... [ 10.512968] pfeng-slave 46000000.pfe_slave:マスターUPを検出しました [ 10.512986] pfeng-slave 46000000.pfe_slave:HIF3はクリーンな状態です [ 10.513181] pfeng-slave 46000000.pfe_slave:HIF0が設定されていないため、スキップしました。 [ 10.513188] pfeng-slave 46000000.pfe_slave:HIF1が設定されていないため、スキップします。 [ 10.513193] pfeng-slave 46000000.pfe_slave:HIF2が設定されていないため、スキップします。 [ 10.513517] pfeng-slave 46000000.pfe_slave:HIF3が有効 [ 10.513529] pfeng-slave 46000000.pfe_slave:HIF3が始まった [ 10.513536] pfeng-slave 46000000.pfe_slave:IDEXスレーブ @ マスターインターフェース 6 [ 10.513547] pfeng-slave 46000000.pfe_slave:IHCクライアント登録済み [ 11.528401] pfeng-slave 46000000.pfe_slave:IDEXリクエスト0がタイムアウトしました。10回再送信しました。 [ 11.528413] pfeng-slave 46000000.pfe_slave:RPCトランスポートが失敗しました: 110 [ 11.528420] pfeng-slave 46000000.pfe_slave:IDEX: リセット要求が成功しませんでした [110] [ 11.528427] pfeng-slave 46000000.pfe_slave:IDEX: v1(レガシー)プロトコルを使用 [ 11.528433] pfeng-slave 46000000.pfe_slave:HIF3にIDEX RPCがインストールされました [ 11.528477] pfeng-slave 46000000.pfe_slavepfe0sl (未初期化): HIF3 を購読する [ 11.528490] pfeng-slave 46000000.pfe_slave:MDIOバス0が無効です: DTで見つかりません [ 11.528497] pfeng-slave 46000000.pfe_slave:MDIOバス1が無効になっています: DTで見つかりません [ 11.528502] pfeng-slave 46000000.pfe_slave:MDIOバス2が無効になっています: DTで見つかりません [ 11.528502] pfeng-slave 46000000.pfe_slavepfe0sl (未初期化): ホストLLTXが無効になっています [ 12.528776] pfeng-slave 46000000.pfe_slave:IDEXリクエスト1がタイムアウトしました。10回再送信しました。 [ 12.528786] pfeng-slave 46000000.pfe_slave:RPCトランスポートが失敗しました: 110 [ 12.528793] pfeng-slave 46000000.pfe_slave:IDEX: リセット要求が成功しませんでした [110] [ 12.528804] pfeng-slave 46000000.pfe_slave:エラー: (ドライバー) イベント 1 - ドライバー実行時エラー: [pfe_phy_if_slave.c:66]インターフェースDBをロックできません: 110 [ 13.529070] pfeng-slave 46000000.pfe_slave:IDEXリクエスト2がタイムアウトしました。10回再送信しました。 [ 13.529086] pfeng-slave 46000000.pfe_slave:RPCトランスポートが失敗しました: 110 [ 13.529093] pfeng-slave 46000000.pfe_slave:IDEX: リセット要求が成功しませんでした [110] [ 13.529104] pfeng-slave 46000000.pfe_slave:エラー: (ドライバ) イベント情報 1 - ドライバ実行時エラー: [pfe_phy_if_slave.c:568]PFE_PLATFORM_RPC_PFE_PHY_IF_ENABLE が失敗しました: 110 [ 14.529351] pfeng-slave 46000000.pfe_slave:IDEXリクエスト3がタイムアウトしました。10回再送信しました。 [ 14.529364] pfeng-slave 46000000.pfe_slave:RPCトランスポートが失敗しました: 110 [ 14.529370] pfeng-slave 46000000.pfe_slave:IDEX: リセット要求が成功しませんでした [110] [ 14.529380] pfeng-slave 46000000.pfe_slave:エラー: (ドライバ) イベント 1 - ドライバ実行時エラー: [pfe_phy_if_slave.c:79]インターフェースDBのロックを解除できません: 110 [ 14.529396] pfeng-slave 46000000.pfe_slavepfe0sl (未初期化): エラー: (ドライバ) イベント 1 - ドライバ実行時エラー: [pfeng-netif.c:1130]HIF3を有効にできません ゴールドVIP Re: PFE can not be initialized in A53 as slaver こんにちは、 @TimSamus さん。 これはかなり古い投稿なので、ステータスを追跡するために使用しているツールでは、もはやこの投稿を追跡していません。よろしければ、問題の詳細をすべて記載した新しい投稿を作成していただければ、私か私のチームの誰かがお手伝いいたします。 よろしくお願いします。 Re: PFE can not be initialized in A53 as slaver こんにちは、私も同様の問題に遭遇しました。「arRxBdWbRing では desc_ens が常に "1" になります」。どのように解決されたのか教えていただけますか? Re: PFE can not be initialized in A53 as slaver こんにちは、 @tommychen1986 さん。 M7とA53を使用したマスタースレーブ構成でのPFEについてさらに調査したところ、以下のドキュメントが見つかりました。 S32G_PFE_Master_Slave_Simple_Demo_V2_2023_5_23_Eng.pdf また、BSP43のダウンロードページにあるPFE_S32G_A53_LNX_UserManual.pdfもダウンロードできます。 それらの中で、私は以下のことを発見しました。 簡易デモの8ページ、セクション3.4にM7に必要な設定が記載されています。複数ページにわたって説明されているため、リンク先のセクション全体をご確認ください。 LNXユーザーマニュアルの12ページには、pfengをコンパイルするために必要なオプションが記載されています。 これはスレーブ構成のビルドコマンドの例です。 make KERNEL_src=/home/bsp-43/build_s32g399ardb3/tmp/work-shared/s32g399ardb3/kernel-source KERNELDIR=/home//bsp-43/build_s32g399ardb3/tmp/work-shared/s32g399ardb3/kernel-source MDIR=/home/bsp-43/build_s32g399ardb3/tmp/work/s32g399ardb3-fsl-linux/pfe-slave/1.0.0-r0/git/sw/linux-pfeng -C /home/bsp-43/build_s32g399ardb3/tmp/work/s32g399ardb3-fsl-linux/pfe-slave/1.0.0-r0/git/sw/linux-pfeng V=1 drv-build PFE_CFG_MULTI_INSTANCE_SUPPORT=1 PFE_CFG_PFE_MASTER=0 これは、手動ビルドを使用しているか、Yoctoビルドを使用しているかによって異なります。後者を使用している場合は、BSP43ユーザーマニュアルを確認してください。 このシンプルなデモではかなり古いBSPバージョンを使用しているため、一部のオプションが非推奨になったり変更されたりしている可能性があることにご注意ください。しかし、ログを見る限り、現時点での私の結論は、M7の設定に問題があるということです。 MCAL PFEドライバに付属しているMasterProject_RDB2も確認し、あなたのスクリーンショットから確認できるオプションと比較してみたところ、いくつか違いが見つかりました。また、まずはM7上でLinux構成を使ってサンプルを実行し、その構成で初期化の問題が解決するかどうかを確認することも有益でしょう。 この設定が役に立ったかどうか教えてください。 Re: PFE can not be initialized in A53 as slaver こんにちは、 alejandro_eさん、 HIF3を使用してみましたが、それでも同じエラーメッセージが表示されます。 Re: PFE can not be initialized in A53 as slaver こんにちは、 @tommychen1986 さん。 以前のメッセージで提案したように、デフォルトのLinuxデバイスツリー構成で、M7 AUTOSARアプリケーションの共通インターフェースにHIF3を使用して、「nxp,pfeng-ihc-channel = ;」でテストできましたか?もしできたのであれば、テスト結果を共有していただけますか? よろしくお願いします! Re: PFE can not be initialized in A53 as slaver こんにちは、 @tommychen1986 さん。 この2つのテストについてご協力をお願いします。 1 - このコマンドを実行し、その出力を共有してください。 root@s32g399ardb3:~# find /lib/modules/$(uname -r) -name '*.ko' | grep "pfe" /lib/modules/6.6.52-rt43-g1a29a32be610/kernel/drivers/net/ethernet/nxp/pfe/pfeng-slave.ko /lib/modules/6.6.52-rt43-g1a29a32be610/kernel/drivers/net/ethernet/nxp/pfe/pfeng.ko root@s32g399ardb3:~# 2. 共通インターフェースにはHIF0ではなくHIF3を使用する。 動作に変化があった場合はお知らせください。 よろしくお願いします。 Re: PFE can not be initialized in A53 as slaver こんにちは、 alejandro_eさん、 私の設定は以下のとおりです。 M7 A53 Re: PFE can not be initialized in A53 as slaver こんにちは、 @tommychen1986 さん。 情報提供ありがとうございました。M7コアのPFEに適用している設定のスクリーンショットを共有していただけますか?M7をPFEのマスターデバイスとして使用することを想定しています。この構成では、A53はM7によるPFEの初期化を待機します。 また、BSP側で行った設定を共有していただけますか?具体的には、A53をスレーブとして設定するための設定です。 よろしくお願いします。 Re: PFE can not be initialized in A53 as slaver こんにちは、alejandro_eさん。 返信が遅くなって申し訳ありません。 私の回答は以下のとおりです。 S32G2とS32G3のどちらを使用していますか? --------------S32G274A カスタムボードを使用していますか、それともNXPのRDB/EVBボードを使用していますか? -------------- カスタムボード 使用しているBSPのバージョン --------------BSP43 使用しているLinuxカーネル カーネルバージョンは5.15.167です ブートタイプ(QSPI、eMMC、SDカード、またはシリアル) --------------ATFはQspi Flashに、カーネルとrootfsはemmcに格納 RTDバージョン --------------4.0.1(M7 PFEドライバのhal.hファイル内の「Mcu_GetSharedIpSetting」「Mcu_SetSharedIpSetting」「Mcu_TriggerHardwareUpdate」関数呼び出しをコメントアウト) 使用しているM7 OS、またはベアメタルプロジェクトの場合は -------------- AUTOSAR OS PFE FWバージョン --------------1.10.0 PFE M7ドライバーバージョン --------------1.5.0 ログから判断すると、使用しているpfengカーネルモジュールはバージョン1.8.0となっていますが、これは正しいでしょうか? --------------pfengのバージョンは1.8.0です 過去に、PFEドライバ(Linux版とM7版の両方)に既に含まれているマスタースレーブ構成のサンプルを正常に使用できた経験はありますか? --------------いいえ、私は PFE ドライバーを A53 のマスターとしてのみ使用しています。マスタースレーブとして使うのは今回が初めてです。 Re: PFE can not be initialized in A53 as slaver こんにちは、 @tommychen1986 さん。 お客様のシステム構成をより正確に把握するために、以下の情報をご提供いただけますでしょうか。 S32G2とS32G3のどちらを使用していますか? カスタムボードを使用していますか、それともNXPのRDB/EVBボードを使用していますか? 使用しているBSPのバージョン 使用しているLinuxカーネル ブートタイプ(QSPI、eMMC、SDカード、またはシリアル) RTDバージョン 使用しているM7 OS、またはベアメタルプロジェクトの場合は PFE FWバージョン PFE M7ドライバーバージョン ログから判断すると、使用しているpfengカーネルモジュールはバージョン1.8.0となっていますが、これは正しいでしょうか? 過去に、PFEドライバ(Linux版とM7版の両方)に既に含まれているマスタースレーブ構成のサンプルを正常に使用できた経験はありますか? 情報提供ありがとうございます。 Re: PFE can not be initialized in A53 as slaver ハイ デバッグの結果、A53 から送信された IDEX RESET コマンドが M7 に受信され、M7 も A53 に ack を送信していることがわかりました。しかし、A53 はこの ack を受信していません。(いいえ)ihc_rx_fifo 内のメッセージ)
查看全文
SR250 UWBiot Zephyr build issue on FRDM‑RW612 – missing RW612‑pinctrl.h Hi, I am building the SR250 UWBiot Zephyr demo on FRDM‑RW612 using: Repo: nxp-uwb/sr250-uwbiot-zephyr Setup: west init -l uwbiot-top west update Zephyr version: 4.2.0 SDK tried: 24.12.00 and 26.03.00 (MCUX SDK Builder) Issue Build fails with: fatal error: nxp/rw/RW612-pinctrl.h: No such file or directory What I checked west update completed successfully modules/hal/nxp exists Checked SDK contents (devices/RW612) Confirmed RW612-pinctrl.h is not present in SDK or repo Question Where is RW612-pinctrl.h expected to come from? Is it part of a separate NXP Zephyr BSP/HAL package? Is there a specific SDK + Zephyr version combo required? Re: SR250 UWBiot Zephyr build issue on FRDM‑RW612 – missing RW612‑pinctrl.h Hello, Hope you are doing well. Could you please help us confirm that you followed the README from GitHub - nxp-uwb/sr250-uwbiot-zephyr: SR250 UWBIOT SDK lite release for ZephyrOS · GitHub? Since this is based on zephyr SDK, you don't need to download something anything from MCUXpresso SDK. If the issue persists, please share your logs from the procedure. Best Regards, Ricardo
查看全文
请求提供信息:S32K312 MCU 安全调试 您好,NXP团队, 我们的团队目前正在开发一个使用 S32K312 MCU 的控制器。在生产阶段,我们正在实施安全调试和配置锁定功能。 我们观察到,当网络安全处于激活状态时,执行 S32_SDAP_WRITE.cmm 脚本(由恩智浦提供)或输入安全调试密码可允许临时调试器访问。 我们要求提供有关设备从 " 网络安全启用 " 状态转换到 " 临时安全调试访问 " 状态时内存地址和寄存器值的具体变化的详细信息。 具体来说,我们想知道哪些寄存器或内存映射位置反映了这种转变。例如 网络安全激活状态:例如,地址 0x40000000 = 1 / HSM 安全调试寄存器 = 1 临时调试启用状态:例如,地址 0x40000000 = 0 / HSM 安全调试寄存器 = 0 您能否提供相关寄存器(例如HSE(硬件安全引擎)或注册状态中的寄存器)的列表,以表明安全调试会话当前是否经过身份验证和处于活动状态? 顺祝商祺! Re: Request for information: S32K312 MCU Secure Debug 你好@jeongwoo S32K3xx 参考手册(修订版)第 82.5.7 节12) 详细描述了调试身份验证序列。 此外,还有一份专用的应用笔记解释了解锁设备应遵循的程序。该文档可从 S32K3 产品网页的文档 → 安全文档 → S32K3xx 安全调试启用指南中下载。 BR、VaneB
查看全文
iMX8M Plus Wifi/BT 无法工作 你好,我正在使用带有 Yocto Scarthgap 版本的恩智浦 i.MX8M Plus 主板,我需要在主板上启用 Wi-Fi。我在网上找不到明确的指导。能否指导我如何启用 Wi-Fi? i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Yocto Project Re: iMX8M Plus Wifi/BT not working 你好, 请参阅 i.MX Linux 参考手册第 11.1 章蓝牙无线技术和 Wi-Fi 的连接。 https://www.nxp.com/docs/en/user-guide/UG10163.pdf 致以最崇高的敬意/问候, Aldo。
查看全文
BSDL File for the RW61X Where can I find the BSDL file for this Part?? Re: BSDL File for the RW61X Hello, Hope you are doing well. Are you using any specific module from one of our module manufacturers? I would recommend contacting them directly to check this inquiry. Best Regards, Ricardo
查看全文
RNG用のSE052Fを備えたOpenSSLプロバイダ SE052FをFIPS準拠の乱数生成器として使用する必要がある。OpenSSLにはSE052Fを使用することを義務付けており、ひいてはopensslライブラリを使用するすべてのアプリケーションにも、乱数発生器としてSE052Fを使用することを義務付けています。 NXP MWのaccessManagerとOpenSSLプロバイダを使用する必要があることは理解しています。 使用しているのは SE-PLUG-TRUST-MW_04.07.01 です。 私は以下の指示に従いました: AN14028.pdf SE-PLUG-TRUST-MW_04.07.01/simw-top/doc/hostlib/hostLib/accessManager/doc/accessManager.html そして、こちらのREADME情報(ただし、このリポジトリは使用していません): https://github.com/NXPPlugNTrust/se05x-openssl-provider accessManagerは以下のcmakeオプションを使用してビルドされました。 NXP_SE_MW_CONF_OPTS += -DWithSharedLIB=OFF -DPTMW_Host=Raspbian -DPTMW_SMCOM=T1oI2C -DPTMW_Applet=SE05X_C \ -DPTMW_FIPS=None -DPTMW_SE05X_Ver=07_02 -DPTMW_SE05X_Auth=PlatfSCP03 -DPTMW_SCP=SCP03_SSS -DSE05X_EN_PIN=582 -DSE_RESET_LOGIC=0 \ -DPAHO_BUILD_SHARED=FALSE -DPAHO_BUILD_STATIC=TRUE 以下のcmakeオプションを使用してビルドされたOpenSSLプロバイダ: NXP_SE_MW2_CONF_OPTS += -DWithSharedLIB=ON -DPTMW_HostCrypto=OPENSSL -DPTMW_Host=Raspbian -DPTMW_SMCOM=JRCP_V1_AM -DPTMW_SE05X_Auth=None openssl.cnfを以下のように変更しました。 [provider_sect] nxp_prov = nxp_sect default = default_sect [nxp_sect] identity = nxp_prov module = /usr/lib/libsssProvider.so activate = 1 [default_sect] activate = 1 accessManagerが起動します。 Starting accessManager (Rev.1.1). Protect Link between accessManager and SE: YES. accessManager JRCPv1 (T1oI2C SE side) ****************************************************************************** Server: waiting for connections on port 8040. Server: only localhost based processes can connect. コマンドラインからopensslを使用して乱数生成を行うと、問題なく動作するようです。 # openssl rand -hex 64 sssprov-dbg: Enter - OSSL_provider_init App :INFO :Using PortName='127.0.0.1:8040' (gszSocketPortDefault) App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments. New client connection from 127.0.0.1. Client ID: 5 Command 0x00 from client 5 DUMMY_ATR=0x01.A0.00.00.03.96.04.03.E8.00.FE.02.0B.03.E8.00.01.00.00.00.00.64.13.88.0A.00.65.53.45.30.35.31.00.00.00. Replacing *_ATR by default (pre-cooked) ATR. ATR=0x3B.FB.18.00.00.81.31.FE.45.50.4C.41.43.45.48.4F.4C.44.45.52.AB. Command 0x01 from client 5 SM_EstablishPlatformSCP03Am (Entry) App :WARN :Using SCP03 keys from:'/tmp/SE05X/plain_scp.txt' (FILE=/tmp/SE05X/plain_scp.txt) SE051 connected. SM_EstablishPlatformSCP03Am (Exit); Status = 0x9000 sss :INFO :Newer version of Applet Found sss :INFO :Compiled for 0x70200. Got newer 0x70216 sss :WARN :Communication channel is Plain. sss :WARN :!!!Not recommended for production use.!!! sssprov-dbg: Enter - sss_rand_newctx sssprov-dbg: Enter - sss_rand_instantiate sssprov-dbg: Enter - sss_rand_enable_locking sssprov-dbg: Enter - sss_rand_newctx sssprov-dbg: Enter - sss_rand_instantiate sssprov-dbg: Enter - sss_rand_get_ctx_params sssprov-dbg: Enter - sss_rand_generate sssprov-flw: Get random data from SE05x Command 0x01 from client 5 SM_SendAPDUAm: smStatus = 0x9000 5f0f4d63e4ec771b8cfd46dd50c497b7e4e56e203ad5bc6eca9f8c28d23f39aa2d4a807915e3c60cf2e6a833794cb1208554f3e635811354eadd7b2c911c60da sssprov-dbg: Enter - sss_rand_freectx sssprov-dbg: Enter - sss_rand_freectx sssprov-dbg: Enter - sss_teardown Received 0 byte from client 5 (Message Header Phase) . しかし、sshデーモンの起動に失敗します。 # /usr/sbin/sshd & sssprov-dbg: Enter - OSSL_provider_init App :INFO :Using PortName='127.0.0.1:8040' (gszSocketPortDefault) App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments. New client connection from 127.0.0.1. Client ID: 5 Command 0x00 from client 5 ATR=0x3B.FB.18.00.00.81.31.FE.45.50.4C.41.43.45.48.4F.4C.44.45.52.AB. Command 0x01 from client 5 Pre-cooked response (rspAppletSelect) sss :INFO :Newer version of Applet Found sss :INFO :Compiled for 0x70200. Got newer 0x70216 sss :WARN :Communication channel is Plain. sss :WARN :!!!Not recommended for production use.!!! sssprov-dbg: Enter - sss_rand_newctx sssprov-dbg: Enter - sss_rand_instantiate sssprov-dbg: Enter - sss_rand_enable_locking sssprov-dbg: Enter - sss_rand_get_ctx_params PRNG is not seeded Received 0 byte from client 5 (Message Header Phase) . [2]+ Done(255) /usr/sbin/sshd どんな助けでも大変ありがたいです。 Sam Re: OpenSSL Provider with SE052F for RNG こんにちは、 @sam123 さん。 現在、当社のプロバイダではOpensshのサポートはテストされていません。これはさらに分析する必要があり、変更が必要になるかもしれない。研究開発部門向けに内部チケットが作成され、彼らが分析を行う予定です。そこから何か新しい情報が入り次第、お知らせします。 お待ちいただきありがとうございました! すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - 最後の投稿から7週間はThreadをフォローしますが、それ以降の返信は無視されます。 後日、関連する質問がある場合は、新しいThreadを作成し、閉じられた Threadを参照してください。 -------------------------------------------------------------------------------
查看全文
Need Passive 125 kHz RFID Chip Recommendation Hello fellow developers, I’m looking for a recommendation for a passive 125 kHz RFID chip with the following requirements: Memory size: 2048 bits or higher Read/write capability Lock bit or another reliable write-protection mechanism Suitable for reliable production use Currently available / active production line Any recommendations for suitable NXP chips, alternatives, or compatible reader solutions would be greatly appreciated. Thanks in advance, Ben Sella Re: Need Passive 125 kHz RFID Chip Recommendation Hello @benSella, For new designs, the only LF RFID solution currently recommended in our portfolio is the HITAG µ /Advanced. Please note that this IC offers a maximum total memory capacity of 512 bits. BR Habib Re: Need Passive 125 kHz RFID Chip Recommendation Hello Habib, Thank you for your reply and recommendation. I’m afraid that this chip would not be suitable for our application, as the maximum memory capacity of 512 bits is too limited for our needs. We are specifically looking for a passive LF RFID solution with at least 2048 bits of memory, along with read/write capability and a reliable locking or write-protection mechanism. If NXP does not currently offer such a solution, I would still appreciate any recommendation you may have for a suitable alternative. Thank you again for your help. Best regards, Ben Sella Re: Need Passive 125 kHz RFID Chip Recommendation Hello @benSella, Sorry for taking a while to get back to you. Unfortunately, HITAG u/Advanced is the only recommended for new designs that supports the low-frequency (LF) RFID. We have some HF and UHF tags in our portfolio, I can suggest you a recommendation based on these tags in case you are interested. If so, could you provide me more details about your application? BR Habib
查看全文
Macau baccarat short-term profit and long-term loss of the core reasons online customer service 15368832624
查看全文