Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
PT2000 used as low side driver only Hello, I'm using the PT2000 to drive a traditional injector (12 OHM) with one PT2000 using the high side and low side output of one channel (both injector wires connected to PT2000)and all works as expected. Is it possible to connect the injector positive wire on a external continuous +12V supply and switch the injector on only by driving one low side? I tried this solution without modifying the microcode and it doesn't work, which modification to the microcore have I to do to work with this topology? more in general, I need to drive solenoids in low side mode but controlling the current, is this possible? Thank you for your support, Regards
查看全文
PCA9959の異常な動作 私は、1つのコントローラ(MCU1)でPCA9959に書き込み、SN74CBTLV3257マルチプレクサでSPIバスを切り替え、2つ目のコントローラ(MCU2)で値を読み取る回路を実装しました。MCU同士は直接通信しないが、書き込みと読み込みを順番に行うための仲裁機構が実装されている。 スイッチを切り替えずにMCU1のみで書き込む場合は問題なく動作します。問題はMCU1とMCU2を切り替え始めると発生します。 この星座の中で、LEDドライバがランダムにLEDをスイッチすることがあります。不思議なことに、MCU1で値を書き込み、その後読み戻すと、レジスタの内容は問題ないように見える。 何かヒントはありますか?正誤表は見つかりませんでした。 スイッチの信号: - SDI - CLK - SDO - nCS MCU1からのその他の信号: - nEN - nRESET どんなご支援でも大変ありがたく思います!PCA9959 Re: PCA9959 strange behavior こんにちは、goepeさん 良い一日! 私はSN74CBTLV3257の専門家ではありませんが、調べた情報によると、SN74CBTLV3257はバッファではなくパッシブFETスイッチです。 チャネルを切り替えると、切断された側がHi-Z(浮遊)になりますが、彼はPCA9959これらのピンを「見ている」ことができます SCLK、MOSI、nCSにプルアップ/プルダウンを追加してみてください。 この情報がお役に立てば幸いです。他に何かご不明な点がありましたら、お気軽にお問い合わせください。 良い一日をお過ごしください。幸運を祈ります。 Re: PCA9959 strange behavior ご提案ありがとうございます。PCA9959はマルチプレクサのA側にコネクテッドしており、B側は高Zに接続していません。高速オシロスコープでSPI信号をPCA9959で測定していますが、特に異常は見られません。とはいえ、試してみて結果をお知らせします。
查看全文
MCXW71 - 2.4 GHzの共存/RFロバストネによる2 Mbpsのハーフデュプレックスでのパケットロスと不安定性 こんにちは、NXPコミュニティの皆さん、 現在、#MCXW71C ワイヤレスMCUを使ったプロジェクトに取り組んでいます。私は、2Mbpsのデータレートで動作する2つのMCXW71Cチップ間で、半二重通信プロトコルを開発しました。 クリーンなRF環境では通信は完全に安定していますが、スマートウォッチ、ワイヤレスイヤホン、Bluetooth対応スマートフォンなど他の2.4GHzのRFデバイスがハードウェアに近づくと(約30cm以内)深刻な不安定さと大幅なパケットロスが発生しています。 当社のシステムに関する重要な詳細情報は以下のとおりです。 ハードウェア:これはカスタムPCB設計(評価ボードではありません)。RFフロントエンド用のインピーダンス整合ネットワークは自ら設計・実装しました。 PHY / プロトコル: GENFSK NXP SDK Version: SDK_2.25.09.00_MCXW716C 周波数ホッピング:FHSSではありません 当社のカスタムボードは単独では動作しますが、混雑したRF環境では性能が低下するため、レシーバは隣接する2.4 GHzの干渉器によって感度が低下または飽和されている可能性があります。 何かアドバイスをいただけますか? MCXW71には、レシーバの選択性、AGC(自動ゲイン制御)挙動、またはノイズ環境でのLNAゲインを最適化するための特定のハードウェアチューニングガイドラインやレジスタはありますか? パケット衝突をより適切に処理するために推奨されるソフトウェア共存設定やCCA(クリアチャネル評価)閾値調整はありますか? カスタムインピーダンスネットワークのわずかな不一致が、強い帯域外・隣接干渉体が存在する場合に、トランシーバの選択性やブロッキング性能を低下させる可能性はありますか? ボード設計 Re: MCXW71 - Packet loss and instability at 2 Mbps half-duplex due to 2.4 GHz co-existence / RF robu こんにちは、 あなたの調子が良いといいのですが。   カスタムボードを使用しているとのことですので、同じ伝導試験設定でFRDM-MCXW71との性能比較を行うことをお勧めします。無線レジスタを改造する前に、RF配置、接地、アンテナ整合ネットワーク、電源ノイズ、そしてエンクロージャーに関連する結合効果などの要素を確認することが重要です。 また、CCAの閾値をスイープしながらPERテストを行い、実用的な運用点を見つけることもできます。CCAはチャネルがすでに混雑している場合の送信を防ぐことでパケット衝突の低減に役立ちますが、閾値は対象のRF環境で実証的に検証されるべきです。 以下の文書は、RF性能テストの手法とそれをCCAの挙動評価に使う方法を説明しています: AN14399 MCXW71 802.15.4 アプリケーション向け接続テスト RF設計のさらなる検証のために、以下の文書も役立つかもしれません: UG10146 MCXW71 ハードウェア設計ガイド AN14374 FRDM-MCXW71 Bluetooth LEおよびIEEE 802.15.4アプリケーション向けRFシステム評価報告書 AN2731 2.4GHz通信用小型平面アンテナ よろしくお願いします、 ソフィア。
查看全文
エンコーダーFRDM-A-S32M276-C064で過電流エラーが発生しました。 私のハードウェアは以下の通りです。 FRDM-A-S32M276-C064 Faulhaber 3216 BXTH BLDC 12V エンコーダーは128LのIEF3です。 スタートガイドに示されているように接続しました https://www.nxp.com/document/guide/getting-started-with-frdm-a-s32m276-development-board-setup-and-programming:GS-FRDM-A-S32M276 エンコーダーをエンコンダに対応するピンに直接接続し、(Anegated、Bnegated、Inegated)を落としました。アプリケーションハブから提供されたコードでENCODER 1を設定しており、セットアップ部分で以下の動作をします: Siul2_Port_Ip_SetInputBuffer ( NULL_PTR , NULL_PTR , 1 , 54 , 3 U ) ; //これは実質的に次のように機能します: //IP_SIUL2->IMCR[54] = SIUL2_IMCR_SSS(3U); /* eMIOS0_CH7 の入力を TRGMUX_OUT_38 に割り当てます */ Siul2_Port_Ip_SetInputBuffer ( NULL_PTR , NULL_PTR , 1 , 55 , 4 U ) ; 結果 Lcu_Ip_SyncOutputValueType EncLcuEnable [ 6 U ] ; EncLcuEnable [ 0 ] .LogicOutputId = LCU_LOGIC_OUTPUT_8 ;​ EncLcuEnable [ 0 ] . Value = 1 U ; EncLcuEnable [ 1 ] . LogicOutputId = LCU_LOGIC_OUTPUT_9 ; EncLcuEnable [ 1 ] .値= 1 U ; EncLcuEnable [ 2 ] . LogicOutputId = LCU_LOGIC_OUTPUT_10 ; EncLcuEnable [ 2 ] .値= 1 U ; EncLcuEnable [ 3 ] . LogicOutputId = LCU_LOGIC_OUTPUT_11 ; EncLcuEnable [ 3 ] .値= 1 U ; Lcu_Ip_SetSyncOutputEnable ( EncLcuEnable , 4 U ) ; そして最後に AEC_VDDE_Enable(1); エンコーダーを接続せずに実行すると、アプリケーションは正常に動作します(センサーレス)。エンコーダーを接続して再実行すると、すぐにエラーが発生します。デバッグの結果、以下のことが分かりました。 これはオーバーカレントイベントに対応します #define AEC_AE_EVENTS_STATUS_OCD_VDDE_FL_MASK( 0x8U) #define AEC_AE_EVENTS_STATUS_OCD_VDDE_FL_SHIFT( 3U) この問題をどう解決すればいいでしょうか?どんなアドバイスでもいただければ幸いです。 Re: FRDM-A-S32M276-C064 overcurrent error on my encoder こんにちは、 @alovi さん。 エンコーダへの電源供給にVDDEを使用しているとのことですね。しかし、VDDEの出力電流には制限がある。 175mAは過電流検出の最大閾値であり、最小閾値は規定されていないことにご注意ください。同時に、VDDEピンは5Vで最大30mAの連続電源を供給できます。 エンコーダのデータシートを見ると、負荷なしでも最大40 mAの電流消費が可能で、これはすでにサポートされるVDDE能力を上回っています。 よろしくお願いいたします。 ダニエル Re: FRDM-A-S32M276-C064 overcurrent error on my encoder 基板上の他のピンでエンコーダーに電源を供給できるものはありますか?それとも外部電源で電源を供給する必要がありますか? Re: FRDM-A-S32M276-C064 overcurrent error on my encoder こんにちは、 @alovi さん。 残念ながら、外部機器を内部レギュレータから供給できるのはVDDEのみです。 この場合、外部のレギュレーターが必要です。 よろしくお願いいたします。 ダニエル
查看全文
如何在CM33中使用来自DSP的VIT语音命令结果 你好, 我正在使用 MIMXRT700 EVK 上的语音智能技术 (VIT),并参考了“mimxrt700evk_dsp_xaf_record_cm33_core0”示例。 VIT 语音命令已被 DSP 识别,我想在我的 CM33 应用程序中使用识别出的命令结果。 请问如何从 CM33 核心获取 VIT 结果? 如果有任何参考示例或文档解释了 DSP 内核和 CM33 内核之间的通信流程,请分享一下。 谢谢 Re: How to Utilize VIT Voice Command Results from DSP in CM33 嗨@arshtg , 我们有一个 SDK 演示,演示了如何在 CM 内核和 DSP 内核之间建立通信,详情请参阅https://github.com/nxp-mcuxpresso/mcuxsdk-examples/tree/release/26.06.00-pvw2/multicore_examples/rpmsg_lite_pingpong_dsp 。 祝你有美好的一天, 坎 ------------------------------------------------------------------------------- 笔记: - 如果此回复解答了您的问题,请点击“标记为正确答案”按钮。谢谢你! - 我们会持续关注帖子,从最后一条回复发出后持续7周,之后的回复将被忽略。 如果您之后有相关问题,请另开新帖并引用已关闭的帖子。 ------------------------------------------------------------------------------- Re: How to Utilize VIT Voice Command Results from DSP in CM33 mimxrt700evk_dsp_xaf_record_cm33_core0 示例已经建立了 DSP 和 CM33 之间的 RPMsg 连接。如控制台日志所示: [DSP_Main] 已建立 RPMsg 连接 当 VIT 引擎检测到唤醒词或语音命令时,DSP 会打印如下信息: [DSP VIT] - 检测到唤醒词 1 HEY NXP [DSP VIT] - 检测到语音命令 6 停止 我想在我的 CM33 应用程序中使用这些识别结果。具体来说,我想知道这些 VIT 检测结果是在 DSP 端生成的,以及如何访问它们。 我还注意到 DSP 端的实现源代码可访问性有限,因此我无法确定检测到的唤醒词和语音命令结果是从哪里获得的。 请问能否提供相关的源文件、API、回调函数或文档,说明如何获取检测到的唤醒词和语音命令结果?
查看全文
iMX95 FRDM 中拜耳传感器在流式传输过程中出现采样问题 大家好, 我们目前正在IMX95 FRDM套件中引入拜耳传感器。我们首先使用 OS08A20(NXP 的参考相机)验证了视频流,我们能够进行视频流传输。根据驱动程序,我们启动一个驱动程序来支持我们的传感器。探测正常,媒体节点也能正确生成。我们已经通过 OS08A20 的媒体架构验证了媒体链接是正确的。 我们已将 dmesg 日志附在下方。 目前我们已将传感器配置为 8 位模式(ar0234 传感器)。当前数据速率为每通道 800 MBPS。传感器数据将通过 4 个通道输出。我们能够进行探测和注册。 cam -l [0:08:06.049058684][858] 信息 Camera camera_manager.cpp:340libcamera v0.0.0+6489-lf-6.18.2-1.0.0 [0:08:06.155690529][859] INFO MediaPipeline media_pipeline.cpp:240找到管道:[ar0830 3-0042|0] -> [0|csidev-4ad30000.csi|1]-> [0|4ac10000.syscon:formatter@20|1]-> [2|横杠] [0:08:06.156726940][859] 警告 CameraSensorProperties camera_sensor_properties.cpp:586'ar0830' 没有可用的静态属性 [0:08:06.156904446][859] 警告 CameraSensorProperties camera_sensor_properties.cpp:588 请考虑更新相机传感器属性数据库 [0:08:06.157054248][859] 信息 Camera camera_manager.cpp:223为管道处理程序 imx8-isi 添加摄像头“/base/soc/bus@42000000/i2c@42540000/ar0234_mipi@42”。 可用摄像头: 1:外部摄像头“ar0234”(/base/soc/bus@42000000/i2c@42540000/ar0234_mipi@42) 如前所述,我们的摄像头已被成功检测到。 v4l2-ctl -d 0 -v width=1920,height=1200,pixelformat='GRBG' --stream-mmap --verbose VIDIOC_QUERYCAP:通过 VIDIOC_G_FMT:通过 VIDIOC_S_FMT:通过 多平面视频捕获格式: 宽度/高度:1920/1200 像素格式:'GRBG'(8 位拜耳 GRGR/BGBG) 字段:无 飞机数量:1 旗帜: 色彩空间:sRGB 传输函数:sRGB YCbCr/HSV 编码:ITU-R 601 量化:有限范围 飞机 0: 每行字节数:1920 图片尺寸:2304000 VIDIOC_REQBUFS 返回 0(成功) VIDIOC_CREATE_BUFS 返回 0(成功) VIDIOC_QUERYBUF 返回 0(成功) VIDIOC_QUERYBUF 返回 0(成功) VIDIOC_QUERYBUF 返回 0(成功) VIDIOC_QUERYBUF 返回 0(成功) VIDIOC_G_FMT 返回 0(成功) VIDIOC_QBUF 返回 0(成功) VIDIOC_QBUF 返回 0(成功) VIDIOC_QBUF 返回 0(成功) VIDIOC_QBUF 返回 0(成功) VIDIOC_STREAMON 返回 0(成功)   我们能够从相机传感器获取帧,我们已经用数字示波器探测并验证了这一点,但是该平台无法对其进行正确采样。dmesg 中没有出现任何错误。 从传感器配置的角度来看,我们是否遗漏了其他方面? 另外,是否需要通过设备树将数据速率或像素时钟值传递给平台? 具体来说,是否应该在设备树中配置以下 D-PHY 参数?   cfg-clk-range = <28>; hs-clk-range = <0x2b>;   如果需要这些参数,能否说明一下 cfg-clk-range 和 hs-clk-range 的值是根据什么选择的? 这些值是源自 MIPI CSI-2 通道数据速率、传感器输出分辨率、帧速率还是像素时钟? 此外,值 28 和 0x2b 对应的数据速率或像素时钟范围是多少?是否有参考表格或公式可以用来确定给定传感器配置的正确设置? DMESG 日志 [ 104.760033] camera-mipi-clk = 800MHz [115.837690]ar0234 3-0042:MIPI时钟= 800,MIPI通道= 4 [ 115.837737] ar0234 3-0042:未找到电源 avdd,使用虚拟稳压器 [ 115.837911] ar0234 3-0042:未找到供电 DOVDD,使用虚拟稳压器 [ 115.837955] ar0234 3-0042:未找到供电 DVDD,使用虚拟稳压器 [ 115.988087] 当前固件版本 - (11eONO25V6XXX011106014eceGCORAL3) [ 115.988115] 当前固件版本 - (11eONO25V6XXX011106014eceGCORAL3) [ 115.989053] priv->mipi_lane_config 为 4 [ 120.297214] 传感器 ID=0x0a56 [ 120.297245] mcu_isp_init [ 125.401238] 检测到 ar0234 传感器 [ 125.453854] ar0234_propagate_fmt 被调用 [ 125.463674] ar0234_propagate_fmt 被调用 [ 125.463959] 进入枚举 mbus 代码 [ 125.463975] 代码为 12290 [ 125.463982] 进入枚举 mbus 代码 [ 125.463989] 进入 ar0234_enum_frame_sizes 函数 [ 125.463995] 进入 ar0234_enum_frame_sizes 函数 [ 125.463999] 进入 ar0234_enum_frame_sizes 函数 [ 125.464004] 进入 ar0234_enum_frame_sizes 函数 [ 125.464033] 在 ar0234_get_selection 函数内部 [ 125.464041] 在 ar0234_get_selection 函数内部 [ 125.464045] 在 ar0234_get_selection 函数内部 [ 126.637118] ar0234_propagate_fmt 被调用 [ 126.637658] 进入枚举 mbus 代码 [ 126.637681] 代码为 12290 [ 126.637702] 进入枚举 mbus 代码 [ 126.637719] 进入 ar0234_enum_frame_sizes 函数 [ 126.637736] 进入 ar0234_enum_frame_sizes 函数 [ 126.637751] 进入 ar0234_enum_frame_sizes 函数 [ 126.637765] 进入 ar0234_enum_frame_sizes 函数 [ 126.637856] 在 ar0234_get_selection 函数内部 [ 126.637877] 在 ar0234_get_selection 函数内部 [ 126.637892] 在 ar0234_get_selection 函数内部 [ 204.157151] 审计:类型=1006 审计(1782310053.402:28):pid=805 uid=0 老-auid=4294967295 auid=0 tty=(无) 老-ses=4294967295 ses=4 res=1 [ 204.157191] 审计:类型=1300 审计(1782310053.402:28):arch=c00000b7 syscall=64 success=yes exit=1 a0=a a1=ffffc191b2d0 a2=1 a3=0 items=0 ppid=1 pid=805 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4 comm="sshd-session" exe="/usr/libexec/sshd-session" key=(null) [ 204.157211] 审计:类型=1327 审计(1782310053.402:28):proctitle=737368642D73657373696F6E3A20726F6F74205B707269765D [ 206.826792] ar0234_propagate_fmt 被调用 [ 206.826975] 进入枚举 mbus 代码 [ 206.826986] 代码为 12290 [ 206.826994] 进入枚举 mbus 代码 [ 206.827000] 进入 ar0234_enum_frame_sizes 函数 [ 206.827006] 进入 ar0234_enum_frame_sizes 函数 [ 206.827010] 进入 ar0234_enum_frame_sizes 函数 [ 206.827014] 进入 ar0234_enum_frame_sizes 函数 [ 206.827057] 在 ar0234_get_selection 函数内部 [ 206.827065] 在 ar0234_get_selection 函数内部 [ 206.827070] 在 ar0234_get_selection 函数内部 [ 224.637904] ar0234_propagate_fmt 被调用 [ 224.676405] ar0234_propagate_fmt 被调用 [ 224.676442] 进入 ar0234_set_fmt [ 224.676447] 在设置格式循环中 if 条件 [ 224.676451] ar0234->mcu_cam_frmfmt[mode].size.width 为 1920 [ 224.676456] ar0234_set_fmt: 设置分辨率宽度=1920 高度=1200,模式=0 [ 224.680462] priv->mcu_cam_frmfmt[mode].size.width 为 1920 [ 224.680476] mc_data[8] = 0x07 (7) [ 224.680480] mc_data[9] = 0x80 (128) [ 224.680484] mc_data[10] = 0x04 (4) [ 224.680487] mc_data[11] = 0xb0 (176) [ 228.270636] ar0234_propagate_fmt 被调用 [ 228.270815] 进入枚举 mbus 代码 [ 228.270823] 代码为 12290 [ 228.270832] 进入枚举 mbus 代码 [ 228.270838] 进入 ar0234_enum_frame_sizes 函数 [ 228.270843] 进入 ar0234_enum_frame_sizes 函数 [ 228.270848] 进入 ar0234_enum_frame_sizes 函数 [ 228.270912] 进入 ar0234_enum_frame_sizes 函数 [ 228.270958] 在 ar0234_get_selection 函数内部 [ 228.270965] 在 ar0234_get_selection 函数内部 [ 228.270970] 在 ar0234_get_selection 函数内部 [237.329660]dwc-mipi-csi2 4ad30000.csi:位于焊盘 1 上的远程子设备应实现 .get_frame_desc!强制 VC = 0 和 DT = 2a [ 487.004807] ar0234_propagate_fmt 被调用 [ 487.004984] 进入枚举 mbus 代码 [ 487.005053] 代码为 12290 [ 487.005065] 进入枚举 mbus 代码 [ 487.005073] 进入 ar0234_enum_frame_sizes 函数 [ 487.005079] 进入 ar0234_enum_frame_sizes 函数 [ 487.005083] 进入 ar0234_enum_frame_sizes 函数 [ 487.005087] 进入 ar0234_enum_frame_sizes 函数 [ 487.005138] 在 ar0234_get_selection 函数内部 [ 487.005146] 在 ar0234_get_selection 函数内部 [ 487.005150] 在 ar0234_get_selection 函数内部 [ 695.743591] 审计:类型=1006 审计(1782310544.949:29):pid=869 uid=0 老-auid=4294967295 auid=0 tty=(无) 老-ses=4294967295 ses=5 res=1 [ 695.743649] 审计:类型=1300 审计(1782310544.949:29):arch=c00000b7 系统调用=64 成功=是退出=1 a0=a a1=ffffef74ca20 a2=1 a3=0 项目=0 ppid=1 pid=869 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0egid=0 sgid=0 fsgid=0 tty=(无) ses=5 comm="sshd-session" exe="/usr/libexec/sshd-session" key=(null) [ 695.743685] 审计:类型=1327 审计(1782310544.949:29):proctitle=737368642D73657373696F6E3A20726F6F74205B707269765D
查看全文
An issue regarding slave bit errors in LPI2C I am using S32K146, and the manual states that a bit error will be triggered when the slave sends 1 but the bus is 0. However, in actual testing, a bit error will also be triggered when the slave sends 0 but the bus is 1. I want to know if this phenomenon is correct? Re: An issue regarding slave bit errors in LPI2C Hi @GXY, Yes, this is correct. Bit error flag is triggered once slave is driving SDA, but samples different value than what is expected, not necessarily only when it sends 1 and reads 0. My guess is that the register description is simply stating an example for when the bit error flag is set. Best regards, Julián
查看全文
Connect FPGA to port B of PCA9617A Hi: My situation is as follows: the MCU is connected to port A of a PCA9617A, and the FPGA (as an I²C device) is connected to port B. According to the datasheet, the voltage bias of port B is approximately 0.55 V. The FPGA's VIL specification is 0.8 V. This leaves only a 250 mV margin. Will this margin cause problems when transferring large amounts of data from the MCU to the FPGA? What is the recommended VIL margin for reliable operation? Best regards Marco Re: Connect FPGA to port B of PCA9617A Hello Marco_MJ Good day! I believe you're at the limit; the recommended range is >300mV, so you're running a significant risk with that 250mV range. I hope this information has helped you, please let me know if you need help with anything else. Have a great day and best of luck.
查看全文
i.MX93 EQoS イーサネットDMAリセット失敗(LAN8720A PHY(RMIIモード) NXPチームの皆様、こんにちは。 私はi.MX93 SoMと、RMIIモードの外部LAN8720A PHYを使用しています。 ハードウェア構成 プロセッサー: i.MX93 PHY: LAN8720A RMII インタフェース PHYアドレス: 0 PHYリセットGPIO設定済み MACは50MHzのRMII基準クロックを提供する 訴訟が観察した イーサネットインターフェースの初期化に失敗し、以下のエラーが報告されます: imx-dwmac 428a0000.イーサネット eth1: PHY [stmmac-1:00] ドライバー [SMSC LAN8710/LAN8720] imx-dwmac 428a0000.イーサネット: DMAのリセットに失敗しました stmmac_hw_setup: DMAエンジンの初期化に失敗しました __stmmac_open: ハードウェアセットアップに失敗しました dmsg レスポンス oot@myd-lmx9x:~# dmesg |グレップ -I eth [ 0.000000] OF: 予約済みメモリ:初期化されたノードethosu_region@B0000000、互換性のあるid shared-dma-pool(共有済みDMA-プール) [ 0.000000] PSCI:DTからの導管方法のプロービング。 [ 0.953397 ] FEC 42890000.イーサネット:無効MACアドレス:00:00:00:00:00:00 [ 0.960228] fec 42890000.イーサネット:ランダムMACアドレスの使用:b2:da:68:e1:93:b7 [ 0.970863] hns3: Hisilicon Ethernet Network Driver for Hip08 ファミリー - バージョン [ 1.008422] igb: Intel(R) ギガビットイーサネットネットワークドライバー [ 1.071474] USBcore:新インターフェースドライバーKawethに登録 [ 1.082559] USBCORE:新インターフェースドライバー登録済み cdc_ether [ 1.646174] optee:導管方法のプロービング。 [ 1.744525] Bluetooth: BNEP(イーサネットエミュレーション) バージョン1.3 [ 2.560730] FEC 42890000.イーサネット eth0: 登録済みPHCデバイス0 [ 2.567579] IMX-DWMAC 428A0000.イーサネット:IRQ eth_lpi見つかりません [ 2.573824] imx-dwmac 428a0000.イーサネット:ユーザーID:0x10、Synopsys ID:0x52 [ 2.580662] IMX-DWMAC 428a0000.イーサネット:DWMAC4/5 [ 2.585448] imx-dwmac 428a0000.イーサネット:DMAハードウェア機能レジスタのサポート [ 2.592568] IMX-DWMAC 428A0000.イーサネット:RXチェックサムオフロードエンジンのサポート [ 2.599692] IMX-DWMAC 428A0000.イーサネット:TXチェックサム挿入のサポート [ 2.606382] IMX-DWMAC 428A0000.イーサネット:ウェイクアップ・オン・ラン支援 [ 2.612538] IMX-DWMAC 428A0000.イーサネット:ハードウェアウォッチドッグタイマーによるRX軽減を有効にする [ 2.620184] IMX-DWMAC 428A0000.イーサネット:有効化されたL3L4フローTC(エントリ=8) [ 2.626958] imx-dwmac 428a0000.イーサネット:有効化されたRFSフローTC(エントリ=10) [ 2.633749] IMX-DWMAC 428A0000.イーサネット:ハードウェアTCの有効化(エントリ=256、 max_off=256) [ 2.641316] IMX-DWMAC 428A0000.イーサネット:32/32ビットDMAホスト/デバイス幅を使用 [ 5.034969] systemd[1]: /lib/systemd/system/proftpd.service:8:標準出力タイプ syslog は廃止されました。自動的に journal に更新されます。ユニットファイルを更新し、設定自体を削除することを検討してください。 [ 9.808139 ] SMSC LAN8710/LAN8720 42890000.イーサネット-1:00:phy_poll_reset失敗:-110 [ 9.872078] FEC 42890000.ethernet eth0: phyに接続できません [ 9.879398 IMX-DWMAC 428a0000.ethernet eth1: レジスタ MEM_TYPE_PAGE_POOL RxQ-0 [ 10.892065] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: PHYに接続できません(エラー:-110) [ 10.900872 IMX-DWMAC 428a0000.ethernet eth1: レジスタ MEM_TYPE_PAGE_POOL RxQ-0 [ 11.904042] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: PHYに接続できません(エラー: -110) [ 12.838630] SMSC LAN8710/LAN8720 42890000.ethernet-1:00:phy_poll_reset失敗:-110 [ 12.896039] fec 42890000.イーサネット eth0: phyに接続できません [ 12.899637] imx-dwmac 428a0000.イーサネット eth1: レジスタ MEM_TYPE_PAGE_POOL RxQ-0 [ 13.904038] imx-dwmac 428a0000.イーサネット eth1: __stmmac_open: PHYに接続できません(エラー: -110) [ 289.712584] imx-dwmac 428a0000.イーサネット eth1: レジスタ MEM_TYPE_PAGE_POOL RxQ-0 [ 290.740032] imx-dwmac 428a0000.イーサネット eth1: __stmmac_open: PHYに接続できません(エラー:-110) [ 322.123525] imx-dwmac 428a0000.イーサネット eth1: レジスタ MEM_TYPE_PAGE_POOL RxQ-0 [ 323.104042] imx-dwmac 428a0000.イーサネット eth1: __stmmac_open: PHYに接続できません(エラー:-110) [ 655.579526] imx-dwmac 428a0000.イーサネット eth1: レジスタ MEM_TYPE_PAGE_POOL RxQ-0 [ 656.612033] imx-dwmac 428a0000.イーサネット eth1: __stmmac_open: PHYに接続できません(エラー: -110) Re: i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) ステップ1 — EQoSを分離する FECを一時的に無効にする: &fec {         status = "無効"; }; 次に起動して確認します。 dmesg | grep -Ei "dwmac|stmmac|eqos|mdio|phy|LAN87" PHYは4289000.イーサネットではなく、EQoS/stmmacのMDIOバスの下で見たいです。 ステップ2 — MDIOを手動で検証する mdio-toolまたはphytoolをお持ちの場合: phytool read eth1/0/2 phytool read eth1/0/3 LAN8720AのPHY IDは読み取り可能である必要があります。読み取りがタイムアウトするか、すべて0xffff/0x0000を返す場合、これはハードウェア/MDIO/リセット/クロックの問題であり、IPスタックの問題ではありません。 ステップ3 — クロックツリーの検証 cat /sys/kernel/debug/clk/clk_summary | grep -Ei "enet|qos" また、そのピン上のRMII基準クロックも測定してください。NXP RMIIスレッドでは、期待される50 MHzクロックの生成とDTSアップデートを<100000000> <50000000>で記録しています。 ステップ4 — ドライバーパッチの状態を確認する grep -n "RMII_RESET_SPEED\|imx_dwmac_mx93_reset\|fix_soc_reset" \ ドライバ/NET/イーサネット/STmicro/STMaC/DWMAC-IMX.C 存在しない場合は、i.MX93 RMII DMAリセットパッチを適用/バックポートしてください。上流パッチでは、i.MX93リセットロジックに対応しており、完全なリセットにはRMIIモードで正しいインターフェース速度を設定する必要があると記載されています。( https://www.spinics.net/lists/netdev/msg894184.html ) Re: i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) 以下は、標準NXP BSPに対して i.MX 93(または何らかの形で i.MX 91)に対してネットワークインターフェース向けに適用すべき変更点です。 RMII モード i.MXからPHYに提供される基準クロックを使用して これらはU-Boot(NXPのgit hubより)の変更点です。メインラインのU-Bootを使用する場合は若干異なるかもしれませんが、基本的な考え方は同じです。ウェブ上で見かけるデバイスツリーのパラメータ、例えば「 snps,ext-refclk; 」などは、間違いなく「ウェブ上のコードは慎重に使用する」というカテゴリーに該当します。 これらのパラメータはu-bootコードやLinuxカーネル(あるいは古いプラットフォームだけ)では評価されない場合がありますので、確実に知りたい場合はこのパラメータでテキスト検索を始めて考慮されているか確認してください。 正しいDTB設定があれば両方のネットワークインターフェースはLinuxでは問題なく動作するのに、U-bootコマンドプロンプトではFECだけが動作する可能性もあります。そのためには、 imx93_evkimx93_evk.cおよびdwc_eth_qos.cに適用された以下の変更を確認してください。 uboot-imx/arch/arm/dts/imx93-11x11-evk.dts: &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_fec>; phy-mode = "rmii"; phy-handle = <&ethphy2>; fsl,magic-packet; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; clock-frequency = <5000000>; ethphy2: ethernet-phy@2 { reg = <0>; /* adapt to MDIO PHY address on your board */ eee-broken-1000t; }; }; }; &eqos { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_eqos>; phy-mode = "rmii"; phy-handle = <&ethphy1>; status = "okay"; mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; clock-frequency = <5000000>; ethphy1: ethernet-phy@1 { reg = <1>; /* adapt to MDIO PHY address on your board */ eee-broken-1000t; }; }; }; pinctrl_eqos: eqosgrp { /* for 10/100 board, drive strength settings tbd */ fsl,pins = < MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x0000017E MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x0000017E MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x0000017E MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x0000017E MX93_PAD_ENET1_RXC__ENET_QOS_RX_ER 0x0000017E MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x0000017E MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x0000017E MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x0000017E MX93_PAD_ENET1_TD2__CCM_ENET_QOS_CLOCK_GENERATE_REF_CLK 0x0000017E MX93_PAD_ENET1_TXC__GPIO4_IO07 0x0000011E MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x0000057E >; }; pinctrl_fec: fecgrp { /* for 10/100 board, drive strength settings tbd */ fsl,pins = < MX93_PAD_ENET2_MDC__ENET1_MDC 0x0000011E MX93_PAD_ENET2_MDIO__ENET1_MDIO 0x0000011E MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x0000011E MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x0000011E MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC 0x0000011E MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x0000011E MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x0000011E MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x0000011E MX93_PAD_ENET2_TD2__ENET1_TX_CLK 0x0000011E MX93_PAD_ENET2_TXC__GPIO4_IO21 0x0000011E MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x0000051E >; }; uboot-imx/arch/arm/dts/imx93.dtsi: fec: ethernet@42890000 { compatible = "fsl,imx93-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec"; reg = <0x42890000 0x10000>; interrupts = , , , ; clocks = <&clk IMX93_CLK_ENET1_GATE>, <&clk IMX93_CLK_ENET1_GATE>, <&clk IMX93_CLK_ENET_TIMER1>, <&clk IMX93_CLK_ENET_REF>, <&clk IMX93_CLK_ENET_REF_PHY>; clock-names = "ipg", "ahb", "ptp", "enet_clk_ref", "enet_out"; assigned-clocks = <&clk IMX93_CLK_ENET_TIMER1>, <&clk IMX93_CLK_ENET_REF>, <&clk IMX93_CLK_ENET_REF_PHY>; assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>; assigned-clock-rates = <100000000>, <250000000>, <50000000>; fsl,num-tx-queues = <3>; fsl,num-rx-queues = <3>; fsl,stop-mode = <&wakeupmix_gpr 0x0c 1>; status = "disabled"; }; eqos: ethernet@428a0000 { compatible = "nxp,imx93-dwmac-eqos", "snps,dwmac-5.10a"; reg = <0x428a0000 0x10000>; interrupts = , ; interrupt-names = "macirq", "eth_wake_irq"; clocks = <&clk IMX93_CLK_ENET_QOS_GATE>, <&clk IMX93_CLK_ENET_QOS_GATE>, <&clk IMX93_CLK_ENET_TIMER2>, <&clk IMX93_CLK_ENET>, <&clk IMX93_CLK_ENET_QOS_GATE>; clock-names = "stmmaceth", "pclk", "ptp_ref", "tx", "mem"; assigned-clocks = <&clk IMX93_CLK_ENET_TIMER2>, <&clk IMX93_CLK_ENET>; assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>; assigned-clock-rates = <100000000>, <250000000>; intf_mode = <&wakeupmix_gpr 0x28>; snps,clk-csr = <0>; status = "disabled"; }; uboot-imx/arch/arm/dts/imx93-11x11-evk-u-boot.dtsi: &fec { /* adapt GPIOx y to the actual pin used on your board */ phy-reset-gpios = <&gpiox y GPIO_ACTIVE_LOW>; phy-reset-duration = <15>; phy-reset-post-delay = <100>; }; &ethphy1 { /* adapt GPIOx y to the actual pin used on your board */ phy-reset-gpios = <&gpiox y GPIO_ACTIVE_LOW>; reset-assert-us = <15000>; reset-deassert-us = <100000>; }; imx93_11x11_evk_defconfigで考慮すべき事項: CONFIG_USE_ETHPRIME=y CONFIG_ETHPRIME="eth1" CONFIG_NET_RANDOM_ETHADDR=y CONFIG_DWC_ETH_QOS=y CONFIG_DWC_ETH_QOS_IMX=y CONFIG_FEC_MXC=y CONFIG_MII=y uboot-imx/drivers/net/dwc_eth_qos.c in function eqos_start(struct udevice *dev): if (ret) { pr_err("EQOS_DMA_MODE_SWR stuck indicated, continue anyway.\n"); /* ignore this error, comment the goto instruction out */ /* goto err_stop_resets; */ } uboot-imx/board/freescale/imx93_evkimx93_evk.c: static int setup_fec(void) { /* There are PHYs which also work with a 25 MHz input clock, configurable with a pin strapping or over MDIO, so the parameter could also be ENET_25MHZ) */ return set_clk_enet(ENET_50MHZ); } static int setup_eqos(void) { struct blk_ctrl_wakeupmix_regs *bctrl = (struct blk_ctrl_wakeupmix_regs *)BLK_CTRL_WAKEUPMIX_BASE_ADDR; u32 *IOMUXC_SW_MUX_CTL_PAD_ENET_TD2 = (u32 *)(IOMUXC_BASE_ADDR + 0xA4); #define IOMUXC_SW_MUX_CTL_PAD_ENET_TD2_SION (1<<4) clrbits_le32(&bctrl->enet_clk_sel, BCTRL_ENET_CLK_SEL_ENET1_TX_CLK_SEL); clrbits_le32(&bctrl->enet_clk_sel, BCTRL_ENET_CLK_SEL_ENET_QOS_CLK_TX_CLK_SEL); /* set INTF as RMII, enable RMII TX clock */ clrsetbits_le32(&bctrl->eqos_gpr, BCTRL_GPR_ENET_QOS_INTF_MODE_MASK, BCTRL_GPR_ENET_QOS_INTF_SEL_RMII | BCTRL_GPR_ENET_QOS_CLK_GEN_EN); setbits_le32(&IOMUXC_SW_MUX_CTL_PAD_ENET_TD2, IOMUXC_SW_MUX_CTL_PAD_ENET_TD2_SION); /* There are PHYs which also work with a 25 MHz input clock, configurable with a pin strapping or over MDIO, so the parameter could also be ENET_25MHZ) */ return set_clk_eqos(ENET_50MHZ); } int board_init(void) { #ifdef CONFIG_USB_TCPC setup_typec(); #endif if (IS_ENABLED(CONFIG_FEC_MXC)) setup_fec(); if (IS_ENABLED(CONFIG_DWC_ETH_QOS)) setup_eqos(); board_gpio_init(); return 0; } よろしくお願いいたします。 ベルンハルト。 Re: i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) これは難しい問題です。残念ながら、今のところ弊社の文書には記載されていません。 EQOSイーサネットMACはサードパーティ製のIPであり、STマイクロエレクトロニクスのチップにも使用されています。だからこそ、STプラットフォームのフォルダに i.MX のコードがあるのです。EQOS IPにおけるDMAのリセットに問題がある、あるいは問題があったようですが、その原因を正確に特定することはできませんでした。i.MX 93では、このチェックを無視することで問題が解決することが分かりました。なので、「err_stop_resets」へのジャンプにコメントしてください: /drivers/net/dwc_eth_qos.c in function eqos_start if (ret) { - pr_err("EQOS_DMA_MODE_SWR stuck\n"); - goto err_stop_resets; + pr_err("EQOS_DMA_MODE_SWR stuck indicated, but continue anyway\n"); + //goto err_stop_resets; EQOS RMIIインターフェースのTD2ピンに50 MHzの参照クロックが表示され、SIONビットをTD2パッドからEQOS MACにクロックを戻すように設定すれば問題ないはずです。 FECはソースファイルに変更を加える必要はなく、デバイスツリーに必要な調整を加えるだけで済むはずです。 必要なデバイスツリーの設定とboard_init関数を調べて、後ほどここに投稿します。 よろしくお願いいたします。 ベルンハルト。
查看全文
GD3160 FlexGUIソフトウェアインストールに関する質問 公式サイトでGD3160 FlexGUIソフトウェアをインストールしました。UM11592ファイルを確認すると、「SWパッケージ」ソフトウェアのダウンロードが必要だと書かれていましたが、公式サイトには「SWパッケージ」に関する関連コンテンツが見つかりませんでした。GD3160のFlexGUIソフトウェアは通常、「NXP_GD31xx_GUI_ppublic-1.13.0」をインストールすることで使えます。「GUI」フォルダ内の「MSI」インストールパッケージについて?GD3160 Re: GD3160 FlexGUI software installation questions こんにちは、 SWパッケージは、必要なファイル(ZIPフォルダ)をすべて含むフォルダを指します ですので、はい、NXP_GD31xx_GUI_public-1.13.0.ms iのインストールを進めることができます。 FLEXGUIとFLEXGUI2はどちらもGD3160デバイスと互換性があります。ただし、GD3162についてはFLEXGUI2を使用してください。 お役に立てば幸いです! 回复: GD3160 FlexGUI software installation questions 公式サイトでFlexGUIソフトには2つのバージョンがあるのを見ました。どちらを使うべきでしょうか?
查看全文
我的编码器出现 FRDM-A-S32M276-C064 过流错误 我的硬件配置如下: FRDM-A-S32M276-C064 Faulhaber 3216 BXTH BLDC 12V 编码器为 IEF3,128L 我已经按照入门指南中的说明连接好了。 https://www.nxp.com/document/guide/getting-started-with-frdm-a-s32m276-development-board-setup-and-programming:GS-FRDM-A-S32M276 我已将编码器直接连接到与编码器对应的引脚,并且我删除了(Anegated、Bnegated、Inegated)。在应用程序中心提供的代码中,我设置了 ENCODER 1,它会运行以下命令(在设置部分): Siul2_Port_Ip_SetInputBuffer ( NULL_PTR , NULL_PTR , 1 , 54 , 3 U ) ; //这实际上相当于: //IP_SIUL2->IMCR[54] = SIUL2_IMCR_SSS(3U); /* 将 eMIOS0_CH7 输入分配给 TRGMUX_OUT_38 */ Siul2_Port_Ip_SetInputBuffer ( NULL_PTR , NULL_PTR , 1 , 55 , 4 U ) ; 结果 Lcu_Ip_SyncOutputValueType EncLcuEnable [ 6 U ] ; EncLcuEnable [ 0 ] .LogicOutputId = LCU_LOGIC_OUTPUT_8 ;​ EncLcuEnable [ 0 ] .Value = 1U ;​​ EncLcuEnable [ 1 ] .LogicOutputId = LCU_LOGIC_OUTPUT_9 ;​ EncLcuEnable [ 1 ] .Value = 1U ;​​ EncLcuEnable [ 2 ] .LogicOutputId = LCU_LOGIC_OUTPUT_10 ;​ EncLcuEnable [ 2 ] .Value = 1U ;​​ EncLcuEnable [ 3 ] .LogicOutputId = LCU_LOGIC_OUTPUT_11 ;​ EncLcuEnable [ 3 ] .Value = 1U ;​​ Lcu_Ip_SetSyncOutputEnable ( EncLcuEnable , 4 U ) ; 最后 AEC_VDDE_Enable(1); 当不连接编码器运行此程序时,应用程序可以正常工作(无传感器)。当我插入编码器并重新运行时,它立即出现故障。调试时我看到以下内容: 这对应于过流事件 #定义AEC_AE_EVENTS_STATUS_OCD_VDDE_FL_MASK ( 0x8U ) #定义AEC_AE_EVENTS_STATUS_OCD_VDDE_FL_SHIFT ( 3U ) 我该如何解决这个问题?任何建议都将不胜感激。 Re: FRDM-A-S32M276-C064 overcurrent error on my encoder 你好@alovi , 我了解到您正在使用VDDE为编码器供电。但是,VDDE 输出电流是有限的。 请注意,175 mA 代表最大过电流检测阈值;最小阈值未指定。同时,VDDE 引脚可以持续提供高达 30 mA 的 5 V 电流。 查看编码器数据表可知,即使在没有负载的情况下,其电流消耗也能达到 40 mA,这已经超过了 VDDE 支持的容量。 顺祝商祺! 丹尼尔 Re: FRDM-A-S32M276-C064 overcurrent error on my encoder 板上还有其他引脚可以用来给编码器供电吗?还是我必须使用外部电源为其供电? Re: FRDM-A-S32M276-C064 overcurrent error on my encoder 嗨@alovi , 遗憾的是,只有 VDDE 可以用于从内部稳压器向外部设备供电。 这种情况下,需要外部调节器。 此致, 丹尼尔
查看全文
i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) Hello NXP Team, I am using an i.MX93 SoM with an external LAN8720A PHY in RMII mode. Hardware Configuration Processor: i.MX93 PHY: LAN8720A RMII Interface PHY Address: 0 PHY Reset GPIO configured MAC provides 50 MHz RMII reference clock sue Observed Ethernet interface fails to initialize and the following errors are reported: imx-dwmac 428a0000.ethernet eth1: PHY [stmmac-1:00] driver [SMSC LAN8710/LAN8720] imx-dwmac 428a0000.ethernet: Failed to reset the dma stmmac_hw_setup: DMA engine initialization failed __stmmac_open: Hw setup failed dmsg Response oot@myd-lmx9x:~# dmesg | grep -i eth [ 0.000000] OF: reserved mem: initialized node ethosu_region@B0000000, compatible id shared-dma-pool [ 0.000000] psci: probing for conduit method from DT. [ 0.953397] fec 42890000.ethernet: Invalid MAC address: 00:00:00:00:00:00 [ 0.960228] fec 42890000.ethernet: Using random MAC address: b2:da:68:e1:93:b7 [ 0.970863] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version [ 1.008422] igb: Intel(R) Gigabit Ethernet Network Driver [ 1.071474] usbcore: registered new interface driver kaweth [ 1.082559] usbcore: registered new interface driver cdc_ether [ 1.646174] optee: probing for conduit method. [ 1.744525] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 2.560730] fec 42890000.ethernet eth0: registered PHC device 0 [ 2.567579] imx-dwmac 428a0000.ethernet: IRQ eth_lpi not found [ 2.573824] imx-dwmac 428a0000.ethernet: User ID: 0x10, Synopsys ID: 0x52 [ 2.580662] imx-dwmac 428a0000.ethernet: DWMAC4/5 [ 2.585448] imx-dwmac 428a0000.ethernet: DMA HW capability register supported [ 2.592568] imx-dwmac 428a0000.ethernet: RX Checksum Offload Engine supported [ 2.599692] imx-dwmac 428a0000.ethernet: TX Checksum insertion supported [ 2.606382] imx-dwmac 428a0000.ethernet: Wake-Up On Lan supported [ 2.612538] imx-dwmac 428a0000.ethernet: Enable RX Mitigation via HW Watchdog Timer [ 2.620184] imx-dwmac 428a0000.ethernet: Enabled L3L4 Flow TC (entries=8) [ 2.626958] imx-dwmac 428a0000.ethernet: Enabled RFS Flow TC (entries=10) [ 2.633749] imx-dwmac 428a0000.ethernet: Enabling HW TC (entries=256, max_off=256) [ 2.641316] imx-dwmac 428a0000.ethernet: Using 32/32 bits DMA host/device width [ 5.034969] systemd[1]: /lib/systemd/system/proftpd.service:8: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether. [ 9.808139] SMSC LAN8710/LAN8720 42890000.ethernet-1:00: phy_poll_reset failed: -110 [ 9.872078] fec 42890000.ethernet eth0: Unable to connect to phy [ 9.879398] imx-dwmac 428a0000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 10.892065] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: Cannot attach to PHY (error: -110) [ 10.900872] imx-dwmac 428a0000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 11.904042] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: Cannot attach to PHY (error: -110) [ 12.838630] SMSC LAN8710/LAN8720 42890000.ethernet-1:00: phy_poll_reset failed: -110 [ 12.896039] fec 42890000.ethernet eth0: Unable to connect to phy [ 12.899637] imx-dwmac 428a0000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 13.904038] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: Cannot attach to PHY (error: -110) [ 289.712584] imx-dwmac 428a0000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 290.740032] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: Cannot attach to PHY (error: -110) [ 322.123525] imx-dwmac 428a0000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 323.104042] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: Cannot attach to PHY (error: -110) [ 655.579526] imx-dwmac 428a0000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 656.612033] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: Cannot attach to PHY (error: -110) Re: i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) Step 1 — isolate EQoS Temporarily disable FEC: &fec {         status = "disabled"; }; Then boot and check: dmesg | grep -Ei "dwmac|stmmac|eqos|mdio|phy|LAN87" You want to see the PHY under the EQoS/stmmac MDIO bus, not under 42890000.ethernet. Step 2 — verify MDIO manually If you have mdio-tool or phytool: phytool read eth1/0/2 phytool read eth1/0/3 LAN8720A PHY ID should be readable. If reads timeout or return all 0xffff/0x0000, this is hardware/MDIO/reset/clock, not IP stack. Step 3 — verify clock tree cat /sys/kernel/debug/clk/clk_summary | grep -Ei "enet|qos" Also measure the RMII reference clock on the pin. The NXP RMII thread specifically documents the need to generate the expected 50 MHz clock and the DTS update using <100000000>, <50000000>. Step 4 — check driver patch status grep -n "RMII_RESET_SPEED\|imx_dwmac_mx93_reset\|fix_soc_reset" \ drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c If missing, apply/backport the i.MX93 RMII DMA reset patch. The upstream patch states it addresses i.MX93 reset logic and requires configuring correct interface speed under RMII mode to complete reset. (https://www.spinics.net/lists/netdev/msg894184.html) Re: i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) Here are the changes which need to applied to the standard NXP BSP for i.MX 93 (or in some way also i.MX 91) for network interfaces in RMII mode With a reference Clock provided from i.MX to PHY These are the changes for u-boot (from the NXP git hub), if you go for the mainline u-boot you may see it slightly different, but the principle is the same. Any parameters for the device tree you may find on the web, like "snps,ext-refclk;" fall definitely under the category "Use code from the web carefully". Such parameters may not be evaluated at all in the u-boot code or in the Linux Kernel (or maybe just for older platforms), so if you want to be sure, start a text search on this parameter and check if it's taken into account. It could be that with the correct DTB settings both network interfaces work fine in Linux, but on u-boot command prompt just the FEC. For this, check the changes below applied to imx93_evkimx93_evk.c and dwc_eth_qos.c. uboot-imx/arch/arm/dts/imx93-11x11-evk.dts: &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_fec>; phy-mode = "rmii"; phy-handle = <&ethphy2>; fsl,magic-packet; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; clock-frequency = <5000000>; ethphy2: ethernet-phy@2 { reg = <0>; /* adapt to MDIO PHY address on your board */ eee-broken-1000t; }; }; }; &eqos { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_eqos>; phy-mode = "rmii"; phy-handle = <&ethphy1>; status = "okay"; mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; clock-frequency = <5000000>; ethphy1: ethernet-phy@1 { reg = <1>; /* adapt to MDIO PHY address on your board */ eee-broken-1000t; }; }; }; pinctrl_eqos: eqosgrp { /* for 10/100 board, drive strength settings tbd */ fsl,pins = < MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x0000017E MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x0000017E MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x0000017E MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x0000017E MX93_PAD_ENET1_RXC__ENET_QOS_RX_ER 0x0000017E MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x0000017E MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x0000017E MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x0000017E MX93_PAD_ENET1_TD2__CCM_ENET_QOS_CLOCK_GENERATE_REF_CLK 0x0000017E MX93_PAD_ENET1_TXC__GPIO4_IO07 0x0000011E MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x0000057E >; }; pinctrl_fec: fecgrp { /* for 10/100 board, drive strength settings tbd */ fsl,pins = < MX93_PAD_ENET2_MDC__ENET1_MDC 0x0000011E MX93_PAD_ENET2_MDIO__ENET1_MDIO 0x0000011E MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x0000011E MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x0000011E MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC 0x0000011E MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x0000011E MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x0000011E MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x0000011E MX93_PAD_ENET2_TD2__ENET1_TX_CLK 0x0000011E MX93_PAD_ENET2_TXC__GPIO4_IO21 0x0000011E MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x0000051E >; }; uboot-imx/arch/arm/dts/imx93.dtsi: fec: ethernet@42890000 { compatible = "fsl,imx93-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec"; reg = <0x42890000 0x10000>; interrupts = , , , ; clocks = <&clk IMX93_CLK_ENET1_GATE>, <&clk IMX93_CLK_ENET1_GATE>, <&clk IMX93_CLK_ENET_TIMER1>, <&clk IMX93_CLK_ENET_REF>, <&clk IMX93_CLK_ENET_REF_PHY>; clock-names = "ipg", "ahb", "ptp", "enet_clk_ref", "enet_out"; assigned-clocks = <&clk IMX93_CLK_ENET_TIMER1>, <&clk IMX93_CLK_ENET_REF>, <&clk IMX93_CLK_ENET_REF_PHY>; assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>; assigned-clock-rates = <100000000>, <250000000>, <50000000>; fsl,num-tx-queues = <3>; fsl,num-rx-queues = <3>; fsl,stop-mode = <&wakeupmix_gpr 0x0c 1>; status = "disabled"; }; eqos: ethernet@428a0000 { compatible = "nxp,imx93-dwmac-eqos", "snps,dwmac-5.10a"; reg = <0x428a0000 0x10000>; interrupts = , ; interrupt-names = "macirq", "eth_wake_irq"; clocks = <&clk IMX93_CLK_ENET_QOS_GATE>, <&clk IMX93_CLK_ENET_QOS_GATE>, <&clk IMX93_CLK_ENET_TIMER2>, <&clk IMX93_CLK_ENET>, <&clk IMX93_CLK_ENET_QOS_GATE>; clock-names = "stmmaceth", "pclk", "ptp_ref", "tx", "mem"; assigned-clocks = <&clk IMX93_CLK_ENET_TIMER2>, <&clk IMX93_CLK_ENET>; assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>; assigned-clock-rates = <100000000>, <250000000>; intf_mode = <&wakeupmix_gpr 0x28>; snps,clk-csr = <0>; status = "disabled"; }; uboot-imx/arch/arm/dts/imx93-11x11-evk-u-boot.dtsi: &fec { /* adapt GPIOx y to the actual pin used on your board */ phy-reset-gpios = <&gpiox y GPIO_ACTIVE_LOW>; phy-reset-duration = <15>; phy-reset-post-delay = <100>; }; &ethphy1 { /* adapt GPIOx y to the actual pin used on your board */ phy-reset-gpios = <&gpiox y GPIO_ACTIVE_LOW>; reset-assert-us = <15000>; reset-deassert-us = <100000>; }; Things to consider in imx93_11x11_evk_defconfig: CONFIG_USE_ETHPRIME=y CONFIG_ETHPRIME="eth1" CONFIG_NET_RANDOM_ETHADDR=y CONFIG_DWC_ETH_QOS=y CONFIG_DWC_ETH_QOS_IMX=y CONFIG_FEC_MXC=y CONFIG_MII=y uboot-imx/drivers/net/dwc_eth_qos.c in function eqos_start(struct udevice *dev): if (ret) { pr_err("EQOS_DMA_MODE_SWR stuck indicated, continue anyway.\n"); /* ignore this error, comment the goto instruction out */ /* goto err_stop_resets; */ }  uboot-imx/board/freescale/imx93_evkimx93_evk.c: static int setup_fec(void) { /* There are PHYs which also work with a 25 MHz input clock, configurable with a pin strapping or over MDIO, so the parameter could also be ENET_25MHZ) */ return set_clk_enet(ENET_50MHZ); } static int setup_eqos(void) { struct blk_ctrl_wakeupmix_regs *bctrl = (struct blk_ctrl_wakeupmix_regs *)BLK_CTRL_WAKEUPMIX_BASE_ADDR; u32 *IOMUXC_SW_MUX_CTL_PAD_ENET_TD2 = (u32 *)(IOMUXC_BASE_ADDR + 0xA4); #define IOMUXC_SW_MUX_CTL_PAD_ENET_TD2_SION (1<<4) clrbits_le32(&bctrl->enet_clk_sel, BCTRL_ENET_CLK_SEL_ENET1_TX_CLK_SEL); clrbits_le32(&bctrl->enet_clk_sel, BCTRL_ENET_CLK_SEL_ENET_QOS_CLK_TX_CLK_SEL); /* set INTF as RMII, enable RMII TX clock */ clrsetbits_le32(&bctrl->eqos_gpr, BCTRL_GPR_ENET_QOS_INTF_MODE_MASK, BCTRL_GPR_ENET_QOS_INTF_SEL_RMII | BCTRL_GPR_ENET_QOS_CLK_GEN_EN); setbits_le32(&IOMUXC_SW_MUX_CTL_PAD_ENET_TD2, IOMUXC_SW_MUX_CTL_PAD_ENET_TD2_SION); /* There are PHYs which also work with a 25 MHz input clock, configurable with a pin strapping or over MDIO, so the parameter could also be ENET_25MHZ) */ return set_clk_eqos(ENET_50MHZ); } int board_init(void) { #ifdef CONFIG_USB_TCPC setup_typec(); #endif if (IS_ENABLED(CONFIG_FEC_MXC)) setup_fec(); if (IS_ENABLED(CONFIG_DWC_ETH_QOS)) setup_eqos(); board_gpio_init(); return 0; } Regards, Bernhard. Re: i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) This is a tricky one - unfortunately not (yet) described in one of our documents. The EQOS Ethernet MAC is an IP from a 3rd party and is also used in a chip from ST Microelectronics. That's the reason why you find code for the i.MX in the folder for an ST platform. It seems there is a problem or was a problem with the reset of the DMA in the EQOS IP, but I wasn't able to verify exactly where this was coming from. For the i.MX 93 I found out that it solves the problem to ignore this check, so comment the jump to "err_stop_resets" out: /drivers/net/dwc_eth_qos.c in function eqos_start if (ret) { - pr_err("EQOS_DMA_MODE_SWR stuck\n"); - goto err_stop_resets; + pr_err("EQOS_DMA_MODE_SWR stuck indicated, but continue anyway\n"); + //goto err_stop_resets; If you see the 50 MHz reference clock on the TD2 pin of the EQOS RMII interface, if you configured the SION bit to feed the clock from the TD2 pad back into the EQOS MAC, then you should be fine. The FEC should come up with no changes in the source files, just the required adaption in the device tree I will look for the required configuration of the device tree and the board_init function and post it later here. Regards, Bernhard.
查看全文
GD3160 FlexGUI software installation questions I installed the GD3160 FlexGUI software on the official website. When I checked the UM11592 file, it said that I still needed to download the "SW Package" software, but I couldn't find any relevant content about "SW Package" on the official website. Can I use GD3160's FlexGUI software normally by installing the "NXP_GD31xx_GUI_ppublic-1.13.0. MSI" installation package in the "GUI" folder? GD3160  Re: GD3160 FlexGUI software installation questions Hello, The SW package refers to the folder that contains all the required files (ZIP folder) So yes, you can proceed with installing NXP_GD31xx_GUI_public-1.13.0.msi. Both FLEXGUI and FLEXGUI2 are compatible with the GD3160 device. However, for GD3162, please use FLEXGUI2. Hope this helps! 回复: GD3160 FlexGUI software installation questions And I saw on the official website that there are two versions of FlexGUI software. Which one should be used?
查看全文
MCXW71 - Packet loss and instability at 2 Mbps half-duplex due to 2.4 GHz co-existence / RF robustne Hi NXP Community, I am currently working on a project using the  #MCXW71C wireless MCU. I have developed a half-duplex communication protocol between two MCXW71C chips running at a 2 Mbps data rate. While the communication is perfectly stable in a clean RF environment, I am experiencing severe instability and significant packet loss as soon as other 2.4 GHz RF devices (such as smartwatches, wireless earbuds, or smartphones with Bluetooth enabled) are brought close to our hardware (within a distance of about 30 cm). Here are some important details about our setup: Hardware: This is a custom PCB design (not an evaluation board). We designed and implemented the impedance matching network ourselves for the RF front-end. PHY / Protocol: GENFSK NXP SDK Version: SDK_2.25.09.00_MCXW716C Frequency Hopping: not us FHSS Given that our custom board works well in isolation but suffers in congested RF environments, we suspect the receiver might be desensitized or saturated by adjacent 2.4 GHz interferers. Could you please provide some guidance? Are there specific hardware tuning guidelines or registers for the MCXW71 to optimize receiver selectivity, AGC (Automatic Gain Control) behavior, or LNA gain in noisy environments? Is there a recommended software Coexistence configuration or CCA (Clear Channel Assessment) threshold tuning to better handle packet collisions? Could a slight mismatch in our custom impedance network degrade the selectivity/blocking performance of the transceiver specifically in the presence of strong out-of-band/adjacent interferers? Board Design Re: MCXW71 - Packet loss and instability at 2 Mbps half-duplex due to 2.4 GHz co-existence / RF robu Hello, Hope you are doing well.   Since you are using a custom board, I would recommend comparing its performance against the FRDM-MCXW71 under the same conducted test setup. Before modifying radio registers, it is important to verify factors such as the RF layout, grounding, antenna matching network, power supply noise, and any enclosure-related coupling effects. You can also run PER tests while sweeping the CCA threshold to find a practical operating point. CCA can help reduce packet collisions by preventing transmission when the channel is already busy, but the threshold should be validated empirically in the target RF environment. The following document describes RF performance testing methods and how to use them to evaluate CCA behavior: AN14399 MCXW71 Connectivity Test for 802.15.4 Applications To further validate your RF design, you may also find the following documents useful: UG10146 MCXW71 Hardware Design Guide AN14374 FRDM-MCXW71 RF System Evaluation Report for Bluetooth LE and IEEE 802.15.4 Applications AN2731 Compact Planar Antennas for 2.4 GHz Communication Best regards, Sofia.
查看全文
GD3160 FlexGUI 软件安装问题 我从官方网站安装了GD3160 FlexGUI软件。当我查看 UM11592 文件时,它说我还需要下载“SW Package”软件,但我在官方网站上找不到任何与“SW Package”相关的资料。我可以通过安装“NXP_GD31xx_GUI_ppublic-1.13.0”来正常使用GD3160的FlexGUI软件吗?“GUI”文件夹中是否有“MSI”安装包?GD3160 Re: GD3160 FlexGUI software installation questions 你好, 软件软件包指的是包含所有必需文件的文件夹(ZIP 文件夹)。 所以,是的,您可以继续安装 NXP_GD31xx_GUI_public-1.13.0.ms i。 FLEXGUI 和 FLEXGUI2 都与 GD3160 设备兼容。但是,对于 GD3162,请使用 FLEXGUI2。 希望这能帮到你! 回复: GD3160 FlexGUI software installation questions 我在官方网站上看到,FlexGUI 软件有两个版本。应该使用哪一个?
查看全文
MCXW71 - 由于 2.4 GHz 共存/射频鲁棒性问题,2 Mbps 半双工模式下出现丢包和不稳定。 NXP社区的各位好, 我目前正在做一个使用 #MCXW71C 无线 MCU 的项目。我开发了一种在两个以 2 Mbps 数据速率运行的 MCXW71C 芯片之间进行半双工通信的协议。 虽然在干净的射频环境中通信非常稳定,但一旦其他 2.4 GHz 射频设备(例如智能手表、无线耳机或启用蓝牙的智能手机)靠近我们的硬件(在大约 30 厘米的距离内),就会出现严重的不稳定和严重的丢包。 以下是我们设备配置的一些重要细节: 硬件:这是定制的 PCB 设计(不是评估板)。我们自行设计并实现了射频前端的阻抗匹配网络。 PHY/协议:GENFSK NXP SDK 版本:SDK_2.25.09.00_MCXW716C 跳频:我们不支持 FHSS 鉴于我们的定制电路板在单独使用时效果很好,但在拥挤的射频环境中效果不佳,我们怀疑接收器可能被邻近的 2.4 GHz 干扰源降低灵敏度或饱和。 请问您能否提供一些指导? MCXW71 是否有特定的硬件调谐指南或寄存器,以优化接收机选择性、AGC(自动增益控制)行为或噪声环境下的 LNA 增益? 是否有推荐的软件共存配置或 CCA(清晰信道评估)阈值调整方法,以更好地处理数据包冲突? 我们定制的阻抗网络的轻微不匹配是否会降低收发器的选择性/阻塞性能,尤其是在存在强烈的带外/相邻干扰的情况下? 电路板设计 Re: MCXW71 - Packet loss and instability at 2 Mbps half-duplex due to 2.4 GHz co-existence / RF robu 你好, 希望你一切都好。   由于您使用的是定制板,我建议您在相同的传导测试设置下,将其性能与 FRDM-MCXW71 进行比较。在修改无线电寄存器之前,必须验证射频布局、接地、天线匹配网络、电源噪声以及任何与外壳相关的耦合效应等因素。 您还可以在扫描 CCA 阈值的同时运行 PER 测试,以找到一个实际的操作点。CCA 可以通过在信道繁忙时阻止传输来帮助减少数据包冲突,但阈值应在目标射频环境中进行经验验证。 以下文档描述了射频性能测试方法以及如何使用这些方法评估 CCA 行为: AN14399 MCXW71 802.15.4 应用连接测试 为了进一步验证您的射频设计,您可能还会发现以下文档很有用: UG10146 MCXW71 硬件设计指南 AN14374 FRDM-MCXW71 射频系统评估报告,适用于蓝牙低功耗和 IEEE 802.15.4 应用 AN2731 紧凑型平面天线,适用于 2.4 GHz 通信 此致, 索菲亚。
查看全文
PT2000 ローサイドドライバーのみ使用。 こんにちは、 私はPT2000を使って従来のインジェクター(12オーム)を駆動し、1台のPT2000は1チャネルのハイサイドとローサイド出力(両方のインジェクター配線をPT2000に接続)で駆動していますが、すべて期待通りに動作しています。 インジェクターの正極線を外部の連続+12V電源に接続し、片方のローサイドを駆動してインジェクターをオンにすることは可能でしょうか?マイクロコードを変更せずにこの解決策を試してみましたが、うまくいきません。このトポロジーで動作させるには、マイクロコアにどのような変更を加える必要がありますか?より一般的に言うと、ローサイドモードでソレノイドを駆動しつつ電流を制御することは可能でしょうか? ご支援ありがとうございます。 よろしくお願いします。
查看全文
i.MX93 EQoS 以太网 DMA 复位失败,LAN8720A PHY(RMII 模式) 您好,NXP团队, 我正在使用i.MX93 SoM ,外接LAN8720A PHY,运行在 RMII 模式下。 硬件配置 处理器: i.MX93 PHY: LAN8720A RMII接口 物理层地址:0 PHY RESET GPIO 已配置 MAC提供50 MHz RMII参考时钟 苏观察 以太网接口初始化失败,并报告以下错误: imx-dwmac 428a0000.ethernet eth1: PHY [stmmac-1:00] 驱动程序 [SMSC LAN8710/LAN8720] imx-dwmac 428a0000.ethernet: DMA重置失败 stmmac_hw_setup:DMA 引擎初始化失败 __stmmac_open:硬件设置失败 dmsg 响应 oot@myd-lmx9x:~# dmesg | grep -i eth [ 0.000000] OF:保留内存:已初始化节点 ethosu_region@B0000000,兼容 ID shared-dma-pool [ 0.000000] psci:从 DT 探测管道方法。 [ 0.953397] fec 42890000.ethernet:无效的 MAC 地址:00:00:00:00:00:00 [ 0.960228] fec 42890000.ethernet:使用随机 MAC 地址:b2:da:68:e1:93:b7 [ 0.970863] hns3:适用于 Hip08 系列的海思以太网网络驱动程序 - 版本 [ 1.008422] igb:Intel(R) 千兆以太网网络驱动程序 [ 1.071474] usbcore:已注册新的接口驱动程序 kaweth [ 1.082559] usbcore:已注册新的接口驱动程序 cdc_ether [ 1.646174] optee:探测管道方法。 [ 1.744525] 蓝牙:BNEP(以太网仿真)版本 1.3 [ 2.560730] fec 42890000.ethernet eth0:已注册 PHC 设备 0 [ 2.567579] imx-dwmac 428a0000.ethernet:未找到 IRQ eth_lpi [ 2.573824] imx-dwmac 428a0000.ethernet:用户 ID:0x10,Synopsys ID:0x52 [ 2.580662] imx-dwmac 428a0000.ethernet:DWMAC4/5 [ 2.585448] imx-dwmac 428a0000.ethernet:DMA 硬件功能寄存器支持 [ 2.592568] imx-dwmac 428a0000.ethernet:支持 RX 校验和卸载引擎 [ 2.599692] imx-dwmac 428a0000.ethernet:支持插入 TX 校验和 [ 2.606382] imx-dwmac 428a0000.ethernet:支持局域网唤醒 [ 2.612538] imx-dwmac 428a0000.ethernet:通过硬件看门狗定时器启用接收缓解 [ 2.620184] imx-dwmac 428a0000.ethernet:已启用 L3L4 流 TC(条目=8) [ 2.626958] imx-dwmac 428a0000.ethernet:已启用 RFS 流 TC(条目数=10) [ 2.633749] imx-dwmac 428a0000.ethernet:启用硬件TC(条目数=256,最大关闭次数=256) [ 2.641316] imx-dwmac 428a0000.ethernet:使用 32/32 位 DMA 主机/设备宽度 [ 5.034969] systemd[1]: /lib/systemd/system/proftpd.service:8:标准输出类型 syslog 已过时,将自动更新为 journal。请更新您的单元文件,并考虑完全移除该设置。 [ 9.808139] SMSC LAN8710/LAN8720 42890000.ethernet-1:00:phy_poll_reset 失败:-110 [ 9.872078] fec 42890000.ethernet eth0:无法连接到物理层 [ 9.879398] imx-dwmac 428a0000.ethernet eth1: 注册 MEM_TYPE_PAGE_POOL RxQ-0 [ 10.892065] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: 无法连接到 PHY(错误:-110) [ 10.900872] imx-dwmac 428a0000.ethernet eth1: 注册 MEM_TYPE_PAGE_POOL RxQ-0 [ 11.904042] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: 无法连接到 PHY(错误:-110) [ 12.838630] SMSC LAN8710/LAN8720 42890000.ethernet-1:00:phy_poll_reset 失败:-110 [ 12.896039] fec 42890000.ethernet eth0:无法连接到物理层 [ 12.899637] imx-dwmac 428a0000.ethernet eth1: 注册 MEM_TYPE_PAGE_POOL RxQ-0 [ 13.904038] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: 无法连接到 PHY(错误:-110) [ 289.712584] imx-dwmac 428a0000.ethernet eth1: 注册 MEM_TYPE_PAGE_POOL RxQ-0 [ 290.740032] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: 无法连接到 PHY(错误:-110) [ 322.123525] imx-dwmac 428a0000.ethernet eth1: 注册 MEM_TYPE_PAGE_POOL RxQ-0 [ 323.104042] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: 无法连接到 PHY(错误:-110) [ 655.579526] imx-dwmac 428a0000.ethernet eth1: 注册 MEM_TYPE_PAGE_POOL RxQ-0 [ 656.612033] imx-dwmac 428a0000.ethernet eth1: __stmmac_open: 无法连接到 PHY(错误:-110) Re: i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) 步骤 1 — 隔离 EQoS 暂时禁用 FEC: &fec {         status = "disabled"; }; 然后启动并检查: dmesg | grep -Ei "dwmac|stmmac|eqos|mdio|phy|LAN87" 你想查看 EQoS/stmmac MDIO 总线下的 PHY,而不是 42890000.ethernet 下的 PHY。 步骤 2 — 手动验证 MDIO 如果您有mdio-tool或phytool: phytool 读取 eth1/0/2 phytool 读取 eth1/0/3 LAN8720A PHY ID 应该可读。如果读取超时或返回全部 0xffff/0x0000,则这是硬件/MDIO/RESET/时钟,而不是 IP 协议栈。 步骤 3 — 验证时钟树 cat /sys/kernel/debug/clk/clk_summary | grep -Ei "enet|qos" 同时测量引脚上的 RMII 参考时钟。NXP RMII 线程专门记录了生成预期 50 MHz 时钟和使用 <100000000>、<50000000> 进行 DTS 更新的必要性。 步骤 4 — 检查驱动程序补丁状态 grep -n "RMII_RESET_SPEED\|imx_dwmac_mx93_reset\|fix_soc_reset" \ drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c 如果缺失,请应用/移植 i.MX93 RMII DMA RESET 补丁。上游补丁说明它解决了 i.MX93 复位逻辑的问题,需要在 RMII 模式下配置正确的接口速度才能完成复位。( https://www.spinics.net/lists/netdev/msg894184.html ) Re: i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) 这是一个棘手的问题——遗憾的是,我们的任何一份文件中还没有对此进行描述。 EQOS 以太网 MAC 是来自第三方的 IP,并且也被 ST Microelectronics 的芯片所采用。这就是为什么你会在 ST 平台的文件夹中找到 i.MX 的代码的原因。EQOS IP 中的 DMA RESET 似乎存在问题或曾经存在问题,但我无法确切地查明问题出在哪里。对于 i.MX 93,我发现忽略此检查可以解决问题,因此请注释掉跳转到“err_stop_resets”的代码: /drivers/net/dwc_eth_qos.c in function eqos_start if (ret) { - pr_err("EQOS_DMA_MODE_SWR stuck\n"); - goto err_stop_resets; + pr_err("EQOS_DMA_MODE_SWR stuck indicated, but continue anyway\n"); + //goto err_stop_resets; 如果您在 EQOS RMII 接口的 TD2 引脚上看到 50 MHz 参考时钟,并且您已将 SION 位配置为将时钟从 TD2 焊盘反馈到 EQOS MAC,那么应该就没问题了。 FEC 应该不会对源文件进行任何更改,只需要对设备树进行必要的调整即可。 我会查找设备树和 board_init 函数所需的配置,稍后在这里发布。 问候, 伯恩哈德。 Re: i.MX93 EQoS Ethernet DMA Reset Failure with LAN8720A PHY (RMII Mode) 以下是需要对适用于 i.MX 93(或在某种程度上也适用于 i.MX 91)网络接口的标准 NXP 电路板支持包进行更改的内容。 RMII模式 i.MX 向 PHY 提供参考时钟。 这些是 u-boot 的更改(来自 NXP git hub),如果您使用主线 u-boot,您可能会看到它略有不同,但原理是相同的。您可能在网上找到的任何设备树参数,例如“ snps,ext-refclk; ”都绝对属于“谨慎使用来自网络的代码”这一范畴。 u-boot 代码或 Linux 内核中可能根本没有评估此类参数(或者可能只在较旧的平台上评估),因此,如果您想确定,请开始搜索此参数并检查它是否已被考虑在内。 可能是这样的:在正确的 DTB 设置下,两个网络接口在 Linux 中都能正常工作,但在 u-boot 命令提示符下只有 FEC 接口工作。为此,请查看以下应用于imx93_evkimx93_evk.c和dwc_eth_qos.c的更改。 uboot-imx/arch/arm/dts/imx93-11x11-evk.dts: &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_fec>; phy-mode = "rmii"; phy-handle = <&ethphy2>; fsl,magic-packet; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; clock-frequency = <5000000>; ethphy2: ethernet-phy@2 { reg = <0>; /* adapt to MDIO PHY address on your board */ eee-broken-1000t; }; }; }; &eqos { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_eqos>; phy-mode = "rmii"; phy-handle = <&ethphy1>; status = "okay"; mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; clock-frequency = <5000000>; ethphy1: ethernet-phy@1 { reg = <1>; /* adapt to MDIO PHY address on your board */ eee-broken-1000t; }; }; }; pinctrl_eqos: eqosgrp { /* for 10/100 board, drive strength settings tbd */ fsl,pins = < MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x0000017E MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x0000017E MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x0000017E MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x0000017E MX93_PAD_ENET1_RXC__ENET_QOS_RX_ER 0x0000017E MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x0000017E MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x0000017E MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x0000017E MX93_PAD_ENET1_TD2__CCM_ENET_QOS_CLOCK_GENERATE_REF_CLK 0x0000017E MX93_PAD_ENET1_TXC__GPIO4_IO07 0x0000011E MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x0000057E >; }; pinctrl_fec: fecgrp { /* for 10/100 board, drive strength settings tbd */ fsl,pins = < MX93_PAD_ENET2_MDC__ENET1_MDC 0x0000011E MX93_PAD_ENET2_MDIO__ENET1_MDIO 0x0000011E MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x0000011E MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x0000011E MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC 0x0000011E MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x0000011E MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x0000011E MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x0000011E MX93_PAD_ENET2_TD2__ENET1_TX_CLK 0x0000011E MX93_PAD_ENET2_TXC__GPIO4_IO21 0x0000011E MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x0000051E >; }; uboot-imx/arch/arm/dts/imx93.dtsi: fec: ethernet@42890000 { compatible = "fsl,imx93-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec"; reg = <0x42890000 0x10000>; interrupts = , , , ; clocks = <&clk IMX93_CLK_ENET1_GATE>, <&clk IMX93_CLK_ENET1_GATE>, <&clk IMX93_CLK_ENET_TIMER1>, <&clk IMX93_CLK_ENET_REF>, <&clk IMX93_CLK_ENET_REF_PHY>; clock-names = "ipg", "ahb", "ptp", "enet_clk_ref", "enet_out"; assigned-clocks = <&clk IMX93_CLK_ENET_TIMER1>, <&clk IMX93_CLK_ENET_REF>, <&clk IMX93_CLK_ENET_REF_PHY>; assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>; assigned-clock-rates = <100000000>, <250000000>, <50000000>; fsl,num-tx-queues = <3>; fsl,num-rx-queues = <3>; fsl,stop-mode = <&wakeupmix_gpr 0x0c 1>; status = "disabled"; }; eqos: ethernet@428a0000 { compatible = "nxp,imx93-dwmac-eqos", "snps,dwmac-5.10a"; reg = <0x428a0000 0x10000>; interrupts = , ; interrupt-names = "macirq", "eth_wake_irq"; clocks = <&clk IMX93_CLK_ENET_QOS_GATE>, <&clk IMX93_CLK_ENET_QOS_GATE>, <&clk IMX93_CLK_ENET_TIMER2>, <&clk IMX93_CLK_ENET>, <&clk IMX93_CLK_ENET_QOS_GATE>; clock-names = "stmmaceth", "pclk", "ptp_ref", "tx", "mem"; assigned-clocks = <&clk IMX93_CLK_ENET_TIMER2>, <&clk IMX93_CLK_ENET>; assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>; assigned-clock-rates = <100000000>, <250000000>; intf_mode = <&wakeupmix_gpr 0x28>; snps,clk-csr = <0>; status = "disabled"; }; uboot-imx/arch/arm/dts/imx93-11x11-evk-u-boot.dtsi: &fec { /* adapt GPIOx y to the actual pin used on your board */ phy-reset-gpios = <&gpiox y GPIO_ACTIVE_LOW>; phy-reset-duration = <15>; phy-reset-post-delay = <100>; }; &ethphy1 { /* adapt GPIOx y to the actual pin used on your board */ phy-reset-gpios = <&gpiox y GPIO_ACTIVE_LOW>; reset-assert-us = <15000>; reset-deassert-us = <100000>; }; imx93_11x11_evk_defconfig 中需要考虑的事项: CONFIG_USE_ETHPRIME=y CONFIG_ETHPRIME="eth1" CONFIG_NET_RANDOM_ETHADDR=y CONFIG_DWC_ETH_QOS=y CONFIG_DWC_ETH_QOS_IMX=y CONFIG_FEC_MXC=y CONFIG_MII=y uboot-imx/drivers/net/dwc_eth_qos.c 中的函数 eqos_start(struct udevice *dev): if (ret) { pr_err("EQOS_DMA_MODE_SWR stuck indicated, continue anyway.\n"); /* ignore this error, comment the goto instruction out */ /* goto err_stop_resets; */ } uboot-imx/board/freescale/imx93_evkimx93_evk.c: static int setup_fec(void) { /* There are PHYs which also work with a 25 MHz input clock, configurable with a pin strapping or over MDIO, so the parameter could also be ENET_25MHZ) */ return set_clk_enet(ENET_50MHZ); } static int setup_eqos(void) { struct blk_ctrl_wakeupmix_regs *bctrl = (struct blk_ctrl_wakeupmix_regs *)BLK_CTRL_WAKEUPMIX_BASE_ADDR; u32 *IOMUXC_SW_MUX_CTL_PAD_ENET_TD2 = (u32 *)(IOMUXC_BASE_ADDR + 0xA4); #define IOMUXC_SW_MUX_CTL_PAD_ENET_TD2_SION (1<<4) clrbits_le32(&bctrl->enet_clk_sel, BCTRL_ENET_CLK_SEL_ENET1_TX_CLK_SEL); clrbits_le32(&bctrl->enet_clk_sel, BCTRL_ENET_CLK_SEL_ENET_QOS_CLK_TX_CLK_SEL); /* set INTF as RMII, enable RMII TX clock */ clrsetbits_le32(&bctrl->eqos_gpr, BCTRL_GPR_ENET_QOS_INTF_MODE_MASK, BCTRL_GPR_ENET_QOS_INTF_SEL_RMII | BCTRL_GPR_ENET_QOS_CLK_GEN_EN); setbits_le32(&IOMUXC_SW_MUX_CTL_PAD_ENET_TD2, IOMUXC_SW_MUX_CTL_PAD_ENET_TD2_SION); /* There are PHYs which also work with a 25 MHz input clock, configurable with a pin strapping or over MDIO, so the parameter could also be ENET_25MHZ) */ return set_clk_eqos(ENET_50MHZ); } int board_init(void) { #ifdef CONFIG_USB_TCPC setup_typec(); #endif if (IS_ENABLED(CONFIG_FEC_MXC)) setup_fec(); if (IS_ENABLED(CONFIG_DWC_ETH_QOS)) setup_eqos(); board_gpio_init(); return 0; } 问候, 伯恩哈德。
查看全文
LPI2Cにおけるスレーブビットエラーに関する問題 私はS32K146を使用していますが、マニュアルにはスレーブが1を送信しているのにバスが0の場合にビットエラーが発生すると記載されています。しかし、実際のテストでは、スレーブが0を送信しているのにバスが1の場合にもビットエラーが発生します。この現象は正しいのでしょうか? Re: An issue regarding slave bit errors in LPI2C こんにちは、 @GXY さん。 はい、その通りです。スレーブがSDAを駆動しているがサンプルが異なるとビットエラーフラグがトリガーされる 期待値よりも高い値を示す場合、必ずしも1を送信して0を読み取る場合に限られるわけではない。 私の推測では、レジスタの説明は、ビットエラーフラグが設定された場合の例を示すだけのものだと思います。 よろしくお願いします、 ジュリアン
查看全文
FRDM-A-S32M276-C064 overcurrent error on my encoder My hardware is: FRDM-A-S32M276-C064 Faulhaber 3216 BXTH BLDC 12V Encoder is IEF3 with 128L I have connected it as shown in the starting guide  https://www.nxp.com/document/guide/getting-started-with-frdm-a-s32m276-development-board-setup-and-programming:GS-FRDM-A-S32M276 I have connected the encoder directly to the pins corresponding to the enconder and I dropped (Anegated, Bnegated, Inegated). In the provided code from the application hub I've set ENCODER 1, which runs the following (in the setup part): Siul2_Port_Ip_SetInputBuffer(NULL_PTR, NULL_PTR, 1, 54, 3U); //this effectively functions as: //IP_SIUL2->IMCR[54] = SIUL2_IMCR_SSS(3U); /* Assign eMIOS0_CH7 input to TRGMUX_OUT_38 */ Siul2_Port_Ip_SetInputBuffer(NULL_PTR, NULL_PTR, 1, 55, 4U); Then Lcu_Ip_SyncOutputValueType EncLcuEnable[6U]; EncLcuEnable[0].LogicOutputId = LCU_LOGIC_OUTPUT_8; EncLcuEnable[0].Value = 1U; EncLcuEnable[1].LogicOutputId = LCU_LOGIC_OUTPUT_9; EncLcuEnable[1].Value = 1U; EncLcuEnable[2].LogicOutputId = LCU_LOGIC_OUTPUT_10; EncLcuEnable[2].Value = 1U; EncLcuEnable[3].LogicOutputId = LCU_LOGIC_OUTPUT_11; EncLcuEnable[3].Value = 1U; Lcu_Ip_SetSyncOutputEnable(EncLcuEnable, 4U); and finally AEC_VDDE_Enable(1); When I run this without the encoder connected, the application works correctly (sensorless). When I plug in the encoder and I rerun, it goes into fault immediately. Debugging I see the following: which corresponds to an overcurrent event #define AEC_AE_EVENTS_STATUS_OCD_VDDE_FL_MASK (0x8U) #define AEC_AE_EVENTS_STATUS_OCD_VDDE_FL_SHIFT (3U) How can I fix this problem? Any advice would be appreciated. Re: FRDM-A-S32M276-C064 overcurrent error on my encoder Hello @alovi, I understand that you are using VDDE to supply the encoder. However, the VDDE output current is limited. Please note that 175 mA represents the maximum overcurrent detection threshold; the minimum threshold is not specified. At the same time, the VDDE pin can continuously supply up to 30 mA at 5 V. Looking at the encoder datasheet, its current consumption can reach up to 40 mA even without load, which already exceeds the supported VDDE capability. Best regards, Daniel Re: FRDM-A-S32M276-C064 overcurrent error on my encoder Is there any other pin on the board that I can use to power the encoder or do I have to use an external source to power it? Re: FRDM-A-S32M276-C064 overcurrent error on my encoder Hi @alovi, Unfortunately, only VDDE can be used to supply external devices from the internal regulator. In this case, an external regulator is required. Regards, Daniel
查看全文