Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
Kinetis K40DN512 の USB CDC デュアル VCOM および MSC こんにちは、 私は、K40DN512 ボード上で FatFS アプリケーションを使用してデュアル VCOM および MSC を作成しようと取り組んでいます。 デバイス スタック上のデュアル VCOM と SD ディスクを使用した FatFS の動作は確認できましたが、MSC の実装は困難でした。デバイス構成ツールを使用して一部の USB コンポーネントを構成する人がいるのを見たことがありますが、私のプロセッサはこれをサポートしていません。 適切なエンドポイントやその他の記述子情報を構成するために、何らかの形式のウィザードを使用して USB デバイス記述子を構成するより簡単な方法はありますか? そうでない場合、これまでに USB デバイス スタック経由でデュアル CDC VCOM および MSC w/ FatFS システムを動作させることに成功した人はいますか?もしSOなら、どのような構成を使用しましたか? ヒントやガイダンスがあれば歓迎します。 Kinetis KシリーズMCU USB Re: USB CDC Dual VCOM and MSC on Kinetis K40DN512 こんにちは@tbryant 要件に最も近い SDK デモ(例: usb_device_composite_cdc_msc_disk )を選択することをお勧めします。まず、ボード上で正常に動作することを確認し、次を参照して 2 番目の CDC インターフェースを追加します。 Re: 複合USBデュアルCDCデバイス - NXPコミュニティ ありがとう。 BR アリス
查看全文
S32K 入力キャプチャ こんにちは、チーム S32K146 マイクロコントローラを使用していますが、入力キャプチャピンとしていずれかの入力ピンが必要です。どのモジュールで構成すればよいか教えていただけますか? FTM を信号測定として使用した場合、入力キャプチャ機能を実現できますか?それともic_pal機能を使うべきでしょうか? サポートをお願いします ありがとう シュルティ C Re: S32K Input Capture こんにちは、ペトルさん。 INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn, PWM_InputCapture_IRQHandler, NULL);関数はデフォルトのハンドラーを取得しており、このハンドラーFTM0_Ch0_Ch1_IRQnを取得していないため、使用できません。 私の設定は /* flexTimer_ic_1 InitConfig のグローバル設定 */ ftm_user_config_t flexTimer_ic_1_InitConfig = {     {         true , /* ソフトウェアトリガー状態 */         false , /* ハードウェアトリガー1の状態 */         false , /* ハードウェアトリガー2の状態 */         false , /* ハードウェアトリガー3の状態 */         false , /* 最大積載ポイント状態 */         false , /* 最小積載ポイント状態 */ FTM_SYSTEM_CLOCK、 /* INVCTRLレジスタの更新モード */ FTM_SYSTEM_CLOCK、 /* SWOCTRLレジスタの更新モード */ FTM_SYSTEM_CLOCK, /* OUTMASKレジスタの更新モード */ FTM_SYSTEM_CLOCK, /* CNTINレジスタの更新モード */         false , /* トリガーの自動クリア */ FTM_UPDATE_NOW, /* 同期ポイント */ }, FTM_MODE_INPUT_CAPTURE, /* FTMの動作モード */ FTM_CLOCK_DIVID_BY_1, /* FTMクロックプリスケーラ */ FTM_CLOCK_SOURCE_SYSTEMCLK, /* FTMクロックソース */ FTM_BDM_MODE_11, /* FTMデバッグモード */         false , /* 割り込み状態 */         false /* 初期化トリガー */ }; /* flexTimer_ic_1 の入力キャプチャ設定 */ ftm_input_param_t flexTimer_ic_1_InputCaptureConfig = {     1U , /* チャネル構成の数 */     65535U , /* 最大カウント値 */     flexTimer_ic_1_InputCaptureChannelConfig /* チャンネル設定*/ }; /* flexTimer_ic_1 入力キャプチャのチャネル構成構造体 */ ftm_input_ch_param_t flexTimer_ic_1_InputCaptureChannelConfig [ 1 ] = {     {         0U , /* チャネルID */ FTM_SIGNAL_MEASUREMENT, /* 入力キャプチャ操作モード */ FTM_RISING_EDGE, /* エッジアライメントモード */ FTM_FALLING_EDGE_PERIOD_MEASUREMENT, /* 信号測定操作タイプ */         0U , /* フィルター値 */         false , /* フィルターの状態(有効/無効) */         true , /* 連続測定状態 */         NULL, /* チャネルイベント情報のコールバックパラメータのベクトル */         NULL /* チャネルイベント情報のコールバックのベクター */    } }; Re: S32K Input Capture こんにちは、 はい、それらの機能で十分なはずです。SDK ドライバは FTM チャネル割り込みを有効にするので、起動時から適切なハンドラーを割り当てる必要があると思います。正しくない場合、ハンドラーは FTM0_Ch0_Ch1_IRQHandler になります。 キャプチャされた値を取得するには、FTM_DRV_GetInputCaptureMeasurement が呼び出されます。 BR、ペトル Re: S32K Input Capture こんにちは、ペトルさん。   分かりやすく説明していただき、ありがとうございます。   これらの関数を使用してFTMピンを入力キャプチャとして初期化できますか? `FTM_DRV_Init()` `FTM_DRV_InitInputCapture()`   パルス発生を捕捉するためのIRQハンドラをインストールする `INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn, PWM_InputCapture_IRQHandler, NULL)`     サポートをお願いします   ありがとう シュルティ C Re: S32K Input Capture こんにちは、 最も一般的で効率的な方法は、FTM を入力キャプチャ モードで設定し、FTM 機能を持つピンを使用することです。各 FTM チャネルは入力キャプチャ モードに設定でき、入力信号のエッジ (立ち上がり、立ち下がり、またはその両方) でタイマー値をキャプチャします。これは通常、信号周期、パルス幅、周波数の測定に使用されます。 IC PAL ドライバを使用すると、入力信号を検出し、チャネル入力信号のパルス幅または周期を測定できます。FTM、eMIOS、FLEXPWM、ETIMER をサポートするすべてのプラットフォームと IP 間でポータブルになるように設計されています。 SO、完全な制御とパフォーマンスが必要な場合は、FTM を直接使用してください。よりシンプルなコードと移植性が必要な場合は、IC PAL を使用してください。 BR、ペトル Re: S32K Input Capture こんにちは、 直接参照できる SDKs の例があります (ftm_signal_measurement)。 または、問題を示す簡略化されたプロジェクトを共有します。 BR、ペトル Re: S32K Input Capture こんにちは、 SDK の例では、直接参照しました (ftm_signal_measurement)。 この例では割り込み方法は使用されず、ポーリング方法が使用され、その後FTM_DRV_GetInputCaptureMeasurementが呼び出されました。 割り込みによる FTM 信号測定を探しています。入力キャプチャが信号を認識すると、割り込みがトリガーされ、 ISR で FTM_DRV_GetInputCaptureMeasurement 関数が呼び出されます。 これのコードを提供してもらえますか ありがとう シュルティ C Re: S32K Input Capture こんにちは、 ハンドラーを再度インストールする必要がある場合は、 外部void FTM0_Ch0_Ch1_IRQHandler(void); INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn、FTM0_Ch0_Ch1_IRQHandler、NULL); BR、ペトル Re: S32K Input Capture こんにちは、 はい、その関数は定義されていますが、その後関数呼び出しは無限ループに入り、さらに実行されます。 システム全体が機能しなくなる、 ありがとう シュルティ C Re: S32K Input Capture こんにちは、 サポートありがとうございます。コードスニペットも確認させていただきます。 T&R、 シュルティ C Re: S32K Input Capture こんにちは、 割り込み対応FTMピンへの入力を入力キャプチャとして取得できますか? よろしくお願いします。 シュルティ C Re: S32K Input Capture こんにちは、 ドライバはキャプチャ イベント情報に割り込みを使用していますが、例では直接示されていません。 FTM IC 設定を変更して、ワンショット モードを使用し、ドライバ割り込みから呼び出されるコールバックを追加しました。 ftm_signal_measurement_s32k146 デモの変更された main.c については、添付ファイルを参照してください。 BR、ペトル
查看全文
imx95 verdin-evk mlan/moal サポート こんにちは、リストの皆さん 次のボードの Wi-Fi/Bluetooth をサポートするために、Linux-imx カーネルと mwifiex コンポーネントのタグlf-6.6.3-1.0.0 を使用しています。 8<-- U-Boot SPL 2023.04+gf8a2983ec8+p0 (2024年3月4日 - 07:25:04 +0000) SOC: 0xa1009500 LC: 0x40010 SYS ブート理由: por、発生元: -1、エラー: -1 SYS シャットダウン理由: por、発生元: -1、エラー: -1 DDRMIXがパワーアップしました 通常のブート MMC1から起動しようとしています プライマリセットが選択されました MMC/SD 0xacc00からイメージをロードする お知らせ: BL31: v2.8(リリース):android-14.0.0-imx95-demo-1-g8dbe28631 通知: BL31: 構築日時: 2024年1月22日 17:57:56 U-Boot 2023.04+gf8a2983ec8+p0 (2024年3月4日 - 07:25:04 +0000) CPU: i.MX95 rev1.1(1800MHz) CPU: オートモーティブ温度グレード (-40℃~125℃)、22℃ LM ブート理由: por、origin: -1、errid: -1 LM シャットダウン理由: por、発生元: -1、エラー: -1 モデル: Toradex i.MX95 19X19 TITAN EVK [..] -->8 私はimx95-19x19-titan.dtbを使用していますが、この dtb にノードがなくても Wi-Fi がどのようにサポートされるのか疑問に思っています。この dtb を逆コンパイルすると、Bluetooth 用のノードが 1 つあります (動作していません)。 8<-- [..] シリアル番号@42590000 { 互換性 = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart"; <0x42590000 0x1000> レジスタ<0x00 0x42 0x04> =; 割り込み<0x11 0x90> =; クロック =; クロック名 = "ipg"; dmas<0x27 0x16 0x00 0x01 0x27 0x15 0x00 0x00> =; dma-names = "rx", "tx"; ステータス = "正常"; pinctrl-names = "デフォルト"; ピンコントロール-0 =<0x2e> �; ファンドル =<0xcf> �; ブルートゥース { 互換性 = "nxp、88w8987-bt"; fw-init-baudrate<0x2dc6c0> =; }; }; [..] -->8 しかし、Wi-Fi のノードがありません。 どうすれば正常に動作するのでしょうか? モジュール mlan と moal をロードすると「正常」になりますが、新しいネットワーク インターフェースがありません。 8<-- root@target-imx95-verdin-evk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf drvdbg=0x7 [ 1451.671079] mlan: ツリー外のモジュールをロードするとカーネルが汚染されます。 [ 1451.705854] wlan: MWLANドライバを読み込んでいます [ 1451.709988] wlan: バス ドライバに登録... [ 1451.714385] wlan: バスドライバへの登録が完了しました [ 1451.718855] wlan: ドライバが正常にロードされました -->8 何か手がかりはありますか? ありがとうございます。よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは@ebio 、 ご反応いただきありがとうございます。 toradex (git://git.toradex.com/linux-toradex.git)からカーネルリポジトリを取得します。ブランチtoradex_6.6-2.2.x-imxを選択し、カーネルをビルドします。 imx カーネル リポジトリとは対照的に、「wifi」を含む dtb ファイル名がいくつかあります。 8<-- % arch/arm64/boot/dts/freescale -iname "imx95*wifi*.dtb" を検索 arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-mallow.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dev.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-ivy.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-ivy.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dev.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-mallow.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dahlia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-yavia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dahlia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-yavia.dtb -->8 ご想像のとおり、Toradexから必要なものを抽出し、NXPカーネルリポジトリ(タグ: lf-6.6.3-1.0.0)のDTBを適応させようとしています。😞 8<-- diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts インデックス ccb88efde3c1..859183be58dc 100644 --- a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts @@ -189,6 +189,20 @@ reg_usdhc2_vmmc: レギュレータ-usdhc2 { アクティブハイを有効にする; }; + /* Wi-Fi を追加 */ + reg_wifi_en: レギュレーター Wifi-en { + 互換 = 「レギュレータ固定」; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wifi_pwr_en>; + /* PMIC_EN_WIFI */ + gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; + アクティブハイを有効にする; + レギュレータ最大マイクロボルト = <3300000>; + レギュレータ最小マイクロボルト = <3300000>; + レギュレータ名 = "PDn_MAYA-W260"; + 起動遅延時間 = <2000>; + }; + reg_pcie0: レギュレータ-pcie { compatible = "レギュレータ固定"; レギュレータ名 = "PCIE_WLAN_EN"; @@ -676,6 +690,19 @@ &usdhc2 { ステータス = "正常"; }; +/* Wi-Fiサポートを追加 */ +/* モジュール内 Wi-Fi */ +&usdhc3 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + ピンctrl-0 = <&pinctrl_usdhc3>; + ピンctrl-1 = <&pinctrl_usdhc3>; + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; + 電源を停止したままにします。 + 取り外し不可。 + vmmc-supply = <&reg_wifi_en>; + ステータス = "正常"; +}; + &enetc_port0 { pinctrl-names = "デフォルト"; pinctrl-0 = <&pinctrl_enetc0>; @@ -1142,6 +1169,32 @@ IMX95_PAD_SD2_DATA3__USDHC2_DATA3 0x13fe IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e >; }; + + + /* WB SKU ではモジュール内 Wi-Fi、それ以外の場合はモジュール固有の SDIO */ + pinctrl_usdhc3: usdhc3grp { + fsl,ピン = , /* SD3_CLK */ + , /* SD3_CMD */ + , /* SD3_DATA0 */ + , /* SD3_DATA1 */ + , /* SD3_DATA2 */ + ; /* SD3_DATA3 */ + }; + + pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { + fsl,ピン = , /* SD3_CLK */ + , /* SD3_CMD */ + , /* SD3_DATA1 */ + , /* SD3_DATA2 */ + , /* SD3_DATA3 */ + ; /* SD3_DATA4 */ + }; + + pinctrl_wifi_pwr_en: wifipwrengrp { + /* PMIC_EN_WIFI */ + fsl、ピン = ; + }; + }; &vpuctrl { -->8 ご想像のとおり、動作しません。 nxp カーネル タグ 6.6.3-1.0.0 では、なぜ nxp は dtb を提供しないのでしょうか? ドキュメントhttps://www.nxp.com/docs/en/user-guide/UG10163.pdfに驚きました第11.1章/11.3章wifi/bluetooth カーネル モジュールをロードする方法を説明します。このドキュメントはカーネルタグLF6.12.34_2.1.0に基づいていることを知っていますしかし、同じハードウェア サポートが提供されると期待できます。 また、カーネルと imx95-verdin-wifi-dev.dtb の起動を試みましたが、scmi の非互換性のため失敗しました。 この問題を解決するのに NXP についてが適切な会社なのか、それとも Toradex の方が優れているのか教えてください。 ありがとうございます。よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは、 Linux カーネル タグ lf-6.6.3-1.0.0 を使用する i.MX95 プラットフォームの場合、88w8987 モジュールの WiFi サポートには適切なデバイス ツリー構成が必要です。デバイス ツリーには Bluetooth ノードがありますが、WiFi ノードがないためインターフェースが表示されません。 WiFi では、88w8987 モジュールと適切にインターフェースするために、デバイス ツリー内に SDIO ノードが必要です。mlan および moal モジュールをロードすると、ログに「ドライバが正常にロードされました」と表示されるため正常にロードされますが、適切なデバイス ツリー構成がないとハードウェアを検出できないため、ネットワーク インターフェースを作成できません。 1. デバイスツリーファイル(imx95-19x19-titan.dtb)にSDIOノードを追加する必要があります。88w8987 モジュールの WiFi コンポーネントを参照します。 2. ノードには通常、次のものが含まれます。 - SDIOコントローラの互換文字列 - 移動できないプロパティ - システムのサスペンド中も電源をオンにしたままにする - WiFi固有の設定 3. WiFi ノードと Bluetooth ノードの両方を含む i.MX8MM EVK など、88w8987 をサポートする他の i.MX ボードの既存の実装を参照します。 Toradex ボードを使用している場合は、i.MX95 モジュールで WiFi を有効にするために推奨されている特定の実装の詳細については、Toradex のドキュメントも確認することをお勧めします。 よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは、リストの皆さん 自分自身に答えています^^。 linux-imx 用のタグlf-6.6.3-1.0.0で WiFi を作成するには、次の手順に従います。 コミット483162118e93に従って、ファイルarch/arm64/boot/dts/freescale/imx95-19x19-titan.dtsを変更します。 8<-- diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts インデックス 38f985d5f87c..3c0a2708114e 100644 --- a/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts @@ -18,6 +18,18 @@ ダミーレジスタ: ダミーレジスタ { レギュレータ最小マイクロボルト = <3300000>; レギュレータ最大マイクロボルト = <3300000>; }; + + usdhc3_pwrseq: usdhc3_pwrseq { + 互換性 = "mmc-pwrseq-simple"; + リセットgpio = <&i2c7_pcal6524_23 11 GPIO_ACTIVE_HIGH>; + }; + + /delete-node/ reg_serdes_stby; + /delete-node/ レギュレータ MAC スタンバイ; + /delete-node/ reg_m2_pwr; + /delete-node/ reg_slot_pwr; + /delete-node/ レギュレータ-m2-pwr; + /delete-node/ レギュレータスロット電源; }; &reg_can1_stby { @@ -48,11 +60,40 @@ &reg_aqr_en { gpio = <&i2c7_pcal6524_23 21 GPIO_ACTIVE_HIGH>; }; +&reg_pcie0 { + /delete-property/ vin-supply; + gpio = <&i2c7_pcal6524_23 18 GPIO_ACTIVE_HIGH>; +}; + +&pcie0 { + リセットgpio = <&i2c7_pcal6524_23 17 GPIO_ACTIVE_LOW>; +}; + +&pcie1 { + /delete-property/ vpcie-supply; + リセットgpio = <&i2c7_pcal6524_23 16 GPIO_ACTIVE_LOW>; +}; + +&pcie1_ep { + /delete-property/ vpcie-supply; +}; + &reg_serdes_en { vin-supply = <&dummy_reg>; gpio = <&gpio4 28 GPIO_ACTIVE_LOW>; }; +&usdhc3 { + pinctrl-names = "default"; + ピンctrl-0 = <&pinctrl_usdhc3>; + mmc-pwrseq = <&usdhc3_pwrseq>; + vmmc-電源 = <&reg_pcie0>; + バス幅 = <4>; + 電源を停止したままにします。 + 取り外し不可。 + ステータス = "正常"; +}; + &enetc_port1 { pinctrl-names = "デフォルト"; pinctrl-0 = <&pinctrl_enetc1>; @@ -161,4 +202,15 @@ pinctrl_pwm_3_dsi_hpd_gpio: dsihpdgrp { IMX95_PAD_GPIO_IO12__GPIO2_IO_BIT12 0x31e >; }; + + pinctrl_usdhc3: usdhc3grp { + fsl、ピン = < + IMX95_PAD_SD3_CLK__USDHC3_CLK 0x158e + IMX95_PAD_SD3_CMD__USDHC3_CMD 0x138e + IMX95_PAD_SD3_DATA0__USDHC3_DATA0 0x138e + IMX95_PAD_SD3_DATA1__USDHC3_DATA1 0x138e + IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x138e + IMX95_PAD_SD3_DATA3__USDHC3_DATA3 0x138e + >; + }; -->8 リポジトリhttps://github.com/nxp-imx/mwifiex/からドライバをコンパイルします。タグ lf-6.6.3-1.0.0で、 mlan.ko moal.koをターゲットディレクトリ /usr/lib/modules/6.6.3-gccf0a99701a7/updates/ にコピーします。 https://github.com/nxp-imx/imx-firmware.gitからタグ lf-6.6.3-1.0.0のファームウェアを取得し、 sduart_nw61x_v1.bin.se をターゲットディレクトリ /lib/firmware/nxp/ にコピーします。 ターゲットにモジュールをロードするには 8<-- root@imx95-19x19-lpddr5-evk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf drvdbg=0x7 [..] [ 2690.237289] NXP 802.11 アダプタ uap0 を登録 [ 2690.250018] NXP 802.11 アダプタ wfd0 を登録 [ 2690.254421] wlan: バージョン = SDIW612---18.99.2.p66.17-MM6X18437.p3-GPL-(FP92)-dbg [ 2690.267643] wlan: バスドライバへの登録が完了しました [ 2690.272323] wlan: ドライバが正常にロードされました [..] --->8 新しいネットワーク インターフェースmlan0、uap0、wfd0が作成されます。 チケットを閉じることができます。 これが役に立つことを願います。 よろしくお願いします。
查看全文
nxp.comへのアクセス こんにちは、 VPN を使用せずに nxp.com ドメインのすべてのサイトにアクセスすることはできません。 次のエラーが発生します: Access Denied You don't have permission to access "http://mcuxpresso.nxp.com/en/dashboard" on this server. Reference #18.977a7b5c.1754475329.7d13ec17 https://errors.edgesuite.net/18.977a7b5c.1754475329.7d13ec17 おそらく、IP アドレスによる停止リストの設定に誤りがある可能性があります。 NXP の誰かがこの問題を解決できますか? Re: Access to nxp.com   同じ問題 このサーバーの「 http://www.nxp.com/ 」にアクセスする権限がありません。 参照番号18.633c655f.1754500173.c79a737 https://errors.edgesuite.net/18.633c655f.1754500173.c79a737
查看全文
S32K344 / MR-CANHUBK344 - Zephyr 支持 论坛上是否有人可以确认 MR-CANHUBK344 开发板仍在最新的 Zephyr 版本(v3.6.0 或 v3.7.0-rc3)下工作? 当尝试通过 JLink(v7.98a)启动开发板时,我们遇到了许多虚假故障。 主板和调试器看起来都正常,它们将毫无问题地运行默认示例 S32DS 项目。据我们所知,这似乎与 S32K3 与 Zephyr 平台的集成更相关,更有可能处于早期内核初始化阶段。 在 v3.7.0-rc3 上使用带有 Zephyr Blinky 项目的 Ozone,我们在重置后几乎立即看到 BFAR 寄存器为 0x5AA55AC0 的 BusFaults。 希望这只是我们配置中的问题,或者如果有人有可行的解决方案,您正在使用 Zephyr 的哪个分支/标签? 谢谢!
查看全文
在 FRDM-IMX93 上使用 GPIO 如何使用 FRDM-IMX93 板上的 GPIO?像简单的 GPIO、CAN、I2c 等? 谢谢 拉尔夫
查看全文
关于 i.MX 93 的 Windows 10/11 物联网企业版 - bootcmd 嗨,朋友们、 有人知道吗,如何为 i.MX93 配置正确的 bootcmd 以允许它从 U-Boot 正确启动,然后从 ARM 上的 Windows 启动? 在过去的时间里,我们在 defconfig 中对 i.MX 8 Series bootcmd 进行了如下配置: CONFIG_BOOTCOMMAND="fatload mmc${mmcdev}:${mmcpart} ${loadaddr} /uefi.fit;bootm${loadaddr} ;" 因为当我们版本 i.MX 8 固件,例如 i.MX 8M Plus 时,在 ~/win10-iot-bsp/imx-MKIMAGE/IMXImage/ IMX8M 中,你可以找到:imx8mp-evk.dtb,您还可以检查 soc.mak它将处理 imx8mp-evk.dtb并将其合并为最终固件文件。 但 i.MX93 文件夹结构相同、 soc.mak并没有做同样的事情。它不会在路径中创建 imx93-11x11-evk.dtb:~/win10-iot-bsp/imx-mkimage/imx-mkimage/IMX 9。 因此,如果我们按照同样的方式在 defconfig 中配置 CONFIG_启动 COMMAND,i.MX 8 系列的 U-Boot 程序将不一样,它不会进入 microSD WinPE(efi/boot/bootaa64.efi),它将继续重启。 有人知道如何正确操作吗?我们无法在 i.MX Windows IoT 用户指南、快速入门指南......中找到相关信息。 谢谢你们的帮助! 祝您有美好的一天 亚历克斯-张 参考。 适用于 i.MX 应用处理器的 Windows 10/11 物联网企业版 Windows Windows 10 物联网企业版 Re: About Windows 10/11 IoT Enterprise for i.MX 93 - bootcmd 关于 Windows I0/11 IOT,我建议您 与 [email protected] 的 IOT 团队联系。 看看他们是否有这方面的信息。 Re: About Windows 10/11 IoT Enterprise for i.MX 93 - bootcmd 嗨,朋友们、 我们尝试对imx93_11x11_evk_nt_deconfig CONFIG_BOOTCOMMAND进行如下配置: mmc dev 1;如果 mmc 重新扫描;那么 fatload mmc 1:2 ${kernel_addr_r} EFI/启动/bootaa64.efi && fatload mmc 1:2 ${fdt_addr_r} dtb/imx93-11x11-evk.dtb && fdt addr ${fdt_addr_r} && fdt header && bootefi ${kernel_addr_r} ${fdt_addr_r}; fi 在重新编译固件并将其闪存到 microSD 卡并将其放入 i.MX 93 EVK 后,我们的 PuTTY 消息如下: 剧透 (高亮部分可供阅读) U-启动 2023.04-g93957155-dirty(Aug 08 2025 - 09:59:05 +0800) CPU:i.MX93 (52) rev1.1 1700 MHz(运行频率为 1692 MHz) CPU:30 摄氏度的工业温度等级(-40 摄氏度至 105C) 型号:恩智浦 i.MX93 11X11 EVK 板 动态随机存取存储器(DRAM):2 GiB 内 核:218 个设备,30 个 u 类,设备树:独立的 MMC:FSL_SDHC:0,FSL_SDHC:1 来自 MMC 的加载环境... 好吧 ... 输入:串行 输出:串行 错误:串行 BuildInfo: - ELE 固件版本 0.1.0-e943c57c 切换到分区 #0,OK mmc1 是当前设备 闪存目标是 MMC:1 Fastboot:正常 正常启动 按任意键停止自动启动:0 切 换到分区 #0,OK mmc1 是当前设备 1 303 毫秒 (1.9 MiB/s) 读取 50392 字节在 7 毫秒 (6.9 MiB/s) 内 工作 FDT 设置为 83000000 魔法:0xd00dfeed 总大小:0xd00dfeed 总大小:0xd00dfeed 总大小:0xd00dfeed 总大小:0xd00dfeed 总大小:0xd00dfeed 总大小:0xd00dfeed 总大小:xc4d8 ( 50392) off_dt_struct:0x38 off_dt_strings:0xb5f8 off_mem_rsvmap:0x28 版本:17 last_comp_version:16 boot_cpuid_phys:0x0 size_dt_strings:0 xedb size_dt_struct:0xb5c0 数字 mem_rsv:0x0 正在启动 /EFI\启动\bootaa64.efi BlinitializeLibrary 失败 0xc0000225 ## 应用程序 失败,r = 14 启动= > U-启动 2023.04-g93957155-dirty(2025 年 8 月 8 日-09:59:05 +0800)CPU:i.MX93 (52) rev1.1 1700 MHz(以 1692 MHz 运行)CPU:30摄氏度的工业温度等级(-40摄氏度至 105摄氏度)型号:恩智浦 i.MX93 11X11 EVK BoardDRAM:2 GibCore:218 个设备,30 个 u 类,设备树:separateMMC:FSL_SDHC:0,FSL_SDHC:0,FBoardDRAM:2 GibCore:30 个设备,30 个 u 类,设备树:SeparateMMC SL_SDHC: 1正在从 MMC 加载环境...好的... 输入:SerialOut:SerialErr:SerialBuildInfo:-ELE 固件版本 0.1.0-e943c57cswitch到分区 #0,OKMMC1 是当前设备闪存的目标是 mmc: 1FastBoot:normalNormal 启动按任意键停止自动启动:0 切换到分区 #0,okmmc1 是当前设备在 1303 毫秒 (1.9 MiB/s) 内读取 50392 字节 (6.9 MiB/s) 工作 FDT 设置为 83000000magic:0xd00dfeedtotaltalmcmic:0xd00dfeedtotaltalmc1 大小:0xc4d8 (50392) off_dt_struct:0x38off_dt_strings:0xb5f8f8off_mem_rsvmap:0x28版本:17last_comp_versize:16boot_cpuid_phys:0xedbsize_dt_struct:0xb5c0number mem_rsvt:0xb5c0number mem_rsvt v: 0x0启动 /EFI\ Boot\ boot\ bootaa64.efiblinitializeLibrary 初始化库失败 0xc0000225## 启动失败,r = 14u-boot= > 我们曾尝试从 microSD\ WinPE\ boot.wim 中删除 Lanage P ackage 以缩小尺寸。(从 2.X GB 到 347 MB) 但是 i.MX 93 仍然无法启动。 有人有解决这个问题的经验吗? 谢谢您! 亚历克斯-张
查看全文
PF5030はすべての出力が失われた状態でI2Cを読み取ります こんにちは。致命的なエラーが発生すると、入力電源は維持されますが、PF5030 のすべての出力が失われます。I2C 経由で詳細な障害情報を取得する方法はありますか? VDDIO は出力の 1 つから供給されます。この状況では、VDDIO が失われ、I2C インターフェースが機能しない可能性があります。しかし、致命的なエラーが発生した後に外部 VDDIO を提供するとどうなるでしょうか? エラー メッセージは保持されたままになりますか、それともすでに失われていますか?エラーが発生した後に外部 VDDIO を供給し、I2C 通信を試行することで、エラーの原因をCANますか? Re: PF5030 read I2C while all output lost こんにちは、ポニーさん 致命的なエラー (ウォッチドッグ障害、監視対象レールの過電圧、障害カウンタのオーバーフローなど) が発生すると、PF5030 は DEEP-FS 状態に移行します。 DEEP-FS では、すべてのレギュレータがオフになります。 フェイルセーフロジックはVINから内部的に電源供給されている I²C インターフェースはフェイルセーフ ドメインにあり、VDDIO (1.71 V ~ 5.25 V の範囲) が存在すると再び機能するようになります。 VIN が POR しきい値を上回っており、デバイスの電源がオフ/オンされていない限り、フェイルセーフ レジスタ (例: FS_GRL_FLAGS 、 FS_OVUVREG_STATUS1 、 FS_DIAG_SAFETY 、 FS_STATES ) には次の内容が含まれます。 どの電圧モニターがトリガーされたか(OV/UVフラグ) ウォッチドッグエラーフラグ 障害カウンターとステートマシンのステータス これらのレジスタはPORまたは明示的な書き込みによってのみクリアされ、DEEP-FSに入ることによってはクリアされません。 FS_GRL_FLAGS (一般的な障害の概要) FS_OVUVREG_STATUS1 (VMONがトリガー) FS_DIAG_SAFETY (ウォッチドッグ、CRC、BIST ステータス) FS_STATES (現在のフェイルセーフ状態) VIN が失われていない限り、VDDIO に外部電源を供給して致命的なエラーが発生した後に詳細な障害情報を回復 CAN。VIN が POR を下回ると、すべての揮発性レジスタがクリアされます。 敬具、 ヨゼフ
查看全文
2015 年飞思卡尔杯 EMEA 球队名单 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 截至 2014 年 11 月 17 日,已有 159 支球队注册参加 2015 年飞思卡尔杯欧洲、中东和非洲赛区比赛 (见附件) 团队名称以 INNOV 开头的团队为创新挑战团队 未举办飞思卡尔杯资格赛的国家的队伍可以自由选择参加比赛的地点。请联系Flavio Stiffan以确保您的选择被记录在案。
查看全文
BAN-N1928 MIFARE Beyond Access - 智能校园一体化解决方案 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> MIFARE ®在门禁领域占有 50% 的市场份额,但它的功能远不止于此。除了向员工和学生授予物理和逻辑访问权限外,MIFARE 还可以成为您的小额支付和忠诚度解决方案 - 集所有功能于一身。通过 NFC 功能,您的应用程序甚至可以读取数据并将新数据存储到 MIFARE 卡中。整体用户体验——只需轻轻一点。 观看视频演示 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> MIFARE ®在门禁领域占有 50% 的市场份额,但它的功能远不止于此。除了向员工和学生授予物理和逻辑访问权限外,MIFARE 还可以成为您的小额支付和忠诚度解决方案 - 集所有功能于一身。通过 NFC 功能,您的应用程序甚至可以读取数据并将新数据存储到 MIFARE 卡中。整体用户体验——只需轻轻一点。 观看视频演示 智能银行和智能零售
查看全文
SMI-N2078 SECO-从制造到制造-缺失的环节 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 得益于新的创客运动,如今的新企业家和创新者可以快速制作原型。然而,这个看似无限可能的世界在大规模生产产品时却遇到了很大的限制,因为在概念验证和制造之间缺少一个步骤或环节。本次演讲将展示 SECO 如何通过其社区运动和委员会 UDOO 将其嵌入式专业知识与新获得的创客运动经验融合在一起,弥补创客与工业之间的差距。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 得益于新的创客运动,如今的新企业家和创新者可以快速制作原型。然而,这个看似无限可能的世界在大规模生产产品时却遇到了很大的限制,因为在概念验证和制造之间缺少一个步骤或环节。本次演讲将展示 SECO 如何通过其社区运动和委员会 UDOO 将其嵌入式专业知识与新获得的创客运动经验融合在一起,弥补创客与工业之间的差距。 智能机械和工业自动化
查看全文
DES-N1849 多核 ARM ® v8 QorIQ 处理器中的异常处理 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 了解ARM®v8异常水平处理(ELO至EL3),以及基于最新的QorIQ LS系列处理器的通用中断控制器v3 (GICv3)逻辑在预封装的Linux SDK环境之外使用具有挑战性。 本次演示将介绍如何配置分发器(GICD)、再分发器(GICR)、CPU接口(ICC_*_EL*)和ARM内核,以处理专有外设中断(PPI)和软件触发的中断(SGI)。 它将用于嵌入式开发人员编写异常处理程序,以及被缩略词弄糊涂的任何人。 CodeWarrior将用于显示异常处理项目示例。 观看视频演示 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 了解ARM®v8异常水平处理(ELO至EL3),以及基于最新的QorIQ LS系列处理器的通用中断控制器v3 (GICv3)逻辑在预封装的Linux SDK环境之外使用具有挑战性。 本次演示将介绍如何配置分发器(GICD)、再分发器(GICR)、CPU接口(ICC_*_EL*)和ARM内核,以处理专有外设中断(PPI)和软件触发的中断(SGI)。 它将用于嵌入式开发人员编写异常处理程序,以及被缩略词弄糊涂的任何人。 CodeWarrior将用于显示异常处理项目示例。 观看视频演示 设计 | 软件与服务
查看全文
KSDK发布的内容 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetis SDK v2 现已推出! Kinetis SDK v2 简介 KSDK 的第一步 如何开始使用 KSDK * 已发布示例列表: KSDK示例列表* 已发布文件清单: KSDK 文件清单* *以上所有源代码仅供示例使用。恩智浦不对用户应用程序中使用这些代码承担任何责任。 概述
查看全文
S32Z RTU0 core0 性能问题 我在 S32Z270 RTU0 内核 0 (R52) 上运行一些测试代码,RTU0_CORE_CLK 设置为 1GHz,执行时间似乎过长。 相比之下,我在 SS32K388 内核 0 (CM7) 上运行相同的代码,内核时钟设置为 320MHz。 鉴于时钟频率的提高,我本以为执行速度会更快一些,但执行时间反而更长了。 两个二进制文件的版本/编译标志保持不变(参见随附的 txt 文件 buildinfo.h) (1) 由于 S32 配置工具中的时钟配置对于 S32Z 来说有点复杂,我如何才能确保 RTU0 内核 0 的时钟频率按计划为 1GHz? 我已经通过 MC_CGM_3_MUX4_CSC(例如,SEL_CTL = 0x3D)将 RTU0_CORE_DIV2_CLK 路由到 CLKOUT_4(BGA594 的 PAD_040),包括 MC_CGM_3_MUX4_DC_0(例如,DIV = 0x9)中为 10 的分频器。另请参见所附的登记册读数。 如果我在 CLKOUT_4 测量到 50MHz,我是否可以假定 (a) RTU0_CORE_DIV2_CLK 为 500MHz,(b) RTU0_CORE_CLK 为 1GHz? (2) 我使用 S32Z RTD2.0.1 测量了引脚写入 GPIO 的执行时间,并测量了示波器通道 CH5 - TESTFLAG 的高/低时间,大约为 3.4us。您是否有可能确认一下它们看起来是正常还是太慢了? (3) 我不知道我错过了什么。     Re: S32Z RTU0 core0 performance issue 随函附上包装标记的照片。 0   Re: S32Z RTU0 core0 performance issue 你好,@Joey_z、 感谢您的快速回复。 下面是我对这些问题的回答: 1) 我使用的是 S32Z2XX 主板 + S32Z2XX 子板的组合。 a) S32ZXX 主板 X-S32X-MB A 版 b) S32ZXX 子板 SCH-50588 REV B2 / 700-50588 REV A2 2) 代码使用 S32DS 版本 3.6.7 Build 260420 进行编译和链接。使用 S32DS 的先前版本(例如版本 3.6.6 或 3.6.5)时没有任何变化。我正在为 S32Z2XX 使用 RTD2.0.1。 3) 我会使用 DM 发送项目副本。 Re: S32Z RTU0 core0 performance issue 你好,德克-埃兹勒 感谢您与我们联系。 1. 你使用开发板还是客户板? 2.您使用的是 S32DS 的 IDE 吗?您测试的 IDE 版本是什么? 3.能否与我分享您的测试代码? BR 乔伊 Re: S32Z RTU0 core0 performance issue 你好,德克-埃茨勒 感谢您的答复和详细资料。 我会帮你检查,并在晚些时候回复你。 BR 乔伊 Re: S32Z RTU0 core0 performance issue 你好,德克-埃茨勒 抱歉,回复晚了。 (1) 我已经通过 MC_CGM_3_MUX4_CSC(例如,SEL_CTL = 0x3D)将 RTU0_CORE_DIV2_CLK 路由到 CLKOUT_4(BGA594 的 PAD_040),包括 MC_CGM_3_MUX4_DC_0 中的分频器 10(例如,DIV = 0x9)。另请参见所附的登记册读数。如果我在 CLKOUT_4 测量到 50MHz,我是否可以假定 (a) RTU0_CORE_DIV2_CLK 为 500MHz,(b) RTU0_CORE_CLK 为 1GHz? >>>关于这个问题,数字 7 被分配给 RTU0_CORE_DIV2_CLK,您还应通过编程 GPR3.CLKOUT4SE 来设置该值。您能确认一下是否设置了这个寄存器吗? BR 乔伊 Re: S32Z RTU0 core0 performance issue 你好@Joey_z 关于这个问题: >>>关于这个问题,数字 7 被分配给 RTU0_CORE_DIV2_CLK,您还应通过编程 GPR3.CLKOUT4SE 来设置该值。 您能确认一下是否设置了这个寄存器吗? 我检查了 GPR3.CLKOUT4SEL[MUXSEL] 的寄存器设置,该寄存器设置为 7,用于在相应的多路复用器中选择 RTU0_CORE_DIV2_CLK。 Re: S32Z RTU0 core0 performance issue 你好,@Joey_z、 我不确定我之前的留言是否已被确认为回复。 我检查了 GPR3.CLKOUT4SEL[MUXSEL]是否设置为 0x7,因此RTU0_CORE_DIV2_CLK 通过多路复用器路由。 使用所述配置并在输出引脚上看到 50MHz,我推测 RTU0 内核的时钟频率为 1GHz。 如果内核频率设置为 1GHz,但我仍然没有看到预期的性能(例如,使用 CoreMark 测试台),还有什么其他不正确的配置吗? 如何检查缓存配置是否正确? 我查看了汇编器启动脚本和使用过的链接器脚本,没有发现任何可疑之处。 Re: S32Z RTU0 core0 performance issue 你好,德克-埃茨勒 感谢您的答复和详细资料。 您可以尝试参考 AN14245 的第 3、4 章来检查缓存配置。 高速缓存机制有助于提高内存性能。您可以下载以下图片。 此外,GPIO 翻转到测量时间,主要反映了外设的"延迟" 访问路径,但会对 CPU 内核运算性能产生偏差。另外,在此应用程序中包含CoreMark的内容,您可以作为测试的参考。 BR 乔伊 Re: S32Z RTU0 core0 performance issue 你好,@Joey_z、 谢谢,我将阅读上述应用笔记(AN14245 S32ZE 安全可靠的高性能实时处理器)的第 3 章和第 4 章,了解缓存的正确设置。 顺便提一句,获得的 CoreMark 分数太低,这也是支持案例的起因。
查看全文
如何转换数字信号的电压?(日语博客) 0. 目录 0. 目录 1. 什么是电压电平转换器? 2. 数字信号 2.1 各种数字信号 2.2 CMOS 和 TTL:使用简单的电压高电平和低电平表示逻辑电平信号 2.3 输入/输出电压规格:VOH/VOL 和 VIH/VIL 2.3.1 输出电压规格:VOH 和 VOL 2.3.2 输入电压规格:VIH 和 VIL 2.3.3VOH/VOL 与 VIH/VIL 之间的关系 3. 基本电压电平转换方法:单向信号转换 3.1 即使芯片的电源电压不同,也不需要进行转换的示例。 列:TTL 值 VIH(min) = 2.0V 和 VIL(max) = 0.8V 是如何确定的? 3.2 需要转换的示例 3.2.1 利用开漏输出进行转换 3.2.2使用标准逻辑(通用逻辑)芯片进行转换 4. 需要自动方向切换的双向信号转换。 4.1 使用单个MOS晶体管的双向转换 4.2 使用专用设备的双向转换 4.2.1 I²C信号电压转换芯片 4.2.2 高速双向开漏信号电压转换芯片 4.2.3 双向推挽式信号电压转换器芯片 4.2.4I3C信号电压转换器芯片 4.2.5 基于缓冲区的转换 5. 总结 5.1 博客中介绍的方法/零件编号的比较 6. 参考资料 1. 什么是电压电平转换器? 连接数字电路时,可以直接连接信号线…… 事实并非如此;如果“逻辑电平电压”不匹配,它可能无法工作、变得不稳定,或者在最坏的情况下,损坏芯片。 这时,电压电平转换器(也称电压电平移位器)就派上用场了。 电压电平转换器是一种允许不同电源电压的数字电路之间交换信号的电路。 例如,在以下情况下需要用到它: 3.3V 微控制器 ↔ 5V 传感器连接 将 1.8V FPGA 连接到 3.3V 外围设备 图 1:信号电压差异   本博客解释了数字电路中使用的各种逻辑电路类型(*TTL、*LVTTL、*CMOS)之间的电压电平差异,以及 VOH / VOL / VIH / VIL 在确定这些差异时的重要含义。此外,它还解释了在各种转换方法中如何选择合适的电压电平转换器。 此外,本博客将探讨电压电平转换器的具体示例,这些转换器可以自动检测和转换信号的方向。 NXP 还提供用于 SD 卡/SIM 卡的电压电平转换器和特定应用转换器,例如 GTL↔TTL 电平转换,但本博客将重点介绍面向通用或串行总线应用的产品。 *TTL(晶体管-晶体管逻辑) *LVTTL(低压晶体管-晶体管逻辑) *CMOS(互补金属氧化物半导体) *GTL(Gunning Transceiver Logic) 2. 数字信号   2.1 各种数字信号 所谓的“数字信号”是逻辑电平 1 和 0 的电信号表示。历史上,处理逻辑电平 1 和 0 有多种电路设计方法。这些方法包括用简单的电压高低来表示逻辑电平的方法,以及使用电压差来表示高低电平的方法。 TTL简单地用 5V/0V 表示高电平/低电平。进一步将 TTL 电压降低到 3.3V/0V,例如LVTTL ,这类系统的电压电平是根据双极型晶体管电路确定的。 类似地,ECL(电子分类)也使用双极型晶体管,但采用负电源来实现低幅度差分逻辑电平,从而获得更高的速度。GTL(全局晶体管叠层)则使用参考电压来传输高/低信号,以及低幅度单端信号等等。 此外,即使采用简单的高/低表示法,为降低功耗而开发的 4000 系列CMOS通用逻辑电路也允许使用 3V 至 18V 作为高电平。 https://en.wikipedia.org/wiki/Logic_family 本博客将解释如何处理 TTL (LVTTL) 和 CMOS 中的电压电平,它们使用简单的高电平和低电平来表示逻辑,以及上面提到的各种逻辑电平。 其他信号转换使用专用芯片,因此本文不予赘述。 此外,近年来半导体技术变得更小、更快、更节能,电源电压也随之降低。因此,用于桥接信号电压差的电压电平转换器变得尤为重要。 图 2:信号波形 - 电压电平(高/低)表示逻辑电平。   2.2 CMOS 和 TTL:使用简单的电压高电平和低电平表示逻辑电平信号 在数字电路中,简单的基于电压的逻辑电平信号通常使用高电平(HIGH)和低电平(LOW),高电平通常使用电源电压,低电平通常使用0V。只要高低电平的电压值相同,即使电源电压不同,信号也能传输。 例如,TTL(LVTTL)将2.0V或更高的输入信号解读为高电平,0.8V或更低的输入信号解读为低电平。由于这种约定,即使电源电压不同,TTL信号的高/低电平也不会改变。 另一方面,CMOS电路以电源电压的一半作为高/低电平的定义依据。因此,当电源电压变化时,CMOS电路的高/低电平电平也会发生变化。 图 3:输入信号电压规格   2.3 输入/输出电压规格:V OH /V OL 和 V IH /V IL 在数字电路中,高电平和低电平的输出电压以及用于判断输入信号是高电平还是低电平的电压都是有明确规定的。这些规定在每个芯片的规格书中都有明确说明,因此您需要查阅数据手册。 V OH :高电平输出电压 VOL : 低电平输出电压 V IH :高电平输入电压 VIL : 低电平 输入电压 2.3.1 输出电压规格:V OH 和 V OL 考虑输出时,必须考虑输出高/低信号所需的电流。电流会根据负载的变化而增大或减小。 在最大流出电流下,高输出时可保证的电压称为 VOH (最小值) ;在最大流入电流下,低输出时可保证的电压称为 VOL (最大值) 。 V OH (min) 是电路输出级中上方晶体管导通时的输出电压。该晶体管具有一个称为“导通电阻”的电阻。 当大电流流过晶体管时,会产生一个等于“晶体管电阻乘以流过电流”的电压。这会导致输出电压比电源电压低相应的数值,从而导致 VOH 值降低。因此, VOH (min)是指在达到预期最大输出电流时能够保证的最小电压。 图 4:数字信号输出电路(推挽式)   图 5:高输出电压随负载而变化。   VOL 则相反。当电路输出级中的低电平晶体管导通时,如果输入电流较大,由于晶体管导通电阻产生的电压,输出电压将高于 0V,如上所述。考虑到这一点, VOL (max) 是在预期输入电流最大时能够保证的最大电压。 图 6:低输出电压也会根据负载而变化。   2.3.2 输入电压规格:V IH 和 V IL 输入端有两个电压电平,用于判断高电平和低电平: V IH (最小值)和V IL (最大值) 。如果电压高于 V IH (最小值),则判定为高电平;如果电压低于 V IL (最大值),则判定为低电平。 在CMOS输入中,电源电压的一半用作高电平和低电平的参考电压,但这并不直接用作V IH (min) 和V IL (max) 。这是因为不同芯片之间的差异会导致阈值波动。此外,为了减轻输出端缓慢上升沿信号噪声引起的毛刺,通常会在输入端引入迟滞。基于这些原因,V IH (min) 和V IL (max) 被定义为具有一定的电压差。 2.3.3 VOH / VOL 与 VIH / VIL 之间的关系 要实现正常的信号交换,输出和输入之间的关系必须满足以下等式。 高水平:V OH (分钟)> V IH (分钟) 低水平: VOL (最大值)< VIIL (最大值) 如果保持这种关系,输出电路就能正确地将高/低信号传输到下一个输入电路。此外,它们之间的电压差“V OH (min) - V IH (min)”和“V IL(max) - V OL (max)”就成为“ 噪声容限”,并作为保持高抗噪性的指导原则。 图 7:V OH (min) / V OL (max) 和 V IH (min) / V IL (max) 3. 基本电压电平转换方法:单向信号转换   3.1 即使芯片的电源电压不同,也不需要进行转换的示例。 当“V OH (min) > V IH (min)”和“V OL (max) < V IL (max)”满足关系式时,通常不需要进行电压电平转换。例如,尽管TTL和LVTTL芯片使用的电源电压不同,但它们的输入和输出电压规格相同。 在 TTL (5V) 和 LVTTL (3.3V) 模式下, VOH (最小值) 为 2.4V, VOL (最大值) 为 0.4V。由于在两种情况下 VIH (最小值)/ VIL (最大值) 也均为 2.0V/0.8V,因此它们可以毫无问题地相互连接。 但是,如果输出电压高于输入芯片的电源电压,则需要格外小心。如果输出芯片使用 5V 电源,而输入芯片使用 3.3V 电源,则输入芯片必须支持“ 5V 耐受输入”。 5V 耐压输入是指即使将 5V 高电平信号连接到工作电压为 3.3V 的芯片的输入端,也能正常工作的输入端。虽然典型的芯片输入端都配备了静电放电 (ESD) 保护电路来防止静电损坏,但如果该 ESD 保护电路的配置如下图所示,5V 输入可能会导致电流从输入端反向流回 3.3V 电源,从而可能损坏芯片。5V 耐压输入的设计正是为了避免此类问题。耐压输入并非缺少 ESD 保护;它们内置了 ESD 保护电路,该电路能够处理高于电源电压的信号而不会造成任何问题。 如图 7 所示的 ESD 保护二极管,即使输入芯片断电,也可能导致问题。在独立控制每个芯片电源的系统中,即使输入芯片已关闭,输出信号也可能反馈到电源,导致输入芯片继续工作。 图 7:ESD 保护二极管 - 非容错输入 列:对于 TTL 电路,如何确定 V IH (min) = 2.0V 和 V IL (max) = 0.8V? CMOS的输入阈值基于电源电压的中点(VCC/2),而TTL的V IH (min) /V IL (max) 为2.0V/0.8V,相对于电源电压(5V)而言,这个比例并不十分理想。这与TTL的输入级由双极型晶体管构成有关。 标准 TTL 逻辑 IC 的内部电路示例:SN7400(2 输入 NAND)。 该信息包含在《1988 年最新通用逻辑器件规格表》(CQ 出版社)中。 典型的TTL门电路的输入级由一个多发射极输入晶体管和一个串联的相位分离晶体管组成。门电路开始响应的“开关阈值”由这两级中PN结的正向电压决定。由于单个硅PN结的正向电压约为0.6至0.7V,因此两级的总正向电压约为1.3至1.5V,这就是TTL门电路的有效开关阈值。 然而,约 1.4V 的值仅仅是一个“典型值”, 由于个体差异和温度变化,它会因批次和工况的不同而有所波动。 因此,数据手册中指定的 V IH (min) 和 V IL (max) 值被定义为保证值,在约 1.4V 的典型值上下留有足够的裕量,这意味着“如果电压降至此值,则可以可靠地判断为低电平 (V IL (max) = 0.8V)”,“如果电压升至此值,则可以可靠地判断为高电平 (V IH(min) = 2.0V)”。 此外,该值并非孤立地确定,而是根据 VOH 和 VOL 之间的关系设计而成,如第 2.3.3 节所述。在标准 TTL 电路中,由于输出级配置,高电平输出并非电源电压,而是略低的电压(比上述电路示例中的 130Ω 电阻、晶体管和二极管产生的电压低 2.4V)。当与 VOL(max)=0.4V 结合时, 高噪声容限:V OH (最小值)− V IH (最小值)= 2.4 − 2.0 = 0.4V 低侧噪声容限:V IL (max) − V OL (max) = 0.8 − 0.4 = 0.4V 如图所示,其设计旨在确保上下对称地提供 0.4V 的噪声容限。换句话说,TTL 的 2.0V/0.8V 数值相对于电源电压而言可能看起来“奇怪”,但实际上是合理的数值,其计算基于两个要求:双极型晶体管结电压的物理特性和噪声容限设计。 此图显示的是一个 SN7420(4 输入 NAND),其中三个输入引脚设置为高电平,一个引脚接收 100kHz 三角波(通道 1)。 当高电平 (Vcc=5V) 时,空载 (ch2) 输出小于 4V。 本专栏介绍的电路是一个没有指定型号的标准 TTL 电路示例(例如 74 LS 00 或 74 HC 00,没有 LS/HC 前缀;有时在英语中被称为“vanilla TTL”),但 V IH /V IL 规格相同的原因(输入级的双极结特性)与其他 TTL 系列(例如 74LS)相同。   3.2 需要转换的示例   虽然 TTL 和 LVTTL 连接由于电压电平匹配而可行,但当连接电源电压不同的 CMOS 芯片,或将 CMOS 芯片连接到 TTL 芯片时,逻辑电平不匹配的情况时有发生。这是因为上述关系“V OH (min) > V IH (min)”和“V OL (max) < V IL (max)”不成立,或者电平差过小,导致噪声容限不足。 电压电平转换器可以解决这个问题。 图 9:逻辑电平不匹配示例 (1):高电平输入电压不足   图 10:逻辑电平不匹配示例(2):输入的低电压不足。     3.2.1 利用开漏输出进行转换 无需使用电压转换芯片,也有简便的方法可以调节电压。 如果信号方向从输出芯片到输入芯片是固定的且不会切换,那么这种方法需要将高电平输出设置为开漏输出,以匹配输入电压。开漏输出是指数字电路输出级的上部晶体管缺失,高电平电压是通过连接到输入芯片电源电压的上拉电阻获得的。 图 11:数字信号输出电路(开漏)   明渠排水是一种简单且廉价的方法,但有几点需要注意。 首先,输出端必须能够实现开漏输出。许多微控制器的GPIO引脚可以通过配置提供这种类型的输出。 首先,输出端必须能够实现开漏输出。许多微控制器的GPIO引脚可以通过配置提供这种输出。如果输出固定为推挽输出且无法配置为开漏输出,则需要外部晶体管或类似器件将其转换为开漏输出。 此外,上拉电阻的选择也很重要。 为了获得高电压,需要使用上拉电阻,但如果电阻值太小,输出为低时流过的电流就会很大(类似于重负载),这将增加功耗,导致 电压 升高。 相反,如果该值过大,则会受到线路和引脚电容的影响,导致从低电平到高电平的上升时间变慢,从而降低通信速度。 3.2.2使用标准逻辑(通用逻辑)芯片进行转换 对于简单的电压电平转换,您也可以使用标准逻辑电路。例如, Nexperia 的 74AVCH4T245是一款通用 CMOS 逻辑芯片,可以执行 4 位双向电平转换。 该芯片可转换0.8V至3.6V的信号,并可通过DIR引脚切换信号方向。信号传输速度取决于转换电压,但可支持约100Mbps至380Mbps的速度。 图 12:标准逻辑示例 - 74AVCH4T245 该芯片能够实现高速双向电压信号转换,但转换方向必须由外部信号控制。虽然在并行总线上可以通过读/写等信号实现这种控制,但在串行总线等通信系统中,由于通信方向会根据协议而切换,因此难以应用这种控制方式。 图 13:标准逻辑示例。信号方向必须由外部指定。 4. 需要自动方向切换的双向信号转换。 迄今为止介绍的“开漏输出”和“使用标准逻辑芯片的电压转换方法”主要只能在一个方向上进行转换,或者需要通过外部信号来切换方向。 像I²C和I3C这样的通信方式,由于信号方向会动态变化,需要“双向电压电平转换”来自动检测并切换信号方向。外部控制这类信号的方向非常困难,而且使用上述缓冲芯片实现起来也很有挑战性。 此外,由于 I²C 是开漏信号,因此无法将标准的开漏逻辑缓冲器反向连接。图 14 展示了一个示例,其中开漏缓冲器反向连接。当缓冲器的两端均为高电平时,不会出现问题;但一旦其中一端变为低电平,缓冲器就会持续将另一端的输入拉低,并且无法恢复到高电平。 图 14:典型的开漏缓冲器不能自动在双向通信之间切换。   4.1 使用单个MOS晶体管的双向转换   迄今为止,I²C信号到电压的转换一直采用简单的电路。我们将以MOS晶体管为例,介绍一种最简单的方法。 图 15:使用 MOS 晶体管进行转换的示例   图 15 取自 I²C 规范 2.1 版(2000 年),展示了一个使用两个 MOS 晶体管(TR1、TR2)分别转换 3.3V 和 5V 信号的示例。尽管由于后文所述的问题,这种仅使用晶体管的简单转换示例已从当前的 I²C 规范中移除,但此处仍将其保留以帮助理解其原理。 I²C信号线,分别称为SDA和SCL,均为开漏双向信号。上拉电阻分别连接到3.3V和5V端。 在这个电路中,当3.3V和5V信号均为高电平时,该晶体管的栅极(g)和源极(s)处于同一电位,因此源极(s)和漏极(d)截止,它们之间的连接断开。当3.3V信号在此状态下变为低电平时,3.3V侧的晶体管(位于s和d之间)导通, 5V侧的信号也变为低电平。 当3.3V侧变为高电平,5V侧变为低电平时,连接3.3V侧和5V侧的寄生二极管(体二极管)首先导通。二极管导通后,电源电压下降。因此,晶体管导通, 3.3V侧的信号也变为低电平。 虽然这种使用晶体管作为开关的简单机制可以实现电压电平转换,但它也存在一些问题。晶体管的差异会影响信号转换的阈值电压。此外,随着处理更低信号电压的需求日益增长,例如在1V左右的信号电压下,这种电路无法工作,因为它无法获得足够的栅源电压(Vgs)。 附录: 与图 15 相同的电路仍以应用笔记 AN10441“I²C 总线设计中的电平转换技术” 的形式公开提供,该笔记由 Nexperia 公司发布。Nexperia 是一家由恩智浦半导体 (NXP) 分拆出半导体分立/逻辑产品业务后成立的公司。该应用笔记最初于 2007 年(版本 01)发布,与 I²C 规范分开,并于 2020 年以 Nexperia 品牌进行了修订(版本 2)。 4.2 使用专用设备的双向转换   通过使用 专用电压电平转换器 IC , 可以轻松实现 I²C 和 I3C 等双向通信总线的电压电平转换。 4.2.1 I²C信号电压转换芯片 PCA9306和NVT20xx系列( NVT2001/02 、 NVT2003/06 、 NVT2008/10 )是专为双向信号转换而设计的电压电平转换器。这些芯片可以同时处理多条信号线(多位信号线)。虽然它们被指定为 I²C 信号电压转换芯片,但如果信号规格匹配,它们也可以用于其他用途(例如 SPI 和其他推挽信号) 。 PCA9306 和 NVT20xx 系列具有相同的内部结构,只有当要转换的电压差为 1V 或更大时,才需要将上拉电阻连接到较高的电压侧。 图 16 显示了其内部结构以及与外部芯片的连接(摘自应用笔记AN11127的图 2:“双向电压电平转换器 NVT20xx 和 PCA9306” )。该芯片包含信号线(比特)数 + 1 个 MOS 晶体管。每个晶体管的源极和漏极可以互换。 信号传输路径中的晶体管称为传输晶体管,其余的晶体管称为参考晶体管。 图 16:NVT20xx (PCA9306) - 芯片工作原理示意图。   观察电路图,参考晶体管的栅极和漏极短接,并通过一个200kΩ的电阻连接到高压电源。参考晶体管的源极连接到低压电源。在这种连接方式下,参考晶体管相当于一个二极管,其栅极电压比低压电源高一个二极管电压。 剩余的传输晶体管的漏极连接到高压信号线和一个1kΩ的上拉电阻,其源极连接到低压信号线,其栅极连接到参考晶体管的栅极。当传输晶体管的高电平和低电平信号均为高电平时,高压侧的电压由1kΩ电阻上拉至高电平。 一个传输晶体管构成一个称为“源极跟随器”的电路。低压侧(源极)的电压比施加在栅极上的电压低,低的电压值等于晶体管导通所需的Vgs值。换句话说,源极的电压与低压电源的电压相同。此时晶体管处于半导通状态(工作在线性区),既非完全导通也非完全截止。 在这种状态下,当高电平或低电平信号变为低电平时,栅极和信号端之间的电压差会使晶体管导通(工作在完全导通的饱和区),另一个端也变为低电平。 该系列芯片可处理的信号速率受上拉电阻和信号线电容的影响。数据手册显示,PCA9306 最高可处理 2MHz 的信号速率。NVT20xx 系列芯片在上拉电阻为 192Ω、电容为 50pF 时,最高可处理 33MHz 的信号速率。对于 1MHz 左右的信号,即使不太在意上拉电阻和电容(假设其在 I²C 的常用范围内),也能正常工作。但是,如果要将该芯片用于推挽电路以处理更高速率的信号,则必须充分了解其特性并仔细选择合适的元件。 此类电压电平转换器的运行细节在文章“ PCA9306 的内部结构和运行”中进行了描述。 4.2.2 高速双向开漏信号电压转换芯片 我们推出NTS030x系列( NTS0302JK 、 NTS0304E )高速双向开漏信号转换芯片。 该芯片可执行 2 位或 4 位双向信号转换,可处理高达 2Mbps (1MHz) 的开漏信号和 20Mbps (10MHz) 的推挽信号。   图 17:NTS030x - 芯片内部框图   图 17 显示了 NTS030x 中一个信号比特的内部结构。 在图中,晶体管T3是一个直通晶体管,并对其施加了栅极偏置电压,因此当信号 A 或 B 变为低电平时,它会导通。 当 A 和 B 都为高电平时,T3 关闭,由于 A 和 B 通过相对较大的上拉电阻 (10kΩ) 连接到各自的电源,因此它们将具有各自的电压。 这款芯片包含T3以及T1和T2 。其中T1和T2用于一种名为“边沿速率加速器”的功能。我们将重点介绍其中一个T1,并解释其工作原理。 T1位于 A 侧,其源极连接到 A 信号,漏极连接到 A 侧电源。栅极连接到标有“单稳态和转换速率控制”的模块,该模块控制 T1。 “单次触发和转换速率控制”模块连接到另一端的 B 信号,用于检测 B 信号从低电平到高电平的变化。检测到此变化时,晶体管 T1 暂时导通,绕过 10kΩ 上拉电阻,允许电流通过,从而加速 A 信号从低电平到高电平的变化。通过这种方式加快信号的上升时间,可以处理更快的信号。 顺便一提,当 T1 打开时,其转换速率受到控制,以抑制电流突然增加引起的振铃。 另一个T2使用相同的机制,但方向相反,也应用于 B 面信号。 NTS系列还有另一个方便用户使用的功能。 对于前面提到的MOS晶体管和PCA9306/NVT20xx,存在一个问题:如果一个电源关闭,另一个电源的信号会被置为低电平。为了解决这个问题,NTS030x的设计使得当两个电源都未开启时,信号引脚会被置为高阻抗状态,从而避免相互影响。利用此功能,可以对系统的电源进行部分控制,使其处于开启/关闭状态。 NTS010x 系列( NTS0102 、 NTS0104 )与 NTS030x 系列等效,但缺乏处理高速信号的转换速率控制功能。 NTS0304E 配有评估板NTS0304EUK-ARD,可进行快速简便的运行验证。有关 NTS0304EUK-ARD 评估板的概述和操作方法,请参阅视频“如何操作 NTS0304EUK-ARD” 。 4.2.3 双向推挽式信号电压转换器芯片 此外,对于仅用于推挽信号的器件,还有NTB010x系列( NTB0102 、 NTB0104 ),它提供了一种更快的选择。 当信号稳定处于高电平或低电平状态时,信号会通过一个 4kΩ 电阻。与 NTS030x 系列类似,它在高电平和低电平两端都具有单稳态功能,并且具有一种机制,当任一端的信号发生变化时,该机制会改变另一端的信号。 该机制能够以 70-80 Mbps 的速度实现信号到电压的转换,同时还具有自动信号方向检测功能。   图 17:NTB010x - 内部芯片框图 4.2.4I3C信号电压转换器芯片 I3C规范允许在开漏和推挽通信模式之间切换。在开漏模式下,它与 I²C 兼容,工作频率最高可达4MHz 。在推挽模式下,则使用12.5MHz 的时钟频率。由于信号电压通常在 1V 到 3.3V 的范围内,因此当存在电压差时,需要一个符合信号规范的电压电平转换器。 图 18 显示了P3A1604一位的内部框图。如图所示,该芯片集成了一种机制,不仅可以加速低电平到高电平的转换,还可以加速高电平到低电平的转换,并且还集成了一个可以开关的上拉电阻。   图 18:P3A1604 - 芯片内部框图 P3A1604是一款 4 位 I3C 电压电平转换器。另有 2 位版本P3A9606可供选择。   4.2.5 基于缓冲区的转换 转换双向信号的另一种方法是使用专用缓冲区。 缓冲器的主要目的是增强驱动能力并隔离连接信号线的电容,但也有一些产品支持电压转换。 正如这篇博客中所述,简单的缓冲器无法相互缓冲双向开漏信号。因此,市面上出现了各种具有双向开漏信号专用功能的缓冲器产品。 我会在以后的场合详细解释缓冲区的问题。 5. 总结 电压电平转换器是安全可靠地在不同电源电压的数字电路之间交换信号的关键组件。了解 TTL、LVTTL 和 CMOS 等逻辑电平的定义,以及 VOH/VOL/VIH/VIL 之间的关系,有助于选择合适的连接和转换方法。 对于单向转换,可以使用开漏输出或标准逻辑集成电路;而对于双向转换,可以使用MOS晶体管或专用集成电路(例如PCA9306/NVT/NTS/NTB/P3A系列)。 具有自动信号方向检测功能的电压电平转换器对于需要双向通信的总线(例如 I²C 和 I3C)特别有用。 此外,半导体技术的最新进展带来了更低的电压和更高的速度,这就对电压电平控制提出了更高的要求。虽然电压电平转换的方法和方案有很多,但根据应用需求,并考虑信号规格、速度和系统电源管理等因素,选择最佳的方法和元件至关重要。 5.1 博客中介绍的方法/零件编号的比较 方法/部件编号 目的 位数 方向改变 开放式布线兼容 低压侧 [V] 高压侧 [V] 比特率 [bps] 具有开漏输出的转换器 通用 1 单向 - - - - 标准逻辑(例如,74AVCH4T245) 通用型(并行总线等) 4 + 4 外部控制 不支持 0.8 ~ 3.6 0.8 ~ 3.6 1亿~3.8亿 使用单个MOS晶体管进行双向转换 I²C,通用 1 自动的 一致 根据晶体管规格而定 约100万 PCA9306 I²C,通用 2 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz,视情况而定) NVT2001 I²C,通用 1 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2002 I²C,通用 2 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2003 I²C,通用 3 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2006 I²C,通用 6 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2008 I²C,通用 8 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2010 I²C,通用 10 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NTS0302JK I²C、SPI、通用 2 自动的 一致 0.95 ~ 3.6 1.65 ~ 5.5 2米@明排水口,20米@推拉式排水口 NTS0304E I²C、SPI、通用 4 自动的 一致 0.95 ~ 3.6 1.65 ~ 5.5 2米@明排水口,20米@推拉式排水口 NTS0102 I²C、SPI、通用 2 自动的 一致 1.65 ~ 3.6 2.3 ~ 5.5 50米 @ 推拉 NTS0104 I²C、SPI、通用 4 自动的 一致 1.65 ~ 3.6 2.3 ~ 5.5 50米 @ 推拉 NTB0102 SPI,通用 2 自动的 不支持 1.2 ~ 3.6 1.65 ~ 5.5 7000万~8000万 NTB0104 SPI,通用 4 自动的 不支持 1.2 ~ 3.6 1.65 ~ 5.5 7000万~8000万 P3A9606 I3C、I²C、SPI、通用 2 自动的 一致 0.72 ~ 1.98 0.72 ~ 1.98 (12.5MHz) P3A1604 I3C、I²C、SPI、通用 4 自动的 一致 0.72 ~ 1.98 1.62 ~ 3.63 6.8米(明排水),40米(推拉式排水) 表 1:博客中介绍的方法/零件编号对比   6. 参考资料 产品介绍页:电压电平转换器 NXP系统管理I2C、I3C、SPI选型指南 I2C总线规范和用户手册(版本5.0)(日语版) I2C总线规范和用户手册(版本7.0)英文版) NXP社区博客: I3C总线概述——下一代串行总线 日本网络研讨会视频: “您现在需要了解的下一代接口‘I3C’基础知识” Qiita @teddokano: PCA9306 的内部运作和运行 变更历史记录: 2025年8月28日:第一版 2025-08-28:添加了有关 NTS0304EUK-ARD 的信息以及包含视频的博客链接。 2026-04-10:修正表 1 中的低压侧 [V] 和高压侧 [V]。 2026-06-20:第 3.1 节“列:TTL 的 VIH(最小值)”新增“如何确定 VIL(max) = 2.0V 和 VIL(max) = 0.8V?”。新增标准 TTL 逻辑 IC 的内部电路示例:SN7400(2 输入 NAND 门)和 SN7420 的输出波形。 2026-07-10:在第 4.1 节中添加了图 15 中的电路也作为 Nexperia 应用笔记 AN10441 发布。 ========================= 即使您在本文的“评论”栏留言,我们目前也无法回复。 给您带来不便,我们深感抱歉。请在询问时参阅“NXP技术问题-联系方式(日本博客)”。 (如果您已经是NXP的代理商或与其有合作关系,可以直接向负责人咨询。) 本博客解释了数字电路中使用的各种逻辑电路(*TTL、*LVTTL、*CMOS)之间的电压电平差异,以及 VOH 、 VOL 、 VIH 和 VIL 对于识别它们的重要含义。 此外,我们将解释在各种转换方法中应该选择哪种电压电平转换器。 我们将仔细研究双向开漏信号的转换,这需要特殊的处理方法。 界面 介绍 日本博客
查看全文
RT1170 USB CDC は、実行されていないコードにブレークポイントを設定しても kStatus_USB_Busy で停止します。 こんにちは、 私は i.MX RT1170 (M7 コア) で以下の作業を行っています: SDKバージョン25.09 FreeRTOS USB CDC (仮想COM) CAN-FDの並列実行 初期化は正常です。 USB 列挙が正常に完了しました。 通常実行中は、CAN-FD と USB 通信は両方とも正常に動作します。 通常の状態でのシステムの動作: CAN-FDはデータを正しく受信します USB CDCはPC(Tera Term)にデータを正常に送信します USB_DeviceCdcAcmSend() は期待通りに動作します USBコールバックが実行され、ビジーフラグが適切にクリアされます 問題: プロジェクトの任意の場所にブレークポイントを配置すると、現在実行されていないコード内であっても (たとえば、初期化後の main() 内や関連のない関数内)、システムは実行を継続しますが、USB CDC は最終的に停止してしまいます。 重要な観察事項: ブレークポイントはヒットしていません。 コードは正常に実行され続けます。 FreeRTOS タスクは実行を継続します。 CAN-FD は正常に動作し続けます。 USB CDC のみが機能を停止します。 この現象が発生すると、次のようになります。 USB_DeviceCdcAcmSend() は kStatus_USB_Busy を返します USB転送コールバックが呼び出されない ビジーフラグが消えない ボードをリセットするまでUSB通信は永久に停止します 実行時に printf() を使用した場合でも、同様の動作が引き起こされることがあります。 構成: #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2 #USB_DEVICE_INTERRUPT_PRIORITY (6U) を定義します。 USBタスクスタックサイズ: #APP_TASK_STACK_SIZE を 8000L と定義します スタックオーバーフローは発生しません。 システムはクラッシュしません。 USB CDC 通信のみが停止します。 質問: 実行されていないコードにブレークポイントが設定されている場合でも、USB CDC が停止するのはなぜですか? デバッガーは、USB HS タイミングに影響を与えるような方法で M7 コアを一時的に停止しますか? USB 割り込みの遅延サービスにより、CDC ドライバが永続的に kStatus_USB_Busy 状態のままになる可能性はありますか? これは、CPU が停止したときの USB HS コントローラ (EHCI) の予想される動作ですか? 転送の破損を起こさずに RT1170 上の USB CDC をデバッグするための推奨方法は何ですか? どのようなご指導でもいただければ幸いです。 よろしくお願いします。 USB Re: RT1170 USB CDC stuck in kStatus_USB_Busy even when breakpoint is placed in non-executing code こんにちは@Harisha 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 問題に関しては、次の調整を試すことをお勧めします。 1:USB がタイムリーな割り込みサービスを確実に受信できるように、USB 割り込み優先度を FreeRTOS が管理できる最高の優先度に設定します。 2:他のモジュール(アプリケーション内の CAN-FD など)の割り込み優先度を下げて、USB プロセッシングが停止しないようにします。 これらの変更を試して、もう一度テストしてください。   よろしくお願いいたします。 メイリュー  
查看全文
Cortex-M33 上的 i.mx93 LPSPI + eDMA 问题 我使用的是 Tria i.MX9332(B1 硅)SMARC 模块,并尝试在 Cortex-M33 上使用带有 eDMA 的 LPSPI6,但无法正常工作。 开发环境 VS 代码 1.109.0 用于 VS 代码扩展的 MCUXpresso 26.1.56 SDK 25.09.00 硬件 在定制载板上试用 SM2S-IMX93 通过 SPI(LPSPI6)连接带有ILI9341控制器的 LCD 现状 使用不带 DMA 的 LPSPI6 时,显示正常。 我试图切换到LPSPI6 + eDMA以提高吞吐量,但无法收到完成通知。 问题 基于 DMA 的传输似乎开始了,但我从未在传输结束时收到 LPSPI DMA 完成回调。 详细信息和相关代码/配置见附件。 有人能指出我可能遗漏了什么,或者为什么没有触发信号吗? Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 感谢您提供的示例代码。回顾范例让我明白了这一点。 Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 你好@albi84 请参考附件中的补丁文件配置 LPDPI 与 EDMA B.R Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 你好 能否请您分享带有 eDMA 的 LPSPI 的骨架? 谢谢。 Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 这不是一个骨架,而是我使用的实际代码。这有帮助吗?
查看全文
RDMMA845X issues with Win 7 Pro. As a retired electronics man (but total newbie with PC + dev. boards) I hope this isn't too much of a stupid question. I have bought the above board. It works great on a Win 8.1 PC, but not on the Win 7 Pro PC - which is a shame because that's the one in my hobby lab! Win 7 finds the USB device and the Demo Screen correctly identifies the chip in use, etc. But hitting any of the 'lit' buttons just generates an Exception Handler window and I can go no further than that. I don't know what Ex Handler means so am at a loss! Wisdom greatfully accepted. Tks. John Accelerometers Re: RDMMA845X issues with Win 7 Pro. As an addition to my original post I should say that the exception window calls this an "unhandled exception". After some internet research I updated the .net framework to the latest ver (4.6.2) in case that was the cause. But it is not! Tks. J 
查看全文
在 MIMXRT685-EVK 上配置 8CH-DMIC 板、闪存和测试 您好, 我正在尝试使用 8-DMIC 阵列板在 EVK-MIMXRT685 上运行 dmic_multi_channel CM33 演示。 根据演示文档,在 J31 上启用 8-DMIC 板需要移动多个电阻器(例如R379、R380、R384、R389、R390、R391、R392 至 2-3)。执行此操作后,FlexSPI 八进制闪存 (U19) 变得无法访问: -LinkServer 闪存失败 -ROM ISP (blhost) 已连接,但是 FLEX-SPI-或非显示扇区大小 = 0 /页面大小 = 0-无法擦除/写入闪存 我的问题是: 该演示能否在不使用八进制闪存(仅使用内存的工作流程)的情况下运行? 更换电阻器后是否有官方的闪存/启动程序? 是否所有电阻器都需要更改,还是某些电阻器可以保持默认状态以保证 FlexSPI 闪存工作? 现在看来所需的DMIC硬件设置会阻止正常的闪存编程/启动。如何测试和运行演示程序? 感谢您的指导。 MIMXRT685-EVK 8通道-麦克风 i.MX RT600 Re: 8CH-DMIC board configuration, flashing and testing on MIMXRT685-EVK 你好@mlkezarev、 非常感谢您关注我们的产品并使用我们的社区。 问题 1:该演示能否在不使用八进制闪存(仅使用内存的工作流程)的情况下运行? A1: 是的。该演示设计为仅通过 SRAM 运行,不需要八进制闪存。 问题2:更换电阻器后是否有官方的闪烁/启动程序? A2: 电阻器更改后,外部闪存将被物理断开。 因此,此硬件配置不支持闪存刷新或从闪存启动。 问题 3:是否所有电阻器都需要更改,还是某些电阻器可以保持默认状态,以保证 FlexSPI 闪存工作? A3: 如果要启用 8 个 DMIC,则需要更改所有指定的电阻。 我已经发布了引脚配置屏幕截图供您参考。 问题 4:现在看来所需的DMIC硬件设置会阻止正常的闪存编程/启动。如何测试和运行演示程序? A4:您可以在 SRAM 上运行,就像 SDK 演示一样"evkimxrt685_dmic_multi_channel_cm33" 顺祝商祺! MayLiu
查看全文
[RTD600 IP] S32K3X4EVB-T172 GPIOウェイクアップ このサンプル プロジェクトでは、WKPU + SIUL2 (GPIO) の基本機能を使用および構成する方法をユーザーに示します。 ------------------------------------------------------------------------------ * テストハードウェア: S32K3X4EVB-T172 (SCH-53148 REV B2) * MCU: S32K344 * IDE: S32DS v3.5 および S32DS v3.6.x * SDKリリース: RTD 6.0.0 * デバッガ: PE Micro * ターゲット: internal_FLASH ------------------------------------------------------------------------------ このサンプル ルーチンは、GPIO 割り込みウェイクアップ用に WKPU ユニットを構成します。これは最も単純な WKPU の例です。ピン PTB19 (WKPU42) はウェイクアップ用に構成されています。 ルーチンはSW5が押されるのを待機し、緑色の LED をオフにして、次の処理を実行する Wkpu_EnterStandby() 関数に入ります。 コアクロックを FIRC に切り替えます。 WKPU インスタンスを初期化します。 WKPU42 (PTB19) を設定します。 スタンバイ(または高速スタンバイ)状態になります。 SW6を押すと、MCU が起動してリセットし、 SW5が再度押されるかどうかをポーリングします。 この例は現状のまま提供されており、保証やサポートはありません。
查看全文