Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
SE050E2HQ1/Z01Z3Z 的电容和铁氧体磁珠要求 您好,NXP团队, 我们在定制设计板中使用安全元件 P/N:SE050E2HQ1/Z01Z3Z。 在审查参考设计板 OM-SE050ARD 时,我们几乎没有什么顾虑,如下所示 1.是否严格要求在 VIN (12)、VOUT (15)、VCC (18)引脚上使用阻抗为 330 欧姆、频率为 100 MHz 的 P/N: BLM21PG331SN1D铁氧体磁珠? 2.我们是否还需要在 VSS (19) 引脚上添加铁氧体磁珠? 3.是否需要使用 0.033uF 电容或者我们可以使用 100nF 电容? 谢谢! Re: Capacitor and Ferrite Bead requirement for SE050E2HQ1/Z01Z3Z 你好@kadamm 希望你一切顺利。 铁氧体磁珠主要与双接口操作(由非接触式接口提供)有关,以实现正确的电磁兼容性。 关于电容,您是否正在考虑只使用一个(共享)100nF 电容?如果是这样,我相信应该不会有什么大的不便。 Eduardo。 Re: Capacitor and Ferrite Bead requirement for SE050E2HQ1/Z01Z3Z 你好,爱德华多、 我们的设计没有采用 ISO 14443 或 ISO 7816 接口。因此,我们计划直接连接 VIN、VCC、VOUT 和 GND 引脚,而不使用铁氧体磁珠。此外,我们在引脚上放置一个 0.1 µF 电容以进行解耦。请问这种方法是否合适?   谢谢!
查看全文
CAN HDL 示例 你好, 我使用的是 S32K358 172Q 主板和 AUTOSAR RTD 3.0 以及 S32 设计工作室 3.6.0。 I 我一直在研究恩智浦 S32K358 上的 CAN HLD 驱动程序组件示例,并成功运行了环回模式。现在我试图切换到正常模式,并使用 PCAN-USB 适配器与 PCAN-View 进行通信,但没有看到任何信息。 我将波特率设置为 500 kbps。 CAN 硬件通道设置为 FLEXCAN_4。 并从配置中禁用环回模式。 我在这里附上项目文件夹以供参考。期待答复。 我从 PCAN-View 传输了 CAN 信息,并使用示波器观察 CAN 线路上的信号。总线上存在信号,这证实了PCAN端工作正常,PCAN适配器工作正常。但是在板方面,我们没有收到任何消息。我还逐针测量了连接。看来一切都连接正常
查看全文
Example S32K344 EMAC lwIP FreeRTOS MRCANHUB S32DS 3.6.1 RTD600 * Detailed Description: * Updated the example lwip_FreeRTOS_s32K344 to enable pinging the lwIP stack from the command window * *ping 192.168.0.209 * *Pinging 192.168.0.209 with 32 bytes of data: *Reply from 192.168.0.209: bytes=32 time=2ms TTL=255 *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 * *Ping statistics for 192.168.0.209: * Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), *Approximate round trip times in milli-seconds: * Minimum = 1ms, Maximum = 2ms, Average = 1ms * * * EVB: * - All jumpers in default positions. * * Configuration: * - Updated pin configuration * - Modified FXOSC, PLLAUX + dividers * - Platform: added EMAC_0_IRQn interrupt * - IP address set to 192.168.0.209 and enabled UDP_ECHO, etc. * - Added DIO * * main.c * - Updated only the header * device.c * - No updates * test.c * - Commented out the code that shuts down the TCP/IP stack after its predefined timeout * - Added LED task * * ------------------------------------------------------------------------------------------------ * Test HW: MR-CANHUBK344 * MCU: S32K344 * Debugger: Lauterbach Trace32 * Target: internal_FLASH * EVB connection: EMAC <-> RDDRONE-T1ADAPT <-> USB-to-Ethernet adapter <-> Laptop DELL, Windows 11
查看全文
S32K312MINI-EVB Segger JTAG-SWD接続エラー こんにちは、S32K312MINi EVBを持っています。SWD/JTAG経由でこれをプログラムしようとしています(opesdaが搭載されていることは知っていますが、私のカスタムPCB設計には搭載されません)。 接続しようとすると、次のエラーが表示されます。 不明なSDA AP IDが検出されました: 0xFFFFFFFF 不明なSDA AP IDが検出されました: 0xFFFFFFFF InitTarget() 終了 - 1.09秒かかりました ****** エラー: J-Link スクリプトファイル関数 InitTarget() がエラーコード -1 を返しました   R0と消去を試しましたが、うまくいきませんでした Re: S32K312MINI-EVB Segger Jtag-SWD connection error こんにちは、 ご返信ありがとうございます。 Seggerソフトウェアの最新バージョンを使用していますが、vrefが3.3Vになっているのを確認しています。 ピンもテストしましたが、配線は正しいです。リセットボタンは、複数のテスト段階において押し続けられました。 JTAGも、チップとの接続に失敗したというエラーコードを出力しています。 速度を落とそうともしましたが、効果がないようです。 PC上でS32用のjlinkscriptを探してみましたが、見つかりませんでした。どこにあるのでしょうか? Re: S32K312MINI-EVB Segger Jtag-SWD connection error こんにちは、 エラー: J-Link スクリプトファイル関数 InitTarget() がエラーコード -1 を返しました。 J-LinkはターゲットMCUの初期化手順を正常に実行できず、初期化スクリプト(InitTarget())が失敗しました。 初期化に失敗したため、デバッガーはデバイスと通信できません。 このメッセージは、J-Linkが接続のごく初期段階でDAP(デバッグアクセスポート)にアクセスできない場合に表示されます。 「不明なSDA AP IDが検出されました: 0xFFFFFFFF」 InitTarget() 関数は、SEGGER が使用する J-Link スクリプト ファイル (.JLinkScript) の一部です。 時計を設定する デバッグインターフェースを起動する MEM-AP / AHB-AP の設定 デバイス固有の設定を実行する デバッグに必要なアクセスが失敗した場合、SEGGER はスクリプトを中止し、エラー -1 を返します。 解決策の概要 J-Linkソフトウェアをアップデートする SEGGER社はS32K31xのアルゴリズムにバグがあることを確認した。 J-LinkへのVTref(3.3V)を確認してください。 VTrefが欠落しているため、AP ID = 0xFFFFFFFF → InitTargetが失敗します。 SWD配線を確認する SWD_DIO、SWD_CLK、RESET、およびGNDが正しく接続されていることを確認してください。 リセットして接続し、SWD速度を下げてください。 ファームウェアがピンを早期に再構成してくれると助かります。 SWDモードの代わりにJTAGモードを試してください 同様のNXPデバッグエラーで提案された解決策です。 よろしくお願いします、 ピーター
查看全文
[不正行為] 投稿者: @RishavKaaraTech / 掲示板: TapLinx-SDK / 報告者: xdzgvh xdzgvh は、 @RishavKaaraTech が投稿した 「RFIDDiscover ツールを入手したが、その使い方はわからない」という 投稿を以下の理由で報告しました。 理由:裸体または性行為 詳細: ゼベータの購入方法 購入zebeta オンライン迅速配送 または、オンラインでゼベタを購入できます zebetaをオンラインで購入 ゼベタ錠を速達便で購入 zebeta holland order ゼベタジェネリック錠剤ゼベタ割引 ベストゼベタ錠の価格(医薬品) または、オンラインでゼベータを購入できます 最も安いゼベタ5mg錠を一晩服用 格安ゼベタ送料無料処方箋 ユタゼベタを安く手に入れよう ゼベタオランダの注文 安いzebeta 送料無料 rx ベストゼベタを購入できるサイト 最安値のゼベタ5mg錠を翌日配送 高血圧処方箋なしでゼベタをオンラインで購入 高血圧治療薬ゼベタを処方箋なしでオンラインで購入 注文ビソプロロール ゼベタ コロラド または、zebetaをオンラインで購入できます 購入ゼベタ ミシシッピ 注文ゼベタ タラ 土曜日 ゼベタ ゼベタタブレット優先配送購入 購入zebetaオンラインCOD現金 購入ゼベタ 最安値 レキシントン 購入zebetaオンライン男性向け 購入zebetaオンラインCOD現金 zebetaオンラインストア ジェネリックゼベタACH錠 注文zebeta mastercard fast 注文ゼベタ タラ 土曜日 ゼベタ ゼベタの迅速配送購入 whereゼベタは買えますか? ゼベータをオンラインで購入 価格ゼベタバルクアルバカーキ 購入リンマスのゼベタ zebetaの注文方法 価格ゼベタバルクアルバカーキ オンラインでゼベタダイナースクラブを購入する zebetaの購入方法 投稿リンク: https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/RFIDDiscover-tool-acquired-but-how-to-use-it/mp/2164324#M205 投稿者: @RishavKaaraTech |作成者に電子メールを送信する 報告者: xdzgvh |メールによる報告 報告された投稿には3件の返信があります。
查看全文
IMX8mp gstreamer vpuenc_h264 プロファイルとレベルを設定 当社では、カスタムボード上にIMX8mpを搭載し、NXP Yocto Hardknottをベースプラットフォームとして使用しています。 ハードウェアH264エンコーダーであるvpuenc_h264プラグインを使用して、カメラストリームをH264/MP4に圧縮/エンコードしています。 基本的な例としては、次のようなものがあります。 gst-launch-1.0-v videotestsrc num-buffers=100 !video/x-raw、幅=720、高さ=576、フレームレート=25/1 !vpuenc_h264 !video/x-h264,profile=main !h264parse !mp4mux fragment-duration=10 !filesink location=/tmp/Video1.mp4 しかし、vpuenc_h264 は profile= および level= ストリームパラメータを無視するようです。imx-gst1.0-plugin を見てみるとコードには、H264プロファイルを設定する機能がないようです。 GStreamerのパラメータを使用してH264ハードウェアエンコーダのプロファイルを設定する機能はありますか? インターネットで、この設定をVPUのハードウェアレジスタにハードコーディングする必要があることを示唆する情報を見かけたのですが、実際はどうなのでしょうか? 代替案(コミュニティ?)があることに気付いた。gstreamer1.0-plugins-imxこのプラグインはプロファイルとレベルをサポートしているようです。これは、NXP fsl-nxp-bsp-hardknott Yoctoビルドのソフトウェアモジュール/カーネルでは使用できないということでしょうか? Re: IMX8mp gstreamer vpuenc_h264 set profile and level 裏付けとなるご意見をありがとうございます。 私も同様に、v4l2-ctl -d /dev/video1 --all がこれらのエンコーダーパラメータに関して誤解を招くような表示をしており、変更可能であるかのように誤って示唆し、「high」がデフォルトのプロファイルであるかのように見せかけているのを目にしました。 Re: IMX8mp gstreamer vpuenc_h264 set profile and level はい、ご指摘ありがとうございます。 NXPの公式ドキュメントは通常入手困難なため、インターネット検索やコードの確認を通して私が収集した情報を他のユーザー向けに以下にまとめました。 H264エンコーディングプロファイルは、vpu_wrapper内でBaselineにハードコーディングされています。例えばこれをMainlineに変更すると(vpu_wrapperを再構築する)、H264ストリームがMainlineとしてマークされます。実際の圧縮率が異なるかどうかは分かりません。 レベルは、ビデオの解像度に基づいてvpu_wrapperによって設定されます。このレベルをH264ストリームにタグ付けする以外に、何か影響があるかどうかは分かりません。どうやら、vpu_wrapperの古いバージョンには、このレベルを誤って設定するバグがあったようです。 ビットレートを指定しない場合、少なくともgstreamerのvpuenc_h264レベルでは、結果として得られるストリームのビットレートは非常に低くなり、したがって非常に低品質になります(少なくとも私たちのビデオストリーム(通常は静止画で、時折動きがある)の場合)。ビットレートを設定しない場合、H264エンコーダーは私が知らない何らかの可変ビットレートアルゴリズムを使用することになります。 NXPへのフィードバック: H264エンコーダーのプロファイル、レベル、ビットレートに関するドキュメントが必要であり、おそらく「i.MX Linuxリファレンスマニュアル」または他の場所に記載されているでしょう。 NXPのgstreamer vpuenc_h264コードは、gst-inspect-1.0でモジュールに関する情報を一覧表示する際に、この点について言及すべきです。なぜなら、多くのエンドユーザーがこのレベルで作業を行うからです。 Re: IMX8mp gstreamer vpuenc_h264 set profile and level こんにちは、 @TerryBarnaby1 さん。 お元気でお過ごしでしょうか。   関連情報については、下記のスレッドをご覧ください。 https://community.nxp.com/t5/ i-MX-プロセッサ/Encoding-H-264-amp-H-265-using-vpu-wrapper-h/mp/1347610   この情報がお役に立てば幸いです。   ありがとう、よろしく。 ドゥルヴィット・ヴァサヴァダ Re: IMX8mp gstreamer vpuenc_h264 set profile and level 同様に、デバイスはforce_key_frame ( V4L2_BUF_FLAG_KEYFRAME )が使用可能であると誤って宣伝しているようですが、実際には、私がそれを送信してもVPUによって完全に無視されているようです。
查看全文
带有 C++ S32DS 项目的 SDK <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 如何使用 S32 SDK 创建 C++ S32DS 项目? (我正在尝试使用 S32K144 EVB)。 谢谢! 尼科拉 S32K1系列的S32SDK Re: SDK with C++ S32DS project 对不起,对于新项目,我仍在使用曾经创建过的项目副本,所以我不记得具体步骤了,但我检查了原始 C (SDK) 链接器文件和 C++(非 SDK)链接器文件的差异,并将 C++ 链接器文件中的部分添加到 C 项目(现已转换为 C++ 项目)的旧文件中。我已经有了一些经验,所以这对我来说并不难。 或许也可以使用 C++ L.F.,只需从 SDK 项目中添加正确的内存部分即可。 也许彼得提供的链接会对你有所帮助。我认为您只需调整 S32K358 链接器文件中的内存大小/位置即可。 Re: SDK with C++ S32DS project 请参阅本帖: https://community.nxp.com/t5/S32K/S32K358-C-project-based-on-S32DS3-5/m-p/2058809#M46635 Re: SDK with C++ S32DS project 看来到了 2026 年,这个问题依然存在,我们依然需要这种解决方法。 下一步 - 创建不含 SDK 的 C++ 项目,并将其链接器文件复制到含 SDK 的项目中。 您能具体介绍一下您是如何一步步完成的吗?例如,您是否删除了带有 SDK 的项目(基于 C 的恩智浦 S32DS 项目)中的旧链接器文件,然后用 C++ 项目中的链接器文件替换了它们? Re: SDK with C++ S32DS project 请参阅本帖: 关于基于 S32DS3.5 的 S32K358 C++ 项目 - NXP Community Re: SDK with C++ S32DS project 大家好 你们能详细介绍一下诺瓦利斯给出的提示吗?我尝试用 SDK 创建 C 项目并将其转换为 C++,但没有成功。 谢谢! Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, ,我可能找到了方法,这样就不必在构造函数中使用 new() 了 只需在 main.c 中添加 __libc_init_array(); 调用即可。 void __libc_init_array(void); void main(void) { __libc_init_array(); main_app(); // 如上所述 } 现在 cObject 对象(构造参数); 似乎运行正常。 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,特拉维斯、 请参阅 Martin 的说明来构建与您的 C 代码兼容的 C++ 应用程序项目。它对我很有效,但有两个小缺点: (1) 您必须将生成的代码保存在另一个 C 应用程序项目中,然后复制粘贴到您的 C++ 项目中。 (2) 为 C++ 项目设置包含路径在开始时可能会很麻烦。也许有更简单的方法。 干杯, 梓潼 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,马丁、 感谢您的答复!我用 S32 SDK 在 C 语言中创建一个 C++ 项目的路径也差不多。 我关注这篇文章来封装 C++ 对象以便它们可以在 C 代码中使用:教程:如何将 C++ 库/类集成到 C 程序中-Teddy Engineering GmbH 我还读到,如果使用 freeRTOS,建议使用 ``pvPortMalloc()`` 和 ``pvPortFree()`` 来覆盖 ``new`` 和 ``delete```:无法正确创建新对象 - FreeRTOS 干杯, 梓潼 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我对此也非常好奇。在某些应用程序中,使用面向对象的基本原理更容易编写和维护更简洁、无错误的代码,而使用 C++ 则要容易得多。如果能更直接地提供这种支持,而不需要所有的步骤,生活就会轻松很多。 我更愿意使用恩智浦工具,但我觉得这限制了我。 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我的做法是,使用 SDK 创建普通 C 项目,然后将文件/新建/转换为 C/C++ 项目 然后你必须进入项目属性、C/C++ 版本/设置/标准 S32DS C 编译器/包含,然后复制必要的行并将其粘贴到 C++ 编译器/包含中 下一步 - 创建不含 SDK 的 C++ 项目,并将其链接器文件复制到含 SDK 的项目中。 然后,我创建了 main_app.cpp,将函数 main_app() 定义为 extern"c" ,并从 main.c 中的 main() 函数调用 main_app(),然后我就可以从 main_app()调用 C++ 类了。 现在我可以编译它,应用程序似乎也可以工作,我还可以使用处理器专家等...... 我发现的唯一问题是,像这样使用构造函数: cObject object(constructor params); 并不能像预期的那样 我必须使用 cObject *object = new cObject(constructor params); Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,吉日、 请允许我提出一个后续问题:如果我真的需要在 S32K 项目中使用一些 C++ 代码,您有什么建议?到目前为止,我想到了以下几种可行的方法: 1.使用 S32K DS 以外的其他编译器。 2。将 C++ 代码构建到与 C 兼容的静态库(包含封装器等)中,然后将其添加到 S32K DS 中的 C 项目中。 非常感谢、 梓潼 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,尼古拉 遗憾的是,S32DS 不支持在 S32K SDK 中使用 C++。 Jiri 
查看全文
S32G3 は RGMII を使用して、RGMII チャネルを持つ別の MCU と相互接続します。 こんにちは S32G399のRGMIIチャネルを使って、別のMCUのRGMIIと通信したいのですが、これは可能ですか?相互接続時にTXチャネルとRXチャネルをクロス接続する必要がありますか?       ゴールドVIP Re: S32G3使用RGMII与另一个具有RGMII通道的MCU互联通讯 こんにちは、 @MichaelTao こんにちは 1. 理論的には、これは実現可能です。 2. 相互接続する場合はクロス接続が必要です。 BR チェイン
查看全文
i.MX RT1061 串行非 Quadspi 或非 闪存启动 您好, 我有一个使用 i.MX RT1061 和W25Q128JVSIQ外置闪存的项目。我希望也能支持W25Q128JVSIM(视可用性而定)。不过,W25Q128JVSIM并没有将 QE 位(Quad Enable)锁定为启用状态。在尝试从它启动时,我看到我假设启动ROM在没有先启用Qe-bit的情况下尝试执行快速读取Quad I/O(参见发送的前两个命令的屏幕截图)。 它似乎首先读取了 FlexSPI 配置块(这在意料之中),但随后四重读取失败,什么也没发生(引导加载程序未启动)。 我怀疑我必须确保在生产过程中启用 Qe-bit 才能正常工作,但我很好奇 i.MX RT1061 是否支持从非 Quadspi NOR 闪存启动?似乎只支持 Quad 和 Octal 闪存(请参见 BOOT_CFG1 熔丝的屏幕截图)? 谢谢, Daniel i.MX RT106x Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot 你好,@Habib_MS、 感谢您的答复! 嗯......我的理解是,只有在调用flexspi_nor_get_config 时才会应用quad_mode_setting,我是不是理解错了? 是否有办法通过 FlexSPI 配置块将 BootROM 配置为以 QuadSPI 方式访问闪存? 谢谢, Daniel Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot 你好,@MulattoKid、 支持从非(串行)-QuadsPI NOR 闪存启动。有关支持哪些闪存设备的更多详细信息,请参阅 RM 中第 9.6 章 “启动设备”。我还知道您在图像中突出显示了 BOOT_CFG1[3:2] 位。这些字段由自动探测机制使用,如其定义所述。因此,这些位仅提供有关闪存设备的其他信息,而不是控制其配置。 关于 QSPI 或非 闪存的 QE 位配置:通常,选择正确的启动选项配置就足够了。 BR Habib Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot 你好 @dafela, 你可以使用我之前的消息中提到的配置,使用 FlexSPI 或非 API 来启用 QE 位。有关启用 QE 位的不同方法的更多详情,请参阅本帖第 19 项。 有关 FlexSPI ROM API 的更多信息,请参见 RM 第 9.13.2 节。 另一方面,如果您需要使用 J-Link 的指导,本篇文章提供了一个总体概述和几个有用的注意事项,或许对您有所帮助。 BR Habib Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot 我找到了为什么 bootROM 在读取 FCB 后立即发送四重READ命令:这是因为我们的引导加载程序在 FCB 中指定了自定义 LUT。更改读取 LUT 条目也会改变 SPI 流量。 如前所述,我之所以研究这个问题,是因为我希望能够同时支持 W25Q128JVSIQ 和 W25Q128JVSIM,而 W25Q128JVSIM 出厂默认设置中没有设置 QE 位。我想在我们自己的生产过程中设置 QE 位。我一直在研究的方法是使用 JLink 脚本直接控制 FLexSPI 外设。不过,我遇到了一些麻烦。 我有一个用于读出 W25Q128JVSIM 的状态寄存器-2 的命令序列,但它只有在 MCU 首次启动到我们的应用程序时才起作用(除非 QE 位已被设置,否则 MCU 无法启动)。如果闪存是空的,而 bootROM 没有任何东西可以启动,那么 jLink 脚本就不起作用,所以我想知道配置 FlexSPI 外围设备是否需要额外的设置? 以下是供参考的脚本: ExitOnError 1 Device MIMXRT1061xxx5B SelectInterface SWD Speed 4000 Connect halt // Enable clock w4 0x400FC078, 0xFFFFFFFF // Reset module w4 0x402A8000, 0x00000002 sleep 20 w4 0x402A8000, 0x00000000 sleep 20 // Clear errors w4 0x402A8014, 0xFFFFFFFF w4 0x402A80B4, 0xFFFFFFFF sleep 20 // 2) Update LUT to include Read Status Register 2 and Write Status Register 2 commands w4 0x402A8018, 0x5AF05AF0 // Write magic value (i.MX RT1060 reference manual rev3, p.1612) sleep 20 w4 0x402A801C, 0x2 // Unlock LUT (i.MX RT1060 reference manual rev3, p.1612) sleep 20 // LUT entry structure (i.MX RT1060 reference manual rev3, p.1709): // [31:26] = opcode1 // [25:24] = num_pads1 // [23:16] = operand1 // [15:10] = opcode0 // [ 9: 8] = num_pads0 // [ 7: 0] = operand0 // #include // // #define OPERAND_0(x) (x << 0) // #define NUMPADS_0(x) (x << 8) // #define OPCODE_0(x) (x << 10) // #define OPERAND_1(x) (x << 16) // #define NUMPADS_1(x) (x << 24) // #define OPCODE_1(x) (x << 26) // // #define kFLEXSPI_Command_STOP 0x0 // #define kFLEXSPI_Command_SDR 0x1 // #define kFLEXSPI_Command_RADDR_SDR 0x2 // #define kFLEXSPI_Command_WRITE_SDR 0x8 // #define kFLEXSPI_Command_READ_SDR 0x9 // #define kFLEXSPI_1PAD 0x0 // // #define FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1) (OPERAND_0(op0) | NUMPADS_0(pad0) | OPCODE_0(cmd0) | OPERAND_1(op1) | NUMPADS_1(pad1) | OPCODE_1(cmd1)) // // int main() // { // printf("WriteEnable: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x06, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0)); // printf("ReadStatusRegister2: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x35, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x04)); // printf("WriteStatusRegister2: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x31, kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_1PAD, 0x04)); // // return 0; // } // Each command sequence in the LUT is 4 entires with each entry being 4 bytes (one word) w4 0x402A82E0, 0x24040435 // LUT[14 * 4] = Read Status Register-2 command sequence sleep 20 w4 0x402A8018, 0x5AF05AF0 // Write magic value (i.MX RT1060 reference manual rev3, p.1612) sleep 20 w4 0x402A801C, 0x1 // Lock LUT (i.MX RT1060 reference manual rev3, p.1612) sleep 20 // Read Status Register-2 w4 0x402A8080, 0x80000000 // Clear sequence pointer for port A w4 0x402A8014, 0x1F // Clear pending status w4 0x402A80A0, 0x0 // Set base address w4 0x402A80B8, 0x1 // Reset RX FIFO w4 0x402A80A4, 0xE0001 // SEQID=14, SEQNUM=1, 1 byte w4 0x402A80B0, 0x00000001 // Trigger IP command sleep 50 Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot 谢谢,我会看看的
查看全文
TDA8035 运行模式下的 IDD (INTF) 电流消耗 大家好,团队, 当 TDA8035 处于运行模式时,VDD (INTF) = 3.3 V 时 VDD (INTF) 的近似功耗是多少? 顺祝商祺! 西尔万 Re: TDA8035 IDD(INTF) current consumption in active mode 你好@sylvainbouriot TDA8035 的大电流通路(板卡电源、VCC 限流、DC/DC)均位于 VDDP 中,与 VDD (INTF) 无关。 VDD (INTF) 主要负责数字控制逻辑、I/O 参考和时钟分频控制。其功耗非常低。 运行模式下的 IDD (INTF) 通常在 1 到 3 mA(典型值)的范围内。
查看全文
S32G274 デュアルコア起動後のCAN通信のデバッグ 現在、M コアと A コアの両方が同時に起動された場合の CAN 通信をデバッグしています。CAN ピンは PC_11 と PC_12 です。M7コアのAPPプロジェクトでFLEXCANを適用する必要があるため、AコアのLinuxのBSP35.0でllce_can0の設定を無効にしました(図を参照)。しかし、現象は、A コアが Uboot にあるときは M7 コアの flexcan は正常に通信しているのに、A コアが Linux に入ると M7 コアの flexcan が正常に動作しなくなるというものです。A コアの他にどこを変更する必要があるか教えてください。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up 上記の指示に従って変更を加えました。しかし、A コアが Linux システムに入った後も、M コアの CAN0 通信は依然として異常です。 s32g274ardb2 ログイン: root root@s32g274ardb2:~# ls /sys/firmware/devicetree/base/soc/siul2@4009c000/siul2-pinctrl@4009c240/llce_can0_pins ls: '/sys/firmware/devicetree/base/soc/siul2@4009c000/siul2-pinctrl@4009c240/llce_can0_pins' にアクセスできません: そのようなファイルまたはディレクトリはありません root@s32g274ardb2:~# ls /sys/firmware/devicetree/base/soc/llce@43a00000/llce_can0/ ls: '/sys/firmware/devicetree/base/soc/llce@43a00000/llce_can0/' にアクセスできません: そのようなファイルまたはディレクトリはありません Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 Linux で LLCE can0 ピンの使用を削除するには、次の変更を適用してください。 diff --git a/arch/arm64/boot/dts/freescale/s32g.dtsi b/arch/arm64/boot/dts/freescale/s32g.dtsi index de9caffb3ca1..ff02f046676b 100644 --- a/arch/arm64/boot/dts/freescale/s32g.dtsi +++ b/arch/arm64/boot/dts/freescale/s32g.dtsi @@ -379,18 +379,18 @@ llce_can_logger15: llce_can_logger15 { status = "okay"; }; - llce_can0: llce_can0 { - compatible = "nxp,s32g-llce-can"; - mboxes = <&llce_mb S32G_LLCE_CAN_CONF_MB 0>, - <&llce_mb S32G_LLCE_CAN_RX_MB 0>, - <&llce_mb S32G_LLCE_CAN_TX_MB 0>; - mbox-names = "config", "rx", "tx"; - clocks = <&clks S32G_SCMI_CLK_LLCE_CAN_PE>; - clock-names = "can_pe"; - pinctrl-names = "default"; - pinctrl-0 = <&llce_can0_pins>; - status = "disabled"; - }; +// llce_can0: llce_can0 { +// compatible = "nxp,s32g-llce-can"; +// mboxes = <&llce_mb S32G_LLCE_CAN_CONF_MB 0>, +// <&llce_mb S32G_LLCE_CAN_RX_MB 0>, +// <&llce_mb S32G_LLCE_CAN_TX_MB 0>; +// mbox-names = "config", "rx", "tx"; +// clocks = <&clks S32G_SCMI_CLK_LLCE_CAN_PE>; +// clock-names = "can_pe"; +// pinctrl-names = "default"; +// pinctrl-0 = <&llce_can0_pins>; +// status = "disabled"; +// }; llce_can1: llce_can1 { compatible = "nxp,s32g-llce-can"; @@ -615,23 +615,23 @@ usbotg: usb@44064000 { }; &pinctrl { - llce_can0_pins: llce_can0_pins { - llce_can0_grp0 { - pinmux = ; - input-enable; - slew-rate = ; - }; - - llce_can0_grp1 { - pinmux = ; - output-enable; - slew-rate = ; - }; - - llce_can0_grp2 { - pinmux = ; - }; - }; +// llce_can0_pins: llce_can0_pins { +// llce_can0_grp0 { +// pinmux = ; +// input-enable; +// slew-rate = ; +// }; +// +// llce_can0_grp1 { +// pinmux = ; +// output-enable; +// slew-rate = ; +// }; +// +// llce_can0_grp2 { +// pinmux = ; +// }; +// }; llce_can1_pins: llce_can1_pins { llce_can1_grp0 { diff --git a/arch/arm64/boot/dts/freescale/s32g274a-bluebox3.dts b/arch/arm64/boot/dts/freescale/s32g274a-bluebox3.dts index 0247b542f98b..fe93303e8ca9 100644 --- a/arch/arm64/boot/dts/freescale/s32g274a-bluebox3.dts +++ b/arch/arm64/boot/dts/freescale/s32g274a-bluebox3.dts @@ -91,9 +91,9 @@ &llce_boot_status { status = "okay"; }; -&llce_can0 { - status = "okay"; -}; +//&llce_can0 { +// status = "okay"; +//}; &llce_can1 { status = "okay"; diff --git a/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi b/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi index afe8a5cea3e1..ada20f67f2d7 100644 --- a/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi +++ b/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi @@ -168,9 +168,9 @@ &llce_boot_status { status = "okay"; }; -&llce_can0 { - status = "okay"; -}; +//&llce_can0 { +// status = "okay"; +//}; &llce_can1 { status = "okay"; その後、以下のように llce can0 ノードとピンを一覧表示すると、llce_can0 は表示されないはずです。 root@s32g274ardb2:~# ls /sys/firmware/devicetree/base/soc/siul2@4009c000/siul2-pinctrl@4009c240/llce_can0_pins ls: cannot access '/sys/firmware/devicetree/base/soc/siul2@4009c000/siul2-pinctrl@4009c240/llce_can0_pins': No such file or directory root@s32g274ardb2:~# ls /sys/firmware/devicetree/base/soc/llce@43a00000/llce_can0/ ls: cannot access '/sys/firmware/devicetree/base/soc/llce@43a00000/llce_can0/': No such file or directory 対照的に、これらのノードがある場合、上記のようにリストすると、デバイス ツリーのサブノードが表示されます。 変更後に M7 で CAN0 を使用できるかどうかをお知らせください。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 わかりました。設定をテストして、またご連絡します。 よろしくお願いします。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 あなたが言及したような動作は見たことがありません。PFE と CAN が相互に干渉しているのです。ただし、 pinctrl-s32g.c#L430で、問題を解決できるかもしれない変更をいくつか行いました。問題のあるピンのある行を削除しました。あなたの場合は次の 2 つの行になります。 S32CC_PINCTRL_PIN(S32G_MSCR_PC_11), S32CC_PINCTRL_PIN(S32G_MSCR_PC_12), 私は RDB2 の RGB LED に対応するピンでこのテストを実行しました。リストからそれぞれのピンを削除すると、ピンは「浮いた」状態のままになり、Linux の起動時に通常オフになる LED ではなく、わずかにオンになっている LED を確認できます。 そのテストを実行して、M7 コアで CAN0 ピンが正しく動作するかどうかを教えてください。 よろしくお願いします。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up A の BSP35.0 の can0 と llcecan0 の両方の初期化コードを削除した後、M コアが PFE をロードしていないときに、M コアの can0 は正常に通信できるようになりました。しかし、/fsl-auto-yocto-bsp35.0/build_s32g274ardb2/conf/local.confに「DISTRO_FEATURES_append += 'pfe'」と「NXP_FIRMWARE_LOCAL_DIR = '/home/hhkj/linux3/fsl-auto-yocto-bsp35.0/firmware_bin/'」を追加した場合、つまり、PFE が A コアにロードされた後、M コアがクラッシュしたようです。CAN0 と SGMII モードを使用する M コアでは PFEMAC0 と pfemca1 を適用し、PFEMAC2 の RGMII モードを使用する A コアでは PFEMAC2 を適用する必要があるため、M コアで CAN0 通信のみが実行されている場合、M コアに PFE のファームウェアをロードすると A コアの CAN0 通信に影響する理由を知りたいです。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up 内部的に調査したところ、LLCE および PFE の使用時に制限は見つかりませんでした。Linux の起動前と起動後に次のレジスタが変化するかどうか確認できますか? よろしくお願いします。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up pinctrl-s32g.cに必要な変更を加えました指示に従ってファイルしてください。しかし、問題は依然として残っています。PFE ファームウェア (添付画像を参照) をロードするたびに、A コアが Linux システムに入った後、M7 コアの CAN0 が異常になります。PFE ファームウェアをロードしないと、A コアが Linux システムに入った後、M7 コアの CAN0 は正常に機能します。問題はどこで探せばいいのでしょうか?または、PFE ファームウェアをロードした後にテストしていただけますか?       Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up 1.私が観察した現象は、A コアが PFE をロードして起動した後、M7 の flexcan0 が正常に通信できないことです。具体的な状況としては、現時点では、cantest 上位コンピュータを使用して CAN メッセージを flexcan0 に送信すると、メッセージは正常に送信できますが、M7 の flexcan0 はまったく応答せず、外部に何も送信しません。したがって、この時点でM7がクラッシュしたと推測します。したがって、あなたが言及した 2 つのレジスターは間違いなく正常です。 2. Linuxを起動した後、関連するレジスタの値を読み取る方法を知りたいです。それは何のコマンドですか? 3.PFE ファームウェアのロードを有効にした後、プログラム内のどのファイルと機能が特定のロード プロセスになりますか?HIL1 を HIL0 に変更する必要がある場合、どうすればいいでしょうか? Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 更新が遅くなって申し訳ありません。ここ数週間はオフィスを離れていました。まだ問題は解決していませんか?もしそうなら、最新情報を教えてください。 トピックを続けるために新しい投稿を作成されたことに気付きました。同僚が問題を解決した場合は、私にもお知らせください。 ありがとうございます。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 分かりました。これについて新しい投稿を作成していただけますか?非アクティブ時間のため、投稿のステータスを追跡するために使用しているツールがこの投稿を閉じました。このトピックの続きであることを説明する新しい投稿を作成し、必要に応じて私にタグを付けて引き続き協力してもらうこともできます。 ご不便をおかけして申し訳ございません。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up 今も変わりません。問題は解決されていません。
查看全文
Android 11で拡張されたOV5640カメラのプレビュー Android 11 (android-11.0.0_2.6.0) を実行している i.MX8MP を搭載した OV5640 カメラ (MIPI-CSI) を使用しています。カメラは正常に動作しますが、カメラ アプリケーションのプレビューが引き伸ばされます。カメラで撮影した写真は正しいアスペクト比を持ち、プレビューのみが引き伸ばされます。1280x720 ディスプレイを使用しています。 何が問題なのか、何かアイデアはありますか?カーネルドライバー?Libcamera? Re: OV5640 Camera Preview Stretched in Android 11 こんにちは、 これはプレビュー間のアスペクト比の不一致です。Android カメラのソースコードでカメラ パラメータを変更することをお勧めします。これについては、「Android ユーザー ガイド」のセクション 8.1 カメラ設定で確認できます。 よろしくお願いいたします。 Re: OV5640 Camera Preview Stretched in Android 11 どのカメラパラメータを変更すればよいですか?Android ユーザーズ ガイドのセクション 8.1 でカメラの設定について説明されていますが、プレビューの問題が発生しています。撮影された画像のアスペクト比は正しく、カメラの設定が正確であることを示しています。この問題はアプリケーション内のカメラ プレビューに限定されており、カメラ自体ではなく、ディスプレイのサイズやスケーリングに関連している可能性があることを示しています。何か提案はありますか? Re: OV5640 Camera Preview Stretched in Android 11 この問題は、HAL(ハードウェア抽象化レイヤー)またはcamera_config.xmlのアスペクト比の不一致が原因である可能性があります。要求されているプレビュー解像度がディスプレイの 16:9 比率と一致しない場合。カメラの HIDL 実装をチェックして、StreamConfigurationMap が切り取りや伸縮なしでセンサの出力と一致するプレビュー サイズを提供していることを確認します。 Re: OV5640 Camera Preview Stretched in Android 11 カメラの設定を確認しましたが、すべて問題ないようです。一つ気づいた点があります。カメラのプレビュー画面は、カメラの向きとディスプレイの向きが異なる場合にのみ引き伸ばされます。画面の向きを0に設定すると、プレビューは正常に表示されます。しかし、私たちのデザインではカメラを回転させる必要があるため、90度に設定しています。 Camera2アプリ内の問題のようですが、原因について何かアイデアはありますか?
查看全文
[不正使用] 記事作成者: @jeremyzhou / ナレッジベース: imxrt@tkb / 報告者: zucsvhzk zucsvhzk は、 @jeremyzhou が投稿した記事 「マイクロコントローラ使用の認識モデル」を 以下の理由で報告しました。 理由:その他 詳細: チザニジンにはジェネリック医薬品があります ラノキシンをどこで買えますか ラノキシンを購入したい チザニジンオンラインで購入する ラノキシンを土曜日に代金引換で購入 についてチザニジンを購入する 購入ラノキシンなし 次のラノキシンをどこで注文できるか 購入チザニジン2mg ジョージア 購入ラノキシン エスパニャ フェデックス処方箋なしのチザニジンストア 購入ラノキシン エスパニャ ベストチザニジン ザナフレックスの価格 ラノキシンオンライン代金引換 割引デラウェア州の薬局ラノキシン 購入ジェネリックチザニジンベスト チザニジンオンラインカナダ人 低いジョージア州のチザニジンの費用 ラノキシンオンライン代金引換 いいえ最も安いラノキシン処方箋 ベストチザニジン ザナフレックスの価格 購入チザニジンをオンラインで安く購入 ベストチザニジン ザナフレックスの価格 ラノキシン当日発送のご注文 価格チザニジンとアシクロビルの比較 pdaラノキシンを購入する 購入チザニジンを一晩服用 購入チザニジンをオンラインで安く購入 米国薬局でラノキシンをオンラインで購入 チザニジン錠剤オンラインタラ 購入チザニジン・デモイン ラノキシンをどこで買えますか 安いチザニジンの販売 チザニジンの注文方法 エクスプレス宅配便によるチザニジン配達 チザニジンにはジェネリック医薬品があります 処方箋チザニジンを安く購入 処方箋なしのFedexチザニジンストア ジェネリックのラノキシンは縫い付けられています 処方箋鎮痛剤ラノキシン 記事リンク: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/Recognition-model-for-microcontroller-use/ta-p/1103364 記事の著者: @jeremyzhou |メールアドレス 報告者: zucsvhzk |メールレポーター 報告された記事には 8 件のコメントがあります。
查看全文
[ABB] [SE050C] [纳米软件包] [Zephyr] 设置 PlatformsCP 你好 客户 ABB 正在通过 nRF5340 + Zephyr 使用 SE050C1,他正在集成我们的纳米软件包 MW。 在 SCP03 中进行通信需要它 我想,第一步是编译相应的纳米包库,我相信在这一阶段会涉及到一个独特的定义,即 CONFIG_PLUGANDTRUST_SCP03 ,我能问一下如何配置/定义它吗?是否需要将预处理器定义传递给 CMake? 此外,我还发现还有一个定义 PLUGANDTRUST_SE05X_AUTH 需要设置为 PlatformSCP03 ,这个定义与 CONFIG_PLUGANDTRUST_SCP03 有什么关系? 谢谢, Mehdi Re: [ABB] [SE050C][Nano-package][Zephyr] setting PlatformSCP 谢谢 Michael 正确的编译流程 会是什么样子吗? 第 1 步——一方面,使用 CMake 构建 mw 库(在 Cmake 选项中定义了 CONFIG_PLUGANDTRUST_SCP03) 第 2 步 — 在 .proj 中使用 config_plugandtrust_scp03=Y 编译 Zephyr 示例文件 我的理解是,只有 CONFIG_PLUGANDTRUST_SCP3 需要在 proj 文件中声明,而 CONFIG_PLUGANDTRUST_SCP03 是一个 Cmake 选项,对吗? 迈赫迪 Re: [ABB] [SE050C][Nano-package][Zephyr] setting PlatformSCP 你好,迈赫迪 的定义: CONFIG_PLUGANDTRUST_SCP03 : 在编译版本中启用 SCP03 代码/库(包括 SCP03 源文件、加密依赖关系) PLUGANDTRUST_SE05X_AUTH=PlatformSCP03 :告诉运行时代码在与 SE050 通信时实际使用 SCP03 身份验证 两者都必须设置,SCP03 才能正常工作。 对于 zephyr 编译,可在 zephyr prj.conf 文件中设置定义,默认情况下全部关闭: config_plugandtrust_scp03=n config_plugandtrust_eckey=n config_plugandtrust_eckey_scp03=n config_plugandtrust_sm_apdu_mutex=n   这样就无需更改 cmake 配置。   KInd regards, Michael Re: [ABB] [SE050C][Nano-package][Zephyr] setting PlatformSCP 你好,迈赫迪 使用平台 scp 需要做的唯一一件事是 在 prj.conf 文件中设置CONFIG_PLUGANDTRUST_SCP03=y 我用 zephyr 测试了纳米软件包: 1. 在示例文件夹内的 prj.conf 文件(示例:.\workspace\modules\crypto\nxp-plugandtrust\examples\se05x_GetInfo\zephyr\prj.conf)中,只需设置以下内容:CONFIG_PLUGANDTRUST_SCP03=y 2. 版本示例:> west 版本-b frdm_k64f 模块/crypto/nxp-plugandTrust/examples/se05x_getinfo/Zephyr--pristine 3. flash 二进制文件:C:\nxp\workspace\build\zephyr\zephyr.bin 到 k64 而且很有效。 此致敬礼, Parth
查看全文
从中断处理程序进行 I/O 操作 本问题的相关参数如下: 1。IDE:适用于 ARM v 2.2 的 S32 DS(是的,我知道这个已经过时了,但是有问题的产品也是;我们需要支持现有代码) 2.芯片:S32K148 3.操作系统视窗 11 4.系统操作系统:裸机 在 ISR 中尝试执行任何类型的 SPI 主传输都会挂起,通常被中断的 API 是阻塞 I/O(I2C 或 SPI)调用。 在阻塞调用(调用 LPSPI_DRV_MasterTransferBlocking())中,通话挂起是因为 SysTick 中断似乎没有发生,因此 MCU 无法感知时间流逝。 在非阻塞调用(LPSPI_DRV_MasterTransfer(),然后是 LPSPI_DRV_MasterGetTransferStatus(SPI1,&byte_remaining))中,byte_remaining 保持原值。我尝试在调用 LPSPI_DRV_MasterAbortTransfer() 进行异步传输之前,添加对 LPSPI_DRV_MasterAbortTransfer(SPI1) 的调用,但结果还是一样。 关于一个半相关的问题,是什么触发了 SysTick_Handler()?我的直觉告诉我,它应该一直运行,每 1 毫秒增加一次刻度计数,但在其正文中设置一个断点似乎只能在某些时间触发。奇怪的是,即使阻塞性 SPI 传输成功,有时也不会触发,如果系统定时器之前未触发,则应触发系统定时器。 另一个半相关的问题是,在 SPI 的 S32 Cookbook 示例代码中,没有使用 SDK 提供的应用程序接口;这些示例直接完成了所有寄存器位操作。是否有更接近生产价值代码的示例,因为它们至少调用了恩智浦的应用程序接口,而不是重新发明轮子? Re: Doing I/O from an interrupt handler 你好@PetrS 非常感谢。中断优先级确实解决了这个问题。不过,我有一个问题: 我同意在 ISR 中阻塞不是一个好主意,但在单线程应用程序中又有什么办法呢?我可以在应用程序上下文中旋转,直到 SPI 传输完成。这将允许其他 I/O 中断发生(我的理解是,负优先级中断无论如何都会触发;当进入正优先级 ISR 时,它们不会被禁用)。但是在我的情况下,进行重叠的 I/O 既不可能,也不可取。 1.这是不可能的,因为 S32K148 是所有总线的总线主控器。因此,如果它在 ISR 中进行 SPI 传输,则可能无法驱动另一条 I/O 总线,因此无法触发中断。 2.这并不可取,因为 ISR 之间可能存在共享全局,所以我不想在当前 I/O 完成之前启动新的 I/O。 对于单线程裸机应用程序,您建议如何处理这种情况? Re: Doing I/O from an interrupt handler 您好, 好吧,那么只需中断优先级就能导致这种行为。阻塞 API 会挂起的原因很简单,如果两个中断具有相同的优先级,那么当 GPIO ISR 处于活动状态时,LPSPI ISR 就无法运行。阻塞调用等待 ISR 完成传输并发布信号,但在 GPIO ISR 退出之前,ISR 永远不会获得 CPU 时间。SDK 的驱动程序确实在 LPSPI 中断中完成传输,然后才发布信号量以释放屏蔽调用,因此同等优先级 ISR 将以这种方式使传输陷入僵局。 非阻塞 API 的行为相同:如果从具有相同优先级的 GPIO ISR 调用,LPSPI ISR 无法抢占它的优先级,因此 byte_remaining 永远不会改变,因为驱动程序状态机永远不会被 LPSPI IRQ 服务。只有将 LPSPI 提高到更高优先级(数值较低)后,LPSPI 中断才会立即触发,完成传输,并允许阻塞和非阻塞 API 按预期工作。尝试 /* 在 Cortex-M 上,数字越小优先级越高 */ INT_SYS_SetPriority(SysTick_IRQn, 0); // 如果依赖于 tick 超时 INT_SYS_SetPriority(LPSPI1_IRQn, 1); // 必须高于 GPIO INT_SYS_SetPriority(PORTC_IRQn, 2); // 您按钮的 PORTx IRQ   注意:无论优先级如何修正,建议还是不要在 ISR 中使用阻塞的 SPI API,同样也不要在 ISR 中等待非阻塞传输完成。S32K LPSPI 驱动程序在其中断处理程序中进行传输,长时间的 ISR 会阻止其他中断运行。   BR, Petr Re: Doing I/O from an interrupt handler 您好, S32K1 SDK 无法阻止 ISR 的 I/O。LPSPI_DRV_MasterTransferBlocking() 等待 OSIF semaphore;在 ISR 上下文中,没有地方可以阻塞,也没有 tick/time base 可以前进,因此会挂起。使用非阻塞 API(LPSPI_DRV_MasterTransfer),在 LPSPI ISR/回调中完成传输,然后向任务/主循环发出信号。此外,SysTick 会在定时器结束时触发,但其处理程序只有在未被屏蔽且具有足够的 NVIC 优先级时才会运行--因此,如果设置了 PRIMASK 或处于更高优先级的 ISR 中,它将被推迟。 烹饪手册项目特意采用轻量级设计,直接展示外围设备的使用,而不使用更高级别的驱动程序抽象;这些项目旨在作为学习的起点,而非生产使用。如果您需要恩智浦驱动程序风格的示例,请参考 SDK 或 RTD 驱动程序/示例项目,而不是烹饪手册。   BR, Petr Re: Doing I/O from an interrupt handler 您好, 即使它现在 "工作 "了,你仍然不应该在 ISR 内进行 SPI 传输。 如果你以后改变了优先级,或添加了另一个外设,你可以很容易地重新创建刚刚诊断出的死锁状态。 最安全的设计是始终缩短 ISR,将真正的工作推迟到主循环。 仅将 ISR 用作触发信号;在 main () 中同步执行 SPI 传输,或者在 ISR 中启动但由 LPSPI ISR 完成的非阻塞传输,主等待完成标志。 BR, Petr
查看全文
iMX93 FRDM 上的 DMS 嗨,团队、 是否有人在 i.MX93 FRDM 平台上实施或评估过驾驶员监控系统 (DMS) 演示? 我正在寻找与以下功能相关的详细信息或引用: 人脸侦测 人脸地标检测 虹膜/眼睛地标检测 驾驶员行为检测,如吸烟和使用手机 如果有任何演示、参考设计、SDK 示例或合作伙伴解决方案,请分享详细信息或相关文档。 提前感谢您的支持。 致以最诚挚的问候, Ajnas FRDM 培训 Re: DMS on iMX93 FRDM 你好@ajnas-c、 感谢您联系恩智浦支持中心! 您可以通过下面的链接查看该演示的详细信息和源代码: https://github.com/nxp-imx-support/nxp-demo-experience-demos-list/tree/lf-6.12.3_1.0.0/scripts/machine_learning/dms 此致 查维拉
查看全文
i.MX RT1060 API の LPSPI_MasterTransferEDMA は 24 ビットのフレーム サイズをサポートしていませんか? LPSPI を使用して DMA 経由で 24 ビット フレームを書き込もうとしています。アプリケーションは重要ではありませんが、私の例では、メモリから外部 DAC にデータを送信することです。私はこれを DMA で動作させたいと思っています。なぜなら、最終的には TCD のリンク リストを PIT と一緒に使用して、CPU オーバーヘッドなしで DAC を継続的に更新するためです。これは外部 ADC および DAC を使用する一般的なアプリケーションです。16 ビット DAC/ADC には 24 ビットのフレーム要件があることも一般的です (上位バイトはコマンド用、下位バイトはデータ用)。uint8_t データを使用して転送を 3 バイトに分割するのではなく、uint32_t データを使用して 24 ビットのフレーム サイズで送信し、先頭バイトを無視します。 さて、LPSPI と DMA の構成に移ります。 1.imxRT1060 SDK の API LPSPI_MasterInit 関数の lpspi_master_config_t 構造を使用すると、 bitsPerFrame を 24 に設定できます。DMA を使用せずに標準転送を行う場合、これは問題ではありません。 2. ただし、API の LPSPI_MasterTransferEDMA 関数で DMA を使用する場合、24 ビット フレーム サイズのケースは eDMA ハードウェアによって処理またはサポートされませんか?LPSPI_MasterTransferEDMALite では、DMA 転送幅は edma_transfer_config_t 構造体で設定されます。具体的には、srcTransferSize フィールドと destTransferSize フィールドは、SPI フレーム サイズ (bytesPerFrame) から導出される bytesEachRead 値と bytesLastWrite 値に基づいて構成されます。 /* LPSPI_MasterTransferPrepareEDMALite */ uint32_t bytesPerFrame = ((base->TCR & LPSPI_TCR_FRAMESZ_MASK) >> LPSPI_TCR_FRAMESZ_SHIFT) / 8U + 1U; if (bytesPerFrame <= 4U) { handle->bytesEachWrite = (uint8_t)bytesPerFrame; // for 24bit frames = 3 handle->bytesEachRead = (uint8_t)bytesPerFrame; // .... handle->bytesLastRead = (uint8_t)bytesPerFrame; // .... } /* now back in LPSPI_MasterTransferEDMALite */ switch (handle->bytesEachRead) //bytes each transfer { case (1U): transferConfigRx.srcTransferSize = kEDMA_TransferSize1Bytes; transferConfigRx.minorLoopBytes = 1; if (handle->isByteSwap) { addrOffset = 3; } break; case (2U): transferConfigRx.srcTransferSize = kEDMA_TransferSize2Bytes; transferConfigRx.minorLoopBytes = 2; if (handle->isByteSwap) { addrOffset = 2; } break; case (4U): transferConfigRx.srcTransferSize = kEDMA_TransferSize4Bytes; transferConfigRx.minorLoopBytes = 4; break; default: transferConfigRx.srcTransferSize = kEDMA_TransferSize1Bytes; transferConfigRx.minorLoopBytes = 1; assert(false); break; } デフォルトのケースが発生し、3 バイトのケースは処理されないためエラーが発生します。EDMAハードウェアは3バイト転送をサポートしていますか?基本的に、uint32_tのデータとフレームを3バイトとして扱い、最上位バイトを無視してDMA転送を行いたいのですが、可能ですか? Re: i.MX RT1060 API's LPSPI_MasterTransferEDMA does not support 24bit framesize? こんにちは@azoneさん、 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 次のリンクを確認してください。eDMA は 1、2、4、8、16、32、64 バイトの転送サイズをサポートしており、24 ビット (3 バイト) の転送サイズはサポートしていないことが説明されています。 MCUXpresso SDK APIリファレンスマニュアル: EDMA: 拡張ダイレクトメモリアクセス (eDMA) コントローラドライバ よろしくお願いいたします。 メイリュー Re: i.MX RT1060 API's LPSPI_MasterTransferEDMA does not support 24bit framesize? わかりました。確認してくれてありがとう。これで、動作させるために時間を無駄にすることがなくなりました。したがって、唯一の方法は、すべてをuint8_tデータとしてkLPSPI_MasterPcsContinuousで3バイトとして送信することです。これは他のすべてのペリフェラルでも同じ方法で実行しているので問題ありませんが、16ビットDAC実装の場合は不要なオーバーヘッドが発生します。ありがとうございます。
查看全文
S32 Design Studio for Power Architecture v2.1 - 更新 7 现已发布! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />       产品发布公告 汽车微控制器和处理器 面向 Power Architecture 的 S32 设计工作室 v2.1 更新 7          新增内容 集成 S32 SDK,适用于 Power Architecture RTM 3.0.2(参见S32 SDK发行说明) 这是一个累积更新 - 它包含之前更新的所有内容(更新 1 、更新 2 ) 安装说明 此更新可供在线安装 (通过 S32DS 扩展和更新)或 离线安装(直接下载链接)  安装: 进入菜单"帮助" -> "S32DS 扩展和更新" 对话框 从可用项目中选择并点击 "Install/Update" 按钮 离线安装: 前往 S32 Design Studio for Power 产品页面 -> 下载部分或使用直接链接下载更新存档 zip 文件 启动 S32 Design Studio,转到“帮助”->“S32DS 扩展和更新”,然后单击“转到首选项”链接 并添加一个新的站点“添加...”存储库并浏览以选择您在上一步中下载的更新存档 zip 文件 选择“S32 Design Studio for Power Architecture Device Package”和“使用 S32 SDK 3.0.2 更新”对于 Power Architecture 包,然后单击“安装/更新”按钮。 此时将启动更新安装过程。 概述 SDK
查看全文
PCF2131——第二脉冲信号触发错误 Hello, 我是 Ramón,开始使用 PCF2131 和 STM MCU 进行工作。在设备中设置新的时间+日期后,我遇到了脉冲秒信号的问题。 我遵循的方案如下: 1.我将设备设置为无中断,只有秒脉冲信号。控制寄存器设置如下: ** 控制 1:0b0000 0001,控制 2、3、4、5:0b0。-> 仅使用第二脉冲信号。 ** INTA/B Mask1/2: 0b0 -> 所有中断禁用 ** WD 控制:0x20 -> 脉冲秒信号,无 WD。 2. 然后我从 RTC 读取并检查完整性。然后设置我的MCU的时间。 3. 设备定期通过 SNTP 进行同步。问题就来了。 当收到新日期时,我们停止 RTC,清除预分频器,设置新时间(添加操作延迟)并重新启动 RTC。当这个时间接近于秒的变化(大概是920-950ms),并且设置增加延时的时间(这样就使得新的时间设置大约在50-80ms),秒脉冲信号被触发,使得MCU比实际时间提前一秒递增。我们不知道为什么会发生这种情况。尝试禁用、清除和重新启用中断,但情况仍然相同。知道为什么会发生这种情况吗? 我将我们测量的信号与我们发送的 I2C 数据附加在一起。第二个是在此特定帧中设置的日期时间的缩放,您可以看到第 100 秒设置为 4。
查看全文
MCUXpresso Config Tool for MCUXpresso IDE Clone an Example Project from MCUXpresso IDE The following steps will guide you through the manipulation of the general-purpose outputs. The example sets up a CTimer to generate a PWM signal and change between two LEDs. Find the Quickstart Panel in the lower left-hand corner and click on Import SDK example(s) Click on the FRDM-MCXN947 board to select that you want to import an example that can run on that board, and then click on Next Use the arrow button to expand the  driver_examples  category, then expand the ctimer examples, click on the check box next to  ctimer_match_interrupt_example  to select it. To use the UART for printing (instead of the default semihosting), Select UART as the SDK Debug Console checkbox under the project options. Then, click on Finish Click on the  “frdmmcxn947_ctimer_match_interrupt_example”  project in the Project Explorer View and build, compile, and run the demo as described in the previous section You should see the BLUE and RED LED changing back and forth Terminate the debug session Use MCUXpresso IDE Pins Tools to Modify Example Note: Previously, you had to clone an SDK project like in the previous step. Open the pins tool by selecting “ConfigTools” on the top right hand of the file explorer window and then select “ Open Pins” The pins tool should now display the pin configuration for the ctimer project In the Pins view deselect “Show dedicated pins” and “Show no routed pins” checkboxes to see only the routed pins. Routed pins have a check in a green box next to the pin name. The functions selected for each routed pin are highlighted in green In the current configuration, PIO3_2 and PIO3_3 are routed as the outputs of the CTimer. Let’s add a third Ctimer Match output and enable the Green LED Select “Show no routed pins” to see the other options. To enable the third Ctimer Match Output, browse the column for Ctimer and select and output. In this example, we will select, Ctimer4 Match 2 on PIO3_6. Select the item in the Ctimer column to enable Now, let’s route the Green LED. In the search box type “green” so that the routed pin for this LED is shown. Finally, click the box under the GPIO column. The box will highlight in green, and a check will appear next to the pin Next configure the GPIO pin as an output in the “Routing Details” window Now it’s time to implement these changes into the project by exporting the new updated pin_mux.c and pin_mux.h files that are generated by the Pins tool. Click on Update Project in the menu bar The screen that pops up will show the files that are changing and you can click on “diff” to see the difference between the current file and the new file generated by the Pins tool. Click on “OK” to overwrite the new files into your project Let’s add some additional code to the example. Open  simple_match_interrupt.c  file and add the following macros for the third ctimer output. Add the Green LED functions as well. Some additional code to be implemented will be the third ctimer’s callback, this can be copied from  ctimer_match1_callback  and modify the content to match2. To be able to visually identify the new ctimer, we will remove one of the previous ctimers as shown The main function will need to include the initialization of both the Green LED and the Ctimer Build and download the project as done in the previous section Run the application. You should now see the Green and Blue LED blinking back and forth Terminate the debug session
查看全文