Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
IMX219(RPi Cam v2)在 FRDM-IMX93 上使用原装 imx93-11x11-frdm-imx219 芯片时,可以探测但无法传输数据流。 环境 - 电路板:FRDM-IMX93 (i.MX93 11x11) - 电路板支持包:Yocto Scarthgap,linux-imx-6.6.36-2.1.0(内核提交 20d9f5efabdd), MACHINE=imx93frdm,DISTRO=fsl-imx-xwayland - 传感器:树莓派摄像头模块 v2(索尼 IMX219),位于 P6 MIPI-CSI 连接器上 - 设备树:stock arch/arm64/boot/dts/freescale/imx93-11x11-frdm-imx219.dtso 概括 该电路板支持包。包含一个适用于此板的IMX219设备树覆盖层,以及传感器。 上电后,I2C 检测到芯片 ID 为 0x10 的芯片 ID 读取为 0x0219。然而, V4L2 捕获管道从未交付过帧。追溯下去,似乎有 下游分阶段摄像机驱动程序中存在三个独立问题。主线 sony,imx219 驱动程序遵循现代 V4L2 子设备模型,而 NXP staging CSI/ISI 协议栈仍然采用较旧的 ov5640 型模型。 问题 1 — 媒体图拆卸(“传感器注册失败”) drivers/staging/media/imx/imx8-media-dev.c: mxc_md_create_links() 调用 media_entity_call(sensor, link_setup, ...).主线 imx219 驱动程序不 实现 .link_setup,因此,该调用返回 -ENOIOCTLCMD (-515) 并被视为 致命的。传感器到CSI的连接从未建立,整个媒体设备被拆除: mx8-img-md:已注册传感器子设备:imx219 2-0010 (1) mx8-img-md:创建链接 [mxc_isi.0]=> [mxc_isi.0.捕获] mx8-img-md:创建链接 [mxc-mipi-csi2.0]=> [mxc_isi.0] mx8-img-md:子设备通知器完成错误退出 mxc-md 42800000.总线:camera:传感器注册失败 mxc-md:探测 42800000.总线:camera失败,错误代码 -515 (ov5640 之所以有效,是因为 ov5640.c提供空操作 .link_setup。) 问题 2 — streamon 中止(“调用子设备 s_power 失败!”) drivers/staging/media/imx/imx8-isi-cap.c: mxc_isi_cap_streamon() 调用 v4l2_subdev_call(src_sd, core, s_power, 1) 并将失败视为致命错误。imx219 使用 运行时 PM,并且未实现已弃用的 .s_power,所以呼叫返回 -ENOIOCTLCMD 和流式传输中止: mxc_isi.0:调用子设备 s_power 失败! (ov5640 之所以有效,是因为 ov5640.c提供 .s_power。) 问题 3 — CSI 硬编码为 YUV422,无法解析 RAW10(链接已建立,但帧数为 0) drivers/staging/media/imx/dwc-mipi-csi2.c 实际上仅支持 YUV422: - dwc_csi2h_formats[] 仅列出 SBGGR Bayer 代码,不列出 SRGGB(IMX219 为 SRGGB10)。 因此 find_csi2h_format() 失败,格式默默地恢复为 YUYV。 - dwc_mipi_csi2_set_fmt() 永远不会存储 csi2h->format,因此 disp_mix_gasket_config() 看到默认的 YUYV 代码。 - dwc_mipi_csi2_param_init() 硬编码 ipi_cfg->data_type = DT_YUV422_8。 CSI随后报告了错误的数据类型,即使所有帧都已捕获,也未捕获到任何帧。 链接已启用,VIDIOC_STREAMON 返回 0: mxc-mipi-csi2.0:格式:0x2008 <- YUYV;预期为 0x300f (SRGGB10) 是什么让它对我们有效(供您验证) 在 (a) 使 imx8-media-dev / imx8-isi-cap 处理缺失的可选操作之后 (-ENOIOCTLCMD 来自 link_setup / s_power)作为非致命错误,以及(b)教学 dwc-mipi-csi2 关于 SRGGB8/10/12(存储协商格式并设置 IPI) 从中获取数据类型),管道启动正常:- mxc-mipi-csi2.0:格式:0x300f imx219 -> mxc-mipi-csi2.0 -> mxc_isi.0-> /dev/video0 约27帧/秒,实时帧捕获。 修复(a)与传感器无关,有助于此堆栈上的任何现代主线传感器; 修复 (b) 为 CSI 添加了 RAW Bayer 支持。 次要说明——模块加载顺序 在全新启动后,由于 imx8_media_dev 运行,图形也无法注册。 在 imx219 模块加载之前,异步通知器会注册视频节点。 然后注销。手册“modprobe -r imx8_media_dev imx219; modprobe imx219; modprobe imx8_media_dev”会重建它。软装卸/装载顺序提示可以实现这一点。 无需任何额外操作即可使用。 问题 1.在这个BSP中,IMX219是否是FRDM-IMX93上官方支持/验证的摄像头? 预期/已验证的路径是 AP1302 ISP 模块吗?已发货的 imx219.dtso 这表明裸露的 IMX219 应该可以正常工作。 2. 以上三种行为是否属于您会接受修复的漏洞,还是 是否存在我们遗漏的推荐/已知良好的配置? 3.如果需要,我很乐意将这些补丁作为干净的提交分享出来。 谢谢! FRDM-i.MX93 #IMX219 RPI-CAM-MIPI Yocto Project Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 你好, 感谢您的联系,我会与软件团队核实,并再次确认后续的 BSP 版本中是否有针对此问题的修复,如有更新,我会尽快通知您。 此致敬礼/Saludos, 阿尔多。 Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 你好, 遗憾的是,i.MX93 FRDM 电路板支持包 直到后来才在我们的 电路板支持包 中得到正式支持。在我调查这个问题时,该图像可能是该 电路板支持包 的 beta 版本。 我们支持 FRDM 开发板 6.12.34-2.1.0 版本。对于后续版本,我非常感谢您的发现,这对任何使用板载默认镜像进行验证的人都应该很有用,我会与软件团队跟踪此事。 此致敬礼/Saludos, 阿尔多。
記事全体を表示
libcamera on imx8mp Hi NXP FAEs:      I would like to know currently if NXP have any libcamera support on imx8mp platform?       https://libcamera.org/getting-started.html.      I see in yocoto kirkstone bsp, recipe libcamera is under meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb. when I add target libcamera into image and run on imx8mp-evk board, libcamera reports nothing when detecting capture device. and when run gst-launch, the result is the same. LIBCAMERA_LOG_LEVELS=*:DEBUG gst-device-monitor-1.0 Video IPAModule ipa_module.cpp:329 ipa_vimc.so: IPA module /usr/lib/libcamera/ipa_vimc.so is signed IPAManager ipa_manager.cpp:240 Loaded IPA module '/usr/lib/libcamera/ipa_vimc.so' Camera camera_manager.cpp:293 libcamera v0.0.0 Camera camera_manager.cpp:106 Starting camera manager DeviceEnumerator device_enumerator.cpp:224 New media device "mxc-md" created from /dev/media0 DeviceEnumerator device_enumerator_udev.cpp:95 Defer media device /dev/media0 due to 1 missing dependencies DeviceEnumerator device_enumerator_udev.cpp:320 All dependencies for media device /dev/media0 found DeviceEnumerator device_enumerator.cpp:252 Added device /dev/media0: mxc-md Camera camera_manager.cpp:149 Found registered pipeline handler 'PipelineHandlerUVC' Camera camera_manager.cpp:149 Found registered pipeline handler 'SimplePipelineHandler' Camera camera_manager.cpp:149 Found registered pipeline handler 'PipelineHandlerVimc'       when I read back the libcamera code, I find camera need be registered before libcamera use it. bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator) { DeviceMatch unicam("unicam"); MediaDevice *unicamDevice = acquireMediaDevice(enumerator, unicam); if (!unicamDevice) { LOG(RPI, Debug) << "Unable to acquire a Unicam instance"; return false; } DeviceMatch isp("bcm2835-isp"); MediaDevice *ispDevice = acquireMediaDevice(enumerator, isp); if (!ispDevice) { LOG(RPI, Debug) << "Unable to acquire ISP instance"; return false; } int ret = registerCamera(unicamDevice, ispDevice); if (ret) { LOG(RPI, Error) << "Failed to register camera: " << ret; return false; } return true; }       so, I have below questions.       1. Does NXP bsp currently support libcamera, such as for camera device ov5640?        2. If not, does NXP have any plan to support libcamera or have any suggestion/reference design/guid/patch for that?        3. How complex is it for adding suppor to a new camera in libcamera?        I am quite new for libcamera and expect your help/guid/information. best regards. Johnson Re: libcamera on imx8mp I'm also interested in the VSI SDK. It would be very useful if I could use 3A algorithms of the Vivante ISP8000 on frames captured from an external camera Re: libcamera on imx8mp Hi Sanket Parekh, Thanks for the information. I will explore more basing on your information. Best regards. Johnson Re: libcamera on imx8mp Hi @Sanket_Parekh , What is the vsi SDK and how to access it, please ? Thanks in advance and best regards, Khang Re: libcamera on imx8mp Hello @zhangjunsheng  I hope you are doing well. if the customer has not their algorithm for 3A and other modules, we don't suggest they use lib-camera, VSI sdk is good chooise. we will support vsi SDK now. if the customer has interesting in lib-camera and they are isp expert, there is an open source on GitLab  https://gitlab.com/ideasonboard/nxp/libcamera Thanks & Regards, Sanket Parekh Re: libcamera on imx8mp Hi @zhangjunsheng , I found this repository : https://gitlab.com/ideasonboard/nxp/libcamera Re: libcamera on imx8mp Just wanted to highlight in here, that - yes i.MX8MP is very well supported in libcamera, but you have to enable the correct kernel drivers on the linux kernel. libcamera uses the seemingly not-obviously named RKISP1 driver in the linux kernel because the ISP shares common heritiage, but the platform itself has really strong support, is in commercial products, and we can support many use cases, and customisations easily. All with the benefit that you don't have to sign any license agreements, and you get the full source code! (it's all publicly available upstream at https://gitlab.freedesktop.org/camera/libcamera  )
記事全体を表示
How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on the S Hello  How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on the S32G399? Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Make sure the gPTP frame enters Q4. How to implement this? Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Hi,zhijie Thank you for your reply and information. You can try to implement this function by referring to the BSP User Manual as the following picture. It can be considered to set a separate time window for Q4, giving it a higher priority. Additionally, Make sure the gPTP frame enters Q4. The following commands for layer2 time window setting can be used as a reference: tc qdisc add dev eth0 root taprio \ num_tc 5 \ map 0 1 2 3 4 \ queues 1@0 1@1 1@2 1@3 1@4 \ base-time 0 \ sched-entry S 10 50000 \ sched-entry S 0f 450000 \ sched-entry S 1f 96 \ flags 0x2 Hope this information can help you. BR Joey Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Do you use gPTP with GMAC0 on M-core or A-core? A: on A-core Are you currently utilizing GMAC's TSN feature? Did the VLAN be used? A: Utilizing GMAC's TSN feature:gptp;No VLAN on gptp packets. The GMAC controller provides five Tx/Rx queues,  I need to route all gPTP traffic to the highest-priority Tx/Rx queue(q4). Could you advise the corresponding register configurations and code implementation methods and How to configure(such as:tc,ip) at LInux? Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Hi,zhijie Thank you for contacting us. Could you tell me more information? Do you use gPTP with GMAC0 on M-core or A-core? Are you currently utilizing GMAC's TSN feature? Did the VLAN be used? BR Joey Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Hi,zhijie Thank you for your reply. You can try to configure the queue information in the gmac0 section of the device tree. It is included this file of arch\arm64\boot\dts\freescale\s32cc.dtsi.         gmac0: ethernet@4033c000 {             status = "disabled";             compatible = "nxp,s32cc-dwmac"; mtl_rx_setup_gmac0: rx-queues-config {                 snps,rx-queues-to-use = <5>;                 #address-cells = <1>;                 #size-cells = <0>;                 queue@0 {                 };                 queue@1 {                 };                 queue@2 {                 };                 queue@3 {                 };                 queue@4 {                 };             };             mtl_tx_setup_gmac0: tx-queues-config {                 snps,tx-queues-to-use = <5>;                 #address-cells = <1>;                 #size-cells = <0>;                 queue@0 {                 };                 queue@1 {                 };                 queue@2 {                 };                 queue@3 {                 };                 queue@4 {                 };             };  Also, can find the RX queue packet routing configuration in the GMAC driver, you can try to set the node as the "snps,route-ptp" for Q4. You can contact us at any time if you still have any question.   BR Joey
記事全体を表示
32ビット並列受信(立ち上がりエッジピン)(FRDM-MCXN947) 現在、32ビットパラレルシフターを構成して、外部デバイスからデータを受信するようにしようとしています。その際、ピンの1つ(FLEX_D4/DATA_VALID)をデータシフトのための信号として使用します。 これまでの進歩により、DATA_VALIDがトリガーされたときに32ビットデータを読み込み、そのデータをeDMA Ping-Pongバッファに移動させることが可能になりました。現在、Printf文を使用してバッファデータをコンソールに読み出すテストを行っています。Shifterにエラーが発生した場合(データシートによると通常はオーバーランを示す)、それもコンソールに出力されます。 私の主な問題はTimerConfigにあると考えています。DATA_VALIDの立ち上がりエッジでShifterが何度も読み取りをトリガーしてしまうのですが、正しいデータを実際に移動させながら一度だけ読み取りを行うような設定が見つかりません。 コンソール出力: 読み取りバッファA: 0x3fffefff シフトエラーコード: 0x8 シフターの状態: 0x0 SHIFTSDEN: 0x8 DMA CSR: 0x0 DMAエラー: 0x0 TCD BITER: 0x2 CSR: 0x12 CH_MUX: 0x40 バッファBの読み取り: 0x3ffffefff シフトエラーコード: 0x8 シフターの状態: 0x0 SHIFTSDEN: 0x8 DMA CSR: 0x0 DMAエラー: 0x0 TCD BITER: 0x2 CSR: 0x12 私のFLEX_IOの設定ファイルを添付します。ありがとう。 クロック|タイマー 通信・制御(I3C |I2C |SPI |FlexCAN |イーサネット |FlexIO) 開発ボード MCX N Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) 更新: 「 kFLEXIO_TimerDisableOnTriggerFallingEdge 」がCPUをコールバック内に留めていたことが分かりました。 タイマー比較後に無効にしたいのですが、このオプションでは SHIFTBUF は 0x0 の値のみを報告し、SHIFTERR フラグは報告しません。 Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) こんにちは、 @carlos_oさん、返信ありがとうございます! 思ったようにタイマーをエッジで表示DATA_VALIDきましたが、Threadは更新しませんでした。現在使用しているコードを添付します。 私が現在直面している問題は、FlexIOを他のデバイスと同等の速度で動作させることです。今のセットアップでは基本的にサンプリングDATA_VALIDで、高速になるとシフターがオーバーランになることがあります。私の考えでは、私のデザインにはMCXとホストデバイス間で共有クロックが必要であり、ホストデバイスが32ビットデータを送る予定だと思います。32ビットデータバス内のピンをこの信号に使えるので、FlexIOのピンを分割する必要がありません。このアイデアについて何かご意見があればぜひお聞かせください! 以前のご質問にお答えします。 1.レジスタは、低速でも意図どおりにデータが格納されています。DATA_VALIDの降下エッジごとに、SHIFTBUFは32ピンからデータを保存し、EDMAは散布・採集方法でピンポンバッファに転送します。 2. アナログ Discovery 2で入力をシミュレートしています。アナログ Discovery 2はデータピンが16本しかないため、32ビットの上限値を書き込み、DATA_VALIDピンでクロックをシミュレートし、未使用のピンを固定しています。低速走行時におけるテストデータは正しく一致している。 3. 私はFRDM-MCXN947を使用しています Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) こんにちは、 @Flexin_On_The_IO さん。 投稿ありがとうございます! あなたのレジスターで現在の行動について教えていただけますか? どのようなテストデータを受信しようとしていますか?また、現在どのようなデータが受信されていますか? どのMCXNを使っているのか教えていただけますか? これはカスタムボードですか?そうでない場合は、使用しているボードを指定してください。 Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) こんにちは、 @Flexin_On_The_IO さん。 返信が遅くなり申し訳ありません。 目指している速度を具体的に教えていただけますか? AN14284 『FlexIO Emulated インターフェース のタイミングパラメータチューニング』をレビューすると良いでしょう。このアプリのノートにはあなたの目標に役立つ情報が載っているかもしれません。    Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) こんにちは、 @carlos_o さん。 私が最低限達成したい速度は18.5MHzです。シフターは約6.25MHzで追いつくことは確認できますが、ハードウェアの制限で高速で問題が:Pました。 下は私のAnalog Discovery 2の波形で、MCLK信号とデータ用のバイナリカウンタ(AD2のピン数が少ないため12ビットのみ)、そしてDATA_VALID信号を手動で制御しています。 高周波数(20 MHz)になると、AD2は実際にはまともな方形波を出せず、信号の整合性が悪いためにFRDMが望ましくないシフトをトリガーしているのではないかと気づきました。 送っていただいたファイルを拝見しましたが、私が解決したいと考えている問題の解決策になるかもしれないと思いました。DATA_VALIDがMCLKと同時に立ち上がり/立ち下がりする場合、クロックが完全にデクリメントできないため、データのシフトが欠落すると考えられます。 私の主な質問は、シフターは通常、他のデバイスからのトリガー信号がローになった後でも、完全なシフトサイクルを完了するために遅延クロック/タイマーを必要とするのかということです。現在のシステム構成では、データを取りこぼさないように、MCLKのエッジ間でDATA_VALIDがハイレベルを維持する必要があります。
記事全体を表示
LPC55S69でUSB HS PLLがロックしない 私はLPCシリーズのマイクロコントローラを用いた初めてのUSB対応製品に取り組んでおり、PHYを直接扱うのはこれが初めてです。これはカスタム基板上で、USB1高速USB接続を使用しています。 現在、dev_cdc_vcom_bm SDKの例を自分のデバイスで動かそうとしています(LPCXpresso55S69の開発ボードでテストした後です)。私のカスタム基板の明らかな違いは、16MHzの水晶発振子ではなく、20MHzの水晶発振子が搭載されている点です。 最初の問題として、PLL_SICレジスタがPLL_LOCKを0と表示しているため、PLLがロックされていないことが分かりました。USBクロック、USB PLL電源、およびUSB PLL有効化が有効になっています。クロック分周器は、20MHzクロックの場合、24で分周するように設定されています(値4)。PLL_PREDIV = 0。USB1_3V3は3.299Vと安定しているので、入力電圧は問題なさそうです。 もう一つの潜在的な問題点は、20MHzの水晶発振器ではなく、20MHzの発振器を使用していることです。別のThreadでそれが問題だと見かけましたが、それはKinetisの部品で、同じIPかどうかはわかりません。たとえそうだとしても、それが論点ずらしだったとしても驚かないだろう。 添付はデバイスの回路図ですが、今回の場合はそれが問題になるはずです。 PLLをロックさせるために、次にどこを調べれば良いか、何か考えはありますか? LPC55xx Re: USB HS PLL not Locking on LPC55S69 こんにちは、 @martinjaymckee さん。 回路図を見ると、LPC55S69のXTAL32M_PピンはECS-2520MVLC-200-CN発振器の出力から駆動されていますが、XTAL32M_Nは接続されていません。 LPC55S69上のUSB HS PLLは、システム発振器ブロックから基準信号を取得します。SDKの例は通常、結晶がXTAL32M_PとXTAL32M_Nに接続されていることを前提としています。 水晶発振器の代わりに外部クロック源を使用する場合は、発振器ブロックの設定を異なるものにする必要があります。 BR ハリー Re: USB HS PLL not Locking on LPC55S69 なるほど、それはもっともだ。XO32Mはバッファバイパスを使用するように設定済みです。メインクロックPLLが正しい発振器入力を使用していることを確認しました。 USB PLLを動作させるために、XO32Mクロックブロックで他に設定を変更する必要はありますか?
記事全体を表示
IMX219 (RPi Cam v2) はプローブしますが、標準の imx93-11x11-frdm-imx219 を使用した FRDM-IMX93 上でストリーミングしません 環境 - ボード:FRDM-IMX93(i.MX93 11x11) - BSP:Yocto Scarthgap、linux-imx-6.6.36-2.1.0(カーネルコミット 20d9F5efABDD), MACHINE=imx93frdm, DISTRO=fsl-imx-xwayland - センサ:Raspberry Pi カメラモジュールv2(Sony IMX219)、P6 MIPI-CSIコネクタに搭載 - デバイスツリー:純正のarch/arm64/boot/dts/freescale/imx93-11x11-frdm-imx219.dtso 概要 BSPはこのボード用にIMX219デバイスツリーオーバーレイとセンサを同梱しています 電源が入り、I2Cで正しく検出されます(チップIDは0x10読み0x0219)。しかし、 V4L2キャプチャパイプラインはフレームを一切出力しません。たどってみると、どうやら 下流のステージングカメラドライバーには3つの独立した問題があります。本線 ソニーのIMX219ドライバーは現代のV4L2サブ開発モデルに従っていますが、NXPのステージングは CSI/ISIスタックは依然として古いov5640スタイルモデルを前提としています。 問題1 — メディアグラフの分解(「センサーレジスタが失敗」)。 drivers/staging/media/imx/imx8-media-dev.c: mxc_md_create_links()呼び出し media_entity_call(センサ、link_setupなど)。メインラインのIMX219ドライバーは対応していません 実装.link_setup、したがって、呼び出しは-ENOIOCTLCMD (-515)を返し、次のように扱われます 致命的だ。センサー>CSIリンクは一度も作成されず、メディア機器全体が解体されます: mx8-img-md: 登録センサーサブデバイス: imx219 2-0010 (1) mx8-img-md: created link [mxc_isi.0]=> [mxc_isi.0.capture] mx8-img-md: リンク [mxc-mipi-csi2.0] を作成しました=> [mxc_isi.0] mx8-img-md: subdev_notifier_complete エラー終了 mxc-md 42800000.bus:camera:センサーレジスタが故障しました MXC-MD:42800000のプローブ。バス:カメラエラー -515 で失敗しました (ov5640 は ov5640.c のおかげで動作します)(何もしない.link_setupを提供します。) 問題2 — streamonが中止(「サブ開発者に失敗s_power呼べ!」) ドライバ/ステージング/プレスリリース、製品ニュース/IMX/IMX8-ISI-cap.C: mxc_isi_cap_streamon() が呼び出します v4l2_subdev_call(src_sd, core, s_power, 1) は、失敗を致命的として扱います。imx219は ランタイム PM であり、非推奨の .s_power を実装していません。そうするとコールが戻ってきます -ENOIOCTLCMDとストリーミング中止: mxc_isi.0:サブデバイスs_powerの呼び出しに失敗しました! (ov5640 は ov5640.c のおかげで動作します).s_power を提供します。 問題3 — CSIがYUV422にハードコードされているが、RAW10を解析できない(リンクはあるがフレームは0) ドライバ/staging/media/imx/dwc-mipi-csi2.c は実質的に YUV422 専用です: - dwc_csi2h_formats[]はSBGGRのバイヤーコードのみを記載しており、SRGGBは含まれていません(IMX219はSRGGB10です)。 したがってfind_csi2h_format()は失敗し、フォーマットは静かにYUYVに戻ります。 - dwc_mipi_csi2_set_fmt() は CSI2H-> フォーマットを保存しないため、disp_mix_gasket_config() デフォルトのYUYVコードが表示されます。 - dwc_mipi_csi2_param_init() ハードコード ipi_cfg->data_type = DT_YUV422_8。 CSI は誤ったデータタイプを報告し、すべてのフレームがキャプチャされるにもかかわらず、フレームはキャプチャされません。 リンクが有効で、VIDIOC_STREAMONが0を返します。 mxc-mipi-csi2.0: フォーマット: 0x2008 <- YUYV; 期待値: 0x300f (SRGGB10) 私たちが成功した理由(ご検証のため) (a) imx8-media-dev / imx8-isi-cap に欠落したオプション操作を処理した後 (-ENOIOCTLCMD、link_setup / s_power)非致死的であり、(b)教えること dwc-mipi-csi2 について SRGGB8/10/12(交渉されたフォーマットを保存し、IPIを設定する) data_typeから)パイプラインは正しく表示されます:- MXC-mipi-csi2.0:フォーマット: 0x300f imx219 -> mxc-mipi-csi2.0 -> mxc_isi.0-> /dev/video0 約27fps、ライブフレームをキャプチャ。 修正(a)はセンサーに依存しず、このスタック上の現代的なメインラインセンサーにも役立ちます。 修正(b)はCSIにRAWバイヤーサポートを追加します。 副次的な注意点 — モジュールのロードオーダー 新規起動時にも、imx8_media_dev が実行されることによりグラフの登録に失敗します。 imx219モジュールがロードされる前に非同期通知器がロードされます。ビデオノードが登録され、 その後、登録が解除された。マニュアル「modprobe -r imx8_media_dev imx219; modprobe imx219;」 「modprobe imx8_media_dev」を実行すると、それが再構築されます。ソフト依存関係/ロード順序のヒントがあれば、 既成概念にとらわれずに仕事をする。 質問 1.IMX219 はこの BSP の FRDM-IMX93 で公式にサポート/検証されたカメラですか、 意図された/検証済みのパスは、AP1302 ISPモジュールですか?出荷されたimx219.dtso bare-IMX219は動作するはずだと示唆している。 2. 上記の3つの動作は、修正を受け入れるバグとみなされますか、それとも 推奨される構成や、動作確認済みの構成で、私たちが見落としているものはありますか? 3.もしお役に立てるようでしたら、パッチをクリーンなコミットとして共有させていただきます。 ありがとう! FRDM-i.MX93 #IMX219 RPI-CAM-MIPI Yocto Project Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 こんにちは、 ご連絡ありがとうございます。ソフトウェアチームに確認し、後のBSPで修正があるか再度確認します。できるだけ早く更新します。 よろしくお願いいたします。 アルド。 Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 こんにちは、 残念ながら、i.MX93 FRDM BSPは、後になってこの問題を調査していた際に、当社のBSPで正式にサポートされるまでサポートされていませんでした。そのため、このイメージは、同じBSPのベータ版である可能性があります。 FRDMボードは6.12.34から2.1.0までサポートしていますそして後のリリースについては、あなたの発見に感謝しますし、ボードに含まれるデフォルト画像を使って検証する方にとって役立つはずです。ソフトウェアチームで追跡します。 よろしくお願いいたします。 アルド。
記事全体を表示
S32K328:CM7_0 CM7_2 DTCMバックドアへのアクセスが不正確なバスフォールトを引き起こす NXPチームの皆様、こんにちは。   当社では、RTD 7.xを搭載したS32K328を使用しています。   ソフトウェアのセットアップ: - CM7_0はブートローダーを実行します。 - CM7_1は第二のアプリケーションで使用されます。 - CM7_2はアプリケーションコードの実行を目的としていません。 - TCMバックドア/AHBS経路を通じてCM7_2 DTCMをシステムメモリとして使用できるかどうかCM7_0評価しています。   リファレンス・マニュアルの文脈: 「メモリマップ」章では、ITCM/DTCMは他のマスター、特にCortex-M7コアやeDMAから32ビットAHBSインターフェースからアクセス可能であると述べられています。 「TCMをシステムメモリとして」のセクションでは、有効化されたコアは無効化または待機中のコアのTCMを以下以下で使用可能とされています: 1. ターゲットコアTCMコントローラクロックの有効化: MC_ME PRTN2_COFB2_CLKEN[REQ64] for Cortex-M7_2 2. ターゲットコアCPUWAITの設定: DCM_GPR DCMRWF4[CM7_2_CPUWAIT] 3. ターゲットコアクロック/アクセスパスの有効化: MC_ME PRTN0_CORE4_PCONF[CCE]   私たちが試したこと: 1. DCM_GPR DCMRWF4[CM7_2_CPUWAIT]を設定します。 2. MC_ME PRTN2_COFB2_CLKEN[REQ64]を設定します。 3. MC_ME PRTN2_PUPD[PCUD]を設定します。 4. MC_ME CTL_KEYシーケンスを適用しました。 5. PRTN2_PUPD[PCUD]がクリアされるまで待機しました。 6. PRTN2_COFB2_STATを読み取り、bit0/BLOCK64がアクティブであることを確認した。 7. MC_ME PRTN0_CORE4_PCONF[CCE]を設定します。 8. MC_ME PRTN0_CORE4_PUPD[CCUPD]を設定します。 9. MC_ME CTL_KEYシーケンスを適用しました。 10. PRTN0_CORE4_STAT[CCS]が1になるまで待機しました。 11. 実験のため、MPUを一時的に無効にした。 12. CM7_2 DTCMバックドアアドレスへの32ビット書き込みを1回試行しました。   観測結果: - PRTN2_COFB2_STATはTCMコントローラのクロック要求がアクティブであることを示します。 - PRTN0_CORE4_STAT[CCS] が 1 になります。 - CM7_2 DTCMバックドア領域への最初の32ビット書き込みにより、不正確なバスフォルトが発生し、ハードフォルトにエスカレートします。   質問: 1.S32K328の場合、CM7_0からアクセス可能な正しいCM7_2 DTCMバックドア/システムアドレス範囲は何ですか? 2. CM7_2 CM7_0 CM7_2がCPU待機中にいる間、DTCMバックドアアクセスはサポートされていますか? 3.MC_MEとDCM_GPRの設定以外に、CM7_0がCM7_2のDTCMバックドアに書き込めるようにするには、XRDCの設定が必要ですか? 4. テストのためにMPUを一時的に無効にした場合でも、MPU領域は必要ですか? 5. TCMバックドアパスを使用する前に、MSCM/MCM/XBIC/ENEDCの設定が必要ですか? 6.PRTN2_COFB2_STAT[BLOCK64]はTCMコントローラークロックが有効であることCM7_2確認するための正しいステータスビットでしょうか? 7. PRTN0_CORE4_STAT[CCS]は、クロック/アクセスパスが有効であることCM7_2確認するための正しいステータスビットでしょうか? 8. バックドアアクセスによるDTCM ECC初期化の場合、CM7_0からの32ビット書き込みで十分でしょうか? 9. 最初のバックドア書き込みによって不正確なバスフォルトが発生した場合、その障害がXRDC、インターコネクト、またはマッピングされていないアドレスのいずれに起因するものかを特定するために、どのフォルト/XRDCレジスタをチェックする必要がありますか?   現在の目標: 私たちは最小限の煙試験のみを検証したいのです。 - CM7_2 DTCMバックドアへの32ビット書き込み1回、 - それから読み返します、 - 生産用途を検討する前に。   よろしくお願いします。 Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault こんにちは、 @krishna_Bugudi さん、 1. S32K3xx_memory_map.xlsx を参照してください。DTCM_2 バックドア (アドレス 0x21800000) 2. はい 3. なし 4. なし 5. なし 6. はい、RMのセクション3.4「TCMをシステムメモリとして」を参照してください。 7. はい 8. はい、RMの表102を参照してください。メモリECC初期化の概要 9. XRDCが無効になっていると書かれていましたね。したがって、XRDCによって報告されることはない。 住所はどこに書きますか? よろしくお願いいたします。 ダニエル Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault こんにちは、ダニエルさん。   ご確認いただきありがとうございます。   テストを更新してRM/NXPの手順に完全に準拠するようにしましたが、依然としてストアのハングアップが発生しています。   確認済みの住所: 私たちは以下の宛先に手紙を書いています。   0x21800000   これはS32K3xx_memory_map.xlsxと一致します。   DTCM_2 バックドア: - 開始アドレス: 0x21800000 - 終了アドレス: 0x2181FFFF - S32K328実装サイズ:128KB   メモリマップには、PRAM2_TCM_XBICがS32K328の以下の場所に存在することも示されています。 0x40408000 - 0x4040BFFF   そしてそれを次のように説明しています。 「クロスバー整合性チェッカー(PRAM2およびTCMバックドアAHBスプリッター)」   一方、0x40400000 の TCM_XBIC は S32K328 用に予約済みとしてマークされています。   最新のテストシーケンス:   1. MC_ME PRTN2_COFB2_CLKEN[REQ64]を設定します。 2. MC_ME PRTN2_PUPD[PCUD]を設定します。 3. MC_ME CTL_KEYシーケンスを適用します。 4. PRTN2_PUPD[PCUD]がクリアされるまで待ちます。 5. PRTN2_COFB2_STATを読み込む。   観察結果: PRTN2_COFB2_STAT = 0x00000039   6. DCM_GPR DCMRWF4[CM7_2_CPUWAIT]を設定します。 読み上げ確認: DCMRWF4 = 0x00080000   7. MC_ME PRTN0_CORE4_ADDR を安全なループアドレスに設定します。 読み返し: PRTN0_CORE4_ADDR = 0x00402408   8. MC_ME PRTN0_CORE4_PCONF[CCE]を設定します。 9. MC_ME PRTN0_CORE4_PUPD[CCUPD]を設定します。 10. MC_ME CTL_KEYシーケンスを適用します。 11. PRTN0_CORE4_STAT[CCS]が1になるまで待ちます。   観察結果: PRTN0_CORE4_STAT = 0x00000001   12. MPU CM7_0一時的に無効化して隔離する。 無効化前のMPU_CTRL = 0x00000003   13. 32ビット書き込みを1回試行します。   *(volatile uint32_t *)0x21800000 = 0u;   最新のパンくずリスト:   [CORE2_DTCM_SMOKE] S4B: WORD0 書き込み開始アドレス=0x21800000   店舗の次のパンくずリストに到達していません。   [CORE2_DTCM_SMOKE] S4B1: DSBの前にWORD0ストアが発行されました   そのため、ストア自体が次の指示に到達する前に停止したり完了しないように見えます。今回の最新のテストでは、DSB(深層破壊領域)には到達していません。   質問: あなたが確認した内容: - 0x21800000 は正しい DTCM_2 バックドア アドレスです。 - CM7_2がCPUWAIT中である間はCM7_0アクセスがサポートされます。 - XRDC/MPU/MSCM/MCM/XBIC/ENEDC の追加設定は不要です。 - PRTN2_COFB2_STAT[BLOCK64] は正しいステータスビットです。 - PRTN0_CORE4_STAT[CCS] は正しいステータスビットです。 - 32ビット書き込みはDTCM ECC初期化に有効です。   最初の32ビットストアが完成前に0x21800000止まる原因は何でしょうか?   S32K328のPRAM2_TCM_XBIC(アドレス0x40408000)でTCMバックドアAHBスプリッタエラーを検査すべきでしょうか?   もしそうなら、以下の場所を教えていただけますか: 1.PRAM2_TCM_XBIC ステータス/エラーレジスタを読み取ります。 2. DTCM_2バックドアトランザクションの失敗時に想定されるエラー表示。 3. アクセスを再試行する前にエラークリアシーケンスが必要かどうか。 4. ストアが完了しなかった場合にキャプチャする必要のあるその他の MC_ME/DCM/MSCM/XBIC/fault レジスタ。   よろしくお願いいたします。 クリシュナ Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault こんにちは、クリシュナさん。 Copilot は次のように述べています。「テストしたところ、プロジェクトでデフォルトの MPU が有効になっている場合 (system.c で設定) にのみこのエラーを再現できました。」S32DS RTDプロジェクトによって生成されました。プロジェクトでMPUが無効化されているかどうかを確認するためにMPUレジスタをダンプすることはできますか? よろしくお願いいたします。 ダニエル
記事全体を表示
MCUXpresso SDK 支持 Ezurio Sona NX611 你好, MCUXpresso SDK FreeRTOS 是否支持 Ezurio Sona NX611 无线网卡?因为它使用的是NXP IW611无线电芯片,所以我认为应该可以支持,对吗? Re: Ezurio Sona NX611 support in MCUXpresso SDK 你好, 希望你一切都好。我建议您直接查看我们任何 SDK 示例的配置以及支持的模块。 例如,在 iMX RT1170 的 wifi_cli 中,您可以找到以下模块:   如果您正在寻找其他模块,则需要自行添加特定支持,并以 IW61x 的可用启用功能为基础。 顺祝商祺! 里卡多 Re: Ezurio Sona NX611 support in MCUXpresso SDK 谢谢。如何添加对该模块的特定支持?我看到 mcuxsdk/components/wifi_bt_module/ /tx_pwr_limits 中每个模块都有特定的设置。此外, mcuxsdk/中间件/wifi_nxp/incl/目录下还有多个校准数据头文件,例如wifi_cal_data_override.h ,其内容如下:“客户可以覆盖 ext_cal_data[] 中的数据以设置特定的天线校准数据”。 如何为新模块正确设置这些参数(功率限制和校准数据)? 是否有关于如何添加对新无线模块支持的完整手册?我的芯片是基于 IW611 的,所以我想我可以参考 NXP IW611-MURATA-2DL-M2,但我怎么知道我是否需要更改任何值呢? Re: Ezurio Sona NX611 support in MCUXpresso SDK 谢谢你, @Ricardo_Zamora 。 我选择了 NXP-IW611-MURATA-2DL-M2 卡,因为 Ezurio Sona NX611 使用的是相同的芯片 (IW611),我认为它应该可以工作。但是,当 SDK 代码尝试将固件下载到无线网卡时,出现以下错误: 09/07/2026 13:04:32.589 [RX] - [FW Download] Start to download firmware from 0x60143230: 727 09/07/2026 13:04:38.560 [RX] - [wifi_io] Error: SDIO - FW Ready Registers not set [wifi] Error: sd_wifi_init failed. status code -1 [wlcm] Error: wifi init/reinit failed. status code -1 [!] WPL_Init: Failed, error: 1 我知道 Sona NX611 不在支持的模块列表中,但我认为它应该仍然可以工作,因为它与某个支持的板共享无线芯片型号 IW611。 Re: Ezurio Sona NX611 support in MCUXpresso SDK 你好, 我建议选择 Ezurio,他们能提供针对该模块的特定支持。不同模块合作伙伴的具体实施方案可能有所不同。 此致, 里卡多
記事全体を表示
ADC向けモジュール選択アプリケーション MXPボードを中心にアプリケーションを開発し始めたいのですが、使える特定の計算モジュールを選ぶのに苦労しています。種類が多すぎて少し圧倒されていて、どの製品が本当に自分の必要を満たしてくれるのか分かりません。 私の理解では、ADCを提供するSoCは複数存在する。より高い計算能力と、少なくとも4つのADCチャネルが必要です。どの特定の開発ボードを使い、どのモジュールやボードを使ってこのアプリケーションを作ればよいのでしょうか?購入可能な基板の選定を手伝ってくれるサプライヤーはありますか? Re: Module selection for ADC application MPUは十分な処理能力を確保するためだと思いますし、消費電力やコストをあまり心配しないからです。私たちはProfinetを利用できることにも関心があります。そして、1チャネルあたり100ksps以上のADCチャネルが少なくとも4つあるはずです。私の理解では、i.MX 9 MPUが適合する可能性があると思います。 私が考えている代替案としては、別々のADCモジュールとイーサネットモジュールを持つRaspberry Pi Picoを買うことです。しかし、NXPのシステムなら私のニーズをすべて満たしてくれるはずだと私は考えています。しかし、特定のチップで妥協しても製品の種類が非常に多様で、私にとって最も重要な機能である適切なADCが手に入るかどうかはしばしば不透明です。 Re: Module selection for ADC application こんにちは、 何を探しているのですか? これはMCUですか?MPUですか? プロジェクトについてさらに詳しい情報を提供していただければ、その点でお手伝いできます。 また、ウェブページ内に商品検索機能もあります https://www.nxp.com/design/design-center/development-boards-and-designs:EVDEBRDSSYS?collection=devBoardsDesigns&start=0&max=12&language=en&query=typeTax%3E%3Et633_t763 敬具/サルドス、 アルド。 Re: Module selection for ADC application こんにちは、 はい、どのi.MX9ファミリーでも使えるはずです。グラフィックやその他のペリフェラルによって、どちらがあなたの用途に合うかによります。 そのため、i.MX91、i.MX93、i.MX95はFRDMボードを搭載し、ADCの仕様も同じです: • 8チャネルで構成されており、そのうち4チャネルはパッケージ内のピンに接続されています。 • 1MS/sの動作周波数をサポートします • 複数の開始変換モード(通常、注入) ノーマルモードではワンショットおよびスキャン(連続)変換に対応しています インジェクターモードはワンショット変換のみに対応しています • 任意のADCチャネルで16のトリガーチャネルを使用可能にするTRGMUXのサポート i.MX93 https://www.nxp.com/products/i.MX93 i.MX93 FRDM https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-IMX93 i.MX91 https://www.nxp.com/products/i.MX91 i.MX91 FRDM https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-IMX91 i.MX95 https://www.nxp.com/products/i.MX95 i.MX95 FRDM https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-IMX95 また、それぞれのEVKも確認してみると良いでしょう。RPIについて言及されているので、FRDMボードがあなたにとって興味深いものになると思います。 よろしくお願いいたします。 アルド。
記事全体を表示
LPC55S69上的USB HS PLL无法锁定 我正在开发我的第一个采用 LPC 系列微控制器的 USB 产品,这也是我第一次直接操作 PHY。这是在定制电路板上,使用 USB1 高速 USB 连接。 我目前正在尝试让 dev_cdc_vcom_bm SDK 示例在我的设备上运行(在 LPCXpresso55S69 开发板上测试之后)。我的定制电路板最明显的区别在于它安装的是 20MHz 晶振而不是 16MHz 晶振。 我找到的第一个问题是 PLL_SIC 寄存器显示 PLL_LOCK 为 0,因此 PLL 没有锁定。USB时钟、USB PLL电源和USB PLL使能已启用。时钟分频器设置为 24 分频(值 4),用于 20MHz 时钟。PLL_PREDIV = 0。USB1_3V3 读取到稳定的 3.299v,因此输入电压似乎正常。 另一个潜在的问题是,我使用的是 20MHz 振荡器,而不是 20MHz 晶体振荡器。我看到另一个帖子也遇到了同样的问题,但那是 Kinetis 的一个部件,我不确定是不是同一个 IP。即便如此,如果这只是个转移视线的伎俩,我也不会感到惊讶。 附件是该设备的原理图,不过这应该不是问题所在。 关于如何使PLL锁定,您有什么下一步的考虑方向吗? LPC55xx Re: USB HS PLL not Locking on LPC55S69 嗨@martinjaymckee 从你的原理图来看,LPC55S69 XTAL32M_P 引脚由 ECS-2520MVLC-200-CN 振荡器输出驱动,而 XTAL32M_N 引脚则未连接。 LPC55S69 上的 USB HS PLL 的参考信号来自系统振荡器模块。SDK 示例通常假设 XTAL32M_P 和 XTAL32M_N 之间连接有晶体。 当使用外部时钟源而不是晶体时,振荡器模块的配置方式应该有所不同。 BR 哈里 Re: USB HS PLL not Locking on LPC55S69 好吧,这很合理。我已经将 XO32M 配置为使用缓冲区旁路。我已经确认主时钟PLL使用的是正确的振荡器输入。 我还需要更改 XO32M 时钟模块的其他配置才能使 USB PLL 工作吗?
記事全体を表示
32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) I am currently trying to configure a 32-bit parallel Shifter to receive data from an external device with one of the pins (FLEX_D4/DATA_VALID) being used as a signal to Shift in the data.  The progress I have made has allowed me to read in the 32-bit data when DATA_VALID has triggered and move the data into an eDMA Ping-Pong buffer. I am currently testing through Printf statements of reading the buffer data to a console and if the Shifter has any errors (usually indicating Overrun according to the datasheet) they will print to the console as well.  I believe my main issue is with the TimerConfig as it is triggering the Shifter to read too many times on one rising edge of DATA_VALID but I have not found a configuration that allows me to read only once while actually moving the correct data.  Console Output:  Reading Buffer A: 0x3fffefff Shifter Error Code: 0x8 Shifter Status: 0x0 SHIFTSDEN: 0x8 DMA CSR: 0x0 DMA Error: 0x0 TCD BITER: 0x2 CSR: 0x12 CH_MUX: 0x40 Reading Buffer B: 0x3fffefff Shifter Error Code: 0x8 Shifter Status: 0x0 SHIFTSDEN: 0x8 DMA CSR: 0x0 DMA Error: 0x0 TCD BITER: 0x2 CSR: 0x12 My FLEX_IO setup is attached. Thank you. Clock|Timers Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) Development Board MCXN Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Update: I was able to deduce that "kFLEXIO_TimerDisableOnTriggerFallingEdge" was keeping my CPU in the callback. I believe I want to disable after a Timer Compare but with this option SHIFTBUF only reports a value of 0x0 but with no SHIFTERR flag.  Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Hi  @Flexin_On_The_IO  Thank you for your post! Could you please share the current behavior you see in your register?  Which test data are you trying to receive and what you currently get?  Could you please share which MCXN are you using?  Is it a custom board? if not, please specify the board you are using Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Hi @carlos_o thank you for the reply! I was able to get the Timer reading on DATA_VALID edge like I wanted but did not update the thread. My current code is attached. The problem I am facing now is getting the FlexIO to keep up with other devices. In my current setup I am basically sampling DATA_VALID and at higher speeds, the Shifter can get Overrun. My thinking is that my design requires a shared clock between the MCX & host device that would be sending the 32-bit data. I can use a pin within the 32-bit data bus to be this signal so I do not need to breakup the FlexIO pins. Any input on this idea would be welcome! To answer your previous questions: 1. The registers are populating as intended at lower speeds. On every DATA_VALID falling edge, the SHIFTBUF stores data from the 32 Pins and the EDMA transfers to my Ping-Pong buffer via a Scatter-Gather method. 2. I am simulating input through an Analog Discovery 2, since that only has 16 data pins I am just writing the upper values of the 32-bits, simulating a clock on the DATA_VALID pin, and tying the unused pins down. Test data is matching correctly at low speeds. 3. I am using the FRDM-MCXN947 Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Hi @Flexin_On_The_IO  Apologize the late reply,  Could you please specify the speeds you are trying to achieve?  You could review AN14284: Timing Parameter Tuning for FlexIO Emulated Interface, this app note could have some helpful information to your goal.    Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Hello again, @carlos_o  The bare minimum speed I am trying to reach is 18.5MHz. I can confirm the Shifter does keep up at around 6.25MHz but I was having issues at higher speeds due to my hardware limitations :P.  Below is my Analog Discovery 2 waveform where I am just providing the MCLK signal, a binary counter for the data (12-bit only due to low pin count on AD2), and manually controlling the DATA_VALID signal.  When I get to higher frequencies (20 MHz) I realize the AD2 cannot actually provide a decent square wave and may be causing my FRDM to trigger undesired Shifts due bad signal integrity.  I was looking at the file you sent me and I think it may be a solution to an issue I want to take care of. If DATA_VALID rises/falls at the same time as MCLK I believe it misses the a Shift of data since the clock was not able to fully decrement. My main question is do the Shifters usually require a delayed clock/Timer in order to complete their full shift cycle even after the Trigger from the other device has gone low? My current setup requires the DATA_VALID to remain high between MCLK edges to not miss the data.
記事全体を表示
S32K328:CM7_0 访问 CM7_2 DTCM 后门导致总线故障不精确 您好,NXP团队,   我们正在使用 S32K328 和 RTD 7.x。   软件设置: - CM7_0 运行引导加载程序。 - CM7_1 被第二个应用程序使用。 - CM7_2 不用于执行应用程序代码。 - 我们正在评估 CM7_0 是否可以通过 TCM 后门/AHBS 路径使用 CM7_2 DTCM 作为系统内存。   参考手册内容: “内存映射”章节指出,其他主设备(包括其他 Cortex-M7 内核和 eDMA)可以通过 32 位 AHBS 接口访问 ITCM/DTCM。 “TCM 作为系统内存”部分指出,已启用的核心可以在以下情况下使用已禁用/等待的核心的 TCM: 1. 启用目标核心 TCM 控制器时钟: MC_ME PRTN2_COFB2_CLKEN[REQ64] 适用于 Cortex-M7_2 2. 设置目标核心 CPUWAIT: DCM_GPR DCMRWF4[CM7_2_CPUWAIT] 3. 启用目标内核时钟/访问路径: MC_ME PRTN0_CORE4_PCONF[CCE]   我们尝试了: 1. 设置 DCM_GPR DCMRWF4[CM7_2_CPUWAIT]。 2. 设置 MC_ME PRTN2_COFB2_CLKEN[REQ64]。 3. 设置 MC_ME PRTN2_PUPD[PCUD]。 4. 应用 MC_ME CTL_KEY 序列。 5. 等待 PRTN2_PUPD[PCUD] 清除。 6. 读取 PRTN2_COFB2_STAT 并观察到 bit0/BLOCK64 处于活动状态。 7. 设置 MC_ME PRTN0_CORE4_PCONF[CCE]。 8. 设置 MC_ME PRTN0_CORE4_PUPD[CCUPD]。 9. 应用 MC_ME CTL_KEY 序列。 10. 等待 PRTN0_CORE4_STAT[CCS] 变为 1。 11. 为进行实验,暂时禁用了 MPU。 12. 尝试向 CM7_2 DTCM 后门地址进行一次 32 位写入。   观察到的结果: - PRTN2_COFB2_STAT 表示 TCM 控制器时钟请求处于活动状态。 - PRTN0_CORE4_STAT[CCS] 变为 1。 - 首次向 CM7_2 DTCM 后门区域写入 32 位数据会导致不精确的 BusFault 升级为 HardFault。   问题: 1.对于 S32K328,从 CM7_0 可访问的正确 CM7_2 DTCM 后门/系统地址范围是什么? 2. 当 CM7_2 处于 CPUWAIT 状态时,是否支持从 CM7_0 访问 CM7_2 DTCM 后门? 3.除了 MC_ME 和 DCM_GPR 设置之外,是否还需要任何 XRDC 配置才能允许 CM7_0 写入 CM7_2 DTCM 后门? 4. 即使在测试中暂时禁用 MPU,是否也需要任何 MPU 区域? 5. 使用 TCM 后门路径之前是否需要进行任何 MSCM/MCM/XBIC/ENEDC 设置? 6.PRTN2_COFB2_STAT[BLOCK64] 是否是确认 CM7_2 TCM 控制器时钟是否活动的正确状态位? 7. PRTN0_CORE4_STAT[CCS] 是否是确认 CM7_2 时钟/访问路径是否处于活动的正确状态位? 8. 对于通过后门访问进行 DTCM ECC 初始化,从 CM7_0 写入 32 位是否足够? 9. 如果第一次后门写入导致不精确的总线故障,应该检查哪些故障/XRDC 寄存器来确定故障是由于 XRDC、互连还是未映射地址引起的?   当前目标: 我们只想验证一个最基本的冒烟测试: - 对 CM7_2 DTCM 后门进行一次 32 位写入, 然后回读, 在考虑任何生产用途之前。   谢谢! Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault 你好@krishna_Bugudi , 1. 请参阅 S32K3xx_memory_map.xlsx 文件,DTCM_2 后门位于 0x21800000 2. 是 3. 无 4. 无 5. 无 6. 是的,请参阅 RM 第 3.4 节 TCM,即系统内存。 7. 是 8. 是的,请参阅 RM,表 102。内存 ECC 初始化摘要 9. 您提到XRDC已被禁用。因此,XRDC 不会报告此问题。 你要写什么地址? 此致, 丹尼尔 Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault 你好,丹尼尔,   谢谢你的确认。   我们已更新测试,使其完全按照 RM/NXP 的顺序执行,但仍然看到商店挂起。   已确认地址: 我们写信给:   0x21800000   这与 S32K3xx_memory_map.xlsx 匹配:   DTCM_2 后门: 起始地址:0x21800000 - 结束地址:0x2181FFFF - S32K328 实现大小:128 KB   内存映射表还显示 PRAM2_TCM_XBIC 位于 S32K328 的以下位置: 0x40408000 - 0x4040BFFF   并将其描述为: “横杆完整性检查器(PRAM2 和 TCM 后门 AHB 分线器)”   TCM_XBIC 位于 0x40400000,标记为 S32K328 保留。   最新测试序列:   1. 设置 MC_ME PRTN2_COFB2_CLKEN[REQ64]。 2. 设置 MC_ME PRTN2_PUPD[PCUD]。 3. 应用 MC_ME CTL_KEY 序列。 4. 等待 PRTN2_PUPD[PCUD] 清除。 5. 读取 PRTN2_COFB2_STAT。   观察到: PRTN2_COFB2_STAT = 0x00000039   6. 设置 DCM_GPR DCMRWF4[CM7_2_CPUWAIT]。 回读确认: DCMRWF4 = 0x00080000   7. 将 MC_ME PRTN0_CORE4_ADDR 设置为安全循环地址。 回读: PRTN0_CORE4_ADDR = 0x00402408   8. 设置 MC_ME PRTN0_CORE4_PCONF[CCE]。 9. 设置 MC_ME PRTN0_CORE4_PUPD[CCUPD]。 10. 应用 MC_ME CTL_KEY 序列。 11. 等待 PRTN0_CORE4_STAT[CCS] 变为 1。   观察到: PRTN0_CORE4_STAT = 0x00000001   12. 暂时禁用 CM7_0 MPU 进行隔离。 禁用前的 MPU_CTRL = 0x00000003   13. 尝试一次 32 位写入操作:   *(volatile uint32_t *)0x21800000 = 0u;   最新面包屑日志:   [CORE2_DTCM_SMOKE] S4B:WORD0 写入开始地址=0x21800000   商店之后的下一个面包屑导航:   [CORE2_DTCM_SMOKE] S4B1:WORD0 存储于 DSB 之前   因此,商店本身似乎在执行到以下指令之前就停滞不前或未能完成。在最新的测试中,DSB 并未达到。   问题: 既然你已经确认了这一点: - 0x21800000 是正确的 DTCM_2 后门地址, - 当 CM7_2 处于 CPUWAIT 状态时,支持对 CM7_0 的访问, - 无需额外的 XRDC/MPU/MSCM/MCM/XBIC/ENEDC 设置, - PRTN2_COFB2_STAT[BLOCK64] 是正确的状态位, - PRTN0_CORE4_STAT[CCS] 是正确的状态位, - 32 位写入对 DTCM ECC 初始化有效,   什么原因会导致第一次 32 位存储到 0x21800000 的操作在完成前停滞?   我们是否应该检查 S32K328 上 0x40408000 处的 PRAM2_TCM_XBIC 是否存在 TCM 后门 AHB 分路器错误?   如果可以,请您提供以下信息: 1.要读取的 PRAM2_TCM_XBIC 状态/错误寄存器。 2. DTCM_2 后门交易失败的预期错误指示。 3. 在重试访问之前是否需要任何错误清除序列。 4. 当存储操作未完成时,应捕获的任何其他 MC_ME/DCM/MSCM/XBIC/故障寄存器。   此致, 克里希那 Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault 你好,克里希纳, Copilot 说:我已经测试过了,只有当项目中启用默认 MPU(在 system.c 中配置)时才会出现此错误。由 S32DS RTD 项目生成)。能否导出 MPU 寄存器,以验证您的项目中是否禁用了 MPU? 此致, 丹尼尔
記事全体を表示
i.MX8MPLUS uSDHC HS400モード(ストロボ機能強化) HS400の強化ストロボを有効にするための推奨手順はありますか?MIX_CTRLレジスタのEN_HS400_MODEを設定するだけで十分でしょうか、それともSTROBE_DLL_CTRLレジスタに追加の変更が必要でしょうか? よろしくお願いいたします。 ステファン Re: i.MX8MPLUS uSDHC HS400 mode with enhanced strobe こんにちは、 @Stefan_CIT HS400ESでは、eMMC側とホスト側の両方で同時に設定を行う必要があります。EN_HS400_MODEを設定するだけでは、ホスト側の設定の一部に過ぎず、HS400拡張ストロボ機能を有効にするには不十分です。 Linux BSPを使っている場合、ドライバーは自動的にDLLとチューニングの設定を完成させます。 よろしくお願いします、 志明 Re: i.MX8MPLUS uSDHC HS400 mode with enhanced strobe こんにちは@Zhiming_Liu ご返信ありがとうございます。 私たちは #I.MX8MPLUSとINTEGRITY OSを使い、uSDHC-ドライバは自分たちで管理しています。そこで、Linuxドライバからプロセスを移行してみます よろしくお願いいたします。 ステファン Re: i.MX8MPLUS uSDHC HS400 mode with enhanced strobe ストローブDLLと強化ストロボモードへの切り替えについては、参考マニュアルにより良いドキュメントがあります。 https://www.nxp.com/docs/en/reference-manual/IMX93RM.pdf i.MX9プロセッサは同じuSDHC-IPを持っているようです。 よろしくお願いいたします。 ステファン
記事全体を表示
无法在 Zephyr 的单个 FlexSPI 上配置两个或非闪存 您好, 我正在使用基于 i.mx RT1050 板的板。有两个 NOR 闪光灯连接到 flexspi 的两组闪光灯。我还使用库 1 来启动 XIP。当我只使用一个闪光灯时,它工作正常。但当我添加第二个闪光灯时,我遇到了一个问题,似乎 LUT 的空间不足。我的两个闪光灯是 w25q128 和 w25q64,分别连接到 flexspi 端口 A1 和 B1。   这是我在叠加文件中的配置。   / { chosen { zephyr,flash-controller = &w25q128jv; zephyr,flash = &w25q128jv; zephyr,code-partition = &slot0_partition; }; };   &flexspi { status = "okay"; rx-clock-source = <1>; pinctrl-0 = <&pinmux_flexspi1>; pinctrl-names = "default"; reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(64)>; /delete-node/ is25wp064@0; w25q128jv: w25q128jv@0 { compatible = "nxp,imx-flexspi-nor"; size = ; reg = <0>; spi-max-frequency = <104000000>; status = "okay"; jedec-id = [ef 70 18]; erase-block-size = ; write-block-size = <16>; enter-4byte-addr = <0>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; boot_partition: partition@0 { label = "mcuboot"; reg = <0x00000000 DT_SIZE_K(256)>; }; /* Adjusted slot sizes for 16MB total */ slot0_partition: partition@20000 { label = "image-0"; reg = <0x00040000 (DT_SIZE_M(3) + DT_SIZE_K(512))>; }; slot1_partition: partition@320000 { label = "image-1"; reg = <0x00320000 DT_SIZE_M(3)>; }; storage_partition: partition@620000 { label = "storage"; reg = <0x00620000 (DT_SIZE_M(1) - DT_SIZE_K(768))>; }; }; }; w25q64jv: w25q64jv@2 { compatible = "nxp,imx-flexspi-nor"; size = ; /* 8MB (64Mbit) flash */ reg = <2>; /* FlexSPI B */ spi-max-frequency = <104000000>; status = "okay"; jedec-id = [ef 40 17]; /* Winbond W25Q64JV JEDEC ID */ erase-block-size = ; write-block-size = <16>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; data_partition: partition@0 { label = "data-storage"; reg = <0x00000000 DT_SIZE_M(8)>; }; }; }; };   而 pinmux 是   &pinctrl { pinmux_flexspi1: pinmux_flexspi1 { group_a { pinmux = <&iomuxc_gpio_sd_b1_06_flexspi_a_ss0_b>, <&iomuxc_gpio_sd_b1_07_flexspi_a_sclk>, <&iomuxc_gpio_sd_b1_08_flexspi_a_data0>, <&iomuxc_gpio_sd_b1_09_flexspi_a_data1>, <&iomuxc_gpio_sd_b1_10_flexspi_a_data2>, <&iomuxc_gpio_sd_b1_11_flexspi_a_data3>; drive-strength = "r0-6"; slew-rate = "fast"; nxp,speed = "200-mhz"; input-enable; }; group_b { pinmux = <&iomuxc_gpio_sd_b1_03_flexspi_b_data0>, <&iomuxc_gpio_sd_b1_02_flexspi_b_data1>, <&iomuxc_gpio_sd_b1_01_flexspi_b_data2>, <&iomuxc_gpio_sd_b1_00_flexspi_b_data3>, <&iomuxc_gpio_sd_b1_04_flexspi_b_sclk>, <&iomuxc_gpio_sd_b1_05_flexspi_b_ss0_b>; drive-strength = "r0-6"; slew-rate = "fast"; nxp,speed = "200-mhz"; input-enable; }; };     在启动过程中,程序会被打入这个 while 循环、   if (flash_flexspi_nor_probe(data)) { if (memc_flexspi_is_running_xip(&data->controller)) { /* We can't continue from here- the LUT stored in * the FlexSPI will be invalid so we cannot XIP. * Instead, spin here */ while (1) { /* Spin */ } } LOG_ERR("SFDP probe failed"); return -EIO; }     当我逐步调试它时,在我看来,每个闪存设备在 LUT 中都消耗了 40-48 个空间。因此,如果有两个闪光灯,就会超过 64 个 LUT 的最大值。   我是不是做错了什么?怎样才能让它发挥作用 i.MX RT105x Re: Cannot configure two NOR flashes on single FlexSpi in Zephyr 我知道您是独立使用两支闪光灯,而不是并联模式。您可以为用于 XIP 的闪存保留 LUT,并使用 IP 命令访问其他闪存。另一种方法是循环使用两个闪存的 LUT,因为两个闪存的区别在于大小,同时禁用第二个闪存的 SFDP。 BR, Omar Re: Cannot configure two NOR flashes on single FlexSpi in Zephyr 您好, 我也遇到了同样的问题。 请问您是如何解决这个问题的?我只需要将数据存储到第二个闪存中。如何仅对第二个闪存禁用 XIP? 谢谢! 顺祝商祺! 阿德里安·克莱里斯
記事全体を表示
IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06 Hello, We are looking for an explanation for a non-working DDR4 timing set. In short, the timings generated by the DDR Tool passed calibration and stress tests, but led to sporadic Linux kernel crashes during boot, with an "undefined instruction" error. Setup (raw facts): - The SoC is an i.MX8M Mini Solo (single Cortex-A53), DDR4 (Winbond W664GG6RB-06) at 1200 MHz (DDR4-2400) in 1:2 DFI (DDR PHY Interface) frequency-ratio mode, with a single x16 4 Gb device (512 MB, no ECC). - The BSP is NXP L4.14.98_2.0.0 (Linux 4.14.98, U-Boot 2018.03); the DDR config was generated with MSCALE DDR Tool v3.31 (Windows version) and PHY training firmware v201709. The same firmware is used in Yocto to build the U-Boot image. - We are qualifying one common timing set for three interchangeable 4 Gb x16 DDR4 parts (Alliance AS4C256M16D4, ISSI IS43QR16256B, Winbond W664GG6RB-06), all operated at 1200 MHz. - To meet the slowest part's (Winbond) tRCD/tRP/tAA (~14.16 ns at the 2400 bin) we set CL=17 (17-17-17), which the Tool encodes as MR0 = 0x0864 with the matching CL-derived registers (e.g. DFITMG0 = 0x038C8207, DRAMTMG2 = 0x0609050D). - The DRAM runs static at the 2400 setpoint (DVFS/busfreq disabled in the device tree), so there is no frequency scaling by Linux at runtime. Observations: - The 17-17-17 config passes the DDR Tool stress test (~24 h) and U-Boot mtest (~1 h) with no errors. - Under Linux (on boots that reach the shell prompt) it also passes stressapptest + fio (crc32c-verified), continuously and even at Tj = 84 °C, for over an hour with zero data errors. - Nevertheless, Linux sporadically crashes during boot with "Internal error: undefined instruction" (corrupted kernel .text), ~1.1 s into the kernel, on roughly 5–7 % of cold boots (measured with an automated cold power-cycle loop). - The failure is die-independent: the CL=17 image crashes the same way on a second of these parts (ISSI), while the CL=16 image boots Linux reliably on that same ISSI part. - Both even-CL configs boot Linux reliably: 16-16-16 (our long-standing production timing) and a newly built 18-18-18 (no kernel crashes observed) — only the odd-CL 17-17-17 fails. - Only the CL-derived registers differ between the failing and working configs (MR0 CAS bits, DFITMG0 dfi_t_rddata_en, DRAMTMG2 read latency / rd2wr, DFITMG2 rdcslat, ODTCFG rd_odt_delay). Hypothesis: We suspect odd CAS latency at the 1:2 DFI ratio is the root cause: the read-data return latency is CL/2 in DFI clocks — a non-integer 8.5 for CL=17 versus integer 8.0 / 9.0 for CL=16 / 18. Since the read FIFO (written by DQS, read by the controller clock, Reference Manual §9.3.2.2.2) handles the steady state and steady stress passes, we suspect the marginality surfaces at read burst-to-burst transitions, where odd CL's half-DFI-clock offset would hit a first/last-beat edge case the RM does not document. Questions: Is odd CAS latency (e.g. CL=17) supported on the i.MX8M Mini DDR4 PHY in 1:2 DFI mode, or are there known constraints/errata for odd CL? In particular — can the DDR Tool produce an odd-CL configuration that passes its own stress test yet is marginal under real boot traffic, and is there a recommended way to constrain read burst-to-burst timing for odd CL? Attached: kernel crash console dump, the CL=17 .ds script for the DDR Tool, and the produced ddr4_timing.c. Any advice will be appreciated. Re: IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06 Sorry, somehow attachments didn't attach. Here are they. Re: IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06 Hello,  Please try again by modifying from CL=17 to CL=18, run ddr test and test your linux again, I recommend you to upgrade to a newer release.  Re: IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06 Please check the timing parameter for the parts below for  CAS Latency   tRCD(ns)  tRP(ns) Alliance AS4C256M16D4     DDR4-2400                                             17      14.16   14.16 ISSI IS43QR16256B                   2400Mbps                                            16-16-16 (-083R) Winbond W664GG6RB-06  DDR4-2400                                            17-17-17 The 3 parameter for IS43QR16256B is different. So you may need dedicated setting for 3 parts instead using one setting for all 3 part. It seems the issue only happened at cold boots, right?
記事全体を表示
s32k144 - Device is secured Hi Team, I am working with the S32K114 (AN12323) project. Initially, I flashed the Gateway project with CSEC disabled, and the programming was successful. After that, I attempted to flash the CAN example application, but I encountered the following error: "Device is secure, erase to unsecure." To resolve the issue, I also tried using the "Emergency Kinetis Device Recovery" option, but it did not work. Could you please suggest how to recover the device or remove the secure state so that I can flash the CAN example? Re: s32k144 - Device is secured Hi @Senlent , In which scenarios would the reset signal period be approximately 118 µs, and what factors could cause it to increase to around 475 µs in my case?     Thnaks. Re: s32k144 - Device is secured Hi@Pranathi06 If the reset signal period is not ~118µs, but greater than 200µs, such as 500µs or even longer, the MCU will not be able to be decrypted and recovered via the SWD/JTAG debug interface using the mass erase command. Re: s32k144 - Device is secured Hi @Senlent  I measured the RESET_b pin waveform using an oscilloscope. The RESET_b signal is continuously toggling. Pulse repetition appears to be roughly 400–500 µs (cursor shows Δt ≈ 475 µs). Peak level is around 5 V, which suggests you may be probing an external reset circuit rather than directly measuring a 3.3 V MCU pin, or there is a pull-up to 5 V on RESET. The reset activity is continuous and regular.   Thanks         Re: s32k144 - Device is secured Hi@Pranathi06 The "S32K144_FOTA_GATEWAY" command doesn't involve any CSEc or flash security related operations, so I'm unsure what you've done to the MCU. You could measure the waveform of the RESET pin and tell me its reset cycle. The reset cycle can be used to determine if the chip can recover to normal operation. Re: s32k144 - Device is secured Hi @Senlent , Yes, successfully flashed "S32K144_FOTA_Gateway", when I tried to flash Can_example project that time "Device is secured" after that I cannot be able to flash any software. Thanks Re: s32k144 - Device is secured Hi@Pranathi06 Is your problem occurring when downloading the "S32K144_FOTA_Gateway" program, or have you already successfully flashed "S32K144_FOTA_Gateway"? Re: s32k144 - Device is secured Hi @Senlent      I flashed AN5401_S32K144_CSEc_Resetting_Flash_to_Factory_State to erase the keys. After that, I flashed only the GATEWAY_PROJECT; I did not flash the Memory_Partition project. Thanks.   Re: s32k144 - Device is secured Hi@Pranathi06 "Before flashing my GATEWAY_PROJECT, I have flashed "Resetting flash to state" I don't understand your meaning. The AN12323SW doesn't have a "Resetting flash to state" program. From what you're saying, you've modified "S32K144_FOTA_Gateway"? You just need to check if your program has enabled the CSEc module and assigned a key, and whether you've considered restoring the CSEc module to its factory state within the application. If not, then this situation is unrecoverable. Re: s32k144 - Device is secured Hi @Senlent  I didn't flash Memory_partition project.  Before flashing my GATEWAY_PROJECT, I have flashed "Resetting flash to state"  Is there any solution for recover? Thanks. Re: s32k144 - Device is secured Hi@Pranathi06 This issue is unrelated to whether "CSEC" is enabled in "S32K144_FOTA_Gateway" because when testing AN12323SW, your first step should be to download and run "S32K144_Memory_Partition" to perform partitioning, which already enables CSEC by default and assigns a key. AN12130: This is why the MCU is locked; since the solution doesn't provide a reset CSEC operation, it cannot be recovered. Next time, remember to modify "S32K144_Memory_Partition" to partition only, without enabling CSEC or the key. Re: s32k144 - Device is secured Hi@Pranathi06 This is based on experience, and your situation is quite similar: the CSEc hardware encryption module was enabled, preventing mass erase of the CSEc encryption key, which caused the problem. Although the chip has deadlocked, and the MCU can no longer download programs or debug, as long as the chip's power supply is normal, you can still use a J-LINK debugger to connect to the CoreSight DAP debug access interface of the S32K1xx series MCU ARM Cortex M4F/M0+ via the SWD/JTAG debug interface to read the MDM-AP status register. Therefore, you can determine the root cause of the chip deadlock based on the read MDM-AP status register value. If you need me to help you pinpoint the cause of the deadlock, you can try using J-LINK to read the MDM-AP status register.
記事全体を表示
MC34GD3000 VPWRが24 Vの場合のゲートドライブ出力電圧レベル こんにちは、NXPコミュニティの皆さん、 このMC34GD3000を使って24V、26Wのモーターを駆動する予定です。 多くの参考回路や例では、MC34GD3000のVPWR電源はモーター電源と同じ電源電圧に接続されているように見えます。私の用途では、モーターの電源電圧は24Vなので、MC34GD3000のVPWRも24Vになります。 MC34GD3000のゲート駆動出力電圧レベルについて確認させてください。 データシートの絶対最大定格表には、次のような値が記載されていました。 - PX_HS_G~PX_HS_S:3.0V~16.5V - PX_LS_G~PX_LS_S:3.0V~16.5V - PX_BOOTからPX_HS_Sまで:3.0V~16.5V 私の質問は次のとおりです。 VPWRが24Vの場合、MC34GD3000の実際のPWMゲートドライブ出力電圧レベルはどのくらいですか? VPWRが24Vであるためゲートドライブ出力は24Vになるのでしょうか、それとも各MOSFETソースノードに対してゲートドライブ出力は最大約16.5Vに制限されるのでしょうか? 例えば、ローサイドMOSFETの場合、PX_LS_GからPX_LS_Sへの駆動は24Vではなく約15Vまで駆動されるということを理解しておくべきでしょうか? ハイサイドMOSFETについては、PX_HS_Gは位相ノードより上に駆動されるものの、ゲート・ソース間電圧PX_HS_GからPX_HS_Sまでは依然として約15Vに制限される、と理解してよろしいでしょうか? ご確認いただければ幸いです。 よろしくお願いします。 BLDCドライバー Re: MC34GD3000 gate drive output voltage level when VPWR is 24 V こんにちは、 はい、あなたの理解は正しいです。VPWRが24Vモーター電源に接続されていても、MC34GD3000はMOSFETゲートをソース端子に対して24Vに駆動しません。このデバイスは、約15Vに安定化された内部ゲート駆動電源(VLS)を生成します。 そのため、 ローサイドMOSFETの場合、PX_LS_GはPX_LS_Sより約15V高い電圧で駆動されます。 ハイサイドMOSFETでは、PX_HS_Gは位相ノードの上をブートストラップ回路を通じて駆動されますが、ゲート対ソース電圧PX_HS_G−PX_HS_Sは約15Vのままです。 データシートに示されている制限(PX_HS_GからPX_HS_S、PX_LS_GからPX_LS_S)は、実効的なゲート対ソースドライブ電圧を表し、ゲートドライブが24V VPWR電源と等しくないことを示しています。 お役に立てば幸いです!
記事全体を表示
Cannot configure two NOR flashes on single FlexSpi in Zephyr Hi, I am working with a board based on i.mx RT1050 board. There are two NOR flashes connected to two banks of the flexspi. I am also using the bank 1 for XIP booting. It works fine when I only use one flash. But when I add the second flash, I run into a problem that seems like there is insufficient space for LUT. My two flashes are w25q128 and w25q64 connected to flexspi Port A1 and B1 respectively.   This is my configuration in the overlay file.   / { chosen { zephyr,flash-controller = &w25q128jv; zephyr,flash = &w25q128jv; zephyr,code-partition = &slot0_partition; }; };   &flexspi { status = "okay"; rx-clock-source = <1>; pinctrl-0 = <&pinmux_flexspi1>; pinctrl-names = "default"; reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(64)>; /delete-node/ is25wp064@0; w25q128jv: w25q128jv@0 { compatible = "nxp,imx-flexspi-nor"; size = ; reg = <0>; spi-max-frequency = <104000000>; status = "okay"; jedec-id = [ef 70 18]; erase-block-size = ; write-block-size = <16>; enter-4byte-addr = <0>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; boot_partition: partition@0 { label = "mcuboot"; reg = <0x00000000 DT_SIZE_K(256)>; }; /* Adjusted slot sizes for 16MB total */ slot0_partition: partition@20000 { label = "image-0"; reg = <0x00040000 (DT_SIZE_M(3) + DT_SIZE_K(512))>; }; slot1_partition: partition@320000 { label = "image-1"; reg = <0x00320000 DT_SIZE_M(3)>; }; storage_partition: partition@620000 { label = "storage"; reg = <0x00620000 (DT_SIZE_M(1) - DT_SIZE_K(768))>; }; }; }; w25q64jv: w25q64jv@2 { compatible = "nxp,imx-flexspi-nor"; size = ; /* 8MB (64Mbit) flash */ reg = <2>; /* FlexSPI B */ spi-max-frequency = <104000000>; status = "okay"; jedec-id = [ef 40 17]; /* Winbond W25Q64JV JEDEC ID */ erase-block-size = ; write-block-size = <16>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; data_partition: partition@0 { label = "data-storage"; reg = <0x00000000 DT_SIZE_M(8)>; }; }; }; };   And the pinmux is,   &pinctrl { pinmux_flexspi1: pinmux_flexspi1 { group_a { pinmux = <&iomuxc_gpio_sd_b1_06_flexspi_a_ss0_b>, <&iomuxc_gpio_sd_b1_07_flexspi_a_sclk>, <&iomuxc_gpio_sd_b1_08_flexspi_a_data0>, <&iomuxc_gpio_sd_b1_09_flexspi_a_data1>, <&iomuxc_gpio_sd_b1_10_flexspi_a_data2>, <&iomuxc_gpio_sd_b1_11_flexspi_a_data3>; drive-strength = "r0-6"; slew-rate = "fast"; nxp,speed = "200-mhz"; input-enable; }; group_b { pinmux = <&iomuxc_gpio_sd_b1_03_flexspi_b_data0>, <&iomuxc_gpio_sd_b1_02_flexspi_b_data1>, <&iomuxc_gpio_sd_b1_01_flexspi_b_data2>, <&iomuxc_gpio_sd_b1_00_flexspi_b_data3>, <&iomuxc_gpio_sd_b1_04_flexspi_b_sclk>, <&iomuxc_gpio_sd_b1_05_flexspi_b_ss0_b>; drive-strength = "r0-6"; slew-rate = "fast"; nxp,speed = "200-mhz"; input-enable; }; };     During bootup the program gets struck in this while loop,   if (flash_flexspi_nor_probe(data)) { if (memc_flexspi_is_running_xip(&data->controller)) { /* We can't continue from here- the LUT stored in * the FlexSPI will be invalid so we cannot XIP. * Instead, spin here */ while (1) { /* Spin */ } } LOG_ERR("SFDP probe failed"); return -EIO; }     When I debugged it step-by -step, it seems to me each flash device uses up 40-48 space in LUT. Therefore having two flashes makes it so that it exceeds the maximum LUT that is 64.   Am I doing something wrong? What can I do to make this work i.MXRT 105x Re: Cannot configure two NOR flashes on single FlexSpi in Zephyr I understand that you are using the two flashes independently, not in parallel mode. You can reserve the LUT for the flash used for XIP and use IP commands to access the other flash. Another option is to recycle the LUT for two flash, as the difference of both is the size, and disable SFDP for the second flash. BR, Omar Re: Cannot configure two NOR flashes on single FlexSpi in Zephyr Hi, I am facing the same issue. Could you please tell me how you solved your problem. I just need to store data in the second flash memory. How can I disable XIP for the second flash only ? Thank you, Best Regards, Adrien Cléris
記事全体を表示
S32 Design Studio for Power Architecture® 2017.R1 - ライセンス有効化の問題 こんにちは、 ライセンスの有効化に関して、ご支援をお願いしたいのですが。 以前のリクエストは処理されましたが、誤ったバージョンが再有効化されました。現在はPower Architecture v2.1用のS32 Design Studio にアクセスできるようになりましたが、現在のプロジェクトでは実際にはS32 Design Studio for Power Architecture 2017.R1(S32DS-PA v2.0)を使う必要があります。 アクティベーションを修正して、正しいライセンスのバージョンを復元してもらえますか? サポートありがとうございます。 よろしくお願いします、 アレッサンドロ Re: S32 Design Studio for Power Architecture® 2017.R1 - License activation issue こんにちは、 あなたのためにリクエストしました。 完了次第、ご連絡いたします。 よろしくお願いいたします。 ピーター Re: S32 Design Studio for Power Architecture® 2017.R1 - License activation issue こんにちは、ピーターさん。 ご協力ありがとうございます。 まだ何のアップデートも受け取っておらず、ライセンスも期限切れのままであることをお知らせしたかったのです。その結果、現在はS32 Design Studio for Power Architecture 2017.R1(v2.0)を使用できず、作業を継続することもできません。 よろしくお願いいたします。 アレッサンドロ Re: S32 Design Studio for Power Architecture® 2017.R1 - License activation issue こんにちは、 現時点で全て準備が整っているはずです。 よろしくお願いいたします。 ピーター Re: S32 Design Studio for Power Architecture® 2017.R1 - License activation issue どうもありがとうございます、 アレッサンドロ
記事全体を表示
ADC应用模块选择 我想围绕 MXP 开发板开发一个应用程序,但我很难选择可以使用的具体计算模块。种类繁多,我有点不知所措,不确定哪些产品真正能满足我的需求。 据我了解,有多家片上系统 (SoC) 提供模数转换器 (ADC)。我需要一台计算能力更强、至少有 4 个 ADC 通道的设备。我可以使用哪些具体的开发板?我可以使用哪些模块和开发板来构建这个应用程序?是否有供应商可以协助我选择要购买的具体板? Re: Module selection for ADC application 我认为使用 MPU 可以确保有足够的处理能力,而且我们并不太担心功耗或成本。我们也对使用Profinet很感兴趣。然后它应该至少有 4 个 ADC 通道,每个通道的采样率超过 100ksps。据我了解,i.MX 9 MPU 可能适用。 我想到的一种替代方案是购买一台树莓派 Pico,并配备一个独立的 ADC 模块和以太网模块。但我认为恩智浦的系统应该能够满足我的所有需求。即使我选定了某个特定的芯片,市面上的产品种类也很多,而且我通常也不清楚能否得到合适的ADC,而ADC对我来说是最重要的特性。 Re: Module selection for ADC application 你好, 你要买什么? 它是微控制器(MCU)吗?还是微处理器(MPU)? 如果您能提供更多关于该项目的信息,我们可以为您提供帮助。 此外,我们的网页上还有产品搜索功能。 https://www.nxp.com/design/design-center/development-boards-and-designs:EVDEBRDSSYS?collection=devBoardsDesigns&start=0&max=12&language=en&query=typeTax %3E% 3Et633_t763 此致敬礼/Saludos, 阿尔多。 Re: Module selection for ADC application 你好, 是的,i.MX9 系列的任何一款处理器都可以使用,具体哪一款更适合您的使用场景,取决于您的显卡和其他外设。 为此,i.MX91、i.MX93 和 i.MX95 这三款芯片都采用了 FRDM 板,并且 ADC 的规格相同: • 它包含八个通道,其中四个通道连接到封装中的引脚。 • 支持 1MS/s 的工作频率 • 多种启动转换模式(正常、注入式) 普通模式支持单次拍摄和扫描(连续)转换 注入模式仅支持单次转换 • 支持 TRGMUX,允许任何 ADC 通道使用 16 个触发通道 i.MX93 https://www.nxp.com/products/i.MX93 i.MX93 FRDM https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-IMX93 i.MX91 https://www.nxp.com/products/i.MX91 i.MX91 FRDM https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-IMX91 i.MX95 https://www.nxp.com/products/i.MX95 i.MX95 FRDM https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-IMX95 另外,您也可以查看每个 EVK 的相关信息,但既然您提到了 RPI,我认为 FRDM 板可能会让您感兴趣。 此致敬礼/Saludos, 阿尔多。
記事全体を表示