Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
LX2160A:接收器上未使用的 SerDes 通道的下拉值 你好, 芯片: LX2160A 应用笔记 AN5407 规定,如果未使用 SerDes 通道,则应将其下拉: 如果某些 SerDes 通道未连接,请将其接收器引脚拉低至 GND。 请问下拉菜单的值是多少?或者我应该将接收器引脚直接连接到 GND? 谢谢。 Re: LX2160A: Pull down value on receiver for SerDes lanes not used 你好, AN5407 中的“将接收器引脚拉低至 GND”的说法故意含糊不清——NXP 的澄清是,直接将 0 Ω 连接到 GND 是正确且首选的方法。 SerDes 掉电 即使 RX 引脚连接到 GND,如果 SerDes 模块仍然通电,AN5407 还建议通过固件掉电未使用的通道:在 PBI 阶段配置通用控制 0 寄存器以掉电未使用的 SerDes 通道。如果整个 SerDes 模块已经掉电,则无需单独掉电各个通道。 此致
View full article
水晶発振器の波形異常 こんにちは、@lukaszadrapa 弊社では貴社製のFS32K144HFT0MLHTマイクロコントローラを使用しています。 8MHzの受動水晶発振器(AV08000009)を使用した場合、波形が異常になります。この波形は貴社製MCUにとって許容範囲内でしょうか? MCUの正常な動作に影響しますか? Re: 晶振波形异常 こんにちは、 @Kypさん オシロスコープのスクリーンショットには、実際の8MHz水晶発振器の波形が表示されていないようです。表示されている周波数(約256Hz)は、予想される発振器の周波数と一致しておらず、選択されたオシロスコープのタイムベースとサンプリングレートによるエイリアシングが原因である可能性が最も高い。したがって、この測定だけで結晶振動子の品質を評価することはできません。実際の発振器波形を観測するには、より高速な時間軸を使用する必要がある。 よろしくお願いいたします。 ルーカス
View full article
在 MCUXpresso 安全配置工具 26.06 版中使用 IMX95 我从 github 下载了 imx-oei-master,并使用 make 生成了 oei-m33-ddr.bin 和 oei-m33-tcm.bin。我尝试将图像构建为图片附件。 我有一些问题: 1. 我的设置是否正确? 2. 在“类型”中,我看到了很多项目。我不知道该选哪个? 3. 在“加载地址”和“入口点”中,我的设置是否正确?我只在 oei-m33-ddr.map 中看到了 CM33_TCMU_OFFSET = 0x1ffc0000。我甚至都没听说过lpddr5。 4. 在“图像类型”中,我还看到了很多项目。我不知道该选哪个?顺便问一下,“类型”和“图像类型”有什么区别? 5. 在“容器集”中,我应该选择主图像还是辅助图像?
View full article
如何使用 S32 设计工作室 MCP 集成 如何使用S32 Design Studio MCP集成?是否有相关资料和文档? Re: How to use S32 Design Studio MCP Integration 你好, 遗憾的是,相关文档和使用示例仍在开发中。我希望它能尽快对外发布,但不知道具体日期。
View full article
フラッシュ構成の混乱 RT1176 オクタル DDR こんにちは、NXP Macronix Octal DDRモード用にフラッシュメモリを設定する際に、いくつか問題が発生しました。 NXP FMU-6XRTのリファレンスデザインをベースにしたカスタムボード上でPX4コードスタックを使っています。私はMX25UM51345Gの代わりにMX25UM51245Gを使用していますが、部品の違いはごくわずかです。 Macronix Octal DDRモードで、DQS外部サンプリングを少なくとも100MHzで実行しようとしています。リファレンスデザインでは200MHzで動作させています。ブートメモリ構成は、166MHzの場合でも、目的の構成でメモリを正常にテストします。 私が試した設定は、以下のデフォルト設定です。最初の「g_flash_config」は起動、書き込み、読み込みなどを成功させていますが、ソフトウェアには理想的ではありません。「g_flash_fast_config」が失敗します。 「fast_config」のDTRモードで、周波数を166MHz、133MHz、50MHz、30MHzに下げてみましたが、効果はありませんでした。 ブートメモリ構成から生成されたFCBを使用してみましたが、構造体のレイアウトにいくつかの違いがあり、PX4コードに適用するのが困難でした。 csHoldTime、csSetupTime、dataValidTimeのさまざまな組み合わせを試してみましたが、結果は得られませんでした。 低周波DTRオクタールでDQS内部を試してみましたが、うまくいきませんでした。 次に何を試せばいいでしょうか? #include /**************************************************************************** * Public Data ****************************************************************************/ locate_data(".boot_hdr.conf") const struct flexspi_nor_config_s g_flash_config = { .memConfig = { #if !defined(CONFIG_BOARD_BOOTLOADER_INVALID_FCB) .tag = FLEXSPI_CFG_BLK_TAG, #else .tag = 0xffffffffL, #endif .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 1, .csSetupTime = 1, .deviceModeCfgEnable = 1, .deviceModeType = kDeviceConfigCmdType_Generic, .waitTimeCfgCommands = 1, .controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable), .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_1Pad, .serialClkFreq = kFlexSpiSerialClk_100MHz, .sflashA1Size = 64ul * 1024u * 1024u, .dataValidTime = { [0] = {.time_100ps = 0}, }, .busyOffset = 0u, .busyBitPolarity = 0u, .lookupTable = { /* Read Dedicated 3Byte Address Read(0x03), 24bit address */ [0 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x03, RADDR_SDR, FLEXSPI_1PAD, 0x18), //0x871187ee, [0 + 1] = FLEXSPI_LUT_SEQ(READ_SDR, FLEXSPI_1PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0),//0xb3048b20 }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .serialNorType = 2, .reserve2[0] = 0x7008200, }; const struct flexspi_nor_config_s g_flash_fast_config = { .memConfig = { .tag = FLEXSPI_CFG_BLK_TAG, .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 3, .csSetupTime = 3, .deviceModeCfgEnable = 1, .deviceModeType = kDeviceConfigCmdType_Spi2Xpi, .waitTimeCfgCommands = 1, .deviceModeSeq = { .seqNum = 1, .seqId = 6, /* See Lookup table for more details */ .reserved = 0, }, .deviceModeArg = 2, /* Enable OPI DDR mode */ .controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable) | (1u << kFlexSpiMiscOffset_DdrModeEnable), .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_8Pads, .serialClkFreq = kFlexSpiSerialClk_133MHz, .sflashA1Size = 64ul * 1024u * 1024u, .dataValidTime = { [0] = {.time_100ps = 10}, }, .busyOffset = 0u, .busyBitPolarity = 0u, .lookupTable = { /* Read */// EEH+11H+32bit addr+20dummy cycles+ 4Bytes read data /* Macronix manual says 20 dummy cycles @ 200Mhz, FlexSPI peripheral Operand value needs to be 2N in DDR mode hence 0x28 */ [0 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0xEE, CMD_DDR, FLEXSPI_8PAD, 0x11), //0x871187ee, [0 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, DUMMY_DDR, FLEXSPI_8PAD, 0x28),//0xb3288b20, [0 + 2] = FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_8PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0x00), //0xa704, /* Read status */ [4 * 2 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x05, CMD_DDR, FLEXSPI_8PAD, 0xfa), [4 * 2 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, DUMMY_DDR, FLEXSPI_8PAD, 0x04), [4 * 2 + 2] = FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_8PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0x00), /* Write enable SPI *///06h [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP_EXE, FLEXSPI_1PAD, 0x00),//0x00000406, /* Write enable OPI SPI *///06h [4 * 4 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x06, CMD_DDR, FLEXSPI_8PAD, 0xF9), /* Erase sector */ [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x21, CMD_DDR, FLEXSPI_8PAD, 0xDE), [4 * 5 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, STOP_EXE, FLEXSPI_1PAD, 0x00), /*Write Configuration Register 2 =01, Enable OPI DDR mode*/ //72H +32bit address + CR20x00000000 = 0x01 [4 * 6 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x72, CMD_SDR, FLEXSPI_1PAD, 0x00),//0x04000472, [4 * 6 + 1] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x00, CMD_SDR, FLEXSPI_1PAD, 0x00),//0x04000400, [4 * 6 + 2] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x00, WRITE_SDR, FLEXSPI_1PAD, 0x01),//0x20010400, /*Page program*/ [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x12, CMD_DDR, FLEXSPI_8PAD, 0xED),//0x87ed8712, [4 * 9 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, WRITE_DDR, FLEXSPI_8PAD, 0x04),//0xa3048b20, }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .serialNorType = 2, .reserve2[0] = 0x7008200, }; Re: Flash configuration confusion RT1176 Octal DDR こんにちは、 @SimonHugr さん。 DDRモードを使用する場合は、バイトスワッピングの設定も考慮する必要があることにご注意ください。この記事では、DDRモードを使用する際にMX25UM51245GXDI00のバイトスワッピングを考慮することがなぜ重要なのかについての役立つ情報を提供します。 FCBを生成するにはBoot Memory Configurationを使うことを強くお勧めします。 Secure Provisioning Tool v26.6はそのMX25UM51245Gのテンプレートを提供しており、構成の良い出発点として役立ちます。また、ご存知かもしれませんが、このツールを使用すると設定をテストできます。 さらに、このコミュニティ投稿、特に15番目の手順から始まる部分を参照することをお勧めします。そのセクションでは、セキュアプロビジョニングツールがブートメモリ構成を生成する方法についてより詳細な説明を提供しており、ツールによって生成されるパラメータと出力の理解に役立つ可能性があります。 最後に、flexspi_nor_polling_transfer_cm7例を使って生成されたFCBを検証し、読み書き操作が正しく動作しているか確認してから起動設定を進めることができます。 BR ハビブ Re: Flash configuration confusion RT1176 Octal DDR 残念ながらまだ結果は出ていません。やはり何らかのデータ順序の入れ替えが行われているか、どこかで設定バイトが不足しているのではないかと考えています。 Re: Flash configuration confusion RT1176 Octal DDR マスミセイムさん、ありがとうございます。 確かに、例えばデータを入れ替える必要があることに気づきました。もう一度LUTを確認してみます。 Re: Flash configuration confusion RT1176 Octal DDR このスレッドを参照して:https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Internal-Boot-from-Flash-memory-not-starting-on-imxRT1176-custom/m-p/1830699 Zephyr RTOSの指示に従って、ミスオプションを編集してデータの順序を入れ替えるべき https://github.com/zephyrproject-rtos/hal_nxp/blob/3a36ee1f8b9fc2168fc0bf80377ace8298292993/mcux/mcux-sdk-ng/devices/RT/RT1170/MIMXRT1176/drivers/romapi/fsl_romapi.h#L340-L355 データスワップバイトは挿入されるのですが、何か見落としているような気がします。 .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .isDataOrderSwapped = true .serialNorType = 2, .reserve2[0] = 0x7008200, Re: Flash configuration confusion RT1176 Octal DDR やあ、 @SimonHugr 、 まず最初に確認したいのは、MX25UM51245GとMX25UM51345Gの実際の違いです。部品番号は非常によく似ていますが、それらは同一の機器ではありません。Macronixのデータシートによると、MX25UM51345GはDOPI(Double Transfer Rate OPI)バイトモードのデータシーケンスを明示的にサポートしていますが、MX25UM51245Gは別の製品バリアントに属しています。これにより、FlexSPIコントローラで使用されるコマンドフォーマット、バイト順序、LUT構成に影響を与えることがあります。 私の設定も比較できます。MX25UM513とMX25UW6345G: https://github.com/Masmiseim36/Coremark_iMXRT/blob/master/XiP/flexspi_flash_OSPI_Macronix.c よろしく Re: Flash configuration confusion RT1176 Octal DDR こんにちは、ハビブ 私たちのファームウェアでは、セキュアプロビジョニングツールを使用してFCBを生成することができないため、代わりにFCBをファームウェアの起動時にロードする必要があります。そのため、mem_configおよびflash_config構造体を作成し、自分で設定する必要があります。 Zephyrプロジェクトがそのflash_nor_configでisDataOrderSwappedのバイトを参照していることを見つけました https://github.com/zephyrproject-rtos/hal_nxp/blob/3a36ee1f8b9fc2168fc0bf80377ace8298292993/mcux/mcux-sdk-ng/devices/RT/RT1170/MIMXRT1176/drivers/romapi/fsl_romapi.h#L347-L348 また、Claude は controllerMiscOption のビット 5 に padSettingOverride ビット、ビット 7 に dataSwap ビットを参照していますが、LLM がこの情報をかなり誇張しているかどうかはわかりません。 Secure Provisioningツールを使用してFCBを生成し、このツールを使用してC構造体に変換する場合 https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/i-MX-RT-FLEXSPI-booting-guide/ta-p/1669262 ビット5や7は設定されていないのでLLMが間違っていると思いますが、isDataSwappedは設定されていて、通常FCBでreserved0[0]として参照されています。 セキュアプロビジョニングツールでMX25UM51245Gのテンプレートは見つかりませんが、MX25U51245G(クアッドフラッシュ)、MX25UM51345G、MX25UMxxx45Gだけです。 しかし、私が試したどのオクタルDDR構成も起動できませんでした。 興味深いことに、BT_FUSE_SEL=1でピンBOOTMODE0/1=0であっても、特定の設定後に自動的にISPモードに入ることがよくあります。これは一貫して発生しているわけではなく、どの設定が原因なのか分かりません。 フラッシュの読み取りに失敗した後、MCUはISPモードに入るのでしょうか? よろしくお願い申し上げます。 BR Re: Flash configuration confusion RT1176 Octal DDR こんにちは、 @SimonHugr さん。 申し訳ございませんが、MX25UM51245Gのテンプレートはございません。MX25U51245GとMX25UM51345Gのみご利用いただけます。 ご説明いただいた内容から判断すると、現在のブートメモリ構成設定では、フラッシュデバイスとの通信は正常に機能しているようです。「完全なFCBに変換」をクリックすると、ツールは構成をフラッシュメモリに書き込み、その後、以下に説明するように、指定したパラメータを使用してそれを読み戻します。 選択された設定のいずれかがフラッシュデバイスでサポートされていない場合、ツールは次のようなエラーを報告するはずです。 コミュニティ投稿でFCBコンバーターで生成されたLUTが正しく動作しているかさらに確認するために、flexspi_nor_polling_transfer_cm7 SDKの例で、内部RAMからアプリケーションを実行しながらテストしていただけますか?例について質問があれば教えてください。 さらに、起動しようとしているアプリケーションについてもう少し詳しく教えてもらえますか? -SDKの例ですか、それともご自身のアプリケーションですか? -どのIDEを使っていますか? -あなたのアプリケーションはXIPを実行していますか、それとも非XIPですか? -起動中以外でフラッシュにアクセスしていますか? ISPモードでの入りについてですが、カスタムボードのブートピンがハードウェア 開発MIMXRT1160ガイドの第5章「起動、リセット、その他」の推奨事項に従っているか確認していただけますか?これは、ブートピンに関するハードウェアの問題を回避するためです。 ご質問にお答えすると、有効なイメージが利用できない場合、ISPモードで入ることができます。図10-1のRMの「ブートフロー」に示されています。 BR ハビブ
View full article
IW611 RU setup I would like some advice on how to set up the RU. For the RF test, the technical staff is conducting the test by referring to Chapter 12 of the manual “UM11749” for RU setup. However, when we edited the configuration file “TF_Config_20MHz.txt” and loaded it based on the example in Chapter 12.6, the output waveform resembled an unmodulated signal, and we were unable to confirm the expected waveform. Since a waveform is being output, we believe the file was loaded correctly. The configuration file is described as follows. =================================================================== FRAME_CTRL_TYPE=1 \\IEEE_TYPE_CONTROL FRAME_CTRL_SUBTYPE=2 \\TRIGGER \\configure Duration field \\ Max Duration time FRAME_DURATION=5484 \\0x156C \\configure commoninfo field of trigger frame \\ HE_trigger_frame.TrigCommonField.TriggerType = BASIC_TRIGGER; \\ HE_trigger_frame.TrigCommonField.UlLen = 1000; \\ Max \\ HE_trigger_frame.TrigCommonField.MoreTF = FALSE; \\ HE_trigger_frame.TrigCommonField.CSRequired = FALSE; \\ HE_trigger_frame.TrigCommonField.UlBw = TB_BW_20MHZ; \\ HE_trigger_frame.TrigCommonField.LTFType = LTF_1_GI_1_6uS; \\ HE_trigger_frame.TrigCommonField.LTFMode = MU_MIMO_SINGLE_STREAM; \\ HE_trigger_frame.TrigCommonField.LTFSymbol = 0; \\ HE_trigger_frame.TrigCommonField.UlSTBC = FALSE; \\ HE_trigger_frame.TrigCommonField.LdpcESS = TRUE; \\ HE_trigger_frame.TrigCommonField.ApTxPwr = 0 \\ HE_trigger_frame.TrigCommonField.PreFecPadFct = 1; \\ HE_trigger_frame.TrigCommonField.PeDisambig = 0; \\ HE_trigger_frame.TrigCommonField.SpatialReuse = 65535; \\ HE_trigger_frame.TrigCommonField.Doppler = FALSE; \\ HE_trigger_frame.TrigCommonField.HeSig2 = 0x1FF; \\ reserved TrigCommonField=0;1000;0;0;0;1;0;0;0;1;0;1;0;65535;0;511 \\configure userinfo field of trigger frame \\ HE_trigger_frame.TrigUserInfoField.AID12 = (5 & 0xFFF); \\ HE_trigger_frame.TrigUserInfoField.RUAllocReg = 0; \\ HE_trigger_frame.TrigUserInfoField.RUAlloc = 61; \\ 53 (106 tones) \\ HE_trigger_frame.TrigUserInfoField.UlCodingType = CODING_TYPE_LDPC; \\ HE_trigger_frame.TrigUserInfoField.UlMCS = 0; \\ HE_trigger_frame.TrigUserInfoField.UlDCM = FALSE; \\ HE_trigger_frame.TrigUserInfoField.SSAlloc = 0; \\ HE_trigger_frame.TrigUserInfoField.UlTargetRSSI = 80; TrigUserInfoField=5;0;61;1;0;0;0;80 \\configure trigger dependent user info field \\ HE_trigger_frame.BasicTrigUserInfo.MPDU_MU_SF = MPDU_SPACING_MULT_1; \\ HE_trigger_frame.BasicTrigUserInfo.TID_AL = 0; \\ HE_trigger_frame.BasicTrigUserInfo.AC_PL = FALSE; \\ HE_trigger_frame.BasicTrigUserInfo.Pref_AC = TB_AC_VO; BasicTrigUserInfo=0;0;0;0 =================================================================== If there are any errors in this description, please let me know. Also, if there are any other methods (ones that do not use a file), please let me know.
View full article
ELEはホストがアクセスできない非揮発性ストレージに鍵を保持できますか? こんにちは、 EdgeLock セキュア・エンクレーブ(ELE)での永続キー保存についてお尋ねしたいです。 私の理解によると、ELEが暗号操作に使用する鍵は、キーストレージサービスを使って永続的に保存できます。私が理解している典型的な流れは以下のとおりです。 1. 対象キーのキーブロブを作成し、ホストにエクスポートします。 2. エクスポートしたキーブロブをフラッシュメモリなどの不揮発性メモリに保存します。 3. 暗号化操作に鍵が必要な場合は、キーブロブをインポートし、ELE を介して鍵を使用します。 この方法では、キーブロブはELEによって生成されるため、ホストは実際のキー素材を読み取ることができません。しかし、Flashではキーブロブ自体がホストに保存されているため、ホストはキーブロブを削除したり上書きしたりできるようです。 私の質問は次のとおりです。 ELEからはアクセス可能だがホストからはアクセスできない不揮発性ストレージ領域に鍵(またはそのキーブロブ)を保存する方法はありますか?これにより、鍵マテリアルやキーブロブがホストに一切公開されることなく、ELEが暗号化操作を実行できるようになります。 言い換えれば、ELEが永続的なキーストレージを完全にセキュアな領域内で所有および管理し、ホストがキーやキーブロブを直接扱うことがないようにすることは可能でしょうか? ご指導をよろしくお願いいたします。 Re: Can ELE Retain Keys in Host-Inaccessible Non-Volatile Storage? こんにちは、 @t_hosomi さん。お元気でお過ごしでしょうか。 NVMフローにおける鍵の生成と保存に関するあなたの理解は正しいです。 しかし、ELEには不揮発性メモリがないため(SRMのセクション10.3.1に記載されているとおり)、サポートされている唯一の方法は、エクスポートされたキーブロブをホストのNVMに保存することです。 この情報がお役に立てば幸いです。 Re: Can ELE Retain Keys in Host-Inaccessible Non-Volatile Storage? こんにちは、RomanVRさん。 ご回答ありがとうございます。 ELE自体は不揮発性ストレージを提供しないため、永続的なキーデータはホストの不揮発性メモリに保存する必要があることを理解しています。 この点を明確にしていただきありがとうございます。
View full article
Clarification on eMIOS DMA Request Mapping Hello Team, I am currently using eMIOS1_CH13 for the LiPS sensor in DMA mode. The configuration uses DMA Channel 0 and DMAMUX0. While reviewing the S32K3xx DMAMUX mapping Excel, I observed that for eMIOS1, only DMA requests 0, 1, 9, and 10 are listed under DMAMUX0. However, my application is configured to use eMIOS1_CH13. Could you please clarify the following: Which DMA request source should be used for eMIOS1_CH13? Does eMIOS1_CH13 support DMA triggering, or is DMA support limited to the eMIOS channels corresponding to DMA requests 0, 1, 9, and 10? Thank you for your support. Best regards, Jyothsna Sagili Re: Clarification on eMIOS DMA Request Mapping Hi, according to the S32K3 DMAMUX mapping, eMIOS provides DMA request sources only for channels 0, 1, 9, 10, 16, 17, 18, and 19. These are the only eMIOS channels that can generate DMA requests. Since eMIOS1_CH13 is not one of these channels, it does not have a dedicated DMA request source in DMAMUX and cannot directly trigger eDMA transfers. If DMA triggering is required, please use one of the eMIOS channels associated with the available DMA request sources (0, 1, 9, 10, 16, 17, 18, or 19). BR, Petr
View full article
S32K388 HSE_SWT 新規チップ書き込みのための再起動 新しいS32K388を持っていて、最初から作ったファームウェアでフラッシュしようとしています(これはAUTOSARでもRTDでもありません)。IVTの設定ではcore0のみを起動するようにしており、hse_fw_header_start_addressはゼロに設定しています。 しかし、この構成ではリセットが発生し、MC_RGM DES が以下のように報告しているようです。 0x00000041 と MC_RGM FES が報告する 0x00010000 は、S32K3XXRM に関する私の読み方に基づくと、HSE ウォッチドッグのタイムアウトがエスカレーションに基づく破壊的なリセットにつながっていることを示唆しています。 興味深いのは、この挙動はj-linkに接続すると消えるように見えることですが、ファームウェアからSWTを無効化したりメンテナンスしたりする方法が見つかりません。S32K388用の標準HSEファームウェアをダウンロード/インストールする必要がありますか? S32K388ではこれが必須なのに、S32K344では必須ではない理由は何ですか? Re: S32K388 HSE_SWT Reboot for Fresh Chip flashing さらにテストを進めてみると、FES/DES MC_RGMのフラグをすべて読み終えて(ブート間で固定されないように)すると、ブートループが戻り始めます:FES: 0x00010000、時々DES: 0x00000040(ただしほとんどの場合はDES: 0x00000000) 元の投稿を明確にするために、IVTのブート構成ワードを0x00000001に設定しています。私の解釈では、これはCM7_0_ENABLEのみが設定されており、HSE/SWT_0の設定は一切必要ないことを意味するように思えます。
View full article
关于 eMIOS DMA 请求映射的说明 各位同事好, 我目前在 DMA 模式下使用 eMIOS1_CH13 连接 LiPS 传感器。该配置使用 DMA 通道 0 和 DMAMUX0。 在查看 S32K3xx DMAMUX 映射 Excel 时,我发现对于 eMIOS1,DMAMUX0 下只列出了 DMA 请求 0、1、9 和 10。但是,我的应用程序配置为使用 eMIOS1_CH13。 请您澄清以下问题: eMIOS1_CH13 应该使用哪个 DMA 请求源? eMIOS1_CH13 是否支持 DMA 触发,还是 DMA 支持仅限于与 DMA 请求 0、1、9 和 10 对应的 eMIOS 通道? 感谢您的支持。 顺祝商祺! 乔斯纳·萨吉利 Re: Clarification on eMIOS DMA Request Mapping 您好, 根据 S32K3 DMAMUX 映射,eMIOS 仅为通道 0、1、9、10、16、17、18 和 19 提供 DMA 请求源。只有这些 eMIOS 通道才能生成 DMA 请求。 由于 eMIOS1_CH13 不是这些通道之一,因此它在 DMAMUX 中没有专用的 DMA 请求源,不能直接触发 eDMA 传输。如果需要 DMA 触发,请使用与可用 DMA 请求源(0、1、9、10、16、17、18 或 19)关联的 eMIOS 通道之一。 BR,彼得
View full article
Flash configuration confusion RT1176 Octal DDR Hello NXP I got some issues configuring the flash memory for Macronix Octal DDR mode. I am using the PX4 code stack on a custom board based on the NXP FMU-6XRT reference design. I am using the MX25UM51245G instead of the MX25UM51345G, but the part differences are minimal. I am trying to run it in Macronix Octal DDR mode with DQS external sampling at atleast 100MHz. Reference design is running it at 200MHz. The Boot Memory Configuration succesfully tests the memory with the desired configuration even at 166MHz. The configuration I have tried is the following default config. The first one, "g_flash_config" succesfully boots, writes, read, etc, but is not ideal for the software. "g_flash_fast_config" fails. I have tried reducing the frequency to 166MHZ, 133MHz, 50 MHz, and 30MHz without results in the DTR mode in the "fast_config". I have tried using the FCB generated from the Boot Memory Configuration, but there is some struct layout differences which have made it hard to apply to the PX4 code.  I am tried different combinations of csHoldTime, csSetupTime and dataValidTime without results aswell. I tried DQS interal in low freq DTR Octal, but it did not work either. What could I try next? #include /**************************************************************************** * Public Data ****************************************************************************/ locate_data(".boot_hdr.conf") const struct flexspi_nor_config_s g_flash_config = { .memConfig = { #if !defined(CONFIG_BOARD_BOOTLOADER_INVALID_FCB) .tag = FLEXSPI_CFG_BLK_TAG, #else .tag = 0xffffffffL, #endif .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 1, .csSetupTime = 1, .deviceModeCfgEnable = 1, .deviceModeType = kDeviceConfigCmdType_Generic, .waitTimeCfgCommands = 1, .controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable), .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_1Pad, .serialClkFreq = kFlexSpiSerialClk_100MHz, .sflashA1Size = 64ul * 1024u * 1024u, .dataValidTime = { [0] = {.time_100ps = 0}, }, .busyOffset = 0u, .busyBitPolarity = 0u, .lookupTable = { /* Read Dedicated 3Byte Address Read(0x03), 24bit address */ [0 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x03, RADDR_SDR, FLEXSPI_1PAD, 0x18), //0x871187ee, [0 + 1] = FLEXSPI_LUT_SEQ(READ_SDR, FLEXSPI_1PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0),//0xb3048b20 }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .serialNorType = 2, .reserve2[0] = 0x7008200, }; const struct flexspi_nor_config_s g_flash_fast_config = { .memConfig = { .tag = FLEXSPI_CFG_BLK_TAG, .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 3, .csSetupTime = 3, .deviceModeCfgEnable = 1, .deviceModeType = kDeviceConfigCmdType_Spi2Xpi, .waitTimeCfgCommands = 1, .deviceModeSeq = { .seqNum = 1, .seqId = 6, /* See Lookup table for more details */ .reserved = 0, }, .deviceModeArg = 2, /* Enable OPI DDR mode */ .controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable) | (1u << kFlexSpiMiscOffset_DdrModeEnable), .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_8Pads, .serialClkFreq = kFlexSpiSerialClk_133MHz, .sflashA1Size = 64ul * 1024u * 1024u, .dataValidTime = { [0] = {.time_100ps = 10}, }, .busyOffset = 0u, .busyBitPolarity = 0u, .lookupTable = { /* Read */// EEH+11H+32bit addr+20dummy cycles+ 4Bytes read data /* Macronix manual says 20 dummy cycles @ 200Mhz, FlexSPI peripheral Operand value needs to be 2N in DDR mode hence 0x28 */ [0 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0xEE, CMD_DDR, FLEXSPI_8PAD, 0x11), //0x871187ee, [0 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, DUMMY_DDR, FLEXSPI_8PAD, 0x28),//0xb3288b20, [0 + 2] = FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_8PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0x00), //0xa704, /* Read status */ [4 * 2 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x05, CMD_DDR, FLEXSPI_8PAD, 0xfa), [4 * 2 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, DUMMY_DDR, FLEXSPI_8PAD, 0x04), [4 * 2 + 2] = FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_8PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0x00), /* Write enable SPI *///06h [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP_EXE, FLEXSPI_1PAD, 0x00),//0x00000406, /* Write enable OPI SPI *///06h [4 * 4 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x06, CMD_DDR, FLEXSPI_8PAD, 0xF9), /* Erase sector */ [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x21, CMD_DDR, FLEXSPI_8PAD, 0xDE), [4 * 5 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, STOP_EXE, FLEXSPI_1PAD, 0x00), /*Write Configuration Register 2 =01, Enable OPI DDR mode*/ //72H +32bit address + CR20x00000000 = 0x01 [4 * 6 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x72, CMD_SDR, FLEXSPI_1PAD, 0x00),//0x04000472, [4 * 6 + 1] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x00, CMD_SDR, FLEXSPI_1PAD, 0x00),//0x04000400, [4 * 6 + 2] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x00, WRITE_SDR, FLEXSPI_1PAD, 0x01),//0x20010400, /*Page program*/ [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x12, CMD_DDR, FLEXSPI_8PAD, 0xED),//0x87ed8712, [4 * 9 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, WRITE_DDR, FLEXSPI_8PAD, 0x04),//0xa3048b20, }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .serialNorType = 2, .reserve2[0] = 0x7008200, }; Re: Flash configuration confusion RT1176 Octal DDR Hello @SimonHugr, If you plan to use DDR mode, please keep in mind that the byte swapping configuration must also be considered. this post provides useful information about why important take in mind the byte swapping on the MX25UM51245GXDI00 when you are using DDR mode.  I highly recommend use the Boot Memory Configuration to generate the FCB, the Secure provisioning tool v26.6 offers a template of the MX25UM51245G, which can serve as a good starting point for your configuration. Also, as you may know, this tool allows you to test your configurations. Additionally, I recommend see this community post, particularly the steps starting from point 15. That section provides a more detailed explanation of how the Secure Provisioning Tool generates the boot memory configuration and may help clarify the parameters and output produced by the tool. Finally, you can use the flexspi_nor_polling_transfer_cm7 example to validate the generated FCB and verify that read and write operations are functioning correctly before proceeding with the boot configuration. BR Habib Re: Flash configuration confusion RT1176 Octal DDR No results yet sadly, I still think it has something to do with some data order swap is done and I am missing some configuration byte somewhere... Re: Flash configuration confusion RT1176 Octal DDR Thank you Masmiseim Indeed, I noticed that the data should be swapped for example. I will go through my LUT once more. Re: Flash configuration confusion RT1176 Octal DDR Refering to this thread: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Internal-Boot-from-Flash-memory-not-starting-on-imxRT1176-custom/m-p/1830699 I should swap the data order by editing the misc option and according to zephyr RTOS https://github.com/zephyrproject-rtos/hal_nxp/blob/3a36ee1f8b9fc2168fc0bf80377ace8298292993/mcux/mcux-sdk-ng/devices/RT/RT1170/MIMXRT1176/drivers/romapi/fsl_romapi.h#L340-L355 the dataswap byte goes in, but I think I am missing something. .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .isDataOrderSwapped = true .serialNorType = 2, .reserve2[0] = 0x7008200, Re: Flash configuration confusion RT1176 Octal DDR Hey @SimonHugr, One thing I would verify first is the actual difference between the MX25UM51245G and MX25UM51345G. Although the part numbers are very similar, they are not identical devices. According to the Macronix datasheets, the MX25UM51345G explicitly supports DOPI (Double Transfer Rate OPI) Byte Mode data sequence, while the MX25UM51245G belongs to a different product variant. This can affect the command format, byte ordering and LUT configuration used by the FlexSPI controller. You can also compare my configuration which works with MX25UM513 and MX25UW6345G: https://github.com/Masmiseim36/Coremark_iMXRT/blob/master/XiP/flexspi_flash_OSPI_Macronix.c Regars Re: Flash configuration confusion RT1176 Octal DDR Hello Habib For our firmware I am not able to use the secure provisioning tool to generate the FCB, and instead the FCB needs to be loaded on boot in firmware and therefor I need to create the mem_config and flash_config struct and configure it myself. I found the zephyr project referenced a isDataOrderSwapped byte in the flash_nor_config https://github.com/zephyrproject-rtos/hal_nxp/blob/3a36ee1f8b9fc2168fc0bf80377ace8298292993/mcux/mcux-sdk-ng/devices/RT/RT1170/MIMXRT1176/drivers/romapi/fsl_romapi.h#L347-L348 and Claude reference a padSettingOverride bit on bit 5 and a dataSwap bit on bit 7 in the controllerMiscOption, but I am not sure if the LLM is heavily hallucinating this information. When generating the FCB using the Secure Provisioning tool and converting it into a C-struct using this tool https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/i-MX-RT-FLEXSPI-booting-guide/ta-p/1669262 I do not get bit 5 or 7 set so I think the LLM is wrong, but the isDataSwapped is set and is referenced as reserved0[0] in the FCB normally. I can not find a template for the MX25UM51245G in the secure provisioning tool, only the MX25U51245G (which is a Quad flash), the MX25UM51345G and the MX25UMxxx45G. But any config Octal DDR config that I have tried have not worked to boot. Interestingly often the MCU goes automatically into ISP mode after certain configuration despite BT_FUSE_SEL = 1 and having pins BOOTMODE0/1 = 0. This has not been consistent and I am not sure what configuration causes this. Does the MCU go into ISP mode after failing to read the flash or something? Thank you BR Re: Flash configuration confusion RT1176 Octal DDR Hello @SimonHugr, I apologies there is not a template to MX25UM51245G, only are available the MX25U51245G and MX25UM51345G. Based on your description, it seems that communication with the flash device is working correctly using your current Boot Memory Configuration settings. When you click "Convert to Complete FCB", the tool programs the configuration into the flash and then reads it back using the parameters you specified, as described below: If any of the selected settings are not supported by the flash device, the tool should report an error similar to the following: To further verify that the LUT generated using the FCB converter from the community post is functioning correctly, could you please test it with the flexspi_nor_polling_transfer_cm7 SDK example while running the application from internal RAM? Please let me know if you have questions about the example. In addition, could you provide me a few more details about the application you are trying to boot? -Is an SDK example or if your own application? -Which IDE you are using? -Is your application performing XIP or NON-XIP? -Are you accessing the flash at any point other than during the boot process? Regarding to entering in ISP mode, could you please make sure that the boot pins on your custom board followed the recommendations mentioned in the chapter 5 "Boot, reset, and miscellaneous" of the Hardware Development Guide for the MIMXRT1160/1170? This to avoid any hardware issue regarding the boot pins.   Answering your question, you can enter in ISP mode if is not available a valid image, as shown the figure 10-1 "boot flow" of the RM: BR Habib 
View full article
eMIOS DMA要求マッピングに関する説明 こんにちは、チームの皆さん、 現在、LiPSセンサのDMAモードではeMIOS1_CH13を使っています。この構成はDMAチャネル0とDMAMUX0を使用します。 S32K3xx DMAMUXマッピングExcelをレビューしていると、eMIOS1ではDMA要求0、1、9、10のみが記載されていることに気づきましたDMAMUX0。しかし、私のアプリケーションはeMIOS1_CH13を使うように設定されています。 以下の点を明確にしていただけますか? どのDMA要求ソースを使うべきかeMIOS1_CH13? eMIOS1_CH13 DMAトリガーをサポートしていますか?それともDMAはDMAリクエスト0、1、9、10に対応するeMIOSチャネルに限定されているのでしょうか? ご支援ありがとうございます。 よろしくお願いいたします。 ジョツナ・サギリ Re: Clarification on eMIOS DMA Request Mapping こんにちは、 S32K3 DMAMUXマッピングによると、eMIOSはチャネル0、1、9、10、16、17、18、19に対してのみDMAリクエストソースを提供します。これらはDMA要求を生成できる唯一のeMIOSチャネルです。 eMIOS1_CH13はこれらのチャネルの一つではないため、DMAMUX内に専用のDMA要求ソースがなく、eDMA転送を直接トリガーすることはできません。DMAトリガーが必要な場合は、利用可能なDMAリクエストソースに関連するeMIOSチャネルのいずれか(0、1、9、10、16、17、18、または19)を使用してください。 BR、ペトル
View full article
LPC54113 Power API I would like to know how to use the API of the "power" function. Through the SDK, I found that this function can be directly use on certain functions. However, unlike the iap API, there is no provided entry point or instructions on how to use it. LPC541XX  Re: LPC54113 Power API Hi @jcxz  Yes, you are correct. You can refer to other SDKs that contain more detailed description for the POWER APIs. BR Alice Re: LPC54113 Power API By downloading the SDKs of other chips in the 54 series, I was able to find POWER_Type and POWER_BASE.Thank you. Re: LPC54113 Power API For my LPC54S018, I downloaded the SDK from the NXP website. It includes functions of PowerAPI, ClockAPI, and so on. For example: POWER_SetVoltageForFreq(...), etc. It also describes the entry points and prototypes for calling the API functions. I think it's similar for the LPC54113.
View full article
RT1010/RT1011 FLEXIO EDMA i work with iMX RT1011 Nano Kit nice board i try to setup edma flexio for 8bit parallel from shifter 0 timer 0 set to 30mhz edma sent 512bytes (one per request ) code: FLEXIO_DEV->SHIFTCTL[TX_SHIFTER] = FLEXIO_SHIFTCTL_TIMSEL(WR_TIMER) | FLEXIO_SHIFTCTL_TIMPOL(0U) | FLEXIO_SHIFTCTL_PINCFG(3U) /* output */ | FLEXIO_SHIFTCTL_PINSEL(DATA_PIN_START) | FLEXIO_SHIFTCTL_PINPOL(0U) | FLEXIO_SHIFTCTL_SMOD(2U); /* transmit */ /* Timer0: WR strobe, one pulse per byte * TIMCMP low byte = (flexio_clk / (2*wr_clk)) - 1 * TIMCMP[15:8] = (beats*2)-1 = 1 for one byte per shifter load */ timDiv = (flexioClk_Hz / (2U * wrClock_Hz)); if (timDiv != 0U) { timDiv -= 1U; } timDiv &= 0xFFU; FLEXIO_DEV->TIMCMP[WR_TIMER] = (1U << 8U) | timDiv; FLEXIO_DEV->TIMCFG[WR_TIMER] = FLEXIO_TIMCFG_TIMOUT(1U) | FLEXIO_TIMCFG_TIMDEC(0U) | FLEXIO_TIMCFG_TIMRST(0U) | FLEXIO_TIMCFG_TIMDIS(2U) /* disable on compare */ | FLEXIO_TIMCFG_TIMENA(2U) /* enable on trigger high */ | FLEXIO_TIMCFG_TSTOP(0U) | FLEXIO_TIMCFG_TSTART(0U); FLEXIO_DEV->TIMCTL[WR_TIMER] = FLEXIO_TIMCTL_TRGSEL((4U * TX_SHIFTER) + 1U) /* Shifter0 flag */ | FLEXIO_TIMCTL_TRGPOL(1U) /* active low */ | FLEXIO_TIMCTL_TRGSRC(1U) /* internal */ | FLEXIO_TIMCTL_PINCFG(3U) /* output */ | FLEXIO_TIMCTL_PINSEL(WR_PIN) | FLEXIO_TIMCTL_PINPOL(1U) /* WR active low */ | FLEXIO_TIMCTL_TIMOD(1U); /* dual 8-bit baud/bit */ /* Enable DMA request from Shifter0 */ FLEXIO_DEV->SHIFTSDEN |= (1U << TX_SHIFTER); /* Enable FlexIO */ FLEXIO_DEV->CTRL |= FLEXIO_CTRL_FLEXEN_MASK; i saw the signal on the logic analyzer look like what i am except  but i get missing data in some 512 pack i mean send for example 200bytes and stop after that send ok all the 512 tzahi Re: RT1010/RT1011 FLEXIO EDMA Hi @TZAHI , Thank you so much for your interest in our products and for using our community. The most likely direction to check is whether the eDMA can continuously refill the FlexIO SHIFTBUF fast enough at the 30 MHz WR clock. With the current one-byte-per-request style configuration, the DMA request rate may be very high. This can be tight for eDMA, bus arbitration, and the FlexIO SHIFTBUF refill timing. A likely symptom is TX shifter underrun. Please first check SHIFTERR immediately after the failed transfer, before reinitializing or clearing FlexIO: Please also try increasing the CPU/bus clock if possible, or reducing the WR clock below 30 MHz, for example to 20 MHz or 10 MHz. If the transfer becomes stable at a lower WR clock, it would strongly indicate that the issue is related to DMA/FlexIO refill timing. Wish it helps you Best Regards May
View full article
使用 MCUXpresso IDE 配置 RT1170 的外部闪存 我目前使用的是搭载 MIMXRT1176CVM8B 的定制电路板。同时,还使用了外置闪光灯,部件号为:W25Q01NW。 但我无法将 MCUXpresso IDE 中的代码烧录到这个新闪存中。(错误截图已附上) 我还修改了evkbmimxrt1170_flexspi_nor_config.c文件。 修改的参数是: .sflashA1Size = 128u * 1024u * 1024u, // 已更改:因为新的闪存大小为 128MB。 还有其他配置参数需要更改吗? 提前致谢 Re: Configuring external flash using MCUXpresso IDE for RT1170 能否帮忙分享一下电路图以便我审核,因为这是一个 1.8V 的设备?同时,闪存和SoC之间的SPI时钟频率如何? Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@brundasathish , 请问您是否正在使用MIMXRT1160/1170 硬件开发指南表 11“ROM 引导加载程序外设引脚复用”中提到的推荐的 FlexSPI NOR QSPI 引脚?我强烈建议您仔细阅读这份文件,其中提供了有关电路板布局建议和设计清单的信息,以确保一次性成功并避免电路板启动问题。 另外,能否请您使用 Secure Provisioning Tool v26.6 中的 启动内存配置 功能测试一下您的闪存配置?这是为了验证您的FCB配置。 BR 哈比卜 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@db16122 , 电源配置为 1.8V,时钟频率为 133MHz。 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@Habib_MS , 非常感谢您的回复。我们已经为闪存配置了 flexspi2,以下是已配置的引脚。这是 MCUXpresso IDE 引脚配置的快照。 我们尝试使用安全配置工具配置闪存。这就是我们得到的回复。 谢谢。 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@brundasathish , 要从 FlexSPI2 次级引脚组启动,需要配置相应的 eFuse,如 RM 的表 10-1“ROM 引导加载程序外设引脚复用”中所述,如下图所示: 请注意,eFuse编程是不可逆的操作。请您确认相应的熔丝是否已充分熔断,以便使用这组辅助引脚?如果熔丝烧断正常,请您使用启动内存配置再次测试您的闪存配置。 另外请注意,此引脚配置仅支持低速读取操作,因为它不提供 DQS 信号路径。因此,在 SDR 模式下最大支持频率为 60 MHz,在 DDR 模式下最大支持频率为 30 MHz。请参考以下社区帖子,其中包含更详细的解释。 BR 哈比卜 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@Habib_MS , 非常感谢您的回复。 我目前正在使用 MCU 安全配置工具(串行下载器)模式配置和测试外部闪存。 我已使用外部启动开关上的 BOOT_CFG [11] 引脚将 FLEXSPI_INSTANCE 设置为 1(因为使用的是 FLEXSPI2)。 如何启用 FLEXSPI_PIN_GROUP_SEL?是通过MCU安全配置工具中的OTP配置吗? 通过上述启动开关更改(串行下载器模式和 BOOT_CFG [11] =1)以及 MCU 安全配置工具中下面附加的启动内存配置,我能够初始化闪存,读取闪存内容。 但我无法擦除或写入。 我附上了启动内存配置的截图。 谢谢! 布伦达·萨蒂什 Re: Configuring external flash using MCUXpresso IDE for RT1170 供参考,关于 133MHz 设置,原理图来自 AN12183,标题为“如何启用 FLEXSPI NOR Flash 的调试功能”。 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@brundasathish , 是的,可以使用OTP 配置来实现这一点。如果您的闪存设置测试正常,您可以使用“转换为完整 FCB”按钮来创建 FCB,并查看此社区帖子,特别是从第 15 点开始的步骤。该部分更详细地解释了安全配置工具如何生成启动内存配置,并有助于阐明该工具生成的参数和输出。 我想提一下,FlexSPI2 次级引脚组支持的最大时钟频率在 SDR 模式下为 60 MHz,在 DDR 模式下为 30 MHz。更多详情请参阅此社区帖子。 请问您目前使用的是哪个版本的MCUXpresso 安全配置工具? 最新版本为 v26.06,我强烈建议使用此版本,因为它包含了最新的增强功能、错误修复和整体改进,与之前的版本相比。 BR 哈比卜
View full article
IW611 RU セットアップ RUの設定方法についてアドバイスをいただきたいです。 RF試験については、技術スタッフがRUセットアップマニュアル「UM11749」の第12章を参照して試験を実施しています。しかし、設定ファイル「TF_Config_20MHz.txt」を編集すると第12.6章の例に基づいてロードしたところ、出力波形は変調されていない信号に似ており、期待される波形を確認することができませんでした。 波形が出力されていることから、ファイルは正しく読み込まれたと考えられます。 設定ファイルの内容は以下のとおりです。 =================================================================== FRAME_CTRL_TYPE=1 \\IEEE_TYPE_CONTROL FRAME_CTRL_SUBTYPE=2 \\TRIGGER 期間フィールドを設定します 最大継続時間 フレーム期間=5484 \\0x156C トリガーフレームのcommoninfoフィールドを設定します \\ HE_trigger_frame.TrigCommonField.TriggerType = BASIC_TRIGGER; \\ HE_trigger_frame.TrigCommonField.UlLen = 1000; \\ 最大 \\ HE_trigger_frame.TrigCommonField.MoreTF = FALSE; \\ HE_trigger_frame.TrigCommonField.CSRequired = FALSE; \\ HE_trigger_frame.TrigCommonField.UlBw = TB_BW_20MHZ; \\ HE_trigger_frame.TrigCommonField.LTFType = LTF_1_GI_1_6uS; \\ HE_trigger_frame.TrigCommonField.LTFMode = MU_MIMO_SINGLE_STREAM; \\ HE_trigger_frame.TrigCommonField.LTFSymbol = 0; \\ HE_trigger_frame.TrigCommonField.UlSTBC = FALSE; \\ HE_trigger_frame.TrigCommonField.LdpcESS = TRUE; HE_trigger_frame.TrigCommonField.ApTxPwr = 0 \\ HE_trigger_frame.TrigCommonField.PreFecPadFct = 1; \\ HE_trigger_frame.TrigCommonField.PeDisambig = 0; \\ HE_trigger_frame.TrigCommonField.SpatialReuse = 65535; \\ HE_trigger_frame.TrigCommonField.Doppler = FALSE; \\ HE_trigger_frame.TrigCommonField.HeSig2 = 0x1FF; \\ 予約済み TrigCommonField=0;1000;0;0;0;1;0;0;0;1;0;1;0;65535;0;511 トリガーフレームのユーザー情報フィールドを設定します \\ HE_trigger_frame.TrigUserInfoField.AID12 = (5 & 0xFFF); \\ HE_trigger_frame.TrigUserInfoField.RUAllocReg = 0; \\ HE_trigger_frame.TrigUserInfoField.RUAlloc = 61; \\ 53 (106トーン) \\ HE_trigger_frame.TrigUserInfoField.UlCodingType = CODING_TYPE_LDPC; \\ HE_trigger_frame.TrigUserInfoField.UlMCS = 0; \\ HE_trigger_frame.TrigUserInfoField.UlDCM = FALSE; \\ HE_trigger_frame.TrigUserInfoField.SSAlloc = 0; \\ HE_trigger_frame.TrigUserInfoField.UlTargetRSSI = 80; TrigUserInfoField=5;0;61;1;0;0;0;80 \\configure trigger dependent ユーザー info field \\ HE_trigger_frame.BasicTrigUserInfo.MPDU_MU_SF = MPDU_SPACING_MULT_1; \\ HE_trigger_frame.BasicTrigUserInfo.TID_AL = 0; \\ HE_trigger_frame.BasicTrigUserInfo.AC_PL = FALSE; \\ HE_trigger_frame.BasicTrigUserInfo.Pref_AC = TB_AC_VO; BasicTrigUserInfo=0;0;0;0 =================================================================== この説明に誤りがあれば、お知らせください。 また、ファイルを使用しない他の方法があれば教えてください。
View full article
Crystal oscillator waveform abnormality Hello, @lukaszadrapa Our company is using your FS32K144HFT0MLHT MCU. The waveform is abnormal when using an 8MHz passive crystal oscillator (AV08000009). Is this waveform acceptable for your company's MCU? Will it affect the normal operation of the MCU? Re: 晶振波形异常 Hi @Kyp  The oscilloscope screenshot does not appear to show the actual 8 MHz crystal waveform. The displayed frequency (~256 Hz) is inconsistent with the expected oscillator frequency and is most likely caused by aliasing due to the selected oscilloscope timebase and sampling rate. Therefore, it is not possible to assess the crystal oscillator quality from this measurement alone. A significantly faster timebase should be used to observe the actual oscillator waveform. Regards, Lukas
View full article
Can ELE Retain Keys in Host-Inaccessible Non-Volatile Storage? Hi, I would like to ask about persistent key storage for use with the EdgeLock Secure Enclave (ELE). Based on my understanding of the KW47 Security Reference Manual, keys used by ELE for cryptographic operations can be stored persistently using the Key Storage Services. My understanding of the typical flow is as follows: 1. Create a Key Blob for the target key and export it to the host. 2. Store the exported Key Blob in non-volatile memory such as Flash. 3. When the key is needed for a cryptographic operation, import the Key Blob and use the key through ELE. In this approach, the Key Blob is generated by ELE, so the host cannot read the actual key material. However, since the Key Blob itself is stored by the host in Flash, it appears that the host could still delete or overwrite the Key Blob. My question is: Is there a way to store a key (or its Key Blob) in a non-volatile storage area that is accessible by ELE but not accessible by the host, allowing cryptographic operations to be performed by ELE without the key material or Key Blob ever being exposed to the host at any point? In other words, is it possible for ELE to own and manage persistent key storage entirely within a secure region, such that the host never handles the key or Key Blob directly? Thank you in advance for your guidance. Re: Can ELE Retain Keys in Host-Inaccessible Non-Volatile Storage? Hi @t_hosomi, hope you are doing well. Your understanding of the key generation and storage in NVM flow is correct. However, since the ELE does not have a non-volatile memory (as stated in section 10.3.1 of the SRM), the only supported path is to store the exported key blob in host's NVM. Please let me know if this information is helpful. Re: Can ELE Retain Keys in Host-Inaccessible Non-Volatile Storage? Hi RomanVR, Thank you for your response. I understand that ELE itself does not provide non-volatile storage and that persistent key data must therefore be stored in the host's non-volatile memory. Thank you for clarifying this point.
View full article
TJA1120A RGMII Mode- Delay Config This is the Device-Tree for TJA1120A - cpsw_port1, cpsw3g_phy0 &cpsw_port1 { status = "okay"; phy-mode = "rgmii-txid"; phy-handle = <&cpsw3g_phy0>; }; &cpsw_port2 { status = "okay"; phy-mode = "rgmii"; phy-handle = <&cpsw3g_phy1>; }; &cpsw3g_mdio { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_mdio1_pins_default>; cpsw3g_phy0: ethernet-phy@0 { compatible = "ethernet-phy-id001b.b031"; reg = <4>; }; cpsw3g_phy1: ethernet-phy@1 { compatible = "ethernet-phy-id0022.1620"; reg = <0>; txc-skew-ps = <900>; rxc-skew-ps = <900>; rxd0-skew-ps = <420>; rxd1-skew-ps = <420>; rxd2-skew-ps = <420>; rxd3-skew-ps = <420>; txd0-skew-ps = <420>; txd1-skew-ps = <420>; txd2-skew-ps = <420>; txd3-skew-ps = <420>; rxdv-skew-ps = <420>; txen-skew-ps = <420>; }; }; Here we give "rgmii-txid" as phy-mode for TJA1120A. But when I read register RGMII_TXC_DELAY_CONFIG, it reads 0x0014 which means no delay(15th bit), and RGMII_RXC_DELAY_CONFIG reads 0x8014 with means delay is set(15th bit).  Also if i change phy-mode to "rgmii-rxid" in DT, RGMII_RXC_DELAY_CONFIG reads 0x0014, and RGMII_TXC_DELAY_CONFIG reads 0x8014. I just tried setting "rgmii" in DT and then setting these registers using phytool, it had reflected perfectly and started pinging then RGMII_RXC_DELAY_CONFIG 15th bit set to HIGH and RGMII_TXC_DELAY_CONFIG 15th bit set to LOW. I wish to understand why this reversal happen at DT configuration of phy-mode. For our AM62A7 based ECU, internal delay on RX_Clock is needed by PCB, so it set "rgmii-txid". Its working perfectly fine. Also I would like to know the use of Pin Strapping for this PHY-Mode, if DTS takes care of it. Re: TJA1120A RGMII Mode- Delay Config Hi, Based on the TJA1120A documentation, the RGMII delay configuration can be a bit confusing because the register names and the delay described inside the register do not directly match. Please refer to the RGMII_RXC_DELAY_CONFIG/RGMII_TXC_DELAY_CONFIG registers bit description within device DS: 0xAFCC RGMII_RXC_DELAY_CONFIG: bit 15 = enables internal TXC delay 0xAFCD RGMII_TXC_DELAY_CONFIG: bit 15 = enables internal RXC delay   So, when checking the configuration, the important point is the actual register bit description and the final register read-back value after initialization. Also note that pin strapping only defines the default configuration after reset. The software driver can overwrite this later via MDIO, so the effective configuration should be verified by reading back the registers after the system has booted. Please also make sure that the same RGMII clock delay is not enabled on both MAC and PHY side unless this is intended by the board timing design. BR, Petr
View full article
imx93 lpddr4x の JSL4BAG16 設定が不安定です こんにちは、専門家の皆様: JSL4BAG16 の lpddr4x 設定に関して問題があります。設定後、「機能」テストはパスしますが、「最適化->CA 最適化の Vref」で失敗することがあります。常に失敗するわけではなく、時々失敗します。 「vTSA -> CA eye」のテストを実行すると、合格と表示されますが、同時に「エラーログ」も表示されます。 「Vref DQ config」と「Vref CA config」の調整方法について質問があります。JSL4BAG16のVref値は「EVKで使用されているミクロン値」と異なりますが、範囲0または範囲1を設定する必要がありますか? 私の知る限り、Vref DQは「アイダイアグラム」テストの結果に基づいて設定されますが、「読み取りダイアグラム」と「書き込みダイアグラム」のどちらを使用すればよいのでしょうか? JSL4BAGのデータシートと、「CA eye」テストログおよびmexファイルを添付しました。     よろしくお願いします。 Re: imx93 lpddr4x config for JSL4BAG16 unstable こんにちは、 LPDDR4Xは、 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-93-Memory-Compatibility-Guide/ta-p/1725656の一部です。 Vref DQ チューニングには、JSL4BAG16 のレンジ 1 (デフォルト) を使用し、読み取りではなく書き込みアイ ダイアグラムを使用してください。   Micron/EVKの設定を再利用しないでください。必ずJSL4BAG16に合わせてVrefを再調整してください。 Re: imx93 lpddr4x config for JSL4BAG16 unstable こんにちは、オズワラグさん。 ご返信ありがとうございます。私は「i.MX config tool」でテストに合格し、「最適化」テスト結果でDQとCAの「Vref」を使用しました。 しかし、まだ2つの問題があります。 1.あるボードでは「CA Charts」が表示されず、「CA Eye」テストには誤差がありますが、合格と表示されます 2.lpddr4x_timing.cを更新した後すべての合格ボードで「i.MX config tool」によって生成されたものをシステムで「memtest」を実行すると、「Stuck Address」で失敗します。常にではありませんが、時々発生します。 よろしくお願いします。 Re: imx93 lpddr4x config for JSL4BAG16 unstable 私のFRDM-IMX93ボードにも同じチップが搭載されていますが、市販のイメージファイルでは正常に起動しません。どうすれば解決できますか? Re: imx93 lpddr4x config for JSL4BAG16 unstable いいえ、していません。弊社では、flex-installerが提供する市販のイメージファイルを使用して、市販のfrdm-imx93ボードを使用しています。 入門マニュアルには「i.Mx設定ツール」についての記載はありません。 手順はどうなりますか?マニュアルはありますか?また、使い始めるにあたって、どのような手順で部品を交換する必要がありますか? これはまた、すべてのFRDM-IMX93ボードに対して1つの標準イメージを使うことはできず、各ボードを確認するか、搭載DDRによって2〜3つのイメージバージョンを持つ必要があるということですか? ご注意ください。私たちは(共有の)お客様に対して既製の動作を期待しています。 Re: imx93 lpddr4x config for JSL4BAG16 unstable こんにちは、SynchronicITさん。 「i.MX config tool」を使用してDDRテストに合格しましたか?まずそれを通過させてから、lpddr4x_timging.c を使用する必要があります。「i.MX設定ツール」によって生成されました。
View full article