Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
MCXN947 HPDAC backport I am backporting the Zephyr nxp_hpdac driver to Zephyr 4.3 for an MCXN947-based board. The upstream driver does not use a device init callback. However, on Zephyr 4.3 the HPDAC does not work correctly unless I explicitly initialize the DAC2 clock, SPC analog modules and reset before using the peripheral. I added an nxp_hpdac_init() function which performs the following steps: CLOCK_SetClkDiv(kCLOCK_DivDac2Clk, 1U) CLOCK_AttachClk(kFRO_HF_to_DAC2) CLOCK_EnableClock(kCLOCK_Dac2) SPC_EnableActiveModeAnalogModules(SPC0, kSPC_controlDac2) SPC_EnableLowPowerModeAnalogModules(SPC0, kSPC_controlDac2) RESET_PeripheralReset(kDAC2_RST_SHIFT_RSTn) DAC14_DoSoftwareReset() DAC14_DoFIFOReset() SPC_EnableActiveModeAnalogModules(SPC0, kSPC_controlVref) These initialization steps were based on the MCXN947 reference manual and implemented using the corresponding MCUX SDK APIs. The init function is registered as the device init callback through DEVICE_DT_INST_DEFINE(). With these changes, the HPDAC works correctly. I also checked the Zephyr MCUX SYSCON clock-control driver and the mcux_lpc_syscon_clock.h bindings, but I could not find an HPDAC/DAC2 clock identifier or clock-control implementation for this peripheral, so I am currently using the MCUX SDK clock, SPC and reset APIs directly. My questions are: 1. Is this the correct approach when backporting the MCXN947 HPDAC driver? 2. In newer Zephyr versions, are these resources initialized somewhere else, or does the upstream nxp_hpdac driver assume that they have already been configured? 3. Is the HPDAC device init callback the correct place for this MCXN947-specific initialization, or should these steps be handled elsewhere in Zephyr? I have attached the complete backported driver for reference. Analog(ADC|CMP|DAC|OpAmps) Clock|Timers MCXN 回复: MCXN947 HPDAC backport Hi  @wesOS  1. Is this the correct approach when backporting the MCXN947 HPDAC driver? Yes, this is a reasonable and practical approach for the backport. If the required DAC2 clock, SPC analog modules, VREF, and reset resources are not initialized elsewhere in the Zephyr 4.3 environment, performing the initialization in the driver is necessary to ensure correct HPDAC operation. 2. In newer Zephyr versions, are these resources initialized somewhere else, or does the upstream nxp_hpdac driver assume that they have already been configured? HPDAC support has already been added upstream: https://github.com/zephyrproject-rtos/zephyr/pull/104642 However, I performed a quick verification using the current upstream implementation and observed that the DAC2 clock does not appear to be configured. For example, CLOCK_GetDacClkFreq(2) reports 0 Hz in my test environment, while the equivalent MCUX SDK example reports 48 MHz after the DAC clock is configured. Based on this observation, it appears that the current driver may be assuming that certain device resources have already been configured. Could you please double-check the clock configuration path on your side as well? I will also report this to our Zephyr team for further investigation and work with them to address the issue if a missing clock initialization bug is confirmed. 3. Is the HPDAC device init callback the correct place for this MCXN947-specific initialization, or should these steps be handled elsewhere in Zephyr? For a backport, placing this logic in the HPDAC device initialization callback is a practical and acceptable solution. That said, the MCXN947-specific DAC2 clock, SPC, VREF, and reset configuration should ideally be clearly isolated as SoC-specific functionality rather than embedded as generic HPDAC behavior. In the longer term, these resources would preferably be managed through Zephyr infrastructure such as clock, reset, or power-management frameworks where applicable. BR Harry
View full article
MCF51JE256の代替製品 以下の要件を満たすMCUチップについて、ご提案をお願いしたいです。32ビットデータバス/転送、プログラムメモリ空間1MByte以上、少なくとも1つのI2Cバスコントローラと統合、少なくとも2つのSPIバスコントローラと統合、6つ以上のA/Dアナログからデジタルへの変換チャネル、少なくとも3×3マトリックスキーボードコントローラと統合、少なくとも2つのタイマーと統合、TOD(時間割り込み)タイマー割り込みおよびその他の外部割り込みと統合、USBインターフェースコントローラと統合。以上です。ご協力ありがとうございます。現在のチップであるMCF51JE256の機能を置き換えられるチップを見つけたいと考えています。もしよければ、これらの要件に合う特定のMCUのおすすめを探す手助けもできます。 アナログ(ADC|CMP|DAC|オペアンプ) オーディオ(PDM |I2S |SAI) 通信・制御(I3C |I2C |SPI |FlexCAN |イーサネット |FlexIO) Re: a replacement product for MCF51JE256 こんにちは@ly_12_31 MCXAやMCXNシリーズを検討することをおすすめします。これらはNXPの最新のメインストリームMCUファミリであり、新しいデザインのプロモーションも積極的に行っています。 これらのデバイスは専用の3×3マトリックスキーボードコントローラを除き、すべての要件を満たします。しかし、この機能はソフトウェア内のGPIOを用いて実装可能です。 MCX A13 A14x MCX A15x Arm Cortex-M33 - 低消費電力かつインテリジェントなペリフェラル | NXP Semiconductors MCX N94、N54、N53、N52、N24 MCU |NXPセミコンダクターズ  よろしくお願いします。 BR アリス
View full article
WiFi (SDIO) disconnects on i.MXRT1176 correlated with Qt/QML UI complexity Hi Team, We are currently working on an instrument cluster that features screen mirroring. In our architecture, a companion mobile app streams frames over Wi-Fi to our host MCU. The data is received via an SDIO-connected Wi-Fi module, decoded using FFmpeg, and rendered on the display. We are utilizing lwIP for our network stack and Qt for MCUs for the cluster HMI. System Specifications: Host MCU: NXP i.MX RT1176 Wi-Fi Module: u-blox MAYA-W161 (SDIO interface) Display: LCDIFV2 (Parallel RGB Interface) OS: FreeRTOS The Issue: We are experiencing intermittent Wi-Fi disconnections that appear to be directly tied to graphical load. The Wi-Fi drops only occur when the display is running a resource-heavy GUI(featuring numerous elements and animations). When we switch to a lightweight UI, the Wi-Fi connection remains perfectly stable. Kindly guide us to sort out this issue. Regards, Vignesh Re: WiFi (SDIO) disconnects on i.MXRT1176 correlated with Qt/QML UI complexity Hi @Vignesh_VInayak, hope you are doing well. Since image processing requires high CPU usage and large memory footprint, it is intended that for GUI-related applications, one of the two cores is dedicated to managing the interface. Would you please clarify if your implementation approach uses the two cores? Is there enough stack dedicated to each thread? Additionally, would you please share logs with debug logging enabled for the Wi-Fi stack, in order to further analyze the state of the Wi-Fi thread? To enable the debug logs, could you please enable the "CONFIG_WLCMGR_DEBUG" & "CONFIG_WIFI_SDIO_DEBUG" macros in the wifi_config.h header file? Re: WiFi (SDIO) disconnects on i.MXRT1176 correlated with Qt/QML UI complexity Hi @RomanVR , Thanks for getting back to me so promptly. Please find the requested details and logs below: At present, our project only uses the Cortex-M7 core; the M4 core is not being utilized. Yes, all threads have sufficient stack allocated. We also confirmed this using the FreeRTOS stack overflow hook function, and no overflow is occurring. I've attached the log file with the suggested macros enabled. In the log, everything appearing after the final wlcm log consists of our application logs, which simply print the some random frame size whenever a Wi-Fi packet is received. As you can see, the logs stop at a certain point — that's where the Wi-Fi disconnect occurs. At the moment of disconnection, we don't see any logs from either wlcm or SDIO. Best regards, Vignesh.
View full article
i.MXRT1176におけるWiFi(SDIO)切断は、Qt/QML UIの複雑さと相関関係がある。 チームの皆さん、こんにちは。 現在、画面ミラーリング機能を搭載したインストルメントクラスターの開発に取り組んでいます。私たちのアーキテクチャでは、対応するモバイルアプリがWi-Fi経由でホストMCUにフレームをストリーミングします。データはSDIO接続のWi-Fiモジュールを通じて受信され、FFmpegでデコードされ、ディスプレイ上でレンダリングされます。ネットワークスタックにはlwIPを、クラスタHMI用のMCUにはQtを使用しています。 システム仕様: ホストMCU: NXP i.MX RT1176 Wi-Fiモジュール: u-blox MAYA-W161(SDIOインターフェース) ディスプレイ: LCDIFV2(パラレルRGBインターフェース) OS: FreeRTOS 問題点:グラフィック処理の負荷と直接関係していると思われる、断続的なWi-Fi接続切断が発生しています。Wi-Fi接続が切断されるのは、ディスプレイがリソースを大量に消費するGUI(多数の要素やアニメーションを含む)を実行している場合のみです。軽量なUIに切り替えても、Wi-Fi接続は完全に安定します。 この問題を解決するためのご指導をお願いいたします。 よろしくお願いいたします。 ヴィグネシュ Re: WiFi (SDIO) disconnects on i.MXRT1176 correlated with Qt/QML UI complexity こんにちは、 @Vignesh_Vinayak さん。お元気でお過ごしでしょうか。 画像プロセッシングは高いCPU使用率と大きなメモリ使用量を必要とするため、GUI関連アプリケーションでは、2つのコアのうち1つがインターフェース管理に専用であることが想定されています。貴社の実装方法では、2つのコアを使用しているかどうかを明確にしていただけますか?各スレッドごとに十分なスタックがありますか? さらに、Wi-Fiスタックでデバッグログを有効にした状態でログを共有していただけますか?Wi-Fi Threadの状態をさらに分析するために。デバッグログを有効にするには、wifi_config.hの「CONFIG_WLCMGR_DEBUG」と「CONFIG_WIFI_SDIO_DEBUG」マクロを有効にしてくださいヘッダーファイル? Re: WiFi (SDIO) disconnects on i.MXRT1176 correlated with Qt/QML UI complexity こんにちは、 @RomanVR さん。 こんなに早く返信してくれてありがとうございます。 ご依頼いただいた詳細情報とログは以下のとおりです。 現在、私たちのプロジェクトはCortex-M7コアのみを使用しています。M4コアは利用されていません。 はい、すべてのスレッドには十分なスタックが割り当てられています。また、FreeRTOSのスタックオーバーフローフック関数を使用して確認したところ、オーバーフローは発生していませんでした。 提案されたマクロを有効にしたログファイルを添付しました。ログ内には、最終的なWLCMログ以降に表示されるすべてのログがアプリケーションログで構成されており、Wi-Fiパケットが受信されるたびにランダムなフレームサイズを単に印刷します。ご覧の通り、ログはある時点で止まります。そこでWi-Fiが切断されます。接続が切断された時点では、wlcmからもSDIOからもログは出力されていません。 よろしくお願いします、 ヴィグネシュ。
View full article
NXP i.MX93 EVK 运行时功耗 我正在使用NXP i.MX93 EVK,想要监控运行时功耗,请问如何获取这些数据? 议程是监测人工智能模型推理过程中的功率使用情况。如何监测功率指标? 如何仅使用软件(无需任何外部硬件)来监测功率指标? Re: NXP i.MX93 EVK POWER consumption at runtime i.MX93 EVK 包含板载功率监控电路,并支持通过软件工具进行功率测量。 针对 i.MX93 EVK,NXP 提供了 AN13917:i.MX 93 功耗测量, https://docs.nxp.com/bundle/AN13917/page/topics/power_measurement_of_the_imx_93_processor.html 它描述了如何使用板载测量电路和 BCU(板载控制实用程序)工具来测量功耗。 谢谢!
View full article
カメラセンサーOS02G10 MIPI CSI for IMX8MM こんにちは、みんな。 OS02g10のドライバーは以下から入手しました: https://github.com/Shaggy013/kernel-5.10 ドライバーをパッチとして追加しました。 私のデバイスツリーは次のようになっています。 csi1_bridge: csi1_bridge@32e20000 { compatible = "fsl,imx8mm-csi", "fsl,imx8mq-csi", "fsl,imx6s-csi"; reg = <0x32e20000 0x1000>; interrupts = ; clocks = <&clk IMX8MM_CLK_DISP_AXI_ROOT>, <&clk IMX8MM_CLK_CSI1_ROOT>, <&clk IMX8MM_CLK_DISP_APB_ROOT>; clock-names = "disp-axi", "csi_mclk", "disp_dcic"; power-domains = <&dispmix_pd>; status = "disabled"; }; mipi_csi_1: mipi_csi@32e30000 { compatible = "fsl,imx8mm-mipi-csi"; reg = <0x32e30000 0x1000>; interrupts = ; clock-frequency = <360000000>; clocks = <&clk IMX8MM_CLK_CSI1_CORE>, <&clk IMX8MM_CLK_CSI1_PHY_REF>, <&clk IMX8MM_CLK_DISP_AXI_ROOT>, <&clk IMX8MM_CLK_DISP_APB_ROOT>; clock-names = "mipi_clk", "phy_clk", "disp_axi", "disp_apb"; bus-width = <2>; resets = <&mipi_csi_resets>; power-domains = <&mipi_pd>; status = "disabled"; }; os02g10: os02g10@3c { compatible = "ovti,os02g10"; reg = <0x3c>; // spec (manual) says that I2c addres is 0x3d status = "okay"; pinctrl-names = "rockchip,camera_default", "rockchip,camera_sleep"; pinctrl-0 = <&pinctrl_csi_pwdn>, <&pinctrl_csi_rst>, <&pinctrl_mux_oe>; pinctrl-1 = <&pinctrl_csi_pwdn>, <&pinctrl_csi_rst>, <&pinctrl_mux_oe>; csi_id = <0>; pwdn-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>; reset-gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>; mux-gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>; mclk = <24000000>; mclk_source = <0>; rockchip,camera-module-index = <1>; rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "OS02G10 camera"; rockchip,camera-module-lens-name = "1//2.9 inch 15*"; rockchip,camera-hdr-mode = <0>; // kernel-5.10\include\uapi\linux\rk-camera-module.h:307 (enum rkmodule_hdr_mode) mipi_csi; port { os02g10_ep: endpoint { remote-endpoint = <&mipi1_sensor_ep>; }; }; }; }; &csi1_bridge { fsl,mipi-mode; status = "okay"; port { csi1_ep: endpoint { remote-endpoint = <&csi1_mipi_ep>; }; }; }; &mipi_csi_1 { status = "okay"; port { #address-cells = <1>; #size-cells = <0>; mipi1_sensor_ep: endpoint@1 { reg = <1>; remote-endpoint = <&os02g10_ep>; data-lanes = <2>; csis-hs-settle = <13>; csis-clk-settle = <2>; csis-wclk; }; csi1_mipi_ep: endpoint@2 { reg = <2>; remote-endpoint = <&csi1_ep>; }; }; }; &clk { init-on-array = ; }; カメラドライバーとmxc_mipi-csi.c用にプローブ機能を修正しました。mx6s-csi.c 以前はフォーマット一致エラーが2回発生しましたが、mx6s-csiに追加しました { .name = "RAWRGB10 (SBGGR10)", .fourcc = V4L2_PIX_FMT_SBGGR10, .pixelformat = V4L2_PIX_FMT_SBGGR10, .mbus_code = MEDIA_BUS_FMT_SBGGR10_1X10, .bpp = 1, } そしてmxc_mipi-csi.cに追加されました { .code = MEDIA_BUS_FMT_SBGGR10_1X10, .fmt_reg = MIPI_CSIS_ISPCFG_FMT_RAW10, .data_alignment = 8, } v4l2 APIは正常に動作し、エラーは発生しません。以下は画像を取得するためのコマンドです v4l2-ctl -d /dev/video0 --verbose --set-fmt-video=width=1920,height=1080,pixelformat=BG10 --stream-mmap --stream-count=1 --stream-to=bb001.raw そして、デバッグメッセージの結果 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_s_power os02g10 3-003c: in function: os02g10_s_power os02g10 3-003c: in function: os02g10_runtime_resume os02g10 3-003c: in function: __os02g10_power_on os02g10 3-003c: OS02G10_REG_SOFTWARE_RESET mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_clk_enable mxc_mipi-csi 32e30000.mipi_csi: enable mipi_clk returns: 0 mxc_mipi-csi 32e30000.mipi_csi: enable phy_clk returns: 0 mxc_mipi-csi 32e30000.mipi_csi: enable disp_axi returns: 0 mxc_mipi-csi 32e30000.mipi_csi: enable disp_apb returns: 0 VIDIOC_QUERYCAP: ok VIDIOC_G_FMT: ok mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_enum_mbus_code os02g10 3-003c: in function: os02g10_enum_mbus_code mxc_mipi-csi 32e30000.mipi_csi: camera sensor format (media-bus-format.h): 0x3007 mxc_mipi-csi 32e30000.mipi_csi: supported format0 by mipi-csi driver: 0x2008 mxc_mipi-csi 32e30000.mipi_csi: supported format1 by mipi-csi driver: 0x2007 mxc_mipi-csi 32e30000.mipi_csi: supported format2 by mipi-csi driver: 0x3001 mxc_mipi-csi 32e30000.mipi_csi: supported format3 by mipi-csi driver: 0x3007 mx6s-csi 32e20000.csi1_bridge: in function: mx6s_vidioc_enum_fmt_vid_cap - format RAWRGB10 (SBGGR10) mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_fmt VIDIOC_S_FMT: ok Format Video Capture: Width/Height : 1920/1080 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_enum_mbus_code os02g10 3-003c: in function: os02g10_enum_mbus_code mxc_mipi-csi 32e30000.mipi_csi: camera sensor format (media-bus-format.h): 0x3007 mxc_mipi-csi 32e30000.mipi_csi: supported format0 by mipi-csi driver: 0x2008 mxc_mipi-csi 32e30000.mipi_csi: supported format1 by mipi-csi driver: 0x2007 mxc_mipi-csi 32e30000.mipi_csi: supported format2 by mipi-csi driver: 0x3001 mxc_mipi-csi 32e30000.mipi_csi: supported format3 by mipi-csi driver: 0x3007 mx6s-csi 32e20000.csi1_bridge: in function: mx6s_vidioc_enum_fmt_vid_cap - format RAWRGB10 (SBGGR10) Pixel Format : 'BG10' (10-bit Bayer BGBG/GRGR) Field : None Bytes per Line : 1920 Size Image : 2073600 Colorspace : sRGB Transfer Function : Default (maps to sRGB) YCbCr/HSV Encoding: ITU-R 601 Quantization : Full Range Flags: mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_s_stream mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_clear_counters mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_start_stream mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_sw_reset: REG CMN_CTRL 0x32E30004 = 0x00004000 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_params mxc_mipi-csi 32e30000.mipi_csi: in function: __mipi_csis_set_format mxc_mipi-csi.0: fmt: 0x3007, 1920 x 1080 mxc_mipi-csi 32e30000.mipi_csi: in function: __mipi_csis_set_format: REG ISPRESOL_CH0 0x32E30044 = 0x04380780 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_hsync_settle: REG DPHYCTRL 0x32E30024=0x0d800000 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_params: REG CMN_CTRL 0x32E30004 = 0x00004104 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_system_enable: REG CMN_CTRL 0x32E30004=0x00004105 VIDIOC_REQBUFS returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_system_enable: REG DPHYCTRL 0x32E30024=0x0d800007 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_enable_interrupts: REG CSIS_INTMSK 0x32E30010 = 0xf00fffff mxc_mipi-csi.0: --- mipi_csis_start_stream --- mxc_mipi-csi.0: 0x04 CMM CTRL : 0x00004105 mxc_mipi-csi.0: 0x08 CLK CTRL : 0x000f0000 mxc_mipi-csi.0: 0x10 INT MASK0: 0xf00fffff mxc_mipi-csi.0: 0x14 INT SRC0 : 0x00000000 mxc_mipi-csi.0: 0x18 INT MASK1: 0x00000000 mxc_mipi-csi.0: 0x1c INT SRC1 : 0x00000000 mxc_mipi-csi.0: 0x20 PHY STAT : 0x000000f1 mxc_mipi-csi.0: 0x24 PHY CTRL : 0x0d800007 mxc_mipi-csi.0: 0x30 PHY M/S-L: 0x000001f4 mxc_mipi-csi.0: 0x34 PHY M/S-H: 0x00000000 mxc_mipi-csi.0: 0x38 PHY S-CTL: 0x00000000 mxc_mipi-csi.0: 0x3C PHY S-CTH: 0x00000000 mxc_mipi-csi.0: 0x40 ISP CONF : 0x000000ac mxc_mipi-csi.0: 0x44 ISP RESOL: 0x04380780 mxc_mipi-csi.0: 0x48 ISP SYNC : 0x04380780 os02g10 3-003c: in function: os02g10_s_stream os02g10 3-003c: in function: __os02g10_start_stream os02g10 3-003c: in function: __os02g10_start_stream __v4l2_ctrl_handler_setup returns: 0 os02g10 3-003c: in function: os02g10_s_stream: unlock_and_return VIDIOC_STREAMON returned 0 (Success) その後は何も起こらず、ただ待って待つだけで何も起こらない。 20MHzオシロスコープではMIPI DATAおよびMIPI CLKラインのトラフィックを観測できません。(帯域幅が低いのは承知していますが、データ回線であれば何らかの変化が見られるはずです。しかし、全く反応がありません。) clkノードが正しいかどうか確信が持てません。クロック名によるmipi_csiクロックと一致する&clkノードがない可能性もあります。どなたか使用経験のある方はいらっしゃいますか? どうすればいいでしょうか? i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Camera sensor os02g10 MIPI CSI for IMX8MM こんにちは、Linuxのアップストリームドライバーを使えます。 私たちはこれをi.mx8MPベースのDebixプラットフォームでテストしました。 こちらがドライバです https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=263d0fa1d46ac1ae2eebc5a5490fec58233c69ad こちらが当社のDTです https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a4d0f0c88ae8185315afbc1eb68c978ed710f759 -- ルトヴィイ シリコンシグナルズ Re: Camera sensor os02g10 MIPI CSI for IMX8MM うまくいきました。 .bpp2でなければならない しかし主な問題はハードウェアにあった
View full article
IFCインターフェースのPCB設計ガイドを教えていただけLS1021A こんにちは、 私のボードでは、LS1021AのIFCインターフェースが2つのフラッシュ、2つのPHYとMCUインターフェース付き、そして2倍のバッファ(SN74LVC1624 5A)に直接接続されます。PCBの配線は非常に複雑になります。SO,  1. SIの観点から受け入れられるルーティングトポロジーはどのようなものか? 2. IFCインターフェースのPCB設計ガイドを教えていただけますかLS1021A よろしくお願いします! よろしくお願いいたします! ジェイソン QorIQ LS1デバイス Re: Could you please provide me the PCB design guide for IFC interface of LS1021A こんにちは、ジューンさん。 下の図に示すように、私の回路は少し複雑です。IFCバスは、いくつかのバッファを介して合計8個のチップを駆動します。IFCインターフェースは非同期モードを使用するため、IFCのレートは高くありません。Yiping.wang からもらったイーサネットインターフェースのような一般的なルートガイドはありますか? Jason_in_job_0-1789111004993.pngJason_in_job_0-1789111004993.pngJason_in_job_0-1789111004993.png よろしくお願いいたします! よろしくお願いいたします! ジェイソン Re: Could you please provide me the PCB design guide for IFC interface of LS1021A トポロジーの詳細を共有してください。 1. 2つのSN74LVC16245Aデバイスは、IFCアドレス/データバスのバッファリングまたは分離のために使用されますか? 2. IFCインターフェースに接続されるフラッシュデバイス(NORフラッシュ、NANDフラッシュなど)はどのようなものですか? 3. 2つのPHYデバイスはどのようにIFCインターフェースに接続されているのか?彼らはGPCMモードを使用していますか? 4. IFCの完全な読み込みを確認していただけますか?2つのFlashデバイスと2つのMCUインターフェースPHYデバイスで構成されていますか? よろしくお願いします。 Re: Could you please provide me the PCB design guide for IFC interface of LS1021A LS1021A IFCインターフェース専用のPCBルーティングガイドラインは存在しません。 DDRやイーサネットのような高速インターフェースとは異なり、IFCは非同期並列インターフェースであり、信号の整合性の考慮は実際のトポロジー、負荷、動作周波数、PCBの実装に大きく依存します。したがって、NXPは汎用的なレイアウトルールを記載した専用のIFCルーティングガイドを提供していません。 一般的に、分岐(スタブ)の長さを最小限に抑え、LS1021Aからラッチおよびバッファまでの配線をできるだけ短くし、可能な限りバッファを使用して下流側の負荷を分離することをお勧めします。 可能であれば、大きなスター型トポロジー接続ではなく、短いスタブ(例えば、可能な限り約1インチ/25mm以内)を使用したデイジーチェーン型の配線を使用することをお勧めします。お使いのトポロジーでは、アドレスラッチをLS1021Aに最も近い位置に配置し、その次にブートフラッシュデバイスを配置するのが一般的に望ましいです。また、バッファはIFCバスへの負荷を最小限に抑えるために十分近い位置に配置するようにしてください。 また、IFC配線については、50Ω±10%のシングルエンドインピーダンスを維持することを推奨します。±10%の公差はPCB製造の違いを考慮し、設計目標は理想的には±2%以内に収めるべきです。 検証中に信号品質の問題が確認された場合、実際の波形測定結果とPCBの実装に基づいて、LS1021A出力にソース終端抵抗(例えば、22Ω~33Ω)を追加することを検討してもよい。 参考として、AN4878(LS1021A設計チェックリスト)およびTWR-LS1021A リファレンス・デザインを参照してください。 トポロジーの複雑さと接続負荷数を考慮すると、PCB設計を最終決定する前にルーティングトポロジー、荷重、タイミングマージンを検証するために信号整合性(SI)シミュレーションも推奨されます。 よろしくお願いします。
View full article
IMX95 datasheet Hello, How can I get imx95 datasheet with register maps, peripherals, etc.? Regards, Artur Re: IMX95 datasheet Thank you and have a nice day Regards, Artur Re: IMX95 datasheet The datasheet alone does not contain the full register maps and peripheral descriptions. For that, you need the https://www.nxp.com/docs/en/reference-manual/IMX95RM.pdf. Thanks
View full article
a replacement product for MCF51JE256 I would like to ask for your recommendation on an MCU chip that meets the following requirements: 32-bit data bus/transfer Program memory space of 1 MByte or larger Integrated with at least one I2C bus controller Integrated with at least two SPI bus controllers At least six or more A/D analog-to-digital conversion channels Integrated with at least a 3×3 matrix keyboard controller Integrated with at least two or more timers Integrated with TOD (Time-of-Day) timer interrupts and other external interrupts Integrated with a USB interface controller That is all — thank you for your help. We hope to find a chip that can replace the functionality of the MCF51JE256, which is our current chip. If you'd like, I can also help you search for specific MCU recommendations that match these requirements. Analog(ADC|CMP|DAC|OpAmps) Audio(PDM | I2S | SAI) Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) Re: a replacement product for MCF51JE256 Hello @ly_12_31  I recommend considering the MCXA or MCXN series, as they are NXP's latest mainstream MCU families and are actively promoted for new designs. These devices can meet all of your requirements except for the dedicated 3×3 matrix keyboard controller. However, this functionality can be implemented using GPIOs in software. MCX A13 A14x MCX A15x Arm Cortex-M33- Low Power and Intelligent Peripherals | NXP Semiconductors MCX N94, N54, N53, N52 and N24 MCUs | NXP Semiconductors  Thank you. BR Alice
View full article
MCXN947 HPDACバックポート Zephyrのnxp_hpdacドライバをMCXN947ベースのボード用にZephyr 4.3にバックポートしています。 アップストリームドライバーはデバイスinitコールバックを使用しません。しかし、Zephyr 4.3では、ペリフェラルを使う前にDAC2クロック、SPCアナログモジュールを明示的に初期化し、リセットしないとHPDACが正しく動作しません。 以下の手順を実行するnxp_hpdac_init()関数を追加しました。 CLOCK_SetClkDiv(kCLOCK_DivDac2Clk, 1U) CLOCK_AttachClk(kFRO_HF_to_DAC2) CLOCK_EnableClock(kCLOCK_Dac2) SPC_EnableActiveModeAnalogModules(SPC0, kSPC_controlDac2) SPC_EnableLowPowerModeAnalogModules(SPC0, kSPC_controlDac2) RESET_PeripheralReset(kDAC2_RST_SHIFT_RSTn) DAC14_DoSoftwareReset() DAC14_DoFIFOReset() SPC_EnableActiveModeAnalogModules(SPC0, kSPC_controlVref) これらの初期化手順は、MCXN947リファレンスマニュアルに基づいており、対応するMCUX SDK APIを使用して実装されました。 初期化関数は、DEVICE_DT_INST_DEFINE() を介してデバイス初期化コールバックとして登録されます。これらの変更により、HPDACは正常に動作するようになりました。 また、Zephyr MCUXのSYSCONクロックコントロールドライバーとmcux_lpc_syscon_clock.hも確認しましたバインディングは使っていますが、このペリフェラルのHPDAC/DAC2クロック識別子やクロック制御実装が見つからなかったため、現在はMCUX SDKのクロック、SPC、リセットAPIを直接使っています。 私の質問は以下のとおりです。 1. MCXN947 HPDACドライバーをバックポートする際、この方法は正しいのでしょうか? 2. 新しいZephyrバージョンでは、これらのリソースは別の場所で初期化されているのか、それとも上流nxp_hpdacドライバーはすでに設定済みだと想定しているのか? 3. HPDACデバイスのinitコールバックがこのMCXN947固有の初期化の正しい場所でしょうか?それともこれらのステップはZephyrの他の部分で処理すべきでしょうか? 参考までに完全なバックポートドライバを添付しました。 アナログ(ADC|CMP|DAC|オペアンプ) クロック|タイマー MCX N 回复: MCXN947 HPDAC backport こんにちは、 @wesOS 1. MCXN947 HPDACドライバーをバックポートする際、この方法は正しいのでしょうか? はい、これはバックポートを行う上で合理的かつ現実的なアプローチです。必要なDAC2クロック、SPCアナログモジュール、VREF、リセットリソースがZephyr 4.3環境の他の場所で初期化されていない場合、正しいHPDAC動作を確保するためにドライバーでの初期化が必要です。 2. 新しいZephyrバージョンでは、これらのリソースは別の場所で初期化されているのか、それとも上流nxp_hpdacドライバーはすでに設定済みだと想定しているのか? HPDAC サポートはすでに上流に追加されています: https://github.com/zephyrproject-rtos/zephyr/pull/104642 しかし、現在のアップストリーム実装を使用して簡単な検証を行ったところ、DAC2クロックが設定されていないことが確認されました。例えば、CLOCK_GetDacClkFreq(2)は私のテスト環境で0Hzを報告していますが、同等のMCUX SDK例ではDACクロック設定後は48MHzと報告されています。 この観察から、現在のドライバは特定のデバイスリソースがすでに設定されていると仮定しているようです。あなたの側の時計設定経路ももう一度確認してもらえますか? また、クロック初期化のバグが確認された場合は、Zephyrチームにも報告し、さらなる調査を依頼します。 3. HPDACデバイスのinitコールバックがこのMCXN947固有の初期化の正しい場所でしょうか?それともこれらのステップはZephyrの他の部分で処理すべきでしょうか? バックポートの場合、このロジックをHPDACデバイスの初期化コールバックに配置することは、実用的かつ許容できる解決策です。 とはいえ、MCXN947固有のDAC2クロック、SPC、VREF、およびリセットの設定は、汎用的なHPDACの動作として組み込まれるのではなく、SoC固有の機能として明確に分離されるべきである。長期的には、これらのリソースはクロック、リセット、パワーマネージメントフレームワークなど、Zephyrのインフラストラクチャを通じて管理されることが望ましいです。 BR ハリー
View full article
NXP i.MX93 EVK POWER consumption at runtime I am using NXP i.MX93 EVK and want to monitor the POWER consumption at runtime how can I get this data ? The agenda is to monitor the power during the inference of AI-models. How can I monitor the power metrics ?  How can I monitor power metrics using only software, without any external hardware? Re: NXP i.MX93 EVK POWER consumption at runtime The i.MX93 EVK includes onboard power monitoring circuitry and supports power measurement through software tools. For i.MX93 EVK, NXP provides AN13917: i.MX 93 Power Consumption Measurement, https://docs.nxp.com/bundle/AN13917/page/topics/power_measurement_of_the_imx_93_processor.html It describes how to measure power consumption using the onboard measurement circuitry together with the BCU (Board Control Utility) tool. Thanks
View full article
IMX95 数据手册 你好, 如何获取包含寄存器映射、外设等信息的imx95数据手册? 问候, 阿图尔 Re: IMX95 datasheet 谢谢,祝您愉快! 问候, 阿图尔 Re: IMX95 datasheet 单凭数据手册无法包含完整的寄存器映射和外设描述。 为此,您需要https://www.nxp.com/docs/en/reference-manual/IMX95RM.pdf 。 谢谢!
View full article
Could you please provide me the PCB design guide for IFC interface of LS1021A Hi, On my board,  IFC interface of LS1021A will directly connect to two Flash、two PHY with MCU interface and 2x buffer( SN74LVC16245A)。PCB routing will be very complicated. So,  1. What kind of routing topology could be accepted from SI point of view? 2. Could you please provide me the PCB design guide for IFC interface of LS1021A Thanks in advacnce! Best regards! Jason QorIQ LS1 Devices Re: Could you please provide me the PCB design guide for IFC interface of LS1021A Hi, June: Like below figure shown, my circuit is a little complicated. IFC bus will drive total 8x chips through some buffers.  Cause IFC interface use asynchronous mode, the rate of IFC is not high. Do you have general route guide for IFC interface like ethernet one given me by Yiping.wang? Jason_in_job_0-1789111004993.pngJason_in_job_0-1789111004993.pngJason_in_job_0-1789111004993.png Thanks in advance! Best regards! Jason Re: Could you please provide me the PCB design guide for IFC interface of LS1021A Please share the details of your topology 1. Will the two SN74LVC16245A devices be used to buffer or isolate the IFC address/data bus? 2. What type of Flash devices will be connected to the IFC interface (NOR Flash, NAND Flash, etc.)? 3. How are the two PHY devices connected to the IFC interface? Are they using GPCM mode? 4. Could you please confirm the complete IFC loading? Is it comprised of two Flash devices and two MCU-interface PHY devices? Thanks Re: Could you please provide me the PCB design guide for IFC interface of LS1021A We do not have a dedicated PCB routing guideline specifically for the LS1021A IFC interface. Unlike high-speed interfaces such as DDR or Ethernet, the IFC is an asynchronous parallel interface, and the signal integrity considerations are highly dependent on the actual topology, loading, operating frequency, and PCB implementation. Therefore, NXP does not provide a dedicated IFC routing guide with universal layout rules. In general, we recommend minimizing branch (stub) lengths, keeping the traces from the LS1021A to the latch and buffers as short as possible, and using buffers to isolate downstream loading whenever practical. If practical, we recommend using a daisy-chain style routing with short stubs (for example, within approximately 1 inch / 25 mm where possible) rather than a large star-topology connection. For your topology, it is generally preferable to place the address latch closest to the LS1021A, followed by the boot Flash device, while keeping the buffers close enough to minimize loading on the IFC bus. We also recommend maintaining a controlled single-ended impedance of 50 Ω ±10% for the IFC traces. The ±10% tolerance accounts for PCB fabrication variations, while the design target should ideally be within ±2%. If signal integrity issues are observed during validation, source termination resistors (for example, 22 Ω to 33 Ω) at the LS1021A outputs may be considered based on the actual waveform measurements and PCB implementation. For reference, please refer to AN4878 (LS1021A Design Checklist) and the TWR-LS1021A reference design. Given the complexity of the topology and the number of attached loads, signal integrity (SI) simulation is also recommended to validate the routing topology, loading, and timing margins before finalizing the PCB design. Thanks
View full article
适用于 IMX8MM 的 OS02G10 MIPI CSI 摄像头传感器 大家好。 我从以下位置获取了 os02g10 的驱动程序: https://github.com/Shaggy013/kernel-5.10 我以补丁的形式添加了驱动程序。 我的设备树如下所示: csi1_bridge: csi1_bridge@32e20000 { compatible = "fsl,imx8mm-csi", "fsl,imx8mq-csi", "fsl,imx6s-csi"; reg = <0x32e20000 0x1000>; interrupts = ; clocks = <&clk IMX8MM_CLK_DISP_AXI_ROOT>, <&clk IMX8MM_CLK_CSI1_ROOT>, <&clk IMX8MM_CLK_DISP_APB_ROOT>; clock-names = "disp-axi", "csi_mclk", "disp_dcic"; power-domains = <&dispmix_pd>; status = "disabled"; }; mipi_csi_1: mipi_csi@32e30000 { compatible = "fsl,imx8mm-mipi-csi"; reg = <0x32e30000 0x1000>; interrupts = ; clock-frequency = <360000000>; clocks = <&clk IMX8MM_CLK_CSI1_CORE>, <&clk IMX8MM_CLK_CSI1_PHY_REF>, <&clk IMX8MM_CLK_DISP_AXI_ROOT>, <&clk IMX8MM_CLK_DISP_APB_ROOT>; clock-names = "mipi_clk", "phy_clk", "disp_axi", "disp_apb"; bus-width = <2>; resets = <&mipi_csi_resets>; power-domains = <&mipi_pd>; status = "disabled"; }; os02g10: os02g10@3c { compatible = "ovti,os02g10"; reg = <0x3c>; // spec (manual) says that I2c addres is 0x3d status = "okay"; pinctrl-names = "rockchip,camera_default", "rockchip,camera_sleep"; pinctrl-0 = <&pinctrl_csi_pwdn>, <&pinctrl_csi_rst>, <&pinctrl_mux_oe>; pinctrl-1 = <&pinctrl_csi_pwdn>, <&pinctrl_csi_rst>, <&pinctrl_mux_oe>; csi_id = <0>; pwdn-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>; reset-gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>; mux-gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>; mclk = <24000000>; mclk_source = <0>; rockchip,camera-module-index = <1>; rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "OS02G10 camera"; rockchip,camera-module-lens-name = "1//2.9 inch 15*"; rockchip,camera-hdr-mode = <0>; // kernel-5.10\include\uapi\linux\rk-camera-module.h:307 (enum rkmodule_hdr_mode) mipi_csi; port { os02g10_ep: endpoint { remote-endpoint = <&mipi1_sensor_ep>; }; }; }; }; &csi1_bridge { fsl,mipi-mode; status = "okay"; port { csi1_ep: endpoint { remote-endpoint = <&csi1_mipi_ep>; }; }; }; &mipi_csi_1 { status = "okay"; port { #address-cells = <1>; #size-cells = <0>; mipi1_sensor_ep: endpoint@1 { reg = <1>; remote-endpoint = <&os02g10_ep>; data-lanes = <2>; csis-hs-settle = <13>; csis-clk-settle = <2>; csis-wclk; }; csi1_mipi_ep: endpoint@2 { reg = <2>; remote-endpoint = <&csi1_ep>; }; }; }; &clk { init-on-array = ; }; 我修改了相机驱动程序和 mxc_mipi-csi.c 的探测函数,mx6s-csi.c 之前我遇到过两次格式匹配错误,但我添加了 mx6s-csi { .name = "RAWRGB10 (SBGGR10)", .fourcc = V4L2_PIX_FMT_SBGGR10, .pixelformat = V4L2_PIX_FMT_SBGGR10, .mbus_code = MEDIA_BUS_FMT_SBGGR10_1X10, .bpp = 1, } 并添加到 mxc_mipi-csi.c { .code = MEDIA_BUS_FMT_SBGGR10_1X10, .fmt_reg = MIPI_CSIS_ISPCFG_FMT_RAW10, .data_alignment = 8, } v4l2 API 工作正常,没有错误。以下是我获取图片的命令 v4l2-ctl -d /dev/video0 --verbose --set-fmt-video=width=1920,height=1080,pixelformat=BG10 --stream-mmap --stream-count=1 --stream-to=bb001.raw 结果以及我的调试信息 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_s_power os02g10 3-003c: in function: os02g10_s_power os02g10 3-003c: in function: os02g10_runtime_resume os02g10 3-003c: in function: __os02g10_power_on os02g10 3-003c: OS02G10_REG_SOFTWARE_RESET mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_clk_enable mxc_mipi-csi 32e30000.mipi_csi: enable mipi_clk returns: 0 mxc_mipi-csi 32e30000.mipi_csi: enable phy_clk returns: 0 mxc_mipi-csi 32e30000.mipi_csi: enable disp_axi returns: 0 mxc_mipi-csi 32e30000.mipi_csi: enable disp_apb returns: 0 VIDIOC_QUERYCAP: ok VIDIOC_G_FMT: ok mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_enum_mbus_code os02g10 3-003c: in function: os02g10_enum_mbus_code mxc_mipi-csi 32e30000.mipi_csi: camera sensor format (media-bus-format.h): 0x3007 mxc_mipi-csi 32e30000.mipi_csi: supported format0 by mipi-csi driver: 0x2008 mxc_mipi-csi 32e30000.mipi_csi: supported format1 by mipi-csi driver: 0x2007 mxc_mipi-csi 32e30000.mipi_csi: supported format2 by mipi-csi driver: 0x3001 mxc_mipi-csi 32e30000.mipi_csi: supported format3 by mipi-csi driver: 0x3007 mx6s-csi 32e20000.csi1_bridge: in function: mx6s_vidioc_enum_fmt_vid_cap - format RAWRGB10 (SBGGR10) mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_fmt VIDIOC_S_FMT: ok Format Video Capture: Width/Height : 1920/1080 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_enum_mbus_code os02g10 3-003c: in function: os02g10_enum_mbus_code mxc_mipi-csi 32e30000.mipi_csi: camera sensor format (media-bus-format.h): 0x3007 mxc_mipi-csi 32e30000.mipi_csi: supported format0 by mipi-csi driver: 0x2008 mxc_mipi-csi 32e30000.mipi_csi: supported format1 by mipi-csi driver: 0x2007 mxc_mipi-csi 32e30000.mipi_csi: supported format2 by mipi-csi driver: 0x3001 mxc_mipi-csi 32e30000.mipi_csi: supported format3 by mipi-csi driver: 0x3007 mx6s-csi 32e20000.csi1_bridge: in function: mx6s_vidioc_enum_fmt_vid_cap - format RAWRGB10 (SBGGR10) Pixel Format : 'BG10' (10-bit Bayer BGBG/GRGR) Field : None Bytes per Line : 1920 Size Image : 2073600 Colorspace : sRGB Transfer Function : Default (maps to sRGB) YCbCr/HSV Encoding: ITU-R 601 Quantization : Full Range Flags: mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_s_stream mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_clear_counters mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_start_stream mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_sw_reset: REG CMN_CTRL 0x32E30004 = 0x00004000 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_params mxc_mipi-csi 32e30000.mipi_csi: in function: __mipi_csis_set_format mxc_mipi-csi.0: fmt: 0x3007, 1920 x 1080 mxc_mipi-csi 32e30000.mipi_csi: in function: __mipi_csis_set_format: REG ISPRESOL_CH0 0x32E30044 = 0x04380780 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_hsync_settle: REG DPHYCTRL 0x32E30024=0x0d800000 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_params: REG CMN_CTRL 0x32E30004 = 0x00004104 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_system_enable: REG CMN_CTRL 0x32E30004=0x00004105 VIDIOC_REQBUFS returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_system_enable: REG DPHYCTRL 0x32E30024=0x0d800007 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_enable_interrupts: REG CSIS_INTMSK 0x32E30010 = 0xf00fffff mxc_mipi-csi.0: --- mipi_csis_start_stream --- mxc_mipi-csi.0: 0x04 CMM CTRL : 0x00004105 mxc_mipi-csi.0: 0x08 CLK CTRL : 0x000f0000 mxc_mipi-csi.0: 0x10 INT MASK0: 0xf00fffff mxc_mipi-csi.0: 0x14 INT SRC0 : 0x00000000 mxc_mipi-csi.0: 0x18 INT MASK1: 0x00000000 mxc_mipi-csi.0: 0x1c INT SRC1 : 0x00000000 mxc_mipi-csi.0: 0x20 PHY STAT : 0x000000f1 mxc_mipi-csi.0: 0x24 PHY CTRL : 0x0d800007 mxc_mipi-csi.0: 0x30 PHY M/S-L: 0x000001f4 mxc_mipi-csi.0: 0x34 PHY M/S-H: 0x00000000 mxc_mipi-csi.0: 0x38 PHY S-CTL: 0x00000000 mxc_mipi-csi.0: 0x3C PHY S-CTH: 0x00000000 mxc_mipi-csi.0: 0x40 ISP CONF : 0x000000ac mxc_mipi-csi.0: 0x44 ISP RESOL: 0x04380780 mxc_mipi-csi.0: 0x48 ISP SYNC : 0x04380780 os02g10 3-003c: in function: os02g10_s_stream os02g10 3-003c: in function: __os02g10_start_stream os02g10 3-003c: in function: __os02g10_start_stream __v4l2_ctrl_handler_setup returns: 0 os02g10 3-003c: in function: os02g10_s_stream: unlock_and_return VIDIOC_STREAMON returned 0 (Success) 之后什么都不会发生,只有等待、等待,什么也不会发生。 我用20MHz示波器观察不到MIPI DATA和MIPI CLK线上的任何信号。(我知道带宽很低,但对于数据线路来说,任何变化都应该能被察觉,然而却一片寂静。) 我不确定clk节点是否正确,也许没有与mipi_csi时钟名称匹配的&clk节点。有人用过吗? 我能做些什么 ? i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Camera sensor os02g10 MIPI CSI for IMX8MM 您好,您可以使用我们已向上游提交的 Linux 驱动程序。 我们已在基于 i.mx8mp 的 debix 平台上进行了测试。 这是我们的司机。 https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=263d0fa1d46ac1ae2eebc5a5490fec58233c69ad 这是我们的DT https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a4d0f0c88ae8185315afbc1eb68c978ed710f759 -- 鲁特维 SiliconSignals Re: Camera sensor os02g10 MIPI CSI for IMX8MM 我成功了。 .bpp必须等于 2 但主要问题出在硬件上。
View full article
Camera sensor os02g10 MIPI CSI for IMX8MM Hi all. I got the driver for os02g10 from: https://github.com/Shaggy013/kernel-5.10 I added driver as a patch. My DeviceTree looks that: csi1_bridge: csi1_bridge@32e20000 { compatible = "fsl,imx8mm-csi", "fsl,imx8mq-csi", "fsl,imx6s-csi"; reg = <0x32e20000 0x1000>; interrupts = ; clocks = <&clk IMX8MM_CLK_DISP_AXI_ROOT>, <&clk IMX8MM_CLK_CSI1_ROOT>, <&clk IMX8MM_CLK_DISP_APB_ROOT>; clock-names = "disp-axi", "csi_mclk", "disp_dcic"; power-domains = <&dispmix_pd>; status = "disabled"; }; mipi_csi_1: mipi_csi@32e30000 { compatible = "fsl,imx8mm-mipi-csi"; reg = <0x32e30000 0x1000>; interrupts = ; clock-frequency = <360000000>; clocks = <&clk IMX8MM_CLK_CSI1_CORE>, <&clk IMX8MM_CLK_CSI1_PHY_REF>, <&clk IMX8MM_CLK_DISP_AXI_ROOT>, <&clk IMX8MM_CLK_DISP_APB_ROOT>; clock-names = "mipi_clk", "phy_clk", "disp_axi", "disp_apb"; bus-width = <2>; resets = <&mipi_csi_resets>; power-domains = <&mipi_pd>; status = "disabled"; }; os02g10: os02g10@3c { compatible = "ovti,os02g10"; reg = <0x3c>; // spec (manual) says that I2c addres is 0x3d status = "okay"; pinctrl-names = "rockchip,camera_default", "rockchip,camera_sleep"; pinctrl-0 = <&pinctrl_csi_pwdn>, <&pinctrl_csi_rst>, <&pinctrl_mux_oe>; pinctrl-1 = <&pinctrl_csi_pwdn>, <&pinctrl_csi_rst>, <&pinctrl_mux_oe>; csi_id = <0>; pwdn-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>; reset-gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>; mux-gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>; mclk = <24000000>; mclk_source = <0>; rockchip,camera-module-index = <1>; rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "OS02G10 camera"; rockchip,camera-module-lens-name = "1//2.9 inch 15*"; rockchip,camera-hdr-mode = <0>; // kernel-5.10\include\uapi\linux\rk-camera-module.h:307 (enum rkmodule_hdr_mode) mipi_csi; port { os02g10_ep: endpoint { remote-endpoint = <&mipi1_sensor_ep>; }; }; }; }; &csi1_bridge { fsl,mipi-mode; status = "okay"; port { csi1_ep: endpoint { remote-endpoint = <&csi1_mipi_ep>; }; }; }; &mipi_csi_1 { status = "okay"; port { #address-cells = <1>; #size-cells = <0>; mipi1_sensor_ep: endpoint@1 { reg = <1>; remote-endpoint = <&os02g10_ep>; data-lanes = <2>; csis-hs-settle = <13>; csis-clk-settle = <2>; csis-wclk; }; csi1_mipi_ep: endpoint@2 { reg = <2>; remote-endpoint = <&csi1_ep>; }; }; }; &clk { init-on-array = ; }; I modified probe function for camera driver and for mxc_mipi-csi.c, mx6s-csi.c Before I had 2 times format match error but I added to the mx6s-csi { .name = "RAWRGB10 (SBGGR10)", .fourcc = V4L2_PIX_FMT_SBGGR10, .pixelformat = V4L2_PIX_FMT_SBGGR10, .mbus_code = MEDIA_BUS_FMT_SBGGR10_1X10, .bpp = 1, } and added to mxc_mipi-csi.c { .code = MEDIA_BUS_FMT_SBGGR10_1X10, .fmt_reg = MIPI_CSIS_ISPCFG_FMT_RAW10, .data_alignment = 8, } and v4l2 API works, there is no error. Below my command to get picture v4l2-ctl -d /dev/video0 --verbose --set-fmt-video=width=1920,height=1080,pixelformat=BG10 --stream-mmap --stream-count=1 --stream-to=bb001.raw and the result with my debug messages mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_s_power os02g10 3-003c: in function: os02g10_s_power os02g10 3-003c: in function: os02g10_runtime_resume os02g10 3-003c: in function: __os02g10_power_on os02g10 3-003c: OS02G10_REG_SOFTWARE_RESET mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_clk_enable mxc_mipi-csi 32e30000.mipi_csi: enable mipi_clk returns: 0 mxc_mipi-csi 32e30000.mipi_csi: enable phy_clk returns: 0 mxc_mipi-csi 32e30000.mipi_csi: enable disp_axi returns: 0 mxc_mipi-csi 32e30000.mipi_csi: enable disp_apb returns: 0 VIDIOC_QUERYCAP: ok VIDIOC_G_FMT: ok mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_enum_mbus_code os02g10 3-003c: in function: os02g10_enum_mbus_code mxc_mipi-csi 32e30000.mipi_csi: camera sensor format (media-bus-format.h): 0x3007 mxc_mipi-csi 32e30000.mipi_csi: supported format0 by mipi-csi driver: 0x2008 mxc_mipi-csi 32e30000.mipi_csi: supported format1 by mipi-csi driver: 0x2007 mxc_mipi-csi 32e30000.mipi_csi: supported format2 by mipi-csi driver: 0x3001 mxc_mipi-csi 32e30000.mipi_csi: supported format3 by mipi-csi driver: 0x3007 mx6s-csi 32e20000.csi1_bridge: in function: mx6s_vidioc_enum_fmt_vid_cap - format RAWRGB10 (SBGGR10) mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_fmt VIDIOC_S_FMT: ok Format Video Capture: Width/Height : 1920/1080 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_enum_mbus_code os02g10 3-003c: in function: os02g10_enum_mbus_code mxc_mipi-csi 32e30000.mipi_csi: camera sensor format (media-bus-format.h): 0x3007 mxc_mipi-csi 32e30000.mipi_csi: supported format0 by mipi-csi driver: 0x2008 mxc_mipi-csi 32e30000.mipi_csi: supported format1 by mipi-csi driver: 0x2007 mxc_mipi-csi 32e30000.mipi_csi: supported format2 by mipi-csi driver: 0x3001 mxc_mipi-csi 32e30000.mipi_csi: supported format3 by mipi-csi driver: 0x3007 mx6s-csi 32e20000.csi1_bridge: in function: mx6s_vidioc_enum_fmt_vid_cap - format RAWRGB10 (SBGGR10) Pixel Format : 'BG10' (10-bit Bayer BGBG/GRGR) Field : None Bytes per Line : 1920 Size Image : 2073600 Colorspace : sRGB Transfer Function : Default (maps to sRGB) YCbCr/HSV Encoding: ITU-R 601 Quantization : Full Range Flags: mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_s_stream mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_clear_counters mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_start_stream mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_sw_reset: REG CMN_CTRL 0x32E30004 = 0x00004000 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_params mxc_mipi-csi 32e30000.mipi_csi: in function: __mipi_csis_set_format mxc_mipi-csi.0: fmt: 0x3007, 1920 x 1080 mxc_mipi-csi 32e30000.mipi_csi: in function: __mipi_csis_set_format: REG ISPRESOL_CH0 0x32E30044 = 0x04380780 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_hsync_settle: REG DPHYCTRL 0x32E30024=0x0d800000 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_set_params: REG CMN_CTRL 0x32E30004 = 0x00004104 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_system_enable: REG CMN_CTRL 0x32E30004=0x00004105 VIDIOC_REQBUFS returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_system_enable: REG DPHYCTRL 0x32E30024=0x0d800007 mxc_mipi-csi 32e30000.mipi_csi: in function: mipi_csis_enable_interrupts: REG CSIS_INTMSK 0x32E30010 = 0xf00fffff mxc_mipi-csi.0: --- mipi_csis_start_stream --- mxc_mipi-csi.0: 0x04 CMM CTRL : 0x00004105 mxc_mipi-csi.0: 0x08 CLK CTRL : 0x000f0000 mxc_mipi-csi.0: 0x10 INT MASK0: 0xf00fffff mxc_mipi-csi.0: 0x14 INT SRC0 : 0x00000000 mxc_mipi-csi.0: 0x18 INT MASK1: 0x00000000 mxc_mipi-csi.0: 0x1c INT SRC1 : 0x00000000 mxc_mipi-csi.0: 0x20 PHY STAT : 0x000000f1 mxc_mipi-csi.0: 0x24 PHY CTRL : 0x0d800007 mxc_mipi-csi.0: 0x30 PHY M/S-L: 0x000001f4 mxc_mipi-csi.0: 0x34 PHY M/S-H: 0x00000000 mxc_mipi-csi.0: 0x38 PHY S-CTL: 0x00000000 mxc_mipi-csi.0: 0x3C PHY S-CTH: 0x00000000 mxc_mipi-csi.0: 0x40 ISP CONF : 0x000000ac mxc_mipi-csi.0: 0x44 ISP RESOL: 0x04380780 mxc_mipi-csi.0: 0x48 ISP SYNC : 0x04380780 os02g10 3-003c: in function: os02g10_s_stream os02g10 3-003c: in function: __os02g10_start_stream os02g10 3-003c: in function: __os02g10_start_stream __v4l2_ctrl_handler_setup returns: 0 os02g10 3-003c: in function: os02g10_s_stream: unlock_and_return VIDIOC_STREAMON returned 0 (Success) After that nothing is going to happen, just waiting and waiting and nothing. I can not observe any traffic on MIPI DATA and MIPI CLK lines by 20MHz oscilloscope. (I know the bandwidth is low but for data lines there should be anything seen - any change but there is completely silence)  Im not sure if clk node is correct and maybe there is no match &clk node with mipi_csi clocks by clock names. Has anyone experience with it? What can I do ? i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Camera sensor os02g10 MIPI CSI for IMX8MM Hi, you can use our linux upstreamed driver,  we have tested this on i.mx8mp based debix platform.  Here is our driver  https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=263d0fa1d46ac1ae2eebc5a5490fec58233c69ad Here is our DT https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a4d0f0c88ae8185315afbc1eb68c978ed710f759 -- Rutvij  SiliconSignals Re: Camera sensor os02g10 MIPI CSI for IMX8MM I got it to work. .bpp has to be = 2 but main issue was with hardware
View full article
NXP i.MX93 EVK 実行時の消費電力 私はNXP i.MX93 EVKを使っていて、実行時の消費電力を監視したいのですが、このデータをどうやって取得すればいいですか? 目的はAIモデルの推論中のパワーを監視することです。電力指標はどうやって監視できますか? 外部ハードウェアを使わずにソフトウェアだけで電力指標を監視するにはどうすればいいですか? Re: NXP i.MX93 EVK POWER consumption at runtime i.MX93 EVKはオンボードの電力監視回路を搭載し、ソフトウェアツールによる電力測定もサポートしています。 i.MX93 EVK については、NXP は AN13917: i.MX 93 消費電力測定を提供しています。 https://docs.nxp.com/bundle/AN13917/page/topics/power_measurement_of_the_imx_93_processor.html 本書では、オンボード測定回路とBCU(ボード制御ユーティリティ)ツールを組み合わせて消費電力を測定する方法について説明します。 よろしくお願いします。
View full article
Audifort Review: Does It Really Stop Tinnitus Overnight? Audifort Review: Does It Really Stop Tinnitus Overnight? If you are dealing with a non-stop ringing, buzzing, or clicking sound in your ears every single day, you know how desperate the search for relief can get. When looking for solutions online, you may come across aggressive advertisements for liquid dietary drops like Audifort that imply instant results or overnight relief from tinnitus. The short answer is no: Audifort does NOT stop tinnitus overnight. No oral supplement or natural drop can instantly cure chronic tinnitus or rebuild damaged auditory nerves in 24 hours. However, that does not mean the formula is useless. When evaluated realistically as a natural dietary supplement rather than a miracle cure, Audifort provides supportive nutrients that nourish inner ear blood vessels and calm overactive nerve signals over time. In this Audifort review, we look beyond the sales marketing to analyze how the drops actually work, its core ingredients, realistic expectation timelines, potential side effects, and how to avoid fake online listings.
View full article
S32DS activation code The software version is S32DS_ARM_Win32_v2018.R1_b180326. Could you provide the activation code? PEG GUI Re: S32DS activation code Dear customer, S32 Design Studio is free of charge software that just requires to be activated. The activation process is incorporated into the S32DS installer. Before you proceed to the installation you always need to get an activation code. The activation code is typically sent automatically to your email registered on www.nxp.com  account when you proceed to downloading of S32DS installer. Please follow the instructions:  https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-Activate-S32-Design-Studio/ta-p/1128340 If still the issue please let me know. Thank you. Have a nice day. Best regards Pavla
View full article
S32DSアクティベーションコード ソフトウェアのバージョンはS32DS_ARM_Win32_v2018.R1_b180326です。アクティベーションコードをご提供いただけますでしょうか? PEG GUI Re: S32DS activation code お客様へ、 S32 Design Studioは、起動するだけで無料のソフトウェアです。アクティベーションプロセスはS32DSインストーラーに組み込まれています。インストールを進める前に、必ずアクティベーションコードを取得する必要があります。アクティベーションコードは通常、 www.nxp.comに登録されているメールアドレスに自動的に送信されます。S32DSインストーラーのダウンロードに進む際にアカウントが必要です。 指示に従ってください。 https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-Activate-S32-Design-Studio/ta-p/1128340 それでも問題が解決しない場合は、お知らせください。ありがとう。良い1日を。よろしくお願いします パブラ
View full article
CodeWarrior 5.1 デバッガー。「ステップ実行時にマスク可能なISRを無効にする」Iビットが9S12XEQ512で永続的に設定されます。 環境: IDE: CodeWarrior 5.1(HC(S)12Xコンパイラ) ターゲット: MC9S12XEQ512 バスクロック: 49.777 MHz BDMインターフェース:USB Multilink Universalで再現可能;Cyclone Proでは確認されていません ホストOS: Windows 10とWindows 11の両方で確認されました メモリモデル:大規模モデルでは再現可能;バンクモデルでは再現性が低いか、それ以下です 使用した設定: 「HC12MultilinkCyclonePro」→「セットアップ...」→「デバッグオプション」→「ステップ実行時にマスク可能なISRを無効にする」— 有効。 説明: デバッガで一定回数のステップ操作(シングルステップまたはステップオーバー)を実行すると、マスク可能な割り込み(CCRのIビット)が永久的に無効になります。割り込みは、実行を継続した後(実行/ゴー)でも再開されず、CCRレジスタビューでIビットを手動でクリアするまでマスクされたままになります。この挙動は、USB Multilink Universal BDMインターフェースを用いたLargeメモリモデルでも、Windows 10およびWindows 11のホスト上で一貫して再現可能です。同じプロジェクト設定のCyclone Proインターフェースでも、バンクメモリモデルでも同様の問題は見られていません 現在使用されている回避策: CCRレジスタビューでIビットがスタックした場合、手動でIビットをクリアします。 リクエスト: これは、S12Xコア上のCode Warrior 5.1のステップエミュレーションと組み合わせたUSB Multilink Universalのファームウェア/ドライバの既知の問題でしょうか?固定されたマルチリンクユニバーサルのファームウェアバージョンや、このデバイス/インターフェースの組み合わせで割り込み駆動の大規模モデルプロジェクトをデバッグするための推奨代替ワークフローはありますか? よろしくお願い申し上げます。 Re: CodeWarrior 5.1 debugger. "Disable maskable ISR's when stepping" I-bit permanently set こんにちは、 あなたが見ている挙動は現実的で、あなたが気づいたインターフェースの違い(Multilink Universalは影響を受けていますが、Cyclone Proは影響を受けていません)は有益な観察です。発生する割り込みの種類によって選択肢が異なるため、それに基づいて実践的なガイダンスを提供させていただきます。 タイマーベースの割り込みの場合 もしアプリケーションがタイマーオーバーフローや出力比較、またはペリフェラルで生成される割り込みを使っている場合、デバッグ時に「ステッピング時にマスク可能なISRを無効化する」機能が実際には必要ありません。ほとんどのS12Xタイマーおよびペリフェラルモジュールには、デバイスがBDMアクティブモードに入るとモジュールをフリーズするFRZビットがあり、これは停止や単一ステップの間自動的に動作します。FRZが設定されると、タイマーはステップ中にカウントを停止し、ステップ間で割り込みを発生させることはできません。これはデバッガインターフェースとは独立してハードウェアレベルで動作し、このクラスの割り込みに対してよりクリーンな解決策となります。 外部割り込みおよびキーボード割り込み(KBI)の場合 この点に関しては、状況はより限定的である。外部IRQおよびKBI割り込みは非同期の外部信号であり、それらに対するハードウェアフリーズ機構はありません。BDMインターフェースはハードウェアレベルでそれらを抑制できません。「ステップ実行時にマスク可能なISRを無効にする」機能は、まさにこのギャップを埋めるために存在し、各ステップ中にCCR Iビットを介してそれらをマスクします。 お使いの環境では、この機能がUSB Multilink Universalを使用してIビットを正しく復元しないため、これらの割り込みソースを使用するコードのデバッグには、既に正しく動作することが確認されているCyclone Proを使用するのが最も確実な方法です。 試してみる価値あり もしCodeWarrior 5.2にアクセスできるなら、試す価値はあります。このバージョンではデバッガ側の変更があり、USB Multilink Universalを用いたLargeメモリモデルでのIビット復元動作は改善される可能性がありますが、保証はありません。 これで選択肢が明確になれば幸いです。 ラディスラフ
View full article