Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
iMX95 CA 位交换 你好,恩智浦、 LPDDR5 是否允许 CA[6:0] 引脚的位交换? 除了 EVK 的映射之外,还有什么成功的位映射可以用于 iMX95 吗? 谢谢! 西蒙 Re: iMX95 CA bit swapping 你好@simonng、 由于 i.MX95 仍在减产阶段,我们没有硬件设计供应。但根据以前的产品经验, 不支持 CA[6:0] 引脚互换。 希望能对您有所帮助 祝您有美好的一天 顺祝商祺! Rita
View full article
mc33772c 分配 CID 你好, ,我目前正通过 mcu 连接 mc33664 和 mc33772c。现在,我可以通过发送读取初始寄存器的指令来获得正确的响应,但在我尝试写入 cid 并读取它之后,却无法获得正确的响应。 在不更改读取指令(不修改报文计数器)的情况下继续发送,仍能得到响应,这正常吗? 下面是我尝试写入 cid 但没有收到响应的情况,而读取初始寄存器时也得到了响应。此外,此后发送的其他指令也可以收到相同的响应,除非再次发送读取初始寄存器的指令,在这种情况下,响应数据将被更新。     SPI Re: mc33772c assign CIDs 嗨,凯文、 我检查了你的电路图,似乎是正确的。但我不明白 BCC 的各个接地是如何连接的。请确保 BCC 的地线连接到 6 芯电池中最低电池的负极。请参阅所附示意图。 如果不存在 EEPROM,则应忽略 I2C ERR FLT。 开始时,请断开较高 BCC 的连接,并尝试只写入第一个 BCC,同时将 6 芯电池只连接到第一个 BCC。如下所示。 致以最崇高的敬意 约瑟夫 Re: mc33772c assign CIDs 嗨,凯文、 感谢您提供的示意图。是的,我收到了。我会检查一下,然后再回来。 致以最崇高的敬意 约瑟夫 Re: mc33772c assign CIDs 您好, ,我已将原理图作为附件发送到您上周五的私人信息中。您收到了吗?还有问题吗? 最美好的祝愿 Kevin Re: mc33772c assign CIDs 嗨,凯文、 你在使用我们的评估板吗?如果是,请注明完整的产品编号。如果您使用自己的设计,请共享您的原理图以及电压等级和零件值以供检查。 致以最崇高的敬意 约瑟夫 Re: mc33772c assign CIDs 你好, ,我现在已经连接了电池,但仍无法成功写入 cid。而通过读取 FAULT1 STATUS$24 寄存器,我发现在执行写入指令后也出现了故障检测。我没有外部 EEPROM,因此将 I2C ERR FLT 设置为 1 应该是正常的。 我的波形也正常。我真不知道为什么写不对。     Re: mc33772c assign CIDs 嗨,凯文、 是的,可能就是这个原因。请参阅MC33772C 数据手册中的第 5.2 节。根据您所使用的 MC33772C 版本,BCC(电池芯控制器)必须连接的电池芯数量是最少的。通常,最小电池数为 3。但是,即使是 MC33772CTC0AE 版本,CT 和 CB 引脚也不能保持浮空。 另请参阅AN12536。 致以最崇高的敬意 约瑟夫 Re: mc33772c assign CIDs 您好, 我通过接线为 mc33772c 供电。这种方法是否会影响我读写 mc33772c 芯片、分配 CID。     Re: mc33772c assign CIDs 嗨,Kevinyuee、 INIT 寄存器读取工作 这表明默认 CID(通常为 0x00)仍处于活动状态。 该命令的报文计数器和 CRC 可能是正确的。 撰写 CID 需要 一个有效的报文计数器(从上一条成功报文开始递增)。 正确的 CRC。 CID 分配命令的正确帧格式。 请参阅MC33772C 完整数据手册中的第 9.3.2 和 9.3.3 节,了解空闲模式和启动模式的说明。 致以最崇高的敬意 约瑟夫
View full article
VR5510 OTP設定の変更 こんにちは、 VR5510を使用してOTP設定を変更する際に問題が発生しました。テストモードに入ることができず、ご助力いただけないでしょうか。 手順は次のとおりです。 文書 AN13182 に従ってテストします。 5.1 デバッグモード/テストモードに入るに従って、VDDOTP電圧を設定すると、FS_STATES(0x18h)データは0x20、0x03として読み取られます。 表 1.FS_STATES によると、DBG_MODE ビットは 1 であり、デバッグ モードに正常に入ったことを示しています。 • デバッグモードに入った後、テストモードに入るには、I2C経由でテストモードキーのセットを送信する必要があります。これは、OTPレジスタにアクセスし、必要な設定に変更するために必要です。テストモードキーが受け入れられるまで、VDDOTPピンはハイレベルに保持する必要があります。 • 同じテストモードキーセットを、メインテストモードエントリレジスタ(M_TM_ENTRY、0x1Fh)とセキュリティテストモードエントリレジスタ(FS_TM_ENTRY、0x26h)の両方に同時に書き込む必要があります。以下のキーは、各レジスタに順番に書き込む必要があります。 – キー1: 11010101_10100111 – キー2: 10111000_11101110 – キー3: 00001111_00110111 3つのキーを16進数データに変換すると、次のようになります: key1: 0xD5, 0xA7 – キー2: 0xB8、0xEE – キー3: 0x0F、0x37 CRCはルックアップテーブル方式を用いて計算を行います。以下にCRCテーブルとルックアップテーブル関数を示します。 静的const uint8_t crc8_lookup[256] = { 0x00,0x1D,0x3A,0x27,0x74,0x69,0x4E,0x53,0xE8,0xF5,0xD2,0xCF,0x9C,0x81,0xA6,0xBB, 0xCD、0xD0、0xF7、0xEA、0xB9、0xA4、0x83、0x9E、0x25、0x38、0x1F、0x02、0x51、0x4C、0x6B、0x76、 0x87,0x9A,0xBD,0xA0,0xF3,0xEE,0xC9,0xD4,0x6F,0x72,0x55,0x48,0x1B,0x06,0x21,0x3C, 0x4A,0x57,0x70,0x6D,0x3E,0x23,0x04,0x19,0xA2,0xBF,0x98,0x85,0xD6,0xCB,0xEC,0xF1, 0x13,0x0E,0x29,0x34,0x67,0x7A,0x5D,0x40,0xFB,0xE6,0xC1,0xDC,0x8F,0x92,0xB5,0xA8, 0xDE,0xC3,0xE4,0xF9,0xAA,0xB7,0x90,0x8D,0x36,0x2B,0x0C,0x11,0x42,0x5F,0x78,0x65, 0x94,0x89,0xAE,0xB3,0xE0,0xFD,0xDA,0xC7,0x7C,0x61,0x46,0x5B,0x08,0x15,0x32,0x2F, 0x59,0x44,0x63,0x7E,0x2D,0x30,0x17,0x0A,0xB1,0xAC,0x8B,0x96,0xC5,0xD8,0xFF,0xE2, 0x26,0x3B,0x1C,0x01,0x52,0x4F,0x68,0x75,0xCE,0xD3,0xF4,0xE9,0xBA,0xA7,0x80,0x9D, 0xEB、0xF6、0xD1、0xCC、0x9F、0x82、0xA5、0xB8、0x03、0x1E、0x39、0x24、0x77、0x6A、0x4D、0x50、 0xA1,0xBC,0x9B,0x86,0xD5,0xC8,0xEF,0xF2,0x49,0x54,0x73,0x6E,0x3D,0x20,0x07,0x1A, 0x6C,0x71,0x56,0x4B,0x18,0x05,0x22,0x3F,0x84,0x99,0xBE,0xA3,0xF0,0xED,0xCA,0xD7, 0x35,0x28,0x0F,0x12,0x41,0x5C,0x7B,0x66,0xDD,0xC0,0xE7,0xFA,0xA9,0xB4,0x93,0x8E, 0xF8,0xE5,0xC2,0xDF,0x8C,0x91,0xB6,0xAB,0x10,0x0D,0x2A,0x37,0x64,0x79,0x5E,0x43, 0xB2,0xAF,0x88,0x95,0xC6,0xDB,0xFC,0xE1,0x5A,0x47,0x60,0x7D,0x2E,0x33,0x14,0x09, 0x7F,0x62,0x45,0x58,0x0B,0x16,0x31,0x2C,0x97,0x8A,0xAD,0xB0,0xE3,0xFE,0xD9,0xC4 }; uint8_t crc8_table(const uint8_t *データ, uint32_t 長さ) { uint8_t crc = 0xFF; while(len--) { crc = crc8_lookup[crc ^ *data++]; } crc を返します。 } データシート 23.I2C のデータ形式に従って、データと CRC チェック結果を配列にカプセル化します。 uint8_t key20_1[5] = {0x40, 0x1F, 0xD5, 0xA7, 0xA8}; uint8_t key21_1[5] = {0x42, 0x26, 0xD5, 0xA7, 0x24}; uint8_t key20_2[5] = {0x40, 0x1F, 0xB8, 0xEE, 0xEA}; uint8_t key21_2[5] = {0x42, 0x26, 0xB8, 0xEE, 0x66}; uint8_t key20_3[5] = {0x40, 0x1F, 0x0F, 0x37, 0x16}; uint8_t key21_3[5] = {0x42, 0x26, 0x0F, 0x37, 0x9A}; 3 つのキーをそれぞれ 2 つのレジスタに書き込みます。 VR5510_Write(key20_1);// W:0x20, 0x1F, (0xD5, 0xA7) VR5510_Write(key21_1);// W:0x21, 0x26, (0xD5, 0xA7) VR5510_Write(key20_2);// W:0x20, 0x1F, (0xB8, 0xEE) VR5510_Write(key21_2);// W:0x21, 0x26, (0xB8, 0xEE) VR5510_Write(key20_3);// W:0x20, 0x1F, (0x0F, 0x37) VR5510_Write(key21_3);// W:0x21, 0x26, (0x0F, 0x37) • テストモードエントリキーの送信に成功した後、M_TM_STATUS1(0x25h)レジスタのビット6とFS_STATES(0x18h)レジスタのビット15を読み出してテストモードステータスを確認します。両方のビットが1に設定されている場合、テストモードエントリ操作は成功です。 さらに2つのレジスタからデータを読み取る VR5510_Read(state_buf1, データ);// R:0x20, 0x25, (0x00, 0x0C) VR5510_Read(state_buf2, データ);// R:0x21, 0x18, (0x20, 0x03) FS_STATES(0x18h)のデータは0x20、0x03です。(表1に基づく)FS_STATES チェックでは、15 番目のビットが 0 であることが示されています。 M_TM_STATUS1(0x25h)のデータは0x00、0x0Cです。表2によると、M_TM_STATUS1の6番目のビットは0です。 テストモードに入ることができませんでした。 入力に失敗した場合、「5.2 デバッグモードでプログラム済みOTPを変更する」の手順に従ってOTP設定を変更しようとしました。まずレジスタを読み取り、次に新しいデータを書き込み、最後に再度読み取りました。しかし、データは変更されず、変更は失敗しました。 VR5510_書き込み(OTP1_R1_W); VR5510_Read(OTP1_R2_R、データ); VR5510_書き込み(OTP2_W1_W); VR5510_書き込み(OTP2_W2_W); VR5510_書き込み(OTP3_R1_W); VR5510_Read(OTP3_R2_R、データ); テスト モードに入ることができなかったのはなぜですか? また、どうすれば修正できますか? Re: VR5510 OTP 修改配置 ご質問がございましたら、以下のリンクからチケットを送信してください。このリンクはあなただけに表示されます。 家 Re: VR5510 OTP 修改配置 電話番号を残す Re: VR5510 OTP 修改配置 現在のチップはもう変更できないのでしょうか?AN13182ドキュメントに従ってテストと設定ができるのは空のチップだけです。テスト後、テスト時に使用した設定に従ってOTPが実行されます。OTP後は、それ以上の変更はできないということですか? Re: VR5510 OTP 修改配置 OTP がすでに実行されている場合、この出力は OTP 中に決定され、電源投入後に IIC 経由でレジスタを変更することはできません (これは無駄になります)。 OTPを自分で再作成するには、ソケットボードから空のチップ(A0バージョン)を取り出すしかありません。これが最も効果的な方法です。そうでなければ、非常に面倒な作業になります。 Re: VR5510 OTP 修改配置 購入したチップ(モデル:MVR5510AMDAHES)には、OTPが既にプログラムされています。BUCK3の電圧を変更する必要があります。I2Cを使って設定を変更することは可能ですか? Re: VR5510 OTP 修改配置 こんにちは: VR5510 用に独自の OTP を作成する予定ですか? こんにちは。現在お持ちの VR5510 の具体的なモデルを教えていただけますか? KITVR5510SKTEVM | VR5510 PMICプログラミングボード | NXPセミコンダクターズ 上記はOTPソケット用に特別に設計されたVR5510ボードです。これをOTPに使用すると便利だと思いますか?
View full article
在 FRDM-MXCN947 板上同时使用以太网和摄像头 在 MCXNx4x 中,SmartDMA 可用于实现摄像头接口。 根据 MCXNx4x 数据表,以太网和 SmartDMA 的 Pinmux 分配有冲突。因此,我认为以太网和摄像头不能同时使用。 但是,FRDM-MCXN947 板用户手册 (UM12018) 规定了以下内容: > 如果在使用摄像机时仍然需要以太网功能, ,将 SJ16 和 SJ26 跳线从默认位置移开。 有没有办法同时使用以太网和摄像头? 开发板 MCX N Re: Simultaneous use of Ethernet and camera on the FRDM-MXCN947 board 你好@dubian1shu 我重新检查了文件内容,确认文件中的描述存在问题。 我们将及时修改文件。 可以同时使用SmartDMA (EZH_CAMERA) 和以太网 (ENET),但需要找到一些不共享的引脚供摄像头使用。 您可以参考这篇文章。 MCX N947:同时实现以太网和摄像头功能 - NXP 社区 希望能帮到你。 BR 挂 Re: Simultaneous use of Ethernet and camera on the FRDM-MXCN947 board 感谢@Harry_Zhang的检查和回复 由于 SmartDMA 支持 P1_X 和 P3_X,我认为 MCXNx4x 可以同时使用 SmartDMA 和以太网功能。 但使用 FRDM-MCXN947 能否使用 SmartDMA 和以太网功能? FRDM-MCXN947 的 J9(摄像头接头)有七个引脚与以太网引脚冲突。FRDM-MCXN947 主板用户手册 (UM12018) 中描述的 P1_4 的解决方案仅解决了其中一个问题,没有提及其他六个冲突。 例如,P1_5、P1_13 和 P1_15 在 SmartDMA 和以太网之间存在冲突。从原理图文件(SCH-90818)来看,似乎没有解决这一冲突的办法。 有办法在 FRDM-MCXN947 上同时使用 SmartDMA (EZH_CAMERA) 和以太网 (ENET) 吗? Re: Simultaneous use of Ethernet and camera on the FRDM-MXCN947 board 你好@dubian1shu 我查看了MCXNx4x 数据表,确实有一些引脚以太网与 SmartDMA 冲突。但如果你想同时使用以太网和 SmartDMA,可以选择一些以太网和 SmartDMA 不冲突的引脚。 例如,可以选择 P3_X 作为 SmartDMA 引脚,选择 P1_X 作为以太网引脚。 然后参照 FRDM-MCXN947 主板用户手册 (UM12018) 移动跳线。 希望能帮到你。 BR 挂
View full article
S32G-VNP-RDB32 (SJA1110) スイッチのレジスタアクセス こんにちは、 レジスタに値を書き込む方法を探しています 読み書きの完全な住所を教えていただけますか? 住所 名前 アクセス リセット 説明 8Ch DYN_BE_LKP_ エントリー0 読み取り/書き込み 0h (FFFFFFFEh) 8chより前のベースアドレスは何でしたか? 例えば0x3fc0008cになりますので、この動的エントリテーブルには完全なアドレスがあります。完全なアドレスを教えていただけますか? 8Ch DYN_BE_LKP_ エントリー0 読み取り/書き込み 0h (FFFFFFFEh) 90時間 DYN_BE_LKP_ エントリー1 読み取り/書き込み 0h 94時間 DYN_BE_LKP_ エントリー2 読み取り/書き込み 0h 98時間 DYN_BE_LKP_ エントリー3 読み取り/書き込み 0h 9Ch DYN_BE_LKP_ エントリー4 読み取り/書き込み 0h A0h DYN_BE_LKP_ エントリー5 読み取り/書き込み 0h A4h DYN_BE_LKP_CTRL 読み取り/書き込み 0h (FF800000h) レジスター内の動的エントリを構成するための完全なアドレスを教えていただけますか? この実装はSJA1110 スイッチで行う必要がある Re: Register Access in S32G-VNP-RDB32 (SJA1110) Switch こんにちは@Atkinson 、 最初は簡単ではないと思われるかもしれませんが、コンセプトは実際には非常にシンプルです。 最終的なレジスタ アドレスは、アクセス方法 (AHB 経由の M7 コア経由で内部的にアクセスしているか、SPI_AP インターフェース経由で外部的にアクセスしているか) によって異なります。ベース アドレスはアクセス ポイントによって異なります。 レジスタ アドレスは、UM11107 の表 2 に示されているベース アドレスを使用して計算されます。たとえば、スイッチ サブシステムの場合、ベース アドレスは SPI_AP アクセスの場合は0x00000000 、AHB アクセスの場合は0xFF000000です。 あなたのCASE、レジスタ0x8C (DYN_BE_LKP_ENTRY0) は、AHB 経由でアクセスすると0xFF00008Cになります。 ここで混乱が生じる可能性があります。SDK ドライバは次のように定義します。 #define SJA1110_L2_ART_LE_ADDR ( 0x3fc00023 ) /**< l2ArtLockedEntryレジスタのアドレス *   SWITCH_DRV_Write ルーチンは、内部 (AHB) アクセスのためにアドレスを 2 ビット (<< 2) 左にシフトします。SPI 転送 (カスケード スイッチ セットアップで使用される) の場合、シフトは適用されません。SO、 0x3fc00023 << 2 は0xFF00008Cになります。   上記の説明で理解が深まったかと思います。   よろしくお願いいたします。 パベル
View full article
PN7160 设计有效,但 PN7161 无效 我设计了带有 I2C 端口的 PN7160 和 PN7161 板。我用这个库测试了它们:GitHub-nxpnfclinux/Linux_libnfc-NCI:适用于基于 NCI 的恩智浦 NFC 控制器的 Linux NFC 堆栈 结果如下 1.所有 PN7160 板都运行良好。 2。所有 PN7161 板都无法运行,启动时出现故障。 PN7160 和 PN7161 板采用相同的设计。我没有获得苹果公司对 ECP 的授权。 我的问题 1.如果没有苹果公司对 ECP 的授权,PN7161 是否会像 PN7160 一样工作,或者根本不会工作? 2.除了 ECP,PN7161 和 PN7160 还有其他区别吗? 谢谢! Re: PN7160 design works but PN7161 doesn't work 请帮帮我、 我用 Pn7161 芯片设计了 nfc 板但启动时遇到了问题。 Re: PN7160 design works but PN7161 doesn't work 您好,ELECHOUSE, 能否请您分享一下问题的根本原因? 谢谢! BR Tomas Re: PN7160 design works but PN7161 doesn't work 不知道能否将链接粘贴到这里: https://www.elechouse.com/product/pn7160-nfc-rfid-module/ 我们已经解决了 PN7160 和 PN7161 模块的所有问题 Re: PN7160 design works but PN7161 doesn't work 只是对上述内容的更新以备将来参考: 通过应用以下主题中提到的相同解决方案,我们的问题迎刃而解: PN7160 TXLDO 在 VBAT 连接到 3V3 时保持 0V 电压 。 在我们的案例中,射频驱动由 3V3 控制,显然在所有情况下都无法通过 TXLDO 检查。禁用 TXLDO-Check 会产生射频信号。 目前还不清楚为什么有些 PCB 能通过测试,而有些则不能。 Re: PN7160 design works but PN7161 doesn't work 您好, 在一个应用中,我们使用了 PN7161 的 SPI 版本。 在同一批生产的 5 块印刷电路板中,有 3 块没有产生射频信号,但通过 SPI 进行了通信。 电子连接方面似乎没有问题。 你找到问题所在了吗? 提前谢谢您。 Re: PN7160 design works but PN7161 doesn't work 嗨,Elechouse,我喜欢你们的产品!您认为 PN7160 什么时候可以上市? Re: PN7160 design works but PN7161 doesn't work 我们又制作了 2 个新的 PN7160 板和 5 个新的 PN7161 板。除了我们上次制作的 5 个 PN7160 板外,我们还有: PN7160 板:7 个 PN7161 板: 5 个 它们的 PCBA 设计相同。测试结果是 7 个 PN7160 板:所有板都能正常工作 5 个 PN7161 板:没有一个能用。启动时全部失败.... 测试工具Rapberry Pi 软件: git clonehttps://github.com/NXPNFCLinux/linux_libnfc-nci.git-b NCI2.0_PN7160 如有任何建议,将不胜感激! 谢谢! Re: PN7160 design works but PN7161 doesn't work HI PN7161 的响应与 PN7160 完全相同,除非激活了特殊的 ECP 功能,否则它只是具有更多功能而已。 此致 丹尼尔 Re: PN7160 design works but PN7161 doesn't work 非常感谢你的答复。 您的意思是说,如果没有苹果公司的独裁,我们就无法使用 PN7161 的任何功能?甚至读取普通标签(如 Mifare)? Re: PN7160 design works but PN7161 doesn't work HI PN7161 与 PN7160 具有相同的功能,支持 Apple 增强型免接触式轮询 (ECP) 功能。 通用 PN7160 所采用的所有标准设计原则同样适用于 PN7161,其中包括额外的内容,但在外形、装配和功能上与 PN7160 完全相同。 PN7161 需要苹果公司授权 此致 丹尼尔
View full article
S32K3 SPD DMA こんにちは、 RTD400とSPD105を使用し、開発ボードはS32K312 144P開発ボードです。 設定を行わずに、テスト対象の UART + DMA プログラムに FCCU モジュールを追加しました。ヘッダーファイルが参照されておらず、コード内でFCCU部分が初期化されていない場合でも、プログラムはClock_Ip_SetWaitStatesで停止します。 テスト対象の SPD モジュール プログラムに uart モジュールを通常どおり追加し (RAM およびフラッシュ インジェクション エラーを含む)、その後、設定を行わずに DMA モジュールを追加しました。ヘッダー ファイルと初期化 Fdma 部分がコード内で参照されていない場合でも、プログラムは Clock_Ip_SetWaitStates() 関数内にあります。その後、ハードウェア エラー割り込みが発生します。 FCCU モジュールを追加せずに UART + DMA のコードをアップロードしましたが、正常に動作しました。ただし、追加後はクロック初期化プログラムにハードウェア エラーが発生します。この原因は何でしょうか? また、この問題はどのように解決できるでしょうか? Re: S32K3 SPD DMA 同様の問題に遭遇しました。S32K312 のUART 割り込みモードを使用すると動作しますが、Dma_Ip_Init() および Rm_Init() の後にLpuart_Uart_Ip_AsyncSend () またはLpuart_Uart_Ip_AsyncReceive () を実行すると、 HardFault_Handler () に入ります。 サポートをお願いできますか。 Re: S32K3 SPD DMA こんにちは@ Neo1096 申し訳ございませんが、IAR をサポートすることはできません。変更するには、提供されているリンク ファイルを参照してください。 Re: S32K3 SPD DMA icf ファイルを提供してもらえますか?IARで使用する必要があります Re: S32K3 SPD DMA こんにちは@ Neo1096 問題の原因を見つけました。 これは、S32 DS が提供するリンク ファイルの構成の問題が原因です。 SPD パッケージ内のリンク ファイルを S32 DS 内のリンク ファイルに置き換えると、この問題は解決できます。 SO、さらにテストを行うには、添付ファイルのリンク ファイルを参照してください。 Re: S32K3 SPD DMA こんにちは@ Neo1096 社内チームが問題を再現し、現在考えられる原因を排除しています。 更新日時: 2025年7月23日。 Re: S32K3 SPD DMA こんにちは@Neo1096 社内フォーラムからの返信はまだ受け取っていませんので、お待ちください。 更新日:2025年7月15日。 Re: S32K3 SPD DMA こんにちは@Neo1096 社内フォーラムからの返信はまだ受け取っていませんので、お待ちください。 更新データ:2025年7月7日。 Re: S32K3 SPD DMA こんにちは@ Neo1096 今朝再度プッシュしましたが、社内フォーラムからはまだ何の返答もありません。 Re: S32K3 SPD DMA 何か進展はありましたか? Re: S32K3 SPD DMA こんにちは@Ne01096 これはバグかもしれません。何か見落としているかどうか、デザインチームに確認する必要があります。 現状では、DMA モジュールを追加すると、クロックの初期化時にハードファルト状態になります。 さまざまなバージョンでテストしましたが、結果は同じでした。 Re: S32K3 SPD DMA exceptions.cにコードを追加しましたStartup_Code フォルダーの下に、主にエラー注入によって発生したハードウェア エラーを処理するためにあります。その他の部分は変更ありません。 Re: S32K3 SPD DMA こんにちは@Neo1096 ご提供いただいたプロジェクト「S32K312_SPD104_DMA_UART」をテストしているときに、問題が発生しました。 原因はまだ見つかっていませんが、理論上は「S32K312_SPD104」と同じ設定であれば、このような問題は発生しないはずです。 明日、「S32K312_SPD104」のコードを修正してみます。 しばらく時間がかかります。また、起動ファイルが変更されている可能性があります。 Re: S32K3 SPD DMA 以前アップロードしたコードは実行CAN。FCCU モジュールを個別に追加すると、操作が失敗します。 コードのコピーを2つ再アップロードしました。 正しく実行CANファイルは、SPD104 バージョンに基づいて RAM および FLASH インジェクション エラーをテストします。(S32K312_SPD104) もう 1 つは正しく実行できません。これは、前のコードにDMA+UART部分を追加し、Clock_Ip_SetWaitStates(); ハードウェア割り込みを入力します(S32K312_SPD104_DMA_UART) ぜひご覧ください。ありがとう。 Re: S32K3 SPD DMA こんにちは@ Neo1096 まず、提供されたプロジェクトをテストしましたが、おっしゃった問題は発生しませんでした。CANさらに詳しい情報と、変更が必要かどうかを教えてください。 第二に、SPDバージョン4.0.0に対応するP24は1.0.4のはずです。バージョン1.0.4をインストールしてもう一度お試しください
View full article
S32 Design Studio v3.5 安装回滚问题 我正在尝试在公司设备(Windows 11)上安装 S32 Design Studio v3.5,一旦安装量达到 6%,它就会回滚并且安装失败。我遵循了以下社区帖子中提供的一些建议 S32 设计回滚安装错误 - NXP 社区 如"以管理员身份运行" 并启用完全控制"C:\Users\name\AppData\Local\Temp" 我附上日志供您参考,请帮助解决这个问题。 激活 | 安装 | 许可 | 安装程序下载 Re: S32 Design Studio v3.5 installation rollback issue "以管理员身份运行" 这个 exe 文件,似乎就能解决问题。如果没有帮助,我建议您咨询 IT 部门。
View full article
MCXN947:添加 PWM SDK 元器件时出错 亲爱的恩智浦团队 我正在查看这个例子: https://github.com/nxp-appcodehub/dm-fashion-mnist-recognition-on-mcxn947/tree/df78550534b2a30410f56311cad05eb18956ed16 该示例在我的 FRDM-MCXN947 上运行良好。当我尝试通过 " Manage SDK 元器件 " 工具添加一个 PWM SDK 元器件时,编译中断时出现了许多错误。 有什么办法可以解决这种情况吗? 顺便说一下,我使用的是 MCUXpressio IDE 24.9 和 SDK 2.16.1 版。 谢谢。 MCX N Re: MCXN947: Erros Adding PWM SDK Components 你好@wklee 您能否尝试手动将 pwm 驱动程序添加到该项目中? BR 哈利 Re: MCXN947: Erros Adding PWM SDK Components 我从 GitHub 下载了示例,并将其导入到 mcuxpresso。 然后,我尝试通过 SDK 管理器添加 PWM 驱动程序。 它要求更新源代码,我同意了。之后,又有许多编译中断。 谢谢。 Re: MCXN947: Erros Adding PWM SDK Components 你好@wklee 请问您是否创建了新项目? 如何重现这个问题? BR 哈利
View full article
Uart 経由でファームウェアのアップグレードをテストするために、PC で bin ファイルをロードするためのソフトウェア ツールが必要です 私は、 MKM35Z512VLL7 コントローラを使用したスマート メーター プロジェクトにAN12837SW リファレンス・デザインを使用しています。「UART 経由のファームウェア アップグレード」のファームウェア アップグレードとブートローダー コードを確認しましたが、まだ疑問が残っています。以下の点を明確にしていただけますか。 ファームウェアのアップグレード プロセスをテストするには、PC でどのソフトウェア ツールを使用すればよいですか? .binをロードするにはどうすればいいですか?ファイルを 256 バイトのチャンクに分割し、CRC データを追加して送信しますか? すでに文書AN12829を確認しましたが、OTA フレーム形式を明確に理解できませんでした。これについてもう少し詳しく説明していただけますか? ファームウェア アップグレード機能をテストするための特定のソフトウェア ツールや追加のドキュメントはありますか? Re: Need Software tool for PC to load bin file to test Firmware upgrade through Uart FWUpgradeClient.exeのソースコードを添付しました。これはVisual Studio IDEでビルントされたC++コードです。 BR、 オマール Re: Need Software tool for PC to load bin file to test Firmware upgrade through Uart AN で参照されている Fwtransferclient が参照可能かどうかを確認しています。また、ソフトウェアからの残りのコマンドに関する詳細情報も入手できます。 通信に関する AN12829 の詳細に準拠している限り、どのツールを選択しても問題ありません。私は DLMS に精通していないため、これが使用CANかどうかは確認できません。お客様側で検証する必要があります。 BR、 オマール Re: Need Software tool for PC to load bin file to test Firmware upgrade through Uart 拝啓、 ご返信ありがとうございます。 (i) AN12829の5.1.2.3の説明を確認しました。しかし、AN12837SWスマートメーターファームウェアデザインでは、 comportcommandprocessing.c 関数 で k_cmdfwuinit 、 k_cmdfwuhdr、k_cmdfwutx といったより多くのOTAコマンドが利用可能です 。また、受信ファームウェアコード(communication.cv)では、1バイトのAuth-Enc-FlagとAES-GCM-128復号ファームウェアが利用可能です。SO、AN12829のドキュメントはAN12837SWファームウェアと正しく一致していません。これが私の理解不足です。 (ii) UART3経由でファームウェアアップグレードをテストするための「PCツール」の準備方法を教えてください。NXPから入手可能な参考ツールやドキュメントはありますか ? NXP は AN12829で、 「FWtransferclient.exe」 で既にテスト済みであると記載しています。このツールはどこで入手できますか?PCツールを独自に用意することは可能でしょうか? (iii) ファームウェアのテストにDLMSダイレクタを使用できますか? (iv) C 言語でスクリプトを書くのに最適なシリアルターミナルツールはどれですか。スクリプトを開始する方法。 貴重な解決策を期待しています。 Re: Need Software tool for PC to load bin file to test Firmware upgrade through Uart 1.これには特別なツールはありません。PC ホスト ツールは、通信フレームの詳細を説明した 5.1.2.3 の説明に基づいてユーザーが作成することが想定されています。 2. 256 バイトのブロックでイメージを分割する Python スクリプトを作成できますが、これを行うための特定の方法はありません。 3. 疑問点をもう少し具体的に教えていただけますか?どの部分が不明ですか?図 10 のフレームのフローについておっしゃっていますか: -コマンド nxpfwutx。 -ファイルサイズ/ブロックサイズ -ファームウェアはブロックに分割されています。ファームウェア ブロックを識別するために、4 バイトの長さのブロック番号がブロックとともに転送されます。新しいファイル ブロックが受信され、宛先フラッシュ バンクにプログラムされるたびに、現在のブロック カウントが更新され、保存されます。 -コマンド nxpfwuact。 4. AN には FWUpgradeClient というカスタム ツールが言及されていますが、これが利用可能かどうか確認させてください。 BR、 オマール
View full article
S32K144ボード間SPI通信における異常な動作 こんにちは、S32K144 ボードで SPI 割り込み通信を設定するときに問題が発生しています。このプロジェクトは PC33771B デバイスとの通信を目的としていますが、現時点では 33664EVB によって提供される一種のループバックになっています。 大部分は機能しているように見えますが、データが実際にバッファー内に保存される方法は奇妙です。5 バイトのメッセージがあり、一般的に次の順序に従います。 B5 0 0 0 B1 B2 B3 B4 LPSPI は単語単位で動作するので、これは正しいはずだと私は思います。しかし、何らかの理由で、常にその順序になるわけではありません。ボードを開始するとき、順序は次のようになる場合があります。 B1 B2 B3 B4 B5 0 0 0 そして時にはそれはただ: B1 B2 B3 B4 0 0 0 0 5番目のバイトが完全に失われます。 CAN を使用してデバッグできるように、小さなテスト コードを作成しました。必要なメッセージを SPI_1 に送信し、SPI_0 のバッファで終わるメッセージを受信します。何が起こっているかを確認するためにロジック アナライザーも使用しています。 最初のメッセージ: まず、 spi メッセージは S32K144 規則に従っているSO、5 番目のバイトは CRC になります。また、cmd で 4 番目のバイトにステップインしているので、都合よく 4 に設定しました。SPI_0 が再び準備完了するまで待っても、常にゼロが返されます。これは最初の場合にのみ発生します。 2番目のメッセージ: 最後のバイトはまったく表示されません。何らかの理由で失われたのかもしれませんが、その場合でも、MSB 順に並べられている場合、他の 4 バイトは最初のワードには含まれないはずです。 3番目のメッセージ: これは意図したとおりに機能しているようで、すべてのデータが取得され、予想どおりの順序で実行されます。落ち着いた後にすべてのメッセージで一貫して受け取るものなので、これは予想される順序だと思います。 これに関する問題は、必ずしも 3 番目のメッセージが適切であるとは限らず、5 番目または 6 番目のメッセージが適切である場合もあれば、5 番目のバイトがまったく表示されない場合や、2 番目のワードに表示される場合もあることです。一度正しく実行し始めると、一貫して動作します。この問題の原因について何かアイデアはありますか?コードと構成は以下の通りです。 void response420 ( zc_can_packet * パケット){ zc_spi_transfer(&spi_rx, &spi_to_can_packet); transfer_E2E_spi_packet(&E2E_spi, & can_to_spi_packet , &packet-> temp_data [0]); memcpy (&can_response. temp_data , spi_to_can_packet. rx_buffer , 8); zc_can_send(&can, &can_response, MAILBOX_0); } void zc_spi_transfer ( zc_spi_hw * hw_config, zc_spi_packet * パケット){ hw_config->転送されたパケット= パケット; hw_config-> hw_mode == MASTER の場合{ SPI_MasterTransfer (hw_config-> inst 、packet-> tx_buffer 、packet-> rx_buffer 、(packet-> message_bytes_length *NUMBER_OF_BITS_IN_BYTE)/hw_config-> master_config -> frameSize ); }それ以外{ SPI_SlaveTransfer (hw_config-> inst 、packet-> tx_buffer 、packet-> rx_buffer 、(packet-> message_bytes_length *NUMBER_OF_BITS_IN_BYTE)/hw_config-> slave_config -> frameSize ); } } void transfer_E2E_spi_packet ( E2E_spi_handler * E2E_spi, E2E_spi_packet * パケット, uint8_t * データ){ E2E_spi-> protector_handler -> protect_package (E2E_spi-> protector_handler 、データ、パケット-> packet_data . data_length_bytes 、 &(packet-> raw_spi_packet . tx_buffer [0]), packet-> packet_data . E2E_packet_id , packet-> packet_data . counter ); zc_spi_transfer(E2E_spi-> spi_handler 、&(packet-> raw_spi_packet )); packet-> packet_data . counter ++; //これは実際にはこのCRC形式では使用されませんが、この関数は複数のCRC形式で動作します if (packet-> packet_data . counter > E2E_spi-> protector_handler -> counter_overflow_number ){packet-> packet_data . counter = 0;} } response420 関数は、CAN コールバック自体によってフラグが立てられたときにメイン内部で呼び出される、CAN パケットを受信するための「コールバック」です。CAN 部分はそれほど重要ではありません。このバグは CAN がなくても発生するため、デバッガーでこのバグが表示された後、より多くの入力をテストできるように CAN を試しました。 一般的に、SPI_SlaveTransfer および SPI_Master 転送関数に見られるように、私は PAL を使用しています。これは PAL 構成です: SPI_1 設定: { .ボーレート = 2000000U、 .frameSize = 40U、 .bitOrder = SPI_TRANSFER_MSB_FIRST 、 .clockPolarity = SPI_ACTIVE_HIGH 、 .ssPolarity = SPI_ACTIVE_LOW 、 .clockPhase = READ_ON_EVEN_EDGE 、 .ssPin = 0, .transferType = SPI_USING_INTERRUPTS 、 .rxDMAChannel = 0U、 .txDMAチャネル = 0U、 .callback = NULL、 .callbackParam = NULL、 .拡張子 = NULL } SPI_0 設定: { .frameSize = 40U、 .bitOrder = SPI_TRANSFER_MSB_FIRST 、 .clockPolarity = SPI_ACTIVE_HIGH 、 .ssPolarity = SPI_ACTIVE_LOW 、 .clockPhase = READ_ON_EVEN_EDGE 、 .transferType = SPI_USING_INTERRUPTS 、 .rxDMAChannel = 0U、 .txDMAチャネル = 0U、 .callback = NULL、 .callbackParam = NULL、 .拡張子 = NULL } 同様の問題を発見した人はいますか? Re: Weird behavior in S32K144 board to board SPI communication わかりました。それはよかったです。@danielmartynekさん、本当にありがとう! Re: Weird behavior in S32K144 board to board SPI communication 素晴らしい。今は期待通りに動作しているようです。 HW はバイトスワッピングをサポートしていますが、SDK ドライバはサポートしていません。 Re: Weird behavior in S32K144 board to board SPI communication さて、コードを最大限に簡略化しました。 uint8_t送信データ[8] = {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8}; uint8_t受信データ[8]; lpspi_state_t lpspiState; int main (){ zc_clock_init(); zc_start_scheduler(); const clock_names_tクロック名[LPSPI_INSTANCE_COUNT] = FEATURE_LPSPI_CLOCKS_NAMES; clock_names_tクロック名 = クロック名[1]; lpspi_master_config_t spiConfig = { .bitcount = 8U、 .bitsPerSec = 20000000, .callback = NULL、 .callbackParam = NULL、 .clkPhase = 1, .clkPolarity = 0, .isPcsContinuous = true 、 .lpspiSrcClk = クロック名、 .lsbFirst = false、 .pcsPolarity = 0, .rxDMAチャネル = 0, .transferType = LPSPI_USING_INTERRUPTS、 .txDMAチャネル = 0, .whichPcs = 0, }; LPSPI_DRV_MasterInit(1, &lpspiState, &spiConfig); config_spi_pinout(spi_pinoutconfigs[1] .pinout ); 一方、 (1){ LPSPI_DRV_MasterTransfer(1, &送信データ[0], &受信データ[0], 8); zc_delay_milliseconds(1000); } 0を返します。 } これを実行してビットカウントを 8 にすると、結果は次のようになります。 間隔が問題だが、少なくともほぼ期待通りに動作する。 ビットカウント32の場合も同様です。 各ワード内のバイトは逆順にされます... 最後に、bitcount 64 で同じことを実行して何が起こるかを確認します。 同じことです。 これを uint8_t 配列ではなく word 配列に配置するとどうなるでしょうか? uint32_t送信データ[2] = {0x01020304, 0x05060708}; uint8_t受信データ[8]; lpspi_state_t lpspiState; int main (){ zc_clock_init(); zc_start_scheduler(); const clock_names_tクロック名[LPSPI_INSTANCE_COUNT] = FEATURE_LPSPI_CLOCKS_NAMES; clock_names_tクロック名 = クロック名[1]; lpspi_master_config_t spiConfig = { .bitcount = 64U、 .bitsPerSec = 20000000, .callback = NULL、 .callbackParam = NULL、 .clkPhase = 1, .clkPolarity = 0, .isPcsContinuous = true、 .lpspiSrcClk = クロック名、 .lsbFirst = false、 .pcsPolarity = 0, .rxDMAチャネル = 0, .transferType = LPSPI_USING_INTERRUPTS、 .txDMAチャネル = 0, .whichPcs = 0, }; LPSPI_DRV_MasterInit(1, &lpspiState, &spiConfig); config_spi_pinout(spi_pinoutconfigs[1] .pinout ); 一方、 (1){ LPSPI_DRV_MasterTransfer(1, ( uint8_t *) &送信データ[0], &受信データ[0], 8); zc_delay_milliseconds(1000); } 0を返します。 } 実際に動作します... SO、フレーム サイズ 8 で作業していない場合は、リトルエンディアンのワード単位で送信されるようです。エンディアンを変更する方法はありますか? Re: Weird behavior in S32K144 board to board SPI communication こんにちは@danielmartynek 私はすでにuint8_t配列を使用しています Re: Weird behavior in S32K144 board to board SPI communication こんにちは@rchust 、 tx_buffer をどのように定義しますか? ドライバは、8 ビット配列への 8 ビット ポインターを必要とします (LPSPI_DRV_MasterTransfer() 内)。 SO、CANそこに単語を渡す代わりにuint8_t[5] tx_bufferを使用できますか? よろしくお願い申し上げます。 Re: Weird behavior in S32K144 board to board SPI communication こんにちは@danielmartynek 、 8 ビット フレームでテストしたところ、バイトを順番に送信して正常に動作しました。しかし、問題が 2 つあります。 1 つ目は、8 ビット フレームの場合、ハードウェアがデータをバイト単位で分割することです。これはフレームの定義なので当然のことですが、FUTURE に問題が発生する可能性があります。PC33771 がそのような間隔のメッセージを受け入れるかどうかはまだテストしていません。そうなるはずですが、期待通りのものではありません。 2 番目 (まだ PC33771 でテストしていない理由) は、PAL ライブラリでは連続モードを true に設定できないことです。PAL ライブラリの「方法」Master_init は、それをLPSPI_DRV_MasterInit に渡す前に、これを false に設定します。 status_t SPI_MasterInit ( const spi_instance_t * constインスタンス、 const spi_master_t *config) { status_tステータス = STATUS_ERROR ; uint8_tインデックス = 0; /* LPSPI 上で SPI PAL を定義する */ #if (定義済み (SPI_OVER_LPSPI)) /*! @brief LPSPIのクロック名 */ const clock_names_t g_lpspiClock[LPSPI_INSTANCE_COUNT] = FEATURE_LPSPI_CLOCKS_NAMES if (インスタンス-> instType == SPI_INST_TYPE_LPSPI ) { lpspi_master_config_t lpspiConfig; lpspiConfig. bitsPerSec = config-> baudRate ; lpspiConfig.whichPcs = ( lpspi_which_pcs_t )config-> ssPin ; lpspiConfig. pcsPolarity = ( lpspi_signal_polarity_t )(!(bool)(config-> ssPolarity )); lpspiConfig. bitcount = config-> frameSize ; ( void )CLOCK_SYS_GetFreq(g_lpspiClock[( uint32_t )instance-> instIdx ] ,&lpspiConfig.lpspiSrcClk ) ; lpspiConfig. clkPhase = ( lpspi_clock_phase_t )config-> clockPhase ; lpspiConfig. clkPolarity = ( lpspi_sck_polarity_t )config-> clockPolarity ; lpspiConfig. lsbFirst = config-> bitOrder ; lpspiConfig. transferType = ( lpspi_transfer_type )config-> transferType ; lpspiConfig. rxDMAChannel = config-> rxDMAChannel ; lpspiConfig. txDMAChannel = config-> txDMAChannel ; lpspiConfig.callback = config- > callback ; lpspiConfig. callbackParam = config-> callbackParam ; lpspiConfig.isPcsContinuous = false ; /* このインスタンスにLPSPI状態構造体の1つを割り当てます */ インデックス = SpiAllocateState (LpspiStateIsAllocated、LpspiStateInstanceMapping、インスタンス-> instIdx 、NO_OF_LPSPI_INSTS_FOR_SPI); ステータス = LPSPI_DRV_MasterInit(インスタンス-> instIdx 、( lpspi_state_t *)(&LpspiState[index])、&lpspiConfig); } そうでない場合、 #endif 連続モードでテストする前に、すべてのライブラリを変更して、PAL の使用を停止し、DRV の方法の使用を開始する必要があります。SOて結果を更新しますが、8 ビット フレームで正しい順序で送信されるようです。ただし、40 ビット フレームではそれが実現されないのはまだイライラします。 Re: Weird behavior in S32K144 board to board SPI communication こんにちは@rchust 、 更新ありがとうございます。 tx_buffer に 8 ビット配列を CAN 使用しますか? Re: Weird behavior in S32K144 board to board SPI communication はい、いくつかテストした後、問題の根本を見つけることができました。 どうやら、CAN を使用していないときでもピンを設定していたようで、1 つのピンがマスターの CS と衝突したようです。どうして 1 つのことが別のことに終わるのかはわかりませんが、CAN 構成を削除した後、ほとんどの問題は解消されましたが、1 つだけ問題がありました。 何らかの理由で、8 ビットを超えるフレームでデータを送信すると、各ワード内のバイトが入れ替わります。0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 というデータを含む 64 ビット フレームを配置すると、0x04 0x03 0x02 0x01 0x8 0x07 0x06 0x05 になります。これは、SPI が内部的にワードで動作し、データをバイトごとに入力しているためと思われます。あるいはそれはパルライブラリかもしれません。 Re: Weird behavior in S32K144 board to board SPI communication こんにちは@danielmartynek 、 まずおっしゃる通り、私の IDE バージョン、SDK は 4.0.2 です。申し訳ありません。 私が示しているコードは CAN コールバックであり、CAN データを SPI バッファにコピーします。このコードは、カスタム ライブラリに組み込もうとしているためこのようになっていますが、実際には、CAN から読み取った内容を SPI (SPI1) に送信し、スレーブ (SPI0) が読み取った内容を CAN に送信するだけです。 CAN は 4 バイトを送信し、次に保護によって CRC である最後のバイトが追加されます。SO SPI は 5 を送信し、次に 5 を読み取り、その後 CAN はバッファの最初の 8 バイト内にあるものをそのまま送信します。バッファ自体は実際にはもっと大きいのですが、 SPI_MasterTransfer はバッファの最初の 5 バイトだけを送信します。 デバッグモードで確認したところ、 SPI_MasterTransfer 内では送信中の SPI は常に期待通りの順序で、ギャップなくバイトが送信されています。常に正しく(少なくとも一貫性を持って)送信されているように見える、SO 問題はスレーブの受信にあるようです。 マスター ブロッキングでも同じ問題が発生するようです。スレーブをブロックするとマスターの送信がブロックされるため、スレーブをブロックして確認することはできません。また、マスターとスレーブの両方のクロック極性を低く設定すると、多くの上位ビットが失われることもわかりましたが、まずは最初のメッセージの受信が機能しない問題に取り組みましょう。 Re: Weird behavior in S32K144 board to board SPI communication こんにちは@rchust 、 SDKs ではなく IDEs (3.6.2) を指定したようです。 リリース番号がわかれば、報告されたバグを確認CANます。 非ブロッキング方法を使用しているようですが、ブロッキング転送関数でテストできますか? コードはあまり読みやすくありません。 伝達関数の引数としてどのような値を置きますか? バッファをどうやって埋めるのですか? SPI 通信で観察されるギャップは、ドライバのオーバーヘッドによって発生します。ドライバは送信 FIFO に十分な速さでデータを入れることができません。8 ビット モードでは、ドライバは FIFO にデータを 1 バイトずつ書き込むため、連続した書き込みの間にレイテンシが発生します。この遅延は、SPI クロック速度が高くなると顕著になります。この問題を軽減するには、DMA を使用することをお勧めします。 よろしくお願いいたします。 ダニエル Re: Weird behavior in S32K144 board to board SPI communication こんにちは、ダニエル。 私のSDKは3.6.2です。私は 33664EVB ボードとその TPL を介して SPI を使用しており、チップ セレクトは使用していません。チャネルはそれぞれ SPI1_clock、SPI1_tx、TPL1_data、TPL1_clock です。混乱を避けるために、FUTUREの画像では名前を付けます。後者の 2 つを SPI0_rx と SPI0_clock に直接入力してテストしたところ、同じ結果が示されたことを指摘しておきます。 8 ビット モードでテストしたところ、次の結果が得られました。 最初のメッセージ: 4番目のメッセージ: 最初に気づくのは、最初の単語と 2 番目の単語の間にある大きなギャップです。より大きなメッセージでもテストしましたが、8 ビットを使用すると各単語間にギャップが生じます。周波数を下げてみると、ギャップは減少し、500kHz あたりで消えます。それでも、33664EVB および 3771 のアプリケーション ノートでは 2MHz の使用が推奨されており、一般的に速度が低いことは望ましくありません。 まったく同じではありませんが、問題は依然として似ています。最初は最後のバイトはまったく表示されませんが、次にそれが最初に表示され、その後に他のバイトが正しい順序で表示されます。また、8 ビットではデータが入力した順序で送信されますが、40 ビット モードでは信号内のデータが交換され、その後スレーブによって再度交換されることも指摘しておく価値があります。 ワード間の大きなギャップがなければ 8 ビットの方が望ましいのですが、それでも問題は発生します。8ビット500kHzの場合: 最初のメッセージ: 2番目のメッセージ: 3 番目のメッセージSO: これは 2 つの問題を示しています。1 つ目は私が言及しているスレーブによって読み取られたデータの不一致に関する問題であり、次に TPL のクロックを見ると 2 つ目の問題がわかります。TPL はパルス幅を 2MHz のように維持します。それがそのスピードが必要な理由の一つです。 Re: Weird behavior in S32K144 board to board SPI communication こんにちは@rchust 、 ドライバのバージョンを指定できますか? どのようなプロトコルを使用していますか?チップセレクト信号を使用していますか? ロジック アナライザのキャプチャでチャネルにラベルを付けることはできますか? LPSPI ハードウェアは 8 ビット フレームの連続送信をサポートしており、当社のソフトウェア ドライバーはこれと互換性があります。 8 ビットのデータを FIFO に配置することで、40 ビットのフレームを連続モードで送信CAN。 また、タイミングや信号の整合性に関連する潜在的な問題を排除するために、より低いボー レートで SPI 通信をテストしてみてください。 よろしくお願いいたします。 ダニエル
View full article
NXP RT1010 SDKs の flexspi_nor_flash_read の例に関する質問。 こんにちは、NXPさん 前述のように、flexspi_nor_flash_read サンプルでは Write Enable コマンドが使用されていることがわかりました。ただし、書き込みまたは消去が続かない場合は、書き込み有効ラッチがハイのままになり、誤ってフラッシュに書き込みが行われたり、その他の問題が発生する可能性があります。 SDK がこれを行う特別な理由があるのでしょうか?そのコマンドを削除するだけでは危険でしょうか?
View full article
如何将项目复制到新项目 我在 MCUXpresso 集成开发环境(芯片 LPC11U68)中开发一个项目已经有好几年了。 我想在不同的印刷电路板上使用相同的芯片,需要在工作区中生成一个新项目。 问题似乎是 1) 我可以复制一个项目并重命名,然后在集成开发环境中打开它。 但是,快速启动菜单显示的是项目: CNew[无]。 我认为设置文件夹和.project文件(都是 xml 文件)都需要正确执行。 此外,在复制版本中,工作区中的项目树似乎有所不同。 2) 或者,我可以使用新建项目向导并获取项目 CNewj。 在这里,项目可以版本,但除此之外是空的。原则上,我可以将正确的文件复制到新项目中然后重新版本,但这需要几个小时。(我还需要对另外两块印刷电路板重复这一过程)。 您有什么建议吗? jDrum1(曾用名 jDrum) LPC11xx Re: How to copy a project to a new project 另一个提示 如果您收到大量链接器错误信息,例如"can't fine _sys_read_" 图书馆尚未设置为主机或半主机。 在集成开发环境中进入快速设置 -> 设置库/头文件类型。 在这里,设置 Redlib(半主机)或其他选项之一。 jDrum1 Re: How to copy a project to a new project 感谢@Alice_Yang的回复! 我们最初的问题是 MCUXpresso 集成开发环境(对我们)隐藏了要复制的项目。 它确实在正确的工作区中,但该项目最初是从一个示例项目(即 FreeRTOS_Blinky,多年前)演变而来的。 这些代码都不复存在,但项目名称依然存在。 我们的解决方案是继续使用新项目向导生成的新项目,并根据版本错误逐一添加文件。 一个提示:" 问题 " 屏幕中列出了 eclipse 版本中仍然存在错误。事实证明,很多错误都可以快速解决。 只需按下控制键 1,就会出现错误。 一个快速修复按钮就能解决问题! jDrum1(前身为 jDrum) Re: How to copy a project to a new project 你好@jDrum1 感谢您与我们联系。 您可以使用 MCUXpresso IDE 中的"Import Project"按钮导入项目。我录制了一段简短的视频,演示了详细的步骤,并将其附上以供参考。 如果您有任何问题,请告诉我。 BR 爱丽丝
View full article
NXP s32k312 SRAM マルチビットエラー @danielmartynek シングルビット エラーの場合は SRAM ISR ( ERM0_ISR_Handler ) をヒットできますが、マルチビット エラーの場合はハンドラーが呼び出されません。 私の理解する限りでは、修正不可能なエラー イベント情報 はマルチビット エラーに対応するのでしょうか? SR0 にSRAM の修正不可能なエラー イベント ビットが設定されていることがわかりますが、ISR はトリガーされていません。 マルチビット エラー ISR を呼び出す方法を教えてください。 CR0レジスタのSRAM0の割り込み通知も有効にしました Re: NXP s32k312 SRAM MultibitError こんにちは@Anitha7さん、 修正できない障害は CM7 障害例外をトリガーします。 リンクした例では、Bus_Fault 例外を有効にしましたが、ERM ハンドラーの優先度よりも低い優先度にして、ERM ハンドラーが最初に呼び出されるSOにしました。 これがあなたのプロジェクトの問題である可能性があると思います。 また、VTOR ポインターを再確認し、NVIC で ERM 割り込みが有効になっていることを確認します。NVIC で割り込みが保留中になっていることに気付くかもしれません。 Re: NXP s32k312 SRAM MultibitError こんにちは@danielmartynek マルチビットとは、RMに従って2ビットを意味します。 ご参照のとおり、システムを SRAM0 用に構成しました。SROレジスタの対応するビットを設定することにより、修正不可能なECC障害(NEC0)が発生します。 NEC0 の割り込み通知と、対応する CR0 レジスタの単一ビット イベント情報 を有効にしました。 修正不可能な ECC 障害が発生すると、制御はシステム コール機能に移行し、リセットを実行するまでソフトウェアは動作しなくなります。ERM_1_ハンドラー 追加したにもかかわらず、トリガーされません。単一ビットエラーの場合、 ERM_0_ハンドラー 正しくトリガーされます。 確実にするために何をすべきか ERM_1_ハンドラー マルチビット (訂正不可能な) ECC エラーが発生したときに呼び出されますか? また、確認ですが、マルチビット エラー (ダブル ビット エラー) は常に修正不可能な ECC 障害を示しているのでしょうか? 修正不可能なECCイベント情報が発生した後、ECUで通常モードでリセット実行を実行する必要があります。 Re: NXP s32k312 SRAM MultibitError こんにちは@Anitha7さん、 マルチビットエラーとはどういう意味ですか? 64 ビット (8 バイト) のデータに対して 1 つの 8 ビット チェックサムがあるため、すべての可能性のある ECC エラーを検出することはできません。ECC SECDED(単一エラー訂正、二重エラー検出)があります。 よろしくお願いいたします。 ダニエル Re: NXP s32k312 SRAM MultibitError こんにちは@danielmartynek VTOR テーブルは、SRAM0 が修正不可能な ECC 障害を注入している間のみ、フラッシュ メモリを指します。 参照サンプルコードに従って、システムを SRAM0 用に構成しました。SRO レジスタの対応するビットを設定することにより、修正不可能な ECC 障害が発生します。 対応するCR0レジスタで割り込み通知を有効にしました。 修正不可能な ECC 障害が発生すると、制御はシステム コール関数に移行し、リセットを実行するまでソフトウェアは動作しなくなります。ERM_1_Handlerを追加したにもかかわらず、トリガーされません。シングルビット エラーの場合、 ERM_0_Handlerが正しくトリガーされます。 マルチビット (修正不可能な) ECC エラーが発生したときにERM_1_Handlerが呼び出されるようにするにはどうすればよいですか? また、確認ですが、マルチビット エラーは常に修正不可能な ECC 障害を示しているのでしょうか? Re: NXP s32k312 SRAM MultibitError こんにちは@Anitha7さん、 SRAM0 に修正不可能なエラー注入を追加して例を更新しました。 https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-EIM-ERM-DTCM-SRAM-ベアメタル-v3-0-S32DS36/ta-p/2193534 アプリケーションで VTOR レジスタを読み取ることができますか? 修正不可能な ECC 障害をメモリに注入する場合、割り込みベクター テーブルは SRAM0 内に存在してはなりません。 そうしないと、ECC 障害によりフェッチ中にベクター テーブルが破損し、別の障害例外が発生します。 よろしくお願いいたします。 ダニエル
View full article
Serial Downloader実行時のFlexSPI構成は? i.MX RT1021 で eFuse を serialNOR フラッシュ (BOOT_CFG1[7:4] = 0) から起動するように設定し、Serial Downloader モードで実行していて、JTAG デバッガでブレークインした場合、接続されている Serial NOR Flash デバイスの内容を flexSPI で表示できますか。 つまりbootROM シリアル ダウンロード アプリケーションは、フラッシュにアクセスするために flexSPI を正しく設定していますか? FlexSPI/MCR0レジスタ(@0x402a8000)を読み取ると、次のように表示されます0xffff80c2 これにより、MCR0[MDIS]ビット= 1になり、flexSPIインターフェース全体が無効になります。私は(JTAGデバッガを介して)[MDIS]ビットをまったくクリアできません。 メモリは0x60000000(フラッシュの開始)に読み取って意味不明な読み取りをします。ただし、MCUExpresso GUI フラッシュ ツールは、そこに FCFB ブロックが書き込まれ、検証されます。 i.MXRT 102倍 Re:シリアルダウンローダー実行中のFlexSPI構成? Deigoさん、ありがとうございました。また、Kinetisブートローダイメージとそれを使用するホストPCのblhostアプリケーションも見つけることができました。sdphostを使用すると、ブートローダーイメージをMCU RAMにアップロードし、MCUがシリアルダウンロードモードにあるときにそれを使用して周囲を見回すことができました。
View full article
MC EDAC を Linux EDAC サブシステムに登録します NXP が提供する BSP 40 を使用して Linux を実行している S32G-VNP-EVB3 ボードがあります。LinuxカーネルのEDACシステムを有効にしてsbesとdbesを監視しましたが、ファイルシステムに表示されません。このボードでEDACが実際に有効になっているのかどうか疑問に思いますか?使用可能なメモリの量は、そうであることを示しているようです。ただし、デバイスツリーで再確認するメモリノードが見つかりませんでした。私が確認する方法はありますか? ここにedacの情報が見られることを期待してください、 /sys/devices/system/edac/mc # ls power subsystem uevent システムメモリ、 /sys/devices/system/edac/mc # cat /proc/meminfo MemTotal: 3500312 kB MemFree: 3442776 kB MemAvailable: 3442020 kB Buffers: 1724 kB Cached: 9168 kB SwapCached: 0 kB Active: 7532 kB Inactive: 3924 kB Active(anon): 64 kB Inactive(anon): 640 kB Active(file): 7468 kB Inactive(file): 3284 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 24 kB Writeback: 0 kB AnonPages: 724 kB Mapped: 2116 kB Shmem: 60 kB KReclaimable: 25168 kB Slab: 33908 kB SReclaimable: 25168 kB SUnreclaim: 8740 kB KernelStack: 1376 kB PageTables: 192 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1750156 kB Committed_AS: 2520 kB VmallocTotal: 259653632 kB VmallocUsed: 1872 kB VmallocChunk: 0 kB Percpu: 656 kB CmaTotal: 262144 kB CmaFree: 260576 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 0 kB Re: MC EDAC を Linux EDAC サブシステムに登録する これは、このボードがインラインドラムを使用しているため、スクラバーがMCからの結果を難読化しているため、ARMがこの情報にアクセスできないためですか?
View full article
NXP S32G-VNP-RDB2 上的以太网启用和网络连接问题 我已经打开 NXP S32G RDB2 板并能够与 PuTTY 进行串行通信。但是当我想将以太网电缆连接到它时。尽管我尝试分配静态 IP,但它仍然无法 ping 通。我想启用以太网驱动程序或解决问题,以便我可以测试我的用例。 回复:NXP S32G-VNP-RDB2 上的以太网启用和网络连接问题 你好@chenyin_h ,我很高兴地分享,它终于可以ping通了,并且可以通过连接到路由器并与其他主板创建专用网络进行测试,现在我也正在探索其他端口的以太网通信。对于任何其他问题,我将开另一张票或帖子。 谢谢你! 回复:NXP S32G-VNP-RDB2 上的以太网启用和网络连接问题 你好@chenyin_h , BSP 版本为 Auto Linux 35(来自 SD 卡的 U-boot)并使用 GMAC 端口。但是我认为以太网没有启用。我在 ip route 中检查 eth0 时,它显示 NO-CARRIER,但在 ifconfig 中它显示 UP。我还想用这个接口来实现树莓派和 NXP 开发板之间的通信。请指导我该采取什么步骤,因为我已经尝试了所有的尝试。
View full article
无法理解这一点 RM 我不太理解 RT1060 参考手册第 3 版中关于 LPSPI FRAMESZ 的描述(见截图)。 因此,之前它说 LPSPI 字长是 32 位,而我没有看到它的任何配置,那么它怎么会说最小字长是 2 位呢? 声明不支持 33 位的帧大小 - 是否只是这个值,33 位,某种程度上是特殊的,或者任何其他 (n * wordsize) + 1 也是(fe65 或 97 帧大小?) 提前致谢! i.MXRT 106x 回复:无法理解 RM 的这个部分 嗨,是的,现在这是有意义的 - 所以它是不完整单词的最小单词大小,它是框架中的最后一个单词。我相信如果你在这个或其他 RM 中有这个声明,最好用不同的词语来表达它,这样更容易理解 多谢! 回复:无法理解 RM 的这个部分 哈哈哈,笑话!欢迎来到现代“文献”的奇妙世界,您的选择要么是“缺失/不完整”,要么是“写得太糟糕以至于几乎无法理解”。 天哪,我多么怀念摩托罗拉时代的文档。从那时起,一切都开始走下坡路。
View full article
PCA9544APW,118のテープの向きについて こんにちは、皆さん PCA9544APW,118のピン1の位置を持つテープ(フィーダー)の向きを探しています。 どうもありがとうございます。 Re:PCA9544APW,118のテープの向きについて ありがとうございました! Re:PCA9544APW,118のテープの向きについて SOT360-1 TSSOP20;リールパック;SMD、13インチQ1 / T1標準製品の向き注文可能な部品番号の末尾、118またはJ注文コード(12NC)の末尾118(nxp.com)
View full article
Ntag424防篡改密钥 大家好, 我正在使用自己编写的 Python 应用程序来研究 NTAG424 Tamper。我成功地使用 SetConfiguration 命令激活了篡改功能,并且作为第一次测试使用键“E”(因此没有键,锥度状态以清晰的方式镜像)。现在我想将密钥更改为例如密钥 1,但我无法做到。即使我得到 9100 作为响应,密钥仍然保持在 E。所以我的疑问是密钥在激活篡改功能时是固定的,并且没有办法改变它,是这样吗?我尝试使用不同的 TTConfig 字节值,但没有成功。 谢谢你的帮助 Mario 回复:Ntag424 防篡改密钥 你好先生, 这太棒了! 您是否愿意分享任何信息来帮助我们社区中的更多人? 回复:Ntag424 防篡改密钥 谢谢 Fabian, 经过多次尝试和修复,我设法在 NDEF 中加密 TTStatus。 Mario 回复:Ntag424 防篡改密钥 法比安, 这是我针对正常、非 TT 标签所遵循的程序,并且运行良好。它甚至对普通的 TTStatus 也有效:我所缺少的是如何加密 NDEF 中的 TTStatus,以及是否可以使用静态数据加密来完成此操作。 谢谢! 回复:Ntag424 防篡改密钥 你好先生, 很抱歉,我们没有分享分步指南,但是我们没有针对此的具体文档。 先生,我再次建议您在此过程中使用我们的 RFIDDiscover + Pegoda 阅读器。使用 GUI 以及查看过程日志的可能性将减轻创建 NDEF 和配置标签的复杂性。 这些是配置和创建包含 TagTamper 状态的 NDEF 所需执行的基本程序: 成功选择 NTAG 后,创建一个包含 UID 镜像和具有特定偏移量的 TTStatus 镜像的 NDEF 文件。 更改文件设置并更改访问密钥。 如前所述,标签需要经过身份验证才能保护其价值。使用我们的密钥库并验证您的标签。此步骤是成功更改文件设置所必需的。 一旦通过身份验证,更改 nTag 文件的文件设置并配置每个字段的偏移量。在此示例中,您只需设置 UID 镜像和 TT 状态 然后,使用设置配置命令选择 TTStatusKey 启用标签篡改功能 您应该能够使用 TagInfo App 读取 NDEF 回复:Ntag424 防篡改密钥 伟大的法比安, 请给出一些提示来加密 NDEF 中的 TTStatus,因为数据表和 AN 不清楚。TTStatus 是否与静态数据一起加密在 EncData 区域中?如何? 谢谢  回复:Ntag424 防篡改密钥 你好先生, 这是正确的。TTStatusKey 并非用于加密 TT 状态,但为了配置 TT 状态,它确实需要一个经过身份验证的有效密钥,因为镜像值应该受到保护,以防止任何人修改此 NDEF 值状态。 即使未加密(PLAIN),也需要使用 nTag 的 SUN 功能将所需的值镜像到消息中。我们建议对标签篡改状态进行加密,但它可以是纯文本,只要记住它是连接为 TTPermStatus 和 TTCurrStatus 即可。这在数据表的第 9.3.5 节标签篡改状态中有描述。 回复:Ntag424 防篡改密钥 你好,Fabian, 我非常深入地阅读了数据表,也许我误解了一些东西。请确认我是否正确或错误:TTStatusKey 不用于加密 NDEF 消息中的 TT 状态,而只是发出 GetTTStatus 命令的身份验证密钥。我的目标是将 ndef 消息中的 TT 状态与静态数据一起加密。从 AN12196 中我看到了两幅图像:一幅是加密的静态数据,另一幅是 TT 状态(第 9 页,图 3 和 4)。有可能两者兼而有之吗?由于我没有在数据表中找到它,我只读到加密状态在 enc 数据中,那么在 NDEF 中加密 TT 状态的程序是什么? 谢谢! 回复:Ntag424 防篡改密钥 先生您好,执行 TTStatusKey = 0x0E 和 0x04 是完全合法的。如果标签已经正确验证,则可以设置此配置。所需的是已经在标准文件属性中设置了适当的访问权限和 TT 状态的标准文件。 设置此文件后,现在可以按预期配置 TagTamper。如果您想从使用 0X0E 到 0X04 进行配置,我建议在不同的会话中执行此操作,但请记住您必须已经拥有标准文件。   回复:Ntag424 防篡改密钥 Fabian,您能否确认一下,仅从标签命令集(无论使用何种编程语言)出发,像这样两次发出带有 Option=0x07h 的 SetConfiguration 是合法的: 1. SetConfiguration,Option=0x07h,TTConfig=0x01h,TTStatusKey=0x0E 启用篡改状态和清晰镜像 2 SetConfiguration,Option=0x07h,TTConfig=0x00h,TTStatusKey=0x04 保持篡改状态并使用密钥 4 加密镜像 我尝试了这个,在第 2 步我收到了 9100,但键仍然是 E,镜子是清晰的。 我看到的唯一回应是,两次发出 SetConfig 是不合法的,并且密钥索引在第一次激活 Tamper Status 时是固定的 Mario 回复:Ntag424 防篡改密钥 你好先生, ChangeKey() 也应该能够更改相关的数字,但请记住,如数据表中所述,标签只能通过 5 个键进行更改。 在 11.6.1 节更改密钥中显示,应用程序密钥编号可以从 0h 更改为 4h(KeyNo)。这意味着您可以在 KeyStore 中的这 5 个密钥之间进行切换。 正如我之前提到的,由于您没有使用我们的库,所以我无法完全确定您的实现。我的支持仅限于此。 回复:Ntag424 防篡改密钥 谢谢 Fabian, 是的,我的意思是 TTStatusKey。我阅读了 8.2.4.5 上的数据表,但说您可以使用 ChangeKey 更改密钥的值(这是可以的,可以正常工作),但您不能更改与 TTStatusKey 关联的密钥编号。因此,如果您设置 TTStatusKey=0x01,则您正在使用 Key1,而使用 ChangeKey,您可以更改该值,但不能重新发布 TTStausKey,例如,Key2 为 0x02。最糟糕的是,您使用 0x0E 发出第一个 TTStatusKey,没有办法加密 TT 状态...... Mario 回复:Ntag424 防篡改密钥   您好,我叫 Fabian,我被指派来支持您的案件。 感谢您对我们产品的关注 你是指 TTStatusKey 吗? 如果您已经检查过第 11.9.1 节,其中指定了您打算更改哪个键,请您澄清一下。您是否有可能选择了错误的密钥? TTStatusKey 是可变的,这在数据表的第 8.2.4.5节中提到。 不幸的是,由于您使用 Python 作为实现,我无法提供很多建议。 我唯一的建议是尝试使用我们的RFIDDiscover工具和Pegoda阅读器,然后从那里开始。 有可能您在过程中错过了一些事情。   我们建议使用 RFIDDiscover,因为它可以与我们共享日志,并且我们可以了解您正在遵循的程序。在此之后,我相信您将可以更轻松地在 Python 应用程序中重现这些步骤。
View full article