Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
MIMX8ML8CVNKZAB のデバッグ UART を指定するにはどうすればよいですか? こんにちは MIMX8ML8CVNKZAB と 2 つの DDR4 (8GBit 512M x 16) バスを搭載したボードの設計が完了しました。ボードを組み立てる準備をしており、組み立てられたボードをもうすぐ受け取る予定です。 SoCとDDR間の通信をチェックする準備をしていたところ、mscale_ddr_tool_v3.31で次のコメントを見つけました。 MSCALE_DDR_Tool_User_Guide.pdf ドキュメント: 1. ターゲット ボードを PC ホストに接続します。 ホスト コンピューターからの UART ケーブルを MX8MSCALE デバッグ UART に接続します。 デバッグ UART に関しては、この SoC には UART1 から UART4 があります。デバッグ UART を使用する場合、指定されたポートはありますか?もしそうなら、それをどのように指定するか知っていますか? i.MX 8M | i.MX 8M ミニ | i.MX 8M ナノ Re: How do I specify the debug UART for the MIMX8ML8CVNKZAB? 一般的な i.MX8M Plus プラットフォームのデフォルトのデバッグ UART A53 は uart2 をデバッグ ポートとして使用し、M7 は uart4 をデバッグ ポートとして使用します。 次の条件を満たす限り、4 つの UART (UART1 ~ UART4) のいずれかをデバッグ UART として選択できます。 UARTのTX/RXピンをコネクタ(またはUSBシリアルIC)に接続し、 設定する項目: ATF(BL31初期出力) U-Boot 標準出力パス Linux デバイス ツリー (選択された { stdout-path = &uartX; }) 以下のリンクをご参照ください。 https://community.nxp.com/t5/NXP-Tech-Blog/How-to-Change-i-MX8MM-evk-Linux-Debug-UART/ba-p/1243938?attachment-id=111447 Re: How do I specify the debug UART for the MIMX8ML8CVNKZAB? 返信が遅くなり申し訳ありません。ご回答ありがとうございました。大変参考になりました。 i.MX8MP (865) DDRコントローラ構成スプレッドシート(MX8M_Plus_DDR4_RPA_v10.xlsx)でデバッグUARTポートを指定することで、UART接続を確立することができました。 MX8M_Plus_DDR4_RPA_v10.xlsxについては、以下のリンクを参照しました。 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8MPlus-m865S-DDR-Register-Programming-Aids-RPA/ta-p/1235352
View full article
Performance of semihosted stdio channel in RTD projects In a barebone S32DS project not using the RTD SDK or the Configuration Tool the speed on the semihosted stdio channel used by printf() seems to be almost instantaneous, but when enabling semihosted in an RTD project the speed is very slow, visibly printing character by character on the console. What is required to get the semihosted channel to behave similarly as in a standalone project? Re: Performance of semihosted stdio channel in RTD projects Hi @Henrik-Wires, Could you share which device + SW version you are using (RTD and S32DS)? Do you have semihosting enabled inside the debugger configuration? Solved: how to use the printf function in S32DS.3.5 ? - NXP Community. Printf is quite slow for debugging. There are some examples in community on how to use the UART instance inside of the S32K devices through the USB connector on the EVBs: [RTD600 IP] S32K312EVB-Q172 Standby RAM GPIO Wake-up [RTD600 IP] S32K312-EVB Lpuart interrupt echo The first one uses a lpuart.c library to print through printf function, while the lpuart interrupt echo example uses the UART functions alone. Hope this helps. Best regards, Julián Re: Performance of semihosted stdio channel in RTD projects seems to be the difference between newlib_nano semihosted vs newlib semihosted. Switching to newlib however causes the application to hardfault at the second call to printf() for no apparent reason. Re: Performance of semihosted stdio channel in RTD projects Yes semihosting is enabled in the debug settings. The performance from newlib (not newlib_nano) is sufficient for what I am doing. It is a debug session, providing more formatted data than what is realistic to configure in the debugger gui. Not sure why the mentioned project crashes with a hardfault during printf. Created another MEX and that works just fine. Will analyze the crashing mex configuration later but guessing it is some other unrelated problem.
View full article
RTD プロジェクトにおけるセミホスト stdio チャネルのパフォーマンス RTD SDK または構成ツールを使用していないベアボーン S32DS プロジェクトでは、printf() で使用されるセミホスト stdio チャネルの速度はほぼ瞬時に見えますが、RTD プロジェクトでセミホストを有効にすると速度が非常に遅くなり、コンソールに文字ごとに目に見える形で出力されます。 セミホスト チャネルをスタンドアロン プロジェクトと同様に動作させるには何が必要ですか? Re: Performance of semihosted stdio channel in RTD projects こんにちは、 @Henrik-Wiresさん、 使用しているデバイス + SW バージョン (RTD および S32DS) を共有していただけますか? デバッガー構成内でセミホスティングが有効になっていますか?解決済み: S32DS.3.5 で printf 関数を使用する方法 - NXP コミュニティ。 Printf はデバッグには非常に時間がかかります。EVB の USB コネクタを介して S32K デバイス内の UART インスタンスを使用する方法については、コミュニティにいくつかの例があります。 [RTD600 IP] S32K312EVB-Q172 スタンバイ RAM GPIO ウェイクアップ [RTD600 IP] S32K312-EVB LPUART割り込みエコー 最初のものはlpuart.cを使用しますライブラリは printf 関数を介して印刷しますが、lpuart 割り込みエコーの例では UART 関数のみを使用します。 これがお役に立てば幸いです。 よろしくお願いします、 ジュリアン Re: Performance of semihosted stdio channel in RTD projects newlib_nano semihosted と newlib semihosted の違いのようです。ただし、newlib に切り替えると、明らかな理由もなく、printf() の 2 回目の呼び出しでアプリケーションがハードフォールトを起こします。 Re: Performance of semihosted stdio channel in RTD projects はい、デバッグ設定でセミホスティングが有効になっています。 私が行っている作業には、newlib (newlib_nano ではない) のパフォーマンスで十分です。これはデバッグ セッションであり、デバッガー GUI で構成するのに現実的なものよりもフォーマットされたデータを提供します。 上記のプロジェクトが printf 中にハードフォールトでクラッシュする理由は不明です。別の MEX を作成しましたが、問題なく動作しました。クラッシュした mex 構成については後ほど分析しますが、おそらく他の無関係な問題であると思われます。
View full article
MKE chip operation flash I am currently using the MKE17 chip. After setting the data in the FCCOBx register in the routine, there is another function that needs to be executed. What is the purpose of this function? It uses the address of callFlashCommand. I haven't seen this setting anywhere else. Where is this address typically located? It is similar to the function that saves the data in RAM after the register settings are completed, so that the flash operation can be completed? Is there any relevant documentation that provides a detailed description of the FLASH erasing process? The description in the RM manual is rather vague. Can you also provide the kei5 engineering of the FLM (flashprg.c)? KE17Z-TOUCH-SENSING 
View full article
In UART protocol test MCXN546VKL, it stuck at while (0U == (base->STAT & LPUART_STAT_TDRE_MASK))? Hi, I am new with NXP, I am trying to test LPUART protocol in the MCUXpresso IDE with our MCXN546VKL PCB with UART PIO8 and PIO9 pins to IoT module, before that I try to test the TX and RX function for the UART polling and DMA. In simple loopback UART test with polling mode, when I try to send sample data through uart TX it stuck at "while (0U == (base->STAT & LPUART_STAT_TDRE_MASK))" in fsl_lpuart.c file. I given 12MHz for FLEXCOMM4 and 150MHz for system clock, why this is happening, I have attached .png file of configuration screenshot also with this post please check and give clear details. Thank you Clock|Timers Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) Development Board MCXN 回复: In UART protocol test MCXN546VKL, it stuck at while (0U == (base->STAT & LPUART_STAT_TDRE Hi @Elakiya    On MCXN devices, the TDRE bit only becomes 1 when the UART module is actually clocked and the TX FIFO level is less than or equal to the configured TX watermark.  May I ask if you have enabled the FlexComm clock? I think you can refer to the mcxn547 sdk lpuart demo.   BR Harry 回复: In UART protocol test MCXN546VKL, it stuck at while (0U == (base->STAT & LPUART_STAT_TDRE Hello @Harry_Zhang, I have MCXN546VKL PCB board, but as per your instruction I have used example file of LPUART polling from the SDK of MCXN547V for same pin PIO8 and PIO9 of uart pins and manually changed in GlobalInfo of the processor and package_id to MCXN456VKL inside the clock_config.c and pin_mux.c.  processor: MCXN546 package_id: MCXN546VKL And build the project, without any error it is transmitting and receiving the UART polling operation fine, but still I get a error notification inside the pin configuration setting. I have shared the screenshot of the notification and error issue shown in Problem Tool: MCUconfiguration. How can I quick fix the error, by changing the processor setting also from MCXN547 to MCXN546 in configuration to remove the error notification from the configuration page. Please check my screenshot and update the solution. Thanks in advance. 回复: In UART protocol test MCXN546VKL, it stuck at while (0U == (base->STAT & LPUART_STAT_TDRE Hi @Harry_Zhang , I have not created it in mcxn546 or mcxn946, but I tried to run basic uart operation first in mcxn546, it was not working and making clock issue in uart and mcu. So I created mcxn547 example uart polling project from sdk and changed its processor and package id manually in pin_mux.c and clock_config.c to build and make it for mcxn546 mcu. It is sending and receiving the uart data  in my mcxn546 board.  But it is running in startup_mcxn547_cm33_core0.c and showing in pin configuration page of .mex file given below. I need to run it in startup_mcxn546_cm33_core0.c and clear this error in config. I have attached my project with this post, please check it. Issue: Processor "MCXN547" detected in the MCUXpresso_IDE project does not match the currently selected "MCXN546". Level: Error 回复: In UART protocol test MCXN546VKL, it stuck at while (0U == (base->STAT & LPUART_STAT_TDRE Hi @Elakiya  I checked your early post. "manually changed in GlobalInfo of the processor and package_id to MCXN456VKL inside the clock_config.c and pin_mux.c. processor: MCXN546 package_id: MCXN546VKL" This method is incorrect, so it will report an error. We currently have no way to prevent this error. First, MCXN546 and MCXN547 are mostly the same, with only differences in the number of GPIOs and flash RAM size. Based on your above messages. I have two suggestions. 1. If you create a project based on your MCXN546 SDK, you just need to modify some files base on the mcxn5xxevk_lpuart_polling and you can use the config tool directly. 2. If you want to use mcxn5xxevk_lpuart_polling as the base, you cannot directly use the config tool tool. But you can create another mcxn546 project, configure the pins and clocks you need with the config tool, and then copy the generated code to project mcxn5xxevk_lpuart_polling. BR Harry 回复: In UART protocol test MCXN546VKL, it stuck at while (0U == (base->STAT & LPUART_STAT_TDRE Hi @Elakiya  Sorry for the late reply, have you tried creating a freertos project based on the mcxn946 SDK package?   BR Harry 回复: In UART protocol test MCXN546VKL, it stuck at while (0U == (base->STAT & LPUART_STAT_TDRE Hello @Harry_Zhang, Kindly give me update and solution above issue, I need to run my in project in startup_mcxn546_cm33_core0.c instead of running in startup_mcxn547_cm33_core0.c. If I create in manually, I am getting clock config issue in uart and MCU. I have changed my processor and clock manually to mcxn546 from mcxn547, but I could not make changes in startup file and also processor error warning inside my chip configuration page. Or please provide my simple project in mcxn546 configuartion with freeRTOS in UART polling & DMA operation test code. Kindly give me update for the above issue. Thank you.
View full article
iMX95: 2 つのビデオ入力と 2 つのビデオ出力。 こんにちは! iMX95 を使用するプロジェクトがありますが、2 つのビデオ入力と 2 つのビデオ出力が必要です。入力には、2 つの MIPI-CSI 入力を使用します。ビデオ出力に関しては、2 つの MIPI-CSI 入力では MIPI-DSI 出力を使用できないため (MIPI-DSI/CSI コンボのため)、2 つの LVDS 出力を使用する必要があります。 LVDS 出力に関していくつか質問があります。1 つの出力を LCD (480x272) に、もう 1 つを LVDS から HDMI へのブリッジに送信したいのですが。これまでの質問は次のとおりです。 1. 出力に関して説明した内容を実行することは可能ですか?つまり、1 つの LVDS 出力は LCD に、もう 1 つの LVDS 出力は LVDS-HDMI ブリッジに出力されます。 2. どの LVDS-HDMI ブリッジをお勧めしますか?IT6263 チップを確認しましたが、正しいでしょうか?他にもありますか? 3. 「LVDS to HDMI」ブリッジの後の HDMI 出力は、720p50/59/60、1080p50/59/60、PAL、NTSC、1080i50/59/60 のフォーマットをサポートする必要があります。1080p60に到達することは可能ですか?iMX95 の LVDS と「LVDS から HDMI」ブリッジを介してインターレース形式の出力をサポートすることは可能ですか? ありがとう、 ダニエル。 Re: iMX95: Two video inputs and two video outputs. ご返信ありがとうございます! HDMI 出力のインターレース形式のサポートについて... MIPI-DSI から HDMI へのブリッジを使用した場合、インターレース形式はサポートされますか? それとも、LVDS から HDMI へのブリッジを使用した場合と同じ問題が発生しますか? ありがとう、 ダニエル。 Re: iMX95: Two video inputs and two video outputs. こんにちは、 1. はい、可能です。 2. IT6263 は当社のリファレンス デザインでテスト済みの唯一のチップであり、他の LVDS-HDMI チップも動作するはずです。 3. i.MX95 は最大 2x 1080p60 LVDS Tx (2x 4 レーンまたは 1x 8 レーン) をサポートしますが、インターレース形式は BSP ではサポートされていないため、お客様側で実装する必要があります。 よろしくお願いいたします。 Re: iMX95: Two video inputs and two video outputs. こんにちは、 インターレース形式は BSP に実装されていないため、LVDS から HDMI へのブリッジを使用した場合と同じ問題が発生します。 よろしくお願いいたします。 Re: iMX95: Two video inputs and two video outputs. ご返信ありがとうございます! HDMI 出力のインターレース形式のサポートについて... MIPI-DSI から HDMI へのブリッジを使用した場合、インターレース形式はサポートされますか? それとも、LVDS から HDMI へのブリッジを使用した場合と同じ問題が発生しますか? ありがとう、 ダニエル。 Re: iMX95: Two video inputs and two video outputs. ご回答をお待ちしています。 Re: iMX95: Two video inputs and two video outputs. 出力に関する質問が明確になったので (ありがとうございます)、2 つの入力についていくつかの点を明確にしたいと思います。 まず、私たちのアイデアを説明し、その後質問をさせていただきます。iMX95 の 2 つの MIPI-CSI 入力を使用します。1 つは TC358743 チップに接続され、もう 1 つは TC358748 チップに接続されます。両方の入力で、720p50/59/60、1080p50/59/60、PAL、NTSC、1080i50/59/60 の形式をサポートしたいと考えています。 この設定により、次の疑問が生じます。 1. 入力に関して説明した内容を実行することは可能ですか?つまり、1 つの MIPI-CSI 入力は TC358743 から、もう 1 つの MIPI-CSI 入力は TC358748 から提供され、両方とも異なるビデオ フォーマットをサポートできます。 2. TC358743 と TC358748 の 2 つのチップをサポートするドライバーはありますか? 3. MIPI-CSI 入力は、インターレース形式の PAL、NTSC、1080i50/59/60 もサポートしていますか?もしそうなら、いわゆる「仮想チャネル」を使用してこれをどのように行うのでしょうか?ドキュメントでは、MIPI-CSI 入力でのインターレースがサポートされているようです (「CSI ピクセルフォーマッタ (CSI_PIXEL_FORMATTING)」 => 「YUV/RGB データ型のインターレース モードをサポートします」) が、確認のために質問しています。 4. インターレース データに対するチップの制限により、TC358743 チップの MIPI-CSI インターフェースでは YUV422 を使用できません。YUV444 形式を使用することを考えていましたが、RGB のように MIPI-CSI インターフェース経由で送信し、おそらくソフトウェア (ドライバー) を変更する必要があるでしょう。これは可能ですか?ソフトウェア (ドライバなど) は準備ができていますか、それとも自分で行う必要がありますか? 5. 2 つの MIPI-CSI インターフェースのいずれかからの入力を H264/HEVC ビデオ エンコーダーにルーティングしたいのですが、このエンコーダーには YUV420 が必要ですが、MIPI-CSI インターフェースは YUV422 (または YUV444) です。ドキュメントによると、「HW」モジュール「YUV422/YUV444/RGB 8 ビットからの CSC」を使用することで可能になるようです。この CSC は ISI モジュールのものです、それとも別のものですか?この変換は CSC を使用して実行できますか、それとも YUV422/YUV444 から YUV420 への変換はソフトウェアで行う必要がありますか? 6. 前の質問の続きですが、ビデオ デコーダーの出力を LVDS に送信することを検討しています。これには、YUV420 (デコーダー) から RGB (LVDS) への変換が必要になります。この変換 (YUV420 から RGB) は、ハードウェア モジュール (おそらくディスプレイ コントローラーの「Blit コントローラー」を使用) を使用して実行できますか。それともソフトウェアで行う必要がありますか。 7. 色変換に関してですが、BT601 と BT709 のサポートと使用についても質問があります。これらはハードウェア変換でサポートされていますか、それとも特定の係数構成などに依存していますか? ありがとう、 ダニエル。 Re: iMX95: Two video inputs and two video outputs. そして新たな疑問が: 8. MIPI-CSI インターフェース上のレーン数を動的に設定できる必要があります。それは可能ですか? ありがとう、ダニエル。 Re: iMX95: Two video inputs and two video outputs. こんにちは、 入力に関するこれらの新しい質問に関しては、新しいコミュニティ スレッドを作成するか、サポート チケットを送信することをお勧めします。 これにより、各スレッドが 1 つのトピックに集中しやすくなります。 よろしくお願いいたします。 Re: iMX95: Two video inputs and two video outputs. 最後の 8 つの質問について誰か助けてくれませんか? どうもありがとうございます、 ダニエル。 Re: iMX95: Two video inputs and two video outputs. ありがとうございます!おっしゃる通り、これらの質問で新しいThreadを開始させていただきます。
View full article
デュアルコアの問題: Cortex-M7 は安定しているが、Cortex-M4 は イーサネット 通信中にハングする (Whitebeet/Codi こんにちは、皆さん 私たちは、[IMXRT-1176-EVKB]とイーサネット通信用のWhitebeet Codicoボードを使用してデュアルコアアプリケーションを開発しています。 特定のボトルネックが発生しました。ファームウェアは、Cortex-M7 コアで実行すると完璧に動作します。ただし、同じロジックを Cortex-M4 コアで実行すると、アプリケーションはハングする前に短時間動作します。このハングは最終的にノード側で配列バッファ オーバーフローを引き起こします。 トラブルシューティングに関する詳細: 時計: 時計の設定を確認しました。CM4 で部分的/初期通信が実現できたため、基本的なクロック設定エラーは除外されました。 症状: ハングはタイミングが一貫していませんが、結果は一貫しており、通信フローが停止し、ノードのバッファがオーバーフローします。 Whitebeet モジュールとインターフェイスする際に、CM7 と CM4 の間でパフォーマンスまたはタイミングの不一致に遭遇した人はいますか? 次にどこを探せばよいかについての洞察や提案があれば、ぜひお聞かせください。 Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ はい、OCRAM、SRAM_ITC_cm4、DTCM などのさまざまな RAM セクションを移動しようとしましたが、コードをビルドすると、そのセクションが最低 250% オーバーフローし、サイズが約 505 KB になります。 Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ こんにちは@techexplorer_139さん、 情報ありがとうございます!M4 コードが SDRAM で実行されていることに気づきましたが、M4 のみを SRAM に再配置することは可能ですか?そうすればパフォーマンスが大幅に向上します。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。 --------------------------------------------------------------------------------- Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ CM4 でアプリケーションを実行すると、CM7 には、helloworld_cm7 の例に示されているように、CM4 の起動を開始する小さなコードのみが含まれます。 データ セクションの配置については、メモリ マップとリンカー GUI のスクリーンショットを共有しました。 現在、CM4 のコードを最適化して CM7 と同じように動作するように取り組んでいます。 Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ こんにちは@techexplorer_139 、 M4 でアプリケーションを実行すると、M7 でも実行するコードがありましたか?M4のデータセクションはどこに配置しましたか?M7とM4で共有されている場所ですか?それともM4だけが所有している場所ですか?M4コードの最適化オプションを強化しましたか?何か違いはあるのでしょうか?ご説明をよろしくお願いいたします。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。 --------------------------------------------------------------------------------- Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ こんにちは@techexplorer_139さん、 M4 のデータセクションのみを SRAM に再配置してみましたか?何か違いはありましたか? すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。 --------------------------------------------------------------------------------- Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ はい、データセクションを SRAM_OC、SRAM_ITC_cm4、SRAM_DTCM などの SRAM のさまざまな部分に移動してみましたが、唯一の違いは、すべての部分で使用量がオーバーフローされていたことです。 Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ こんにちは@techexplorer_139さん、 M4 コードをフラッシュで実行し、データ セクションをSRAM_ITC_cm4 などの RAM スペースに割り当てるのはどうでしょうか? すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。 --------------------------------------------------------------------------------- Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ あなたの提案どおりに実行してみましたが、CM7 コアは起動しますが、CM4 コアはメインで停止せず、スクリーンショットに記載されているようにコードでエラーが発生します。また、CM7 メイン関数で CM4 のブート アドレスを board_flash アドレスに変更しました。 Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ こんにちは、 @techexplorer_139 さん。 スレーブコアプロジェクトをXIPターゲットとして実行する方法に関するドキュメントを提供しています。詳細については、 https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/RT1170-How-to-make-a-slave-core-project-as-a-XIP-target/ta-p/2193296を参照してください。 お役に立てれば幸いです。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。 --------------------------------------------------------------------------------- Re: Dual-core Issue: Cortex-M7 stable, but Cortex-M4 hangs during Ethernet communication (Whitebeet/ リンク先に記載されている手順を試してみましたが、今度は2つ目のコアが起動しなくなりました。
View full article
NXP Android 15.0.0_2.0.0 NFC PN7160 Hi, I am trying to add NFC PN7160 to NXP Android 15.0.0_2.0.0 and have followed the NXP Android 15 porting guide and also the followed the guide "PN7160 PN7220 Android 15 Porting to i.MX8MN EVK". The PN7160 is successfully probed. But when making the changes in the guides i get the following build error: FAILED: out/soong/.intermediates/hardware/nxp/nfc/intf/nxpnfc/aidl/vendor.nxp.nxpnfc_aidl_interface/checkhash_2.timestamp if [ $(cd 'hardware/nxp/nfc/intf/nxpnfc/aidl/aidl_api/vendor.nxp.nxpnfc_aidl/2' && { find ./ -name "*.aidl" -print0 | LC_ALL=C sort -z | xargs -0 sha1sum && echo 1; } | sha1sum | cut -d " " -f 1) = $(tail -1 'hardware/nxp/nfc/intf/nxpnfc/aidl/ai dl_api/vendor.nxp.nxpnfc_aidl/2/.hash') ]; then touch out/soong/.intermediates/hardware/nxp/nfc/intf/nxpnfc/aidl/vendor.nxp.nxpnfc_aidl_interface/checkhash_2.timestamp; else cat 'system/tools/aidl/build/message_check_integrity.txt' && exit 1; fi ############################################################################### # ERROR: Modification detected of stable AIDL API file # ############################################################################### Above AIDL file(s) has changed, resulting in a different hash. Hash values may be checked at runtime to verify interface stability. If a device is shipped with this change by ignoring this message, it has a high risk of breaking later when a module using the interface is updated, e.g., Mainline modules. 08:55:05 ninja failed with: exit status 1 Re: NXP Android 15.0.0_2.0.0 NFC PN7160 In the error message, there is the linux commands in the condition of "if... then".  You could run the same command to get the new hash value and then put it to the checkhash file.
View full article
低电压检测:数据表与参考手册 大家好 我正在尝试实现 MCXA156 控制器的低压检测 (LVD) 功能。数据手册》定义 VLVDH_VDD 阈值为 2.619V(典型值),VLVDL_VDD 阈值为 1.651V(典型值)。VLVDH临界值正是我想要的。但是默认情况下只配置了 VLVD L(而且在检测 低压检测 时会出现几次间歇性翻转 RESET 信号的不良行为,正如我使用示波器看到的那样 —— 迟滞太低了!) 此外,参考手册说:" 低压检测 RESET 所处的电压阈值是可编程的 ",而 VD_SYS_CFG 寄存器的描述是 "... 配置低压触发点..." 到目前为止还不错。 现在的问题是,VD_SYS_CFG 寄存器只有 RM 中记录的以下位: LOCK HVDIE - 启用 HVD 中断 HVDRE-启用 HVD RESET LVDIE-低压检测 中断启用 低压检测RE-启用 低压检测 RESET 这些都不能用来设置阈值。 问题:我应该如何配置低压检测阈值? 顺祝商祺! 韦伯 核心与内存 MCXA 电源 Re: Low-voltage detect: Datasheet vs. Reference Manual 让我补充一点,在 RM 中,VD_SYS_CFG 的 LOCK 位注释为"允许写入 LVDRE、HVDRE 和 LVSEL 字段" 。但没有在任何地方定义 LVSEL 位。 此外,还有一个 SDK 函数"SPC_SetSystemVDDLowVoltageLevel" ,它指向 SPC_VD_SYS_CFG_LVSEL(第 8 位),其中😎相关代码已注释。非常奇怪... 您有什么建议吗? Re: Low-voltage detect: Datasheet vs. Reference Manual 亲爱的韦伯 对于迟到的回复,我深表歉意;参见《参考手册》第 25.7.17 章VD_SYS_CFG 配置中,显示为保留的 8 位是"LVSEL" ,这应该对用户开放,我们正在为 RM 进行修改。 在写入该字段之前,必须将 LOCK 写为 0。 如果要更改 LVSEL,则必须在禁用 LVD RESET 和中断后执行此操作。否则,由于 LVSEL 的变化,SPC 可能会生成低压检测。 LVSEL 的配置: 0b-正常 1b-安全 在 MCXA156 的 SDK 示例中,您可以在文件 fsl_spc.h中的 spc_low_voltage_level_select函数。 由于要使用高范围 低压检测 阈值,因此需要使用 [ksPC_LowVoltageHighRange] entering Normal level [0b] in spc_low_voltage_level_select 让我知道这是否适合你。 最诚挚的问候,路易斯
View full article
MIMXRT595S 上 Zephyr 中的 I3C1 你好 我目前正在尝试使用 Zephyr 让 I3C1 在自定义主板上以 I2C 模式运行。自定义板使用 MIMXRT595SFFOC。如果我为 Flexcomm0 配置与 I2C 相同的引脚(PIO3_1 和 PIO3_2),则总线工作正常,带有 ST zephyr 驱动器的传感器(LPS22HH)会成功响应。当我将相同的传感器连接到 I3C0 总线并像这样在 Zephyr 中对其进行配置时,它也可以正常工作: sensor_i3c: &i3c0 { status = "okay"; pinctrl-0 = <&pinmux_i3c0>; pinctrl-names = "default"; i2c-scl-hz = <400000>; i3c-scl-hz = <8250000>; i3c-od-scl-hz = <2500000>; zephyr,disabling-power-states = <&suspend>; lps22hh: lps22hh@5c0000000000000050 { compatible = "st,lps22hh"; status = "okay"; reg = <0x5c 0x0 0x50>; odr = ; }; }; pinmux 看起来是这样的 pinmux_i3c0: pinmux_i3c0 { group0 { pinmux = , ; input-enable; slew-rate = "normal"; drive-strength = "high"; }; }; 设置成功后,我再次将同一个传感器连接到 I3C1 引脚上(配置为 Flexcomm0 时,它能成功工作)。然后我将此配置添加到设备树中: &peripheral { i3c1: i3c@37000 { compatible = "nxp,mcux-i3c"; reg = <0x37000 0x1000>; interrupts = <67 0>; clocks = <&clkctl1 MCUX_I3C_CLK>; clk-divider = <2>; clk-divider-slow = <1>; clk-divider-tc = <1>; status = "disabled"; #address-cells = <3>; #size-cells = <0>; }; }; sensor_i3c1: &i3c1 { status = "okay"; pinctrl-0 = <&pinmux_i3c1>; pinctrl-names = "default"; i2c-scl-hz = <400000>; i3c-scl-hz = <8250000>; i3c-od-scl-hz = <2500000>; zephyr,disabling-power-states = <&suspend>; lps22hh: lps22hh@5c0000000000000050 { compatible = "st,lps22hh"; status = "okay"; reg = <0x5c 0x0 0x50>; odr = ; }; }; Pinmux: pinmux_i3c1: pinmux_i3c1 { group0 { pinmux = , ; input-enable; slew-rate = "normal"; drive-strength = "high"; }; }; 使用这种配置,传感器仍在总线上响应,如示波器所示: 但是,尽管有来自传感器的响应,但I3C1外设在总线上不接收任何字节。这导致 mcux_i3c_doo_one_xfer_read 超时,因为 RXPEND 中断没有触发。 我已经做了哪些调试工作? 我检查了 I3C1 IRQ 的 NVIC 配置。这是正确的,因为在 I3C 驱动程序初始化过程中,由于 MERRWARN OREAD 标志的存在,ISR 被多次调用。 在启动、写入和读取过程中,我检查了所有相关的 I3C1 寄存器(MCONFIG、MCTRL、MSTATUS、MINTSET、MERRWARN、MDMACTRL)。传感器工作时与 I3C0 上的显示相同。未使用 DMA,因此接收的字节应在外围设备 FIFO 中可用。 我还使用了 SKEW 设置,因为ERRATA 提到在某些情况下 I2C 可能需要它。 我还检查了两个引脚的 IOPCTL 寄存器,以确保它们是正确的。看起来也和 I3C1 上的一模一样。 然后我想,如果中断无论如何都不起作用呢?因此,我修改了 i3c_mcux.c像这样的驾驶员这样,它就不会使用中断进行接收,而只是读取 FIFO 中的内容。没有收到任何字节。 static int mcux_i3c_do_one_xfer_read(I3C_Type *base, struct mcux_i3c_data *data, uint8_t *buf, uint8_t buf_sz, bool ibi) { int ret = 0; int offset = 0; while (offset < buf_sz) { /* * Transfer data from FIFO into buffer. Read * in a loop until data is unavailable in the FIFO. */ uint16_t count = 0; while (offset < buf_sz && mcux_i3c_fifo_rx_count_get(base) == 0) { k_usleep(10); count++; if (count > 500) { ret = -ETIMEDOUT; break; } } buf[offset++] = (uint8_t)base->MRDATAB; /* * If timed out, we abort the transaction. */ if ((mcux_i3c_has_error(data) & I3C_MERRWARN_TIMEOUT_MASK) || ret) { ret = -ETIMEDOUT; /* for ibi, ignore timeout err if any bytes were * read, since the code doesn't know how many * bytes will be sent by device. */ if (ibi && offset) { ret = offset; } else { LOG_ERR("Timeout error"); } break; } } /* If no errors, then return the number of bytes read */ if (ret > 0) { ret = offset; } return ret; } 由于所有这些都是在传感器驱动程序的初始化过程中发生的,我也没有在 UART 上看到任何日志,因为此时日志模块尚未初始化。然而,调试器显示它只是在循环中空转,直到因为计数变量过高而中断。我还验证了 I3C0 上驱动程序的更改,以确保它能继续工作。 因此,目前在我看来,I3C1外围设备显然没有接收任何字节到FIFO,我不知道为什么。示波器上的信号看起来不错,与 I3C0 上的信号相似。但是,I3C0 上的每个字节之间存在一些小延迟,这在 I3C1 上不存在。 我希望你知道什么会阻止 I3C1 外设在总线信号看起来正确的情况下接收字节。 顺祝商祺! mhummels 通信& 控制(I3C | I2C | SPI | FlexCAN | 以太网 | FlexIO) Re: I3C1 in Zephyr on MIMXRT595S 我又对这个问题进行了深入调查。我开始尝试在 EVK 上使用 MCUXpresso SDK,看看 I3C1 是否能在那里工作。使用 100kBaud 时,I3C1 执行正常的 I2C,传感器有响应,I3C1 能够正常读取。然后,当它起作用时,我使用 I3C1 构建了一个最小的 Zephyr 示例,以便在 EVK 上运行。令人惊讶的是,它还能以 100000 kHz 的波特率工作。因此,我采取了下一步行动,在自定义板上运行了这个示例。Tada -> 传感器在 I3C1 上工作和接收已不成问题。 当我试图将频率调回 400kHz 时,它突然停止读取数据,尽管传感器的回答是正确的,如示波器图像所示。为什么 I3C1 外设跟不上 I2C 模式 400k 的读取速度? Re: I3C1 in Zephyr on MIMXRT595S 你好,@mhummels、 I3C 外设存在一个已知勘误 (ERR051617),会影响 I2C 操作。请确保在 I3C1 实例中应用所需的解决方法;本页将介绍该解决方法。 此外,为了帮助确定问题是否与 Zephyr 配置有关,您能否重复之前在 MCUxpresso 中进行的相同测试,但使用 400 kHz I2C 频率? 最后,RM 提供了 I3C 外围设备的详细信息。第 52.3.2.1 节解释了读写 I2C 报文的标准方法。我强烈建议查看这部分内容,以便更好地了解模块的运行情况,并找出任何潜在的配置问题。 BR Habib Re: I3C1 in Zephyr on MIMXRT595S 解决方法是将 SKEW 配置为 1,我之前已经试过了。这并没有奏效。 最后我多玩了时钟分频器和波特率分频器。看来,I3C1 对 400 千赫以上的频率更为敏感。我之前的分频器的频率为 412.5kHz,在 I3C0 上可用,但在 I3C1 上不起作用。现在我更换了分频器,使其达到精确的400kHz,现在两者都运行良好。
View full article
安全启动流程中对 VDD_EFUSE 加速时间的要求 你好,专家 客户报告说,当集成了 BIST 和 HSE 时,MU GSR 寄存器为 0xB7880001。经过一番调查,发现VDD_EFUSE的上升时间似乎太长(13毫秒),因此客户绕过其板上的MOSFET,时间减少到1.5毫秒。通过进行此修改,HSE 运行良好。 因此,客户询问了安全启动流程中VDD_EFUSE的启动时间要求。 HSE_FW 优先级:中等 资料来源直接客户 Re: The requirement of VDD_EFUSE ramp-up time in secure boot flow HSE_H 高级版还是标准版? Re: The requirement of VDD_EFUSE ramp-up time in secure boot flow 你好@Crisnoo_Yi_Yang、 我正在分析这个问题,很快就会给出答复。 同时,请提供您使用的芯片、HSE 变体(B/M/H)和版本、客户和项目名称。 我看到此主题已升级,也请与我分享该邮件中的信息。 谢谢, Marian Vilau Re: The requirement of VDD_EFUSE ramp-up time in secure boot flow 你好 玛丽安 请参阅以下所需信息: 芯片:芯片:S32G399A;HSE 变体:HSE_H;客户名称:AEV;项目名称:CCU。 而升级通知的电子邮件是由社区系统自动发送的,因此无法附加这些信息。 Re: The requirement of VDD_EFUSE ramp-up time in secure boot flow 你好,玛丽安 HSE 版本为rev1.1_s32g3xx_hse_fw_0.20.0_2.51.0_pb240404.bin.pink Re: The requirement of VDD_EFUSE ramp-up time in secure boot flow 您好, 另外,在这种情况下,AEV 没有 BSSM,我将就此联系销售团队。 致以最诚挚的问候, Marian Re: The requirement of VDD_EFUSE ramp-up time in secure boot flow 你好@Crisno_Yi_Yang, 我目前正在研究这个问题,想确认一下我的理解。您说的旁路 MOSFET 是指移除 MOSFET 并直接提供 1.8 V 电源吗?请告诉我我的理解是否正确。 敬上, Himanshu Kumar Re: The requirement of VDD_EFUSE ramp-up time in secure boot flow 你好,希曼舒 你的理解是正确的。 Re: The requirement of VDD_EFUSE ramp-up time in secure boot flow 您好@Crisnoo_Yi_Yang, AEV 没有 BSSM,销售团队已经证实了这一点。因此,客户需要购买 BSSM 才能获得对该问题的支持。 敬上, Himanshu Kumar
View full article
DMA割込み DMA 割り込み機能を設定した後、この割り込みを入力できないことがわかりました。検査の結果、チャネル INT が 0 のままであることが判明しました。元のアドレスのデータが宛先アドレスに送信され、結果が得られなかったときに問題が発生しました。(PWM は ADC サンプリングをトリガーします)私のプログラムを見て、DMA 割り込みに入ることができない理由を教えてください。 void Dma0_IrqHandler ( void ) { IP_TCD_0 -> CH7_INT = 1 ; } Re: DMA interrupt こんにちは@xingyunさん あなたのプログラムを見ることはできませんが、DMA 割り込みを設定するには、DMA「割り込みコールバック」が宣言され、IntCtrl ドライバが割り込みハンドラーと優先度を正しく設定していることを確認してください。 よろしくお願いします、 ジュリアン
View full article
Cannot step through debugging on PN7642 (PNEV7642A) Hi, I'm trying to debug a PCSC fw based on example UsbCcid_Freertos_Pub, running on an evaluation kit board PN7642 (PNEV7642A) I've followed instrucctions from FREERTOS Debug Document. UG10059 - MCUXpresso IDE 25.06 FreeRTOS Debug Guide. From what I can see in logs, FreeRTOS Thread awareness should be OK, but it is not fully working. I have a list of thread in Debug, but Thread states de RTOS has not been detected. Debug statusDebug statusDebug statusDebug status Using an MCULink, I can step over until after launching the thread scheduler with phOsal_StartScheduler(); After that, a breakpoint in the working thread stops it, but I cannot step over or step out. I got messages in Disassembly that could be relate to the problem. 0020ae54: Failed to execute MI command: -data-disassemble -s 2141780 -e 2141824 -- 3 Error message from debugger back end: Cannot access memory at address 0x20ae54 Can someone give me some pointers? Regards, Re: Cannot step through debugging on PN7642 (PNEV7642A) Hi @EduardoZamora , check_nxpfw_update demo reports FW as 02.02, and 02.02 for SDK as well. Returns STATUS_FW_SAME_VERSION. I'll try to find a JLink to further testing, but I adquired a brand new MCULink just for debugging this board. As for the OS... Do you mean the HOST OS? I'm using ubuntu 22.04.5 LTS: Regards, Regards, Re: Cannot step through debugging on PN7642 (PNEV7642A) Hello @V_Palacio,. Hope you are doing well. An SDK is bound to a certain firmware version. If FW version of PN7642 does not match the FW used by the SDK, some issues and unexpected behaviors can occur. Please make sure you are using the latest firmware version available; you can run the check_nxpfw_update demo from PN7642 SDK, and if PN7642 and SDK firmware versions do not match, this demo will help you updating the FW. You can also try deleting the debug configuration (*.launch file that is generated for the debugging) and start the debugging session again. If possible, please do some tests using J-Link firmware for your debugger. Still, the behavior you observe during debugging should be related to the OS, and as you pointed out, it would be expected after the Scheduler starts running. To debug, please consider setting a breakpoint, reach it, disable it, and run until the next one. Regards, Eduardo. Re: Cannot step through debugging on PN7642 (PNEV7642A) Correction: RTOS not detected comes from Azure RTOS. FREERTOS Task shows 3 Task: -IDLE -ClTaskEvent -Tmr Svc Re: Cannot step through debugging on PN7642 (PNEV7642A) Hi, Please use the latest versions of PN7642 SDK and Firmware available on PN7642 product page, "Software" section. You can also try updating CMSIS-DAP firmware of your MCULink. Regards, Eduardo. Re: Cannot step through debugging on PN7642 (PNEV7642A) With latest SDK (2.15) and launch debug config as "All Stop", now I can manage myself to debug.
View full article
无法步进调试 PN7642 (PNEV7642A) 您好, 我正在尝试根据示例 USBCCID_FreeRTOS_PUB 调试 PCSC 固件,运行在评估套件板 PN7642 (PNEV7642A) 上,我已经按照了 FREERTOS 调试文档中的说明进行操作。 UG10059 - MCUXpresso IDE 25.06 FreeRTOS 调试指南。 从日志中可以看出,FreeRTOS 线程感知应该没问题,但并没有完全正常工作。 我在调试程序中有一个线程列表,但线程状态为未检测到 RTOS。 Debug statusDebug statusDebug status调试状态 使用 MCULink,在使用phOsal_StartScheduler(); 启动线程调度器之前,我可以跨步,之后,工作线程中的断点会停止工作线程,但我无法跨步或跨出。 我在反汇编中找到了可能与问题有关的信息。 0020ae54: 执行 MI 命令失败: -data-disassemble -s 2141780 -e 2141824 -- 3 来自调试器后端的错误信息: 无法访问地址为 0x20ae54 的内存 谁能给我指点一下? 此致, Re: Cannot step through debugging on PN7642 (PNEV7642A) 你好@EduardoZamora、 check_nxpfw_update 演示报告 FW 为 02.02,SDK 也是 02.02。 返回STATUS_FW_SAME_VERSION。 我会尝试找到一个 jLink 进行进一步测试,但我购买了一个全新的 McULink 只是为了调试这个板。 至于操作系统...你是指主机操作系统吗?我使用的是 ubuntu 22.04.5 LTS: 此致, 此致, Re: Cannot step through debugging on PN7642 (PNEV7642A) 你好@V_Palacio,. 希望你一切顺利。 SDK 与某个固件版本绑定。如果 PN7642 的 FW 版本与 SDK 使用的 FW 版本不一致,可能会出现一些问题和意外行为。请确保您使用的是最新版本的固件;您可以运行 PN7642 SDK 中的 check_nxpfw_update 演示,如果 PN7642 和 SDK 固件版本不匹配,该演示将帮助您更新固件。 您也可以尝试删除调试配置(为调试生成的*.launch 文件),然后重新启动调试会话。如果可能,请使用调试器的 J-Link 固件进行一些测试。 不过,您在调试过程中观察到的行为应该与操作系统有关,而且正如您所指出的那样,在计划程序开始运行后出现这种情况也是意料之中的。要进行调试,请考虑设置一个断点,达到断点后禁用断点,然后运行到下一个断点。 Eduardo。 Re: Cannot step through debugging on PN7642 (PNEV7642A) 更正:未检测到的 RTOS 来自 Azure RTOS。 FREERTOS 任务显示 3 任务: -IDLE -ClTaskEvent -Tmr Svc Re: Cannot step through debugging on PN7642 (PNEV7642A) 您好, 请使用 PN7642 产品页面 "Software" 部分提供的最新版本 PN7642 SDK 和固件。 您也可以尝试更新 MCULink 的 CMSIS-DAP 固件。 Eduardo。 Re: Cannot step through debugging on PN7642 (PNEV7642A) 有了最新的 SDK (2.15) 并以 " All Stop " 的身份启动调试配置,现在我可以自己进行调试了。
View full article
RGMII Late Peer Power-Up: Reliable Verification of Actual Communication Health In an RGMII deployment, when the peer device is powered on later than the switch, communication may remain abnormal even though no MAC errors are reported. After manually reconfiguring RXC_DELAY and RXC_PD, communication returns to normal. Could you recommend a reliable approach to determine whether end-to-end peer communication is truly operational, rather than relying only on basic status indications? SJA1105PQRS  Re: RGMII Late Peer Power-Up: Reliable Verification of Actual Communication Health System Configuration: | Port | Connection | Mode | |--------|------------|---------| | Port 0 | SOC | MAC-MAC | | Port 4 | MCU | MAC-MAC | | Port 1 | PHY | MAC-PHY | Initialization Sequence: 1. MCU boots and initializes Switch/PHY configurations 2. SOC completes initialization ~10 seconds later 3. Ethernet device visible via ifconfig, but communication fails 4. RXC must be manually controlled to restore communication Problem: No error notification mechanism to determine SOC boot completion or when to trigger RXC for recovery. Port 1 and Port 4 remain operational during this issue. Observed Symptoms: |                    Scenario                                  |     MACERR                      |                  Recovery Method               | |------------------------------------  |----------------------|---------------------------------| | SOC online at normal temperature       | Reported (Runt+SOF) | Reconfigure RXC_BYPASS + RXC_PD | | SOC powered on at high temperature | NOT detected              | Reconfigure RXC_BYPASS + RXC_PD | Additional Issue (possibly unrelated): During normal operation, Port 0 may occasionally go offline with low probability. When this occurs, no MACERR is reported and communication cannot be restored. Best regards, __shiyi Re: RGMII Late Peer Power-Up: Reliable Verification of Actual Communication Health Hello @__shiyi , Which PHY device are you using on the RGMII interface? When you mention the peer device, do you refer to the link partner of your PHY or another MCU MAC, switch or SoC? Does the issue require a manual reconfiguration of RXC_DELAY / RXC_PD only after the initial power‑up or does it also occur after a normal link down / link up cycle? The standard link status (PHY link up, MAC no error counters) only confirms signal‑level integrity. Reliable confirmation requires checks at higher OSI layers, e.g. TCP/IP. Best regards, Pavel Re: RGMII Late Peer Power-Up: Reliable Verification of Actual Communication Health Hello @__shiyi , Thank you for detailed description. It appears that this behavior is described in UM11040, Software user manual for SJA1105P, SJA1105Q, SJA1105R, SJA1105S,  Rev. 3, Table 123. Registers CFG_PAD_MIIx_ID . Please check that out. Best regards, Pavel
View full article
[iMX93] ADC 校准失败 您好,NXP团队: 我只是在我们的设备树中启用了 “adc1”,但是系统响应校准失败了。 原因何在? &adc1 { vref-supply = <&reg_vref_1v8>; status = "okay"; }; root@imx93afee320a1:/sys/bus/iio/devices# dmesg| grep adc [ 1.565952] Bluetooth: HCI UART protocol Broadcom registered [ 1.719162] imx93-adc 44530000.adc: ADC calibration failed! [ 1.724775] imx93-adc: probe of 44530000.adc failed with error -11 [ 1.842125] can: broadcast manager protocol Re: [iMX93] ADC calibration failed 你好,你找到解决办法了吗?我的 i.MX93 也遇到了同样的问题。 Re: [iMX93] ADC calibration failed 你好,恩智浦团队。我也遇到了同样的问题。我的 IMX93 ADC 也显示错误 "imx93-adc 44530000.adc":ADC 校准失败!"和 "imx93-adc: probe of 44530000.adc failed with error -11"。我正在使用研华的 IMX93ROM-2820A1 核心板。 Re: [iMX93] ADC calibration failed 你使用的是哪个版本的电路板支持包?你在使用恩智浦 93EVK 板吗?
View full article
S32G399 + SJA1110 首先,感谢您的回答,但我现在看的是 s32g339-rd3 的电路图,现在我通过 GMAC0 将 s32g339a 连接到 KSZ9031 RJ45,但这并没有连接到 ETH_SWITCH SJA1110? 那么,如果我现在想使用框架优先权,是否不能通过 SJA1110,而只能直接在 GMAC 使用? Re: S32G399 + SJA1110 你好,东民 我正在看 s32g339-rd3 的电路图。 >>>请参阅此链接:S32G-VNP-RDB3 设计文件 我通过 GMAC0 将 s32g339a 连接到 KSZ9031 RJ45,但它没有连接到 ETH_SWITCH SJA1110? >>>是的,SJA1110 无法连接RDB3 上的 GMAC0。对于 S32G3 的 SJA1110,它支持 Qav、Qbv,但不连接 RDB3 上的 GMAC0。 那么,如果我现在想使用框架优先权,是否不能通过 SJA1110,而只能直接在 GMAC 使用? >>>是的您可以使用 GMAC 支持帧抢占(IEEE 802.1Qbu),以实现时间敏感型联网。SJA1110 不连接 RDB3 上的 GMAC0。 BR 乔伊
View full article
MX8QM hi team, i am ordering MCIMX8QM-CPU i need to beingup Android and Freertos  do we need Jailhouse hypervisor here and how to download android source to compile and flash? Re: MX8QM @Manuel_Salas this info I am aware but requirement is to run Android and freertos on top of hypervisor. MCIMX8QM-CPU -soc  Not possible? Re: MX8QM Hello @Shivu_Guru_24  As you can see in the i.MX8QM datasheet:     It has 2 Cortex M4 processors. So, you can run heterogeneous processing, running Linux in Cortex A, and run RTOS in Cortex M, in an independent way. So, you do not need to use any hypervisor. Best regards, Salas. Re: MX8QM Hello @Shivu_Guru_24  This is "Technically" possible, but we have not any examples of how to do it. You can refer to the HARPOON as starter point. Best regards, Salas. Re: MX8QM On last kernel is just supported Jailhouse for i.MX8QM. https://github.com/nxp-imx/imx-jailhouse/blob/lf-6.12.49_2.2.0/configs/arm64/imx8qm.c Best regards, Salas. Re: MX8QM @Manuel_Salas  which Hypervisor is best for latest kernal? Xen or jailhouse?
View full article
Test Ram on iMX93 Hi all, We are using BSP 1.5.2 on the i.MX93 with Windows IoT. Is there an integrated RAM test included in the BSP that is executed on every boot? i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Windows Windows 10 IoT Enterprise Re: Test Ram on iMX93 Thanks you Chavira, only to understand better your answare. Is it technically impossible or has it not been implemented? thanks, Fabio Re: Test Ram on iMX93 Hi @FabioDF_86, Thank you for contacting NXP Support!  Unfortunately that is not possible.
View full article
i.MX 93 LPUART RS-485 — TXRTSE 有効時の TE 0→1 遷移時のスプリアス約 3 ミリ秒 RTS パルス NXPサポートチーム様 当社は i.MX LPUART ペリフェラルを RS-485 モードで使用しており、RTS 信号に影響するハードウェア レベルの問題を特定しました。私たちはその根本的な原因を理解し、利用可能な緩和策について話し合いたいと思っています。 --- ハードウェアコンテキスト --- 私たちの設計では、LPUART RTS ピンは RS-485 トランシーバの送信イネーブル (DE) 入力に直接接続されています。TXRTSE ハードウェア機能は、LPUART が送信している間のみ RTS/DE ラインが自動的にアサートされ、最後のストップ ビットの直後にアサート解除されるように使用され、ソフトウェア オーバーヘッドなしで適切な半二重 RS-485 バス方向制御が可能になります。 この直接的な電気的接続のため、ドライバーの初期化中であっても RTS ピンの誤ったアサーションにより RS-485 トランシーバーが有効になり、バスが駆動され、他のバス参加者からの進行中の通信が破損する可能性があります。 --- デバイスツリー構成 --- 以下は、i.MX93 上の影響を受ける LPUART インスタンスの DTS 構成です。RTS_B パッドは、ハードウェア LPUART RTS 機能に多重化され、RS-485 トランシーバーの DE ピンにルーティングされます。RE (レシーバ有効化、アクティブ ロー) は、rs485-rx-during-tx-gpios を使用して別の GPIO 経由で制御されます。 &lpuartX { ステータス = "正常"; pinctrl-0 = <&pinctrl_lpuart_rs485_0>; uart-has-rtscts; linux、起動時に rs485 を有効化; rs485-rx-during-tx-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>; }; &lpuartY { ステータス = "正常"; ピンコントロール-0 = <&ピンコントロール_lpuart_rs485_1>; uart-has-rtscts; linux、起動時に rs485 を有効化; rs485-rx-during-tx-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>; }; pinctrl_lpuart_rs485_0: lpuart_rs485_grp0 { fsl、ピン = < MX93_PAD_GPIO_IO05__LPUART6_RX 0x31e MX93_PAD_GPIO_IO04__LPUART6_TX 0x31e MX93_PAD_GPIO_IO07__LPUART6_RTS_B 0x31e MX93_PAD_GPIO_IO06__GPIO2_IO06 0x31e >; }; pinctrl_lpuart_rs485_1: lpuart_rs485_grp1 { fsl、ピン = < MX93_PAD_GPIO_IO13__LPUART8_RX 0x31e MX93_PAD_GPIO_IO12__LPUART8_TX 0x31e MX93_PAD_GPIO_IO15__LPUART8_RTS_B 0x31e MX93_PAD_GPIO_IO14__GPIO2_IO14 0x31e >; }; この設定では、Linux,rs485-enabled-at-boot-time により、ポートの起動時に RS-485 モード (および TXRTSE) がアクティブ化され、システムの起動時またはポートのオープン イベントごとにスプリアス RTS パルスが発生します。 --- 観察された行動 --- UARTMODIR レジスタの TXRTSE ビット (トランスミッタ送信要求有効化) が設定され、UARTCTRL のトランスミッタ有効化ビット (TE) が 0 から 1 に遷移すると、その時点ではデータが送信されていないにもかかわらず、RTS/DE ラインには約 3 ミリ秒続くスプリアス パルスが表示されます。 この動作は、アップストリームのNXP Linuxカーネルドライバ(drivers/tty/serial/fsl_lpuart.c)で明確に確認できます。ここで、lpuart32_setup_watermark_enable() には次のコメントと回避策があります。 /* * RS-485 がアクティブな場合、TE の有効化を start_tx まで延期します。 * TXRTSE が設定された TE 0->1 により、約 3 ミリ秒の RTS パルスが発生します (シリコンの癖)。 * TEを最初の実際の送信まで延期することで、RTS * アサーションは、ネットワーク上の実際のデータと一致します。 */ if (!sport->rs485_te_deferred) ctrl |= UARTCTRL_TE; 回避策では、TE の有効化を start_tx() まで延期し、実際のデータが送信されているときにのみ RTS/DE アサーションが発生するようにします。 --- 根本原因 — 段階的なメカニズム --- スプリアスパルスを生成する内部シーケンスについては次のように理解しています。 1. lpuart_config_rs485() が呼び出され、UARTMODIR で TXRTSE=1 が設定され、TE=0 のままになります。RTS は低いです。 2. ポートオープン中に lpuart32_setup_watermark_enable() が呼び出され、UARTCTRL に TE=1 が書き込まれます。この時点では TX FIFO は空です。 3. LPUART ハードウェアは、TXRTSE = 1 のときに TE 0 -> 1 遷移を検出します。 4. シリコンの癖: TX FIFO が空であるにもかかわらず、ハードウェアは送信が開始されたかのように直ちに RTS HIGH をアサートします。 5.約 3 ミリ秒後、ハードウェアは TC (送信完了) を認識し、送信するものがないと判断し、RTS LOW をアサート解除します。 タイミング図: 時間 ──────────────────────────────────────────────► config_rs485 open() 約3ミリ秒後 │ │ │ ▼ ▼ ▼ TXRTSE=1 TE: 0→1 TC 認識 TE=0 TXRTSE=1 FIFO が空です! │ │ RTS: ─── 低 ─────────┤ 高 ├──────────┤── 低 ─── │←─ 約3ミリ秒 ──→│ RTS 上のこの誤った HIGH パルスは、RS-485 トランシーバの DE 入力を約 3 ms 間直接有効にし、有効なデータなしでバスを駆動します。 --- 信号キャプチャ --- RTS (DE) 信号と TXD 信号は、ロジック アナライザーを使用して RS-485 トランシーバ入力でキャプチャされました。2 つのテスト シナリオが表示されます。 --- キャプチャ 1 --- UART を開いてすぐに送信 --- テスト アプリケーションは UART ポートを開き、遅延なくすぐに「Hello World」を書き込みます。 fd = open("/dev/ttyLPx", O_RDWR); 書き込み(fd, "Hello World", 11); TE 0->1でスプリアスRTSパルスは依然として発生しますが、実際の送信はTE 0->1で発生するため、 マイクロ秒単位で、奇妙なパルスと正当な RTS アサーションが 1 つの連続したパルスに結合されます。 最初の部分の偽りの性質はキャプチャでは確認できません。 --- キャプチャ 2 --- UART を開き、約 3 ミリ秒以上待ってから送信します --- テストアプリケーションはUARTポートを開き、Quirk期間(約3ミリ秒)よりも長くスリープします。 そして、その後に「Hello World」と書き込みます。 fd = open("/dev/ttyLPx", O_RDWR); usleep(3000); /* > ~3ms、スプリアスパルスの持続時間よりも長い */ 書き込み(fd, "Hello World", 11); 遅延がクワーク持続時間を超えるため、スプリアスパルスはデータが完全に送信される前に完了します。 と書かれています。これにより、バグが明確に明らかになります。 - open() のとき: RTS は対応する TXD アクティビティなしで HIGH をアサートします (スプリアス パルス、約 3 ms) - TC が認識されると RTS は LOW をアサート解除します (TX FIFO はずっと空でした) - スリープ後: アプリケーションがデータを送信し、RTSが再びHIGHをアサートし、TXDが「Hello World」ペイロードを伝送します。 2つのRTSパルス間のギャップにより、最初のパルスが原因ではないことが明白になる。 いかなるデータ送信によっても。   --- 質問 --- 1. この動作は、影響を受ける i.MX SoC の公式エラッタまたはテクニカル ノートに記載されていますか?もしそうなら、ドキュメント参照と影響を受けるデバイスのリストを提供していただけますか? 2. 影響を受ける i.MX SoC バリアント (例: i.MX7ULP、i.MX8ULP、i.MX8QXP、i.MX93、その他) はどれですか? 3. どのシリコン リビジョンでもハードウェア レベルの修正は利用可能でしょうか。それともソフトウェアによる回避策 (TE の延期) が唯一推奨される緩和策でしょうか。 4. 約 3 ミリ秒の持続時間はデターミニスティックですか (IDLECFG 設定またはボー レートに結びついています)、それともシリコン サンプル/リビジョンによって異なりますか? 5. 特に RS-485 モードでポートが繰り返し開閉される場合、遅延 TE 回避策で注意すべき副作用はありますか? - - 環境 - - - SoC: i.MX93 - カーネル: Linux (NXP ダウンストリームフォーク、lf-6.12.49-2.2.0 ベース) - ドライバ: fsl_lpuart.c - モード: RS-485、TXRTSE 有効、RTS_B パッドを RS-485 トランシーバ DE 入力に接続 ご協力ありがとうございます。 Re: i.MX 93 LPUART RS-485 — Spurious ~3ms RTS Pulse on TE 0→1 Transition with TXRTSE Enabled こんにちは、 @tapio_reijonen さん。 使用しているBSPのバージョンは何ですか? それらのコメントが表示されているコードの具体的な箇所を教えていただけますか? サードパーティ製の改造ドライバを使用しているかどうかは分かりませんが、UART IPには既知のバグがいくつかありますが、それらは既に公式のBSPリリースでソフトウェア的に修正されています。 弊社の公式Linuxディストリビューションをお試しください。 https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/drivers/tty/serial/fsl_lpuart.c 引き続きサポートを提供するため、追加情報をお寄せください。 よろしくお願いします、 チャビラ Re: i.MX 93 LPUART RS-485 — Spurious ~3ms RTS Pulse on TE 0→1 Transition with TXRTSE Enabled こんにちは、 @Chaviraさん BSPバージョン: NXP公式BSP lf-6.12.y(Linux 6.12.49、リリースlf-6.12.49-2.2.0)。 ドライバ: NXP 公式リポジトリhttps://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/drivers/tty/serial/fsl_lpuart.cから変更されていない drivers/tty/serial/fsl_lpuart.c 。 この問題は、変更を加えていない公式のNXP BSPでも再現可能です。i.MX93で標準ドライバをRS-485モード(linux、rs485-enabled-at-boot-time、uart-has-rtscts、TXRTSE enabled)で使用すると、シリアルポートを開くと約3msの不要なRTSパルスが発生します。TE 0→1遷移は、TXRTSEが設定されている間、送信機プリアンブルをトリガーし、RS-485バス上でRTS/DEをアサートしますが、データは送信されません。 Re: i.MX 93 LPUART RS-485 — Spurious ~3ms RTS Pulse on TE 0→1 Transition with TXRTSE Enabled こんにちは、 @tapio_reijonen さん。 返信が遅くなり申し訳ありません。 私の方でも同様の現象を再現できたので、以下の結論に至りました。 この問題の根本原因は、LPUART IPの内部ステートマシンのシリコンレベルでの設計にある。RS-485モードを設定する際、UARTMODIRレジスタのTXRTSEビットを設定することで、RTSピンの物理的な制御をハードウェアに直接委ねることができます。その瞬間から、シリコンはUARTCTRLレジスタのTE(トランスミッタ・イネーブル)ビットの0から1への遷移に無条件で反応するようにハードワイヤリングされる。この遷移により、論理ゲートが作動し、RTSピンが即座にHIGHになり、Linuxカーネルからの制御がバイパスされます。 トランスミッタを有効にすると、ハードウェアは送信が間近であると判断し、プリアンブルを送信しようとしますが、送信バッファ(TX FIFO)が空であることが判明します。ステートマシンは既にRTS信号を発信しているため、データのシリアル化を待機している間、停止状態になります。処理すべきバイトがないため、ハードウェアが非アクティブ状態を理由に「送信完了」(TC)状態を独自に認識するまでに約3ミリ秒が経過し、その時点でようやくRTS信号をLOW状態に戻します。 公式のfsl_lpuart.cに含まれる回避策ドライバはこの電気的挙動を完全に排除するのではなく、単に時系列的に隠蔽するだけです。カーネルの戦略は、ポートの初期化(open())中はTEビットを無効にし、write()関数が呼び出され、start_tx()が実行されるまで、そのビットを1に遷移させることです。しかし、TXピンからデータを出力するには、TEビットを必ず1に設定する必要があります。この場合、ハードウェアは最初に発生した誤ったパルスを再び注入します。しかし、その直後に実際のデータペイロードが続くため、不規則なパルスは正当なRTSアサーションとほとんど知覚できないほどに融合してしまう。 Re: i.MX 93 LPUART RS-485 — Spurious ~3ms RTS Pulse on TE 0→1 Transition with TXRTSE Enabled @tapio_reijonen デバイスツリーで`uart-has-rtscts`が使用されている場合、「このプロパティが存在するということは、UARTに専用ラインがあることを示しています」。つまり、制御にはGPIOではなく、iMX93の専用ピンが使用されるということです。 `fsl_lpuart.c` が確認できます。関連する`serial_mctrl_gpio`コードが欠落しています。たとえLinuxレベルでGPIOを制御できたとしても、このシリアルポートモジュールの状態遷移とは一致しないだろう。そして、運転手を混乱させる可能性もある。 別のシリアルポートドライバ(`drivers/tty/serial/imx.c`)と比較すると、`serial_mctrl_gpio`というコードが見つかります。 https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/Documentation/devicetree/bindings/serial/serial.yaml uart-has-rtscts: $ref: /schemas/types.yaml#/definitions/flag description: The presence of this property indicates that the UART has dedicated lines for RTS/CTS hardware flow control, and that they are available for use (wired and enabled by pinmux configuration). This depends on both the UART hardware and the board wiring. https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/drivers/tty/serial/imx.c #include "serial_mctrl_gpio.h" struct imx_port { struct uart_port port; struct timer_list timer; unsigned int old_status; unsigned int have_rtscts:1; unsigned int have_rtsgpio:1; unsigned int dte_mode:1; unsigned int inverted_tx:1; unsigned int inverted_rx:1; struct clk *clk_ipg; struct clk *clk_per; const struct imx_uart_data *devdata; struct mctrl_gpios *gpios; /* counter to stop 0xff flood */ int idle_counter;
View full article