Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
S32G_M7_STBYFULLBOOT_A53STR this doc and project explain how to integrate S32G M stby demo and Linux STR demo to one demo to achieve the fast boot, chinese version: 本文说明如何在S32G2 RDB2板上搭建 一个M7 MCAL Standby Fullboot GPIO resume Demo加A53 Suspend to RAM的Demo,主要的 应用场景是电动汽车的快速启动。 G3与更新版本BSP的支持情况与此类 似,不再另外说明,客户可以自行参考开发。 请注意本文为培训和辅助文档,本文不是 官方文档的替代,请一切以官方文档为准。 目录 1 参考资料说明与声明 .................................................. 2 2 STBY+STR的硬件注意点 .......................................... 3 3 修改M7 MCAL Standby Demo代码 ............................ 5 3.1 Clock相关修改 ........................................................ 5 3.2 MCU相关修改 ......................................................... 5 3.3 UART Clock相关修改 ............................................. 7 3.4 Port相关修改 .......................................................... 7 3.5 I2C相关修改 ........................................................... 7 3.6 实现M核进入STDY状态等待功能 ........................... 8 3.7 Main函数的修改 ..................................................... 8 4 修改Bootloader工程来支持同时Boot M/A核Demo ... 10 4.1 I2C Clock相关修改 ............................................... 10 4.2 Port相关修改 ........................................................ 11 4.3 其它修改 ............................................................... 12 5 修改A53 Linux代码 .................................................. 13 6 Demo 运行测试 ........................................................ 13 6.1 硬件连接 ............................................................... 13 6.2 镜像烧写 ............................................................... 13 6.3 Demo运行 ............................................................ 14 7 工程发布包............................................................... 15 8 未来开发建议 ........................................................... 17 8.1 M/A核同步机制 ..................................................... 17 8.2 功能安全与信息安全 ............................................. 17 9 遗留问题 .................................................................. 17 9.1 IPCF STR支持 ...................................................... 18 9.2 PFE Slave STR支持 ............................................. 18 注意以下说明与声明: 说明: 汽车网关有快速启动要求,而电动车因为驻车时有更大的电池提供待机电源,所以希望是使 用Linux 的suspend to ram 的功能来实现Linux 的快速启动,而在S32G 上则需要考虑将M 核的 Standby 功能 与A 核的STR 功能 结合起来,目前可用的资源包括:  从BSP32 起支持ATF,可以支持Linux 端的STR 功能,文档《S32G_Linux_STR_V1-*.pdf》 (John.Li)说明linux STR 的原理和与M7 Standby Demo 结合时所需要的修改。  NXP 的M7 内部standby demo,可以支持M 核端的standby 功能,支持full boot 和standby ram boot。文档《S32G_Standby_Demo_V4-*.pdf》(John.Li)有详细说明,本文使用MCAL full boot+GPIO resume Demo。  本Demo 与本文主要说明如何将这两个Demo 结合起来,形成一个整体的Demo。  由于需要Boot M 核加A 核,所以也需要Bootloader 工程的支持,文档 《S32G_Bootloader_V1-*.pdf》(John.Li)说明了如何创建一个MCAL sample 加Linux 的 Bootloader 工程。 声明: 请注意:  M7 standby demo 本来为NXP 内部Demo,不保证运行质量。而Linux 本身也是reference software。  Linux STR 本身会引入比较复杂的电源管理切换,也会引起系统级的不稳定性。  本文所说的方法也是实验性质,不保证运行质量。 所以客户应该谨慎决定其产品功能并自行保证其产品质量,本文及本Demo 仅为Demo 性质。 This article explains how to build a demo of M7 MCAL Standby Fullboot GPIO resume Demo plus A53 Suspend to RAM on the S32G2 RDB2 board. The main application scenario is the quick start of electric vehicles. The support situation of G3 and the newer version of BSP is similar to this, no further explanation is given, customers can refer to it for development by themselves.  Please note that this article is a training and auxiliary document. This article is not a substitute for the official document. Please refer to the official document. Contents 1    Reference materials and statement 2 2    STBY+STR hardware checkpoints. 3 3    Modified M7 MCAL Standby Demo codes. 5 3.1  Clock modification. 5 3.2  MCU related modification. 6 3.3  UART Clock related modificaiton. 7 3.4  Port related modification. 8 3.5  I2C related modification. 8 3.6  Enable the waiting function of M core entering STDY. 9 3.7  Main function modification. 9 4    Modify the Bootloader project to support simultaneous M/A core demo  11 4.1  I2C Clock related modification. 11 4.2  Port related modifcaiton. 11 4.3  Others modificaiton. 13 5    Modify A53 Linux codes. 14 6    Demo running and testing. 14 6.1  Hardware link. 14 6.2  Image burning. 14 6.3  Demo running. 15 7    Project release package. 16 8    Suggestion for the future development 17 8.1  M/A core sync mechanism.. 17 8.2  Function safety and Information security. 17 9    Remaining issues. 18 9.1  IPCF STR support 18 9.2  PFE Slave STR support 18 as need refer: S32G_Linux STR This doc explain S32G Linux STR details and modify to integrate with M stdy demo https://community.nxp.com/t5/NXP-Designs-Knowledge-Base/S32G-Linux-STR/ta-p/1652680 S32G Standby Demo the project build a new Mcal standby demo and explain its details https://community.nxp.com/t5/NXP-Designs-Knowledge-Base/S32G-M-kernel-Standby-demo-and-how-to-porting-to-Mcal/ta-p/1556313 S32G Boot customization doc how to run bootloader to run mcal&linux https://community.nxp.com/t5/NXP-Designs-Knowledge-Base/S32G-Bootloader-Customzition/ta-p/1519838 Automotive Re: S32G_M7_STBYFULLBOOT_A53STR Update my issue state: thumbnail_image001.jpg Modify as following, use EB to build can success but boot failed. No console output. - bootloader >> MCU >> MCU >> General >> Config Variant => VariantPreCompile - Bootloader >> SysDal >> SysDal >> General >> SysDalGeneral 的 Enable MCU from sysdal = unchecked Hi John, Did you meet the build error?  Thanks. Re: S32G_M7_STBYFULLBOOT_A53STR Hi John, We want to open ivt tool but met some troubles: open_ivt_fail.jpg Does it look like software version mismatch? Another trouble is build failed: build_bootloader_fail.jpg May I lose some steps? Thanks. Allen
查看全文
NXP Model-Based Design Toolbox for S32K3 version 1.8.0 - Product Release Announcement Product Release Announcement Analog & Automotive Embedded Systems NXP Model-Based Design Toolbox for S32K3 – version 1.8.0 mariuslucianand_0-1713952962606.png The Analog & Automotive Embedded Systems, Model-Based Design Tools Team at NXP Semiconductors, is pleased to announce the release of the Model-Based Design Toolbox for S32K3 version 1.8.0. This release supports automatic code generation for S32K3 peripherals and applications prototyping from MATLAB/Simulink for NXP S32K3 Automotive Microprocessors. This new product adds support for S32K310, S32K311, S32K312, S32K314, S32K322, S32K324, S32K328, S32K338, S32K341, S32K342, S32K344, S32K348, S32K356, S32K358, S32K364, S32K366, S32K374, S32K376, S32K388, S32K389, S32K394 and S32K396 MCUs, and part of their peripherals, based on RTD MCAL components (ADC, CAN, DIO, FEE, GPT, I2C, ICU, LIN, MEM, MCL, PWM, SPI, UART). In this release, we have also updated the RTD, S32 Configuration Tools, AMMCLib, FreeMASTER, and MATLAB support for the latest versions. The product comes with over 130 examples, covering all the features and functionalities of the toolbox, including new demos for motor control applications. Target audience: This product is part of the Automotive SW – Model-Based Design Toolbox. FlexNet Location: https://nxp.flexnetoperations.com/control/frse/download?element=7690521 Technical Support: NXP Model-Based Design Toolbox for S32K3 issues will be tracked through the NXP Model-Based Design Tools Community space. Release Content: Automatic C code generation from MATLAB® for NXP S32K3 derivatives: S32K310 S32K311 S32K312 S32K314 S32K322 S32K324 S32K328 S32K338 S32K341 S32K342 S32K344 S32K348 S32K356 S32K358 S32K364 S32K366 S32K374    S32K376    S32K388 S32K389 S32K394  S32K396 Support for the following peripheral components and functions: ADC CAN DIO eTPU FEE GPT I2C ICU LIN MCL (including DMA support) MEM Memory read/write PWM Profiler Registers read/write SPI UART New RTD version supported (7.0.0) New S32 Configuration Tools version supported (2025.R1.8)😎 Integration with EB tresos v32.0.0 Provides 2 modes of operation: Basic – using pre-configured configurations for peripherals; useful for quick hardware evaluation and testing Advanced – using S32 Configuration Tools or EB tresos to configure peripherals/pins/clocks Default Configuration Project Templates targeting all the supported S32K3 derivatives The toolbox delivers default configuration projects, available in both S32 Configuration Tools and EB tresos, covering an initial enablement of the on-board peripherals, pins, and clocks, for all the supported S32K3 derivatives. The desired template, which represents the starting point for enabling the hardware configuration of the application, can be selected via a dropdown widget. dragostoma_0-1759217105931.png Support for creating and using Custom Project Templates The toolbox provides support to use and create custom project templates. This could be very useful when having a custom board design – offering the possibility to create the configuration for it only once. After it is saved as a custom project template, it can be used for every model that is being developed. georgevictor_1-1738070269931.png   Such custom projects, addressing specific hardware designs are offered inside the current version of the toolbox to integrate the following EVBs: S32K312MINI-EVB MCTPTX1AK324 S32K344-WB S32K3-T-BOX S32K396-BGA-DC1 MR-CANHUBK344, alongside a set of examples specifically created to target this hardware design and a series of articles (available on NXP Community) demonstrating how to use the toolbox features and functionalities for creating applications for custom boards. georgevictor_0-1738070471554.png The toolbox has been tested and validated on the official NXP Evaluation Boards     S32K31XEVB-Q100     S32K312EVB-Q172     S32K312MINI-EVB     MCTPTX1AK324     XS32K3X2CVB-Q172     S32K3-T-BOX     MR-CANHUBK344       XS32K3X4EVB-Q257     XS32K3X4EVB-Q172           S32K3X4EVB-T172      S32K344-WB        XS32K3X8CVB-Q172     S32K388EVB-Q289      S32K389EVB-Q437            XS32K396-BGA-DC     XS32K396-BGA-DC1 Integrates the Automotive Math and Motor Control Library release 1.1.42 All functions in the Automotive Math and Motor Control Functions Library v1.1.42 are supported as blocks for simulation and embedded target code generation. ammclib.png FreeMASTER Integration We provide several Simulink example models and associated FreeMASTER projects to demonstrate how our toolbox interacts with the real-time data visualization tool and how it can be used for tuning embedded software applications. dragostoma_1-1759217209418.png S32 Design Studio integration We provide the feature of importing the code generated from a Simulink model inside the S32 Design Studio IDE. This functionality can be useful if the model needs to be integrated into an already existing project or for debug purposes. image.png Simulation modes We provide support for the following simulation modes (each of them being useful for validation and verification): Software-in-Loop (SIL) Processor-in-Loop (PIL) including AUTOSAR SW-C deployment External mode georgevictor_22-1718092902205.jpeg Motor Control Applications The toolbox provides examples for 1-shunt and 2-shunt PMSM and BLDC motor control applications, supporting both S32 Configuration Tools and EB  tresos. Each of the examples provides a detailed description of the hardware setup and an associated FreeMASTER project which can be used for control and data visualization. The toolbox also demonstrates the integration of the Motor Control Blockset in developing such applications. georgevictor_23-1718092902687.png For demonstrating the S32K3 eTPU Software integration, we have included a PMSM application where the FOC algorithm runs on the main CPU of the S32K396 MCU, while the analog sensing, software resolver, and PWM signals generation are offloaded to the eTPU co-processor. georgevictor_2-1738072020732.jpeg The motor control applications were developed and validated on the MCSPTE1AK344 and MCSPTR2AK396 Motor Control kits.   Support for MATLAB versions We added support for the following MATLAB versions: R2023b R2024a R2024b R2025a R2025b Examples for every peripheral/function supported More than 130 examples showcasing: I/O Control Timers and scheduling Communication (CAN, I2C, LIN, SPI, UART) Memory handling Motor Control applications (BLDC and PMSM) AMMCLib FreeMASTER SIL / PIL / External mode For more details, features, and how to use the new functionalities, please refer to the Release Notes and User Manual documents attached. MATLAB® Integration: The NXP Model-Based Design Toolbox extends the MATLAB® and Simulink® experience by allowing customers to evaluate and use NXP’s S32K3 MCUs and evaluation board solutions out-of-the-box. NXP Model-Based Design Toolbox for S32K3 version 1.8.0 is fully integrated with MATLAB® environment. image.png Target Audience: This release (1.8.0) is intended for technology demonstration, evaluation purposes, and prototyping S32K3 MCUs and Evaluation Boards. Useful Resources: Examples, Trainings, and Support: https://community.nxp.com/community/mbdt georgevictor_25-1718092990738.png
查看全文
AR1335 カメラセンサドライバ @kerryzhou このカメラ センサ AR1335 を NXP MCU で使用したことがあるかどうかお聞きしたいのですが。もしそうなら、ドライバのソースコードを共有してください。 よろしくお願いいたします。 ファリド Re: AR1335 camera sensor driver こんにちは、ファビオさん。 私はyoctoを使用しています。 最新の ar1335 センサ カーネル ドライバはここにあります: https://github.com/nxp-imx/isp-vvcam/tree/lf-5.15.y_2.0.0/vvcam/v4l2/sensor/ar1335 Yocto を使用する場合は、上記のisp-vvcamに加えてisp-imxも必要です。 このソース コードに興味がある場合は、Ubuntu ホストで bin ファイルをダウンロードして実行することで入手できます。 https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/isp-imx-4.2.2.20.0.bin バージョンをBSPで使用しているものに置き換えます(ここではv20を使用します) 別のセンサ用のドライバを展開する方法の例を次に示します。 https://www.nxp.com/docs/en/application-note/AN13712.pdf Re: AR1335 camera sensor driver こんにちは、ありがとうございます。私はこの分野の初心者なので、質問がおかしくなるかもしれません。Debian または Yocto を使用しましたか?標準ドライバへのリンクを教えていただけますか? Re: AR1335 camera sensor driver こんにちは、ファビオさん。 はい、標準ドライバを使用して実行できました。 これまではHD 1080pの解像度を使用していました。 数日中に4K以上も試してみる予定です。 Re: AR1335 camera sensor driver こんにちは、 カメラAR1335とMx8 plusの接続に成功したかどうかを知りたいです お願いします ファビオ Re: AR1335 camera sensor driver こんにちは、マイケル。 >>このセンサはNXP iMX8M Mini SoCを使用してすでに動作しています 私はこれにとても興味があります。ソースコードとデバイスツリーファイルを提供する事は可能でしょうか? 私はこれを非常によく似た iMX8M-plus でも動作させようとしています。 ありがとう、MC Re: AR1335 camera sensor driver こんにちは、 michael_partheiさん すでに弊社の社内専門家に確認していただき、新しい投稿で返信させていただきます。 新しい問題が発生した場合は、新しい投稿をフォローしてください。 よろしくお願いいたします。 kerry Re: AR1335 camera sensor driver ありがとう、ケリー!この問題について議論するために新しいトピックを開きました: https://community.nxp.com/t5/i-MX-RT/RT1170-Using-MIPI-CSI-with-grayscale-or-raw-image-sensors/mp/1270310#M14031 Re: AR1335 camera sensor driver こんにちは、 michael_partheiさん 内部 AE の説明によると、これは SDK の問題ではなく、チップ MIPI CSI がサポートできない問題です。 SO、リファレンス・マニュアルにはFUTUREに関連する説明が追加される予定です。 ただし、生データを使用する場合は、mipi-csi ではなくパラレル CSI インターフェースを使用する必要があります。 ご不便をおかけして申し訳ございません。 よろしくお願いいたします。 kerry Re: AR1335 camera sensor driver こんにちは、ケリーさん。 明確にするために:これは、RT1176(正確にはOV9281、データ形式はRAW8)では8ビットモノクログレースケールセンサの使用は不可能だという意味ですか?これはハードウェアの根本的な制限でしょうか、それともFUTURE修正される予定の SDKs の問題でしょうか? 同様の MIPI CSI ペリフェラルを使用していると思われる NXP iMX8M Mini SoC を使用して、このセンサをすでに実行していますが、RT1176 に移植する必要があります。 ベスト、マイケル Re: AR1335 camera sensor driver Jetson nano 用の AR1335 Linux ドライバ: https://www.arducam.com/docs/camera-for-jetson-nano/mipi-camera-modules-for-jetson-nano/driver-installation/ Re: AR1335 camera sensor driver こんにちは、 fmabroukさん 返信が遅くなって本当に申し訳ありません。 内部 AE 応答を取得すると、本当に悲しい話になりますが、MIPI-CSI2 は VIDEO_MUX のバグのために生データをサポートできず、この情報は RT1170 リファレンス・マニュアルに追加されます。 SO、外部 AR1335 がサポートされるように構成できるかどうかを確認してください。RGBですか? 現在、生のデータは 10 ビットですが、回避策はありません。 返信が遅くなってしまい申し訳ございません。ご尽力いただきまして誠にありがとうございます。 よろしくお願いいたします。 kerry Re: AR1335 camera sensor driver フォーラムの他のメンバーまたは NXP チームからの私の問題に対するフィードバック。本当に時間がないので、これを整理する必要があります。CAN助けてください。 Re: AR1335 camera sensor driver @kerryzhou お元気でお過ごしでしょうか?あなたに連絡して、私の問題に関して何か最新情報があるかどうかを確認したいだけです。 ここでも、出力ピクセル データごとに 10 ビットの生データをキャプチャできるように CSI ドライバを構成するための支援が必要です。データをキャプチャした後、独自のソフトウェアを使用してデータを RGB 888 形式に変換できます。 よろしくお願いいたします。 Re: AR1335 camera sensor driver こんにちは、ケリーさん。 もう 1 つお知らせしたいのは、カメラ センサの出力形式は RAW10 (10 ビット) ですが、現在の nXP CSI/カメラ ドライバではこの形式はサポートされていないということです。私が目にしたのは以下のものだけです: /*! @brief ピクセル形式の定義。 */ typedef enum _video_pixel_format { /* RGB */ kVIDEO_PixelFormatXRGB8888 = FSL_VIDEO_FOURCC('X', 'R', '2', '4'), /*!< 32ビットXRGB8888。 */ kVIDEO_PixelFormatRGBX8888 = FSL_VIDEO_FOURCC('R', 'X', '2', '4'), /*!< 32ビットRGBX8888。 */ kVIDEO_PixelFormatXBGR8888 = FSL_VIDEO_FOURCC('X', 'B', '2', '4'), /*!< 32ビットXBGR8888。 */ kVIDEO_PixelFormatBGRX8888 = FSL_VIDEO_FOURCC('B', 'X', '2', '4'), /*!< 32ビットBGRX8888。 */ kVIDEO_PixelFormatRGB888 = FSL_VIDEO_FOURCC('R', 'G', '2', '4'), /*!< 24ビットRGB888。 */ kVIDEO_PixelFormatBGR888 = FSL_VIDEO_FOURCC('B', 'G', '2', '4'), /*!< 24 ビット BGR888。 */ kVIDEO_PixelFormatRGB565 = FSL_VIDEO_FOURCC('R', 'G', '1', '6'), /*!< 16 ビット RGB565。 */ kVIDEO_PixelFormatBGR565 = FSL_VIDEO_FOURCC('B', 'G', '1', '6'), /*!< 16 ビット BGR565。 */ kVIDEO_PixelFormatXRGB1555 = FSL_VIDEO_FOURCC('X', 'R', '1', '5'), /*!< 16 ビット XRGB1555。 */ kVIDEO_PixelFormatRGBX5551 = FSL_VIDEO_FOURCC('R', 'X', '1', '5'), /*!< 16ビットRGBX5551。 */ kVIDEO_PixelFormatXBGR1555 = FSL_VIDEO_FOURCC('X', 'B', '1', '5'), /*!< 16 ビット XBGR1555。 */ kVIDEO_PixelFormatBGRX5551 = FSL_VIDEO_FOURCC('B', 'X', '1', '5'), /*!< 16ビットBGRX5551。 */ kVIDEO_PixelFormatXRGB4444 = FSL_VIDEO_FOURCC('X', 'R', '1', '2'), /*!< 16 ビット XRGB4444。 */ kVIDEO_PixelFormatRGBX4444 = FSL_VIDEO_FOURCC('R', 'X', '1', '2'), /*!< 16ビットRGBX4444。 */ kVIDEO_PixelFormatXBGR4444 = FSL_VIDEO_FOURCC('X', 'B', '1', '2'), /*!< 16ビットXBGR4444。 */ kVIDEO_PixelFormatBGRX4444 = FSL_VIDEO_FOURCC('B', 'X', '1', '2'), /*!< 16ビットBGRX4444。 */ /* YUV */ kVIDEO_PixelFormatYUYV = FSL_VIDEO_FOURCC('Y', 'U', 'Y', 'V'), /*!< YUV422, YUYV。 */ kVIDEO_PixelFormatYVYU = FSL_VIDEO_FOURCC('Y', 'V', 'Y', 'U'), /*!< YUV422, YVYU. */ kVIDEO_PixelFormatUYVY = FSL_VIDEO_FOURCC('U', 'Y', 'V', 'Y'), /*!< YUV422, UYVY。 */ kVIDEO_PixelFormatVYUY = FSL_VIDEO_FOURCC('V', 'Y', 'U', 'Y'), /*!< YUV422, VYUY. */ kVIDEO_PixelFormatXYUV = FSL_VIDEO_FOURCC('X', 'Y', 'U', 'V'), /*!< YUV444, XYUV. */ kVIDEO_PixelFormatXYVU = FSL_VIDEO_FOURCC('X', 'Y', 'V', 'U'), /*!< YUV444, XYVU. */ } ビデオピクセルフォーマットt; アプリケーションコードでRaw10をRGB888に変換できますか? 参考までにデータシートをいくつか添付しました。 Re: AR1335 camera sensor driver こんにちは、 fmabroukさん 情報をいただきありがとうございます。 しばらくお待ちください。コードの詳細を確認し、社内の CSI エキスパートに確認します。 有益な情報が入りましたら、できるだけ早くお知らせいたします。 もう少しお時間をください、SOありがとうございます! よろしくお願いいたします。 kerry Re: AR1335 camera sensor driver @kerryzhou @ジンパン カメラ センサがデータをストリーミングしていることをスコープで確認し、コードのデバッグ中に CSI 読み取りレジスタをキャプチャできました。添付のスクリーン ショットを参照してください。ただし、完全なフレーム バッファーの CSI 割り込みを取得できません。これも MIPI CSI を初期化した方法に関係しています。前回の電子メールで述べたイメージ要件に基づいて、これを適切に設定するのに、あなたまたは他の誰かが協力してくれませんか。 乾杯! Re: AR1335 camera sensor driver @kerryzhou 以下は私が興味を持っている画像パラメータの概要です。 [PLLパラメータ] ; ターゲットVtピクセル周波数: 220 MHz ; 入力クロック周波数: 24 MHz ; ; 実際のVtピクセルクロック: 220 MHz ; 実際のオペレーションピクセルクロック: 110 MHz ; ; pll_multiplier (M値) = 55 ; pre_pll_clk_div (N値) = 2 ; pll_multiplier2 (M2値) = 55 ; pre_pll_clk_div2 (N2値) = 2 ; Fpfd = 12 MHz ; Fvco = 660 MHz ; Fvco2 = 660 MHz ; Vt システム除算器 = 1 ; Vt Pix Divider = 3 ; オペレーションシステム除算器 = 1 ; Op Pix Divider = 6 ; ; [画像パラメータ] ; 要求フレーム数/秒: 30 ; 出力列数: 640 ; 出力行数: 480 ; Y合計を使用する: チェックなし ; Xのみのビニング: チェックなし ; スキップを許可する: チェックあり ; ブランキング計算: HB Max、次にVB ; ; 最大フレーム時間: 33.3333 ミリ秒 ; 最大フレームクロック: 7333333.3時計 ; 読み出しモード: 1、YSum: いいえ、XBin: いいえ ; 水平クロック: 640 アクティブ + 1688 ブランク = 合計 2328 ; 垂直行: 480 アクティブ + 2674 空白 = 合計 3154 ; 出力列数: 640 ; 出力行数: 480 ; 視野角: 640 ; 視野行数: 480 ; 実際のフレームクロック: 7342512 クロック ; 行時間: 10.582 マイクロ秒 / 2328 クロック ; 積分時間: 33 ミリ秒。 ; フレーム時間: 33.375055 ミリ秒 ; 最大フレームレート: 191.739fps ; フレームレート: 29.962 fps Re: AR1335 camera sensor driver @kerryzhou 私はimx RT1170でmipi CSI2デモ コードを使用して、AR1335から480x640の画像を取得しています。 このカメラセンサの出力形式は 10 ビットであることがわかりました。必要なイメージをキャプチャできるようにするには、CSI ドライバでどのような変更を行う必要がありますか。 メーカーのツールを使用して構成ファイルを生成しましたが、CSI ドライバが誤って構成されているため、イメージを取得できません。 AR1335 からイメージをキャプチャするためにデモ コード CSI ドライバで何を変更する必要があるかアドバイスをお願いします。 敬具 Re: AR1335 camera sensor driver こんにちは、 fmabroukさん 今のところ、別のカメラセンサをインポートすることに関する直接的なドキュメントはまだありません。 私の知る限り、カメラ センサには、構成を行ってコードを生成できる構成ツールも必要です。AR1335には、すでにNXPについての関連ドライバがありますか? 内部的にも確認しましたが、今まで AR1335 RT 関連のドライバは見つかりませんでした。 よろしくお願いいたします。 kerry Re: AR1335 camera sensor driver @kerryzhou 私は、imX RT1170 開発ボードで OV5640 の代わりにこのカメラセンサ AR1335 を使用しています。AR1335 は 10 ビットの画像のみを送信します。OV5640 ピクセル データ バスは 16 ビットだと思います。 このセンサで画像を取得できるように、NXP SDK に付属の mipi csi デモ コードを変更するにはどうすればよいですか? このデモ コードに別のカメラ センサをインポートするプロセスをガイドするドキュメントがあればいいと思います。 よろしくお願いします!   Re: AR1335 camera sensor driver こんにちは、 fmabroukさん あなたが言及した時計については、RT1170 リファレンス・マニュアルから見つけることができます。 kerryzhou_0-1615519963656.png kerryzhou_1-1615519969817.png kerryzhou_2-1615520019886.png お役に立てれば幸いです! よろしくお願いいたします。 kerry Re: AR1335 camera sensor driver @kerryzhou @ジンパン 上記に投稿した質問の他に、ピクセル クロックを 80MHz に設定する必要があります。imx RT1170 の CSI2 mipi デモ コードでどのレジスタを変更する必要がありますか? ご回答をお待ちしています。 Re: AR1335 camera sensor driver @ジンパン @kerryzhou 私はまだ AR1335 カメラ ドライバを ImX RT1170 CCI2 mipi デモ コードに移植しようとしています。 CS2 mipi コードで次のクロックを見つけました: CLOCK_SetRootClock(kCLOCK_Root_Csi2、&csi2ClockConfig); CLOCK_SetRootClock(kCLOCK_Root_Csi2_Esc、&csi2EscClockConfig); CLOCK_SetRootClock(kCLOCK_Root_Csi2_Ui、&csi2UiClockConfig); これらの時計の用途を説明できる人はいますか? ご回答をお待ちしています。 Re: AR1335 camera sensor driver こんにちは、 fmabroukさん 今まで、 AR1335 に関する RT チップ ドライバは見つかりませんでした。内部的に検索しても見つかりませんでした。 インターネットで検索すれば、サードパーティ製の製品に AR1335 ドライバがあるかもしれません。 Nxp の公式側では見つけられませんでしたが、今までのところ、RT は主に MT9M114 または OV7725 カメラ モジュールを使用しています。 ご不便をおかけして申し訳ございませんが、ご理解のほどよろしくお願いいたします。 よろしくお願いいたします。 kerry
查看全文
基于 Layerscape 平台上 OpenCV 神经网络框架的 EIQ 软件应用程序 NXP 为 QorIQ Layerscape 应用处理器创建了 eIQ 机器学习软件,这是一套 ML 工具,允许在 QorIQ Layerscape 系列设备上开发和部署 ML 应用程序。 OpenCV 是一个开源计算机视觉库。它为神经网络推理(DNN模块)和标准机器学习算法(ML模块)提供了统一的解决方案。它包含许多计算机视觉功能,可以更轻松地在短时间内构建复杂的机器学习应用程序,而无需依赖其他库。 本文档介绍了基于 OpenCV DNN 框架开发的 YOLO 对象检测、图像分割、图像着色、图像分类、人体姿势估计和文本检测应用程序。
查看全文
HOWTO: Create a Blinking LED application project for S32G using S32 RTD No AUTOSAR This document shows the step-by-step process to create a simple blinking LED application for the S32G family using the S32 RTD non-AUTOSAR drivers. For this example used for the S32G-VNP-RDB2 EVB, connected via ethernet connection through S32 Debugger. Preparation Setup the software tools Install S32 Design Studio for S32 Platform Install the S32G development package and the S32 RTD AUTOSAR 4.4. Both of these are required for the S32 Configuration Tools. image.png Launch S32 Design Studio for S32 Platform Procedure New S32DS Project image.png OR image.png Provide a name for the project, for example 'Blinking_LED_RTD_No_AUTOSAR'. The name must be entered with no space characters. Expand Family S32G2, Select S32G274A_Rev2 Cortex-M7 image.png Click Next Now, uncheck the selection mark for other two cores.  DanielBarbu_0-1719397148690.png Click '…' button next to SDKs DanielBarbu_1-1719397221392.png Check box next to PlatformSDK_S32XX_2022_07_S32G274A_Rev2_M7_0. (or whichever latest SDK for the S32G is installed). Click OK image.png Click Finish. Wait for project generation wizard to complete, then expand the project within the Project Explorer view to show the contents. image.png To control the LED on the board, some configuration needs to be performed within the Pins Tool. There are several ways to do this. One simple way by double-click on the MEX file. image.png By default, the Pins tool is then presented. For the Blinking LED example, one pin must be configured as output. The S32G-VNP-RDB2 EVB has an RGB LED for which each color is connect to a separate pin on the S32G-VNP-RDB2 EVB. For the blue LED the desired pin is PA_06. From the Peripheral Signals tab left to the Pins tool perspective layout, locate Open the Siul2_0 from the peripheral signals tab. And from the drop down menu select “gpio,6 PA_06” option as per shown in the following image. We are using PA_06 for the GPIO usage, so we are routing the SIUL2_0 GPIO signal to this pin. (This pin is also available for other modules like -FR, FTM, SPI_1) . image.png The Direction required! menu will appear. Select Output then OK. image.png In Routing Details view, notice a new line has been added and highlighted in yellow. image.png Add ‘LED’ to the Label and Identifier columns for the PORTD 0 pin. image.png Code Preview image.png image.png Go to Peripherals tool and add Siul2_Dio to enable LED blinking, it adjacent to the Blue LED on S32G-VNP-RDB2 EVB. Click on the Peripherals Tool icon from the Eclipse Perspective navigation bar. image.png From the Components view, click on ‘Add a new configuration component…’ button from the Drivers category. This will bring up a list of all configuration components. image.png Locate and then select the ‘Siul2_Dio’ component from the list and click OK. Do not worry about the warning message. It is only indicating that the driver is not already part of the current project. The associated driver package will be added automatically. Note: It may be necessary to change the selection at the top from ‘Present in the tool-chain project’ to ‘All’. The DIO driver provides services for reading and writing to/from DIO Channels. image.png Also, select the Siul2_Port_1 tab and select the check mark against ‘Siul2 IP Port Development Error Detect’ option as below. image.png The Gpio_Dio driver requires no further configuration. Click Save to store all changes to the .MEX file. image.png Now the device configurations are complete and the RTD configuration code can be generated. Click ‘Update Code’ from the menu bar. image.png To control the output pin which was just configured, some application code will need to be written. Return to the ‘C/C++’ perspective. image.png If not already open, in the project window click the ‘>’ next to the ‘src’ folder to show the contents, then double click ‘main.c’ file to open it. This is where the application code will be added. image.png Before the pin can be controlled, it needs to be initialized using the configuration information that was generated from the S32 Configuration tools. Initialize all pins using the Port driver by adding the following line: Insert the following line into main, after the comment 'Write your code here': /* Initialize all pins using the Port driver */ Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0); image.png Now, add logic for the LED turn and off. To turn the pin on and off with some delays in-between to cause the LED to blink. Make the delays long enough to be perceptible. Add line to initialize variable uint8 i = 0; Change the code within the provided for loop, and add the following lines: //logic for blinking LED 10 times for (i=0; i<10; i++) {       Siul2_Dio_Ip_WritePin(LED_PORT, LED_PIN, 1U);       level = Siul2_Dio_Ip_ReadPin(LED_PORT, LED_PIN);       TestDelay(2000000);       Siul2_Dio_Ip_WritePin(LED_PORT, LED_PIN, 0U);       level = Siul2_Dio_Ip_ReadPin(LED_PORT, LED_PIN);       TestDelay(2000000); } return (0U); image.png And add this line above the main() function to initialize the variable volatile uint8 level; Before the 'main' function, add a delay function as follows: void TestDelay(uint32 delay); void TestDelay(uint32 delay) {    static volatile uint32 DelayTimer = 0;    while (DelayTimer    {        DelayTimer++;    }    DelayTimer=0; } image.png Update the includes lines at the top of the main.c file to include the headers for the drivers used in the application: Remove #include "Mcal.h" Add #include "Siul2_Port_Ip.h" #include "Siul2_Dio_Ip.h" image.png Build 'Blinking_LED_RTD_No_AUTOSAR'. Select the project name in 'C/C++ Projects' view and then press 'Build'. image.png After the build completes, check that there are no errors. image.png Open Debug Configurations and select 'Blinking_LED_RTD_No_AUTOSAR_Debug_RAM'. Make sure to select the configuration which matches the build type performed, otherwise it may report an error if the build output doesn’t exist. image.png Now, you need to Select the Interface (Ethernet or USB) by which the S32 Debug Probe is connected. image.png If connected via USB and this option is selected for interface, then the COM port will be detected automatically (in the rare event where 2 or more S32 Debug Probes are connected via USB to the host PC, then it may be necessary to select which COM port is correct for the probe which is connected to the EVB) image.png If connected via Ethernet, enter the IP address of the probe. See the S32 Debug Probe User Manual for ways to determine the IP address. image.png Click Debug To see the LED blink, click ‘Resume'. image.png This code as it will blink the LED times, you can make changes in for loop condition to blink it infinitely. Re: HOWTO: Create a Blinking LED application project for S32G using S32 RTD No AUTOSAR I'm attempting to use a S32G-VNP-RDB3 to evaluate the S32G3. I follow this HOWTO and what I see with a newly installed S32 DS matches fairly well until 13. First, I don't understand the "it adjacent to the Blue LED on S32G-VNP-RDB2 EVB." This section of the HOWTO seems to be working within the S32 DS so I don't understand the reference to a LED location of the evaluation board. Second, I don't see Siul2_Port_1 or Siul2_Dio shown from step 13b and beyond. I'm attempting to attach an image that shows what I see. Step13.JPG
查看全文
IMX8MP MIPI DSI to eDP bridge board support 1. HW Environment:     IMX8mp-evk board.     ITE6151 mipi dsi to eDP bridge board. 2. SW Environment:     IMX YOCTO 5.4.24-2.1.0 release. 3. Patch operation:     a. git clone https://source.codeaurora.org/external/imx/linux-imx.git     b. git checkout -b  imx_5.4.24_2.1.0 origin/imx_5.4.24_2.1.0     c. patch -p1 < ../ite6151_mipi2edp_linux_5.4.24_20200921.patch 4. Tested on imx8mp-evk board with DP monitor on 1080p mode: ite6151-1.jpg ite6151-2.jpg 5. Attached doc list:     IT6151 demo board user guide v1.0.pdf ------  ite6151 bridge board HW guide     it6151_qfn48_v20_20190905-01_end.pdf  ------  ite6151 bridge board SCH     imx8mp_ite6151_mipi2edp_linux_5.4.24_20200921.patch ------  Linux kernel driver patch     Image + imx8mp-evk-it6151.dtb  ------  test image and dtb i.MX 8M | i.MX 8M Mini | i.MX 8M Nano
查看全文
Compiling L5.4.3_1.0.0 BSP On Ubuntu 180.4 LTS We will cross compile L5.4.3_1.0.0 on ubuntu18.04 LTS platform in three steps. 1. Installing Ubuntu 18.04 to vmplayer14 & Configuring Ubuntu 18.04 LTS 2. Compiling L5.4.3_1.0.0 BSP According to Steps in i.MX_Yocto_Project_User's_Guide.pdf 3. Handling tensorflow-lite compilation errors. --BEGIN No.1 Installing Ubuntu 18.04 to vmplayer14 & Configuring Ubuntu 18.04 LTS 1. Install 18.04 on vmplayer After installation is done, root user should be set at first. # sudo passwd root Then follow these steps to configuration ubuntu 18.04 for environment of compiliation --Changing sources of ubuntu 18.04 mirror If you are Chinese users, you can do the step, which can improve your system performance. # sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # sudo geit /etc/apt/source.list Comment I.MX customers outside China do not need to modify Ubuntu source list, or can modify it to local mirror site of Ubuntu 18.04, which can improve the speed of software upgrade. Delet all sources and copy following lines here, Then save it and exit Update ubuntu source deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse Then running these 2 commands to update sources and packages # sudo apt-get update # sudo apt-get upgrade 2. Installing packages for compiliation Packages For Compiling BSP # sudo apt-get install flex bison gperf build-essential zlib1g-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev tofrodos python-markdown libxml2-utils xsltproc # sudo apt-get install uuid-dev:i386 liblzo2-dev:i386 gcc-multilib g++-multilib subversion openssh-server openssh-client uuid uuid-dev zlib1g-dev liblz-dev lzop  liblzo2-2 liblzo2-dev git-core curl # sudo apt-get install u-boot-tools mtd-utils android-tools-fsutils openjdk-8-jdk device-tree-compiler aptitude libcurl4-openssl-dev nss-updatedb # sudo apt-get install chrpath texinfo gawk cpio diffstat No.2 Compiling L5.4.3_1.0.0 BSP According to Steps in i.MX_Yocto_Project_User's_Guide.pdf          The detailed BSP compilation steps are given in i.MX_Yocto_Project_User's_Guide.pdf. Here are just some tips and simple steps. For Chinese customers, the system may not respond when the repo init or repo sync command is executed after obtaining the repo script. Detailed description is below: (1)Getting repo script # mkdir ~/bin (this step may not be needed if the bin folder already exists) # curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo # chmod a+x ~/bin/repo # export PATH=~/bin:$PATH (2)Getting Yocto source # mkdir imx-yocto-bsp # cd imx-yocto-bsp # repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.3-1.0.0.xml # repo sync          After running repo init or repo sync, you may encounter a situation where there is no progress for a long time, and repo sync stops there without any prompt. This may be caused by googlesource site being inaccessible.          At this time, you can modify the googlesource URL to the URL of Tsinghua University. # gedit ./repo          Changing REPO_URL = 'https://gerrit.googlesource.com/git-repo'          To be:                    REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'          Save and exit. Then run “repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.3-1.0.0.xml”. or repo sync No.3 Handling tensorflow-lite compilation errors       If you encounter a tensorflow-lite compilation error during the compilation process, the following processing methods may be helpful to you. Cause Analysis:          Compiling tensorflow-lite requires three steps: fetching packages, configuring environment, and compiling code.          During the configuring environment, the following 8 software packages need to be downloaded. If any of the 8 files are not successfully downloaded, an error will be reported and compilation will be terminated.          ①9f48e814419e.tar.gz          ②38ebac7b059e84692f53e5938f97a9943c120d98.zip          ③release-1.8.0.tar.gz          ④389ec3f906f018661a5308458d623d01f96d7b23.tar.gz          ⑤master.zip          ⑥816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz          ⑦1f5eae5d6a135ff6811724f6c57f911d1f46bb15.tar.gz          ⑧fft.tgz          If you encounter this problem, you can refer to the following methods to solve it. Open the file with editor: ~/imx-yocto-bsp/build-xwayland/tmp/work/aarch64-poky-linux/tensorflow-lite/1.13.2-r0/git/tensorflow/lite/tools/make/download_dependencies.sh URLs EIGEN_URL="https://bitbucket.org/eigen/eigen/get/9f48e814419e.tar.gz" GEMMLOWP_URL="https://github.com/google/gemmlowp/archive/38ebac7b059e84692f53e5938f97a9943c120d98.zip" GOOGLETEST_URL="https://github.com/google/googletest/archive/release-1.8.0.tar.gz" ABSL_URL="https://github.com/abseil/abseil-cpp/archive/389ec3f906f018661a5308458d623d01f96d7b23.tar.gz" NEON_2_SSE_URL="https://github.com/intel/ARM_NEON_2_x86_SSE/archive/master.zip" FARMHASH_URL="https://github.com/google/farmhash/archive/816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz" FLATBUFFERS_URL="https://github.com/google/flatbuffers/archive/1f5eae5d6a135ff6811724f6c57f911d1f46bb15.tar.gz" FFT2D_URL="http://www.kurims.kyoto-u.ac.jp/~ooura/fft.tgz" Save and exit. [comment]     Don’t run “bitbake tensorflow-lite -c cleanall before you modify it”, otherwise files will be deleted.  Then try to compile tensorflow-lite like below: # bitbake tensorflow-lite -c compile   At the same time, we can open this directory and check if the following directories are created. If these 8 directories are successfully created, it means that links we modified are no problem.          After tensorflow-lite is successfully built, we can continue to compile full images. # bitbake imx-image-full --END NXP TIC team Weidong Sun 2020/3/30 i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus
查看全文
FAQs - BMA7118/BMA7418 Battery Cell Controllers Introduction The BMA7118 and BMA7418 belong to NXP's latest family of 18-channel Li-ion battery cell controller ICs for advanced battery management systems. These devices are designed to provide accurate cell monitoring, low current consumption, integrated balancing, functional safety support, and scalable communication, making them suitable for demanding automotive and industrial battery applications. For customers interested in electrochemical impedance spectroscopy, the BMA7418 includes dedicated EIS support, while the BMA7118 provides a strong baseline solution with a convenient upgrade path within the same family. 1) What are BMA7118 and BMA7418? The BMA7118 and BMA7418 are NXP battery cell controller ICs designed for monitoring and balancing lithium-ion cells in battery management systems. They support 8 to 18 cells per device and are intended for applications such as EVs, HEVs, and industrial energy storage systems. 2) What is the main difference between BMA7118 and BMA7418? The main difference is EIS support. The BMA7418 includes integrated Discrete Fourier Transform functionality to support electrochemical impedance spectroscopy, while the BMA7118 targets high-accuracy battery monitoring without EIS. Both devices belong to the same product family and are positioned as pin- and software-compatible. 3) How many cells can one device monitor? One device can monitor from 8 up to 18 cells. This gives designers flexibility to optimize the battery architecture and reduce the number of monitoring ICs needed in larger battery packs. 4) What applications are these devices intended for? Typical target applications include automotive battery management systems for electric and hybrid vehicles, as well as industrial battery systems such as stationary energy storage and related electrification platforms. 5) What level of cell-voltage accuracy can I expect? The family is designed for very high measurement accuracy with ultra-low long-term drift. Typical accuracy for the family is ±0.8 mV, supporting precise battery monitoring and improved system performance. 6) Why is “dedicated ADC per voltage channel” important? Using a dedicated ADC for each voltage channel helps avoid the timing limitations of multiplexed measurement approaches. This supports highly synchronized cell measurements, which can improve SOC and SOH calculations and is especially important for EIS-capable systems. 7) What communication options are available? Depending on the variant, communication with the host MCU can be implemented through SPI or through an isolated daisy-chain transport protocol link (TPL). The daisy-chain approach supports scalable high-voltage battery systems with multiple monitoring nodes. 😎 How does the family support functional safety? The family is designed to support ASIL D-oriented battery management architectures. It includes redundant measurement paths, diagnostic functions, fault reporting, and safety-related monitoring features intended to support robust system-level functional safety designs. 9) Can the device measure temperatures and auxiliary signals? Yes. In addition to cell voltages, the devices support auxiliary analog inputs (AINx) that can be used for temperature sensing through external NTC networks and for other auxiliary measurements. These pins can also be configured as GPIOs. 10) What are the power-consumption advantages of this family? A key benefit is the integrated DC-DC converter, which helps reduce overall power consumption compared to solutions that rely on less efficient supply approaches. This can be beneficial for both active operation and low-power battery system scenarios. 11) What balancing capability is integrated? The family integrates passive balancing control with internal balancing FETs and supports balancing across up to 18 cells. It includes features such as timer-based balancing, voltage-based balancing, PWM-based balancing control, and protection-oriented timeout behavior. 12) Can balancing continue in low-power modes? Yes. Balancing support in low-power operating states is one of the useful capabilities of the family. This helps enable battery maintenance functions such as parked-vehicle balancing while still keeping power consumption low. 13) Does balancing influence measurement accuracy? Balancing can influence measured voltage values because current flow through external paths may create small voltage drops. To address this, the device supports balancing pause concepts so that measurements can be taken under more stable conditions when required. 14) Which operating modes are available? Multiple operation modes, including Deep Sleep, Sleep, Active, and Cyclic mode. These allow the system designer to balance measurement performance, wake-up behavior, and current consumption according to the use case. Deep Sleep is the lowest-current startup/storage state with almost no state retention. Sleep keeps key configuration and can allow balancing. Active enables full functionality. In Cyclic mode the device runs measurements in the configured intervals, and moves back to sleep or enters active mode afterward depending on the measurement results. 15) How are overvoltage and undervoltage conditions handled? The devices support configurable threshold checking for measured channels. When configured limits are exceeded, status information can be updated and event mechanisms can be used to notify the host controller or trigger an appropriate system response. 16) What development hardware and software are available? We offer evaluation boards for the BMA7x18 family (EVBMA7118DT, EVBMA7X18DT1), together with software tools (EvalGUI, BMS GEN2 SDK) and broader battery management ecosystem support. 17) Which orderable variants are available? The family includes SPI and TPL variants for both BMA7118 and BMA7418. This allows customers to choose the communication architecture that best matches their battery management system topology. 18) What is BMI7018, and how does it relate to BMA7118/BMA7418? The BMI7018 is an 18-channel Li-ion battery cell controller IC for industrial applications, especially energy storage systems (ESS) and uninterruptible power supplies (UPS). It is not the same product family as BMA7118/BMA7418, but it is highly relevant for customers looking for an NXP battery cell controller optimized for industrial use cases rather than automotive ASIL-D battery packs. It is s tailored to industrial mission profiles, and is characterized for industrial conditions rather than automotive AEC-Q100 Grade 1 positioning. 19) Does BMI7018 support EIS like BMA7418? No. BMI7018 is not positioned as an EIS-capable device. Customers specifically looking for electrochemical impedance spectroscopy support should use BMA7418 instead.
查看全文
【恩智浦微控制器简介】【电机控制】【基础知识(三)】永磁同步电机的工作原理及控制方法(日语博客) 目录   【恩智浦微控制器简介】【电机控制】【基础知识(三)】永磁同步电机的机理及控制方法 幕后英雄!克拉克变形和帕克变形是什么? 这一切都始于三相交流电的复杂波形。 第一步:克拉克变换——将三维图形简化为二维图形 第二步:公园改造——“旋转木马的魔力”——定格动态世界 为什么要经历如此繁琐的转换过程?这样做有什么巨大好处? 摘要:数学如何运用强大的力量随意操控复杂波形 【恩智浦微控制器简介】【电机控制】【基础知识(三)】永磁同步电机的机理及控制方法 幕后英雄!克拉克变形和帕克变形是什么? 你好! 当电动汽车平稳起步,高性能空调运行异常安静时,微型计算机以超高速执行复杂的计算,并巧妙地控制电机。 这一次,让我们通过下面的 GIF 动画来揭开“克拉克变换”和“帕克变换” (以两位在控制技术核心“矢量控制”领域工作的伟大专家的名字命名的变换)的奥秘吧! (function() { var wrapper = document.getElementById('lia-vid-6377224605112w540h540r855'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (查看我的视频) 这一切都始于三相交流电的复杂波形。 首先,我们来看最上面一行。这是三相交流电的世界,也是驱动电机所需的基本能量。 右图(三相正弦波) :三个波 A、B 和 C 在传播过程中,其幅值和方向都在不断变化。这三个波相互关联,但正因如此,很难凭直觉判断在任何给定时刻应该对电机施加多大的力。这就像试图指挥三个同时演奏不同乐曲的音乐家一样。 左图(旋转矢量) :然而,当这三个波的力叠加在一起时,会发生一些有趣的事情。会产生一个单一的力(旋转矢量),它平滑且持续地旋转,同时保持恒定的大小。从物理角度来看,这就是定子线圈产生的“旋转磁场”。正是这个旋转磁场吸引着转子磁铁,并成为驱动电机旋转的力的来源。 问题:如何使用微控制器轻松准确地控制这“三个不断变化的波”? 第一步:克拉克变换——将三维图形简化为二维图形 第一个魔法是“克拉克变换”,它将复杂的 3D 世界转化为更容易理解的 2D 世界。 计算公式如下: Clarke.jpg 在正常的运动控制中,假设幅值不变变换(K=2/3)和平衡三相(i_a+i_b+i_c=0),则使用以下简化公式。   texclip20251021155548.png​ 右侧的图表(两相正弦波 α-β) :看!三个波形已经合并成两个波形,α(α)和 β(β)。波形(交流电)仍然存在,但少了一个变量,使其更容易观察。 左侧图表(克拉克变换 α-β) :它展示了从两个轴(α,β)观察到的世界,这两个轴与从三个轴(A,B,C)观察到的旋转矢量垂直相交。这就像将从一定角度观察到的立体物体转换成从正上方观察到的平面视图。旋转矢量本身仍然以相同的方式旋转,没有任何变化。 [克拉克转换的关键点] 在不丢失任何信息的情况下,我们将处理起来有些困难的三相坐标系转换为数学中熟悉的笛卡尔坐标系(α-β 静止坐标系),从而简化了问题。 第二步:公园改造——“旋转木马的魔力”——定格动态世界 α 和 β 的值仍然像波浪一样变化,很难跟踪它们。这就是矢量控制的精髓——“帕克变换”发挥作用的地方! 计算公式如下: texclip20251021155429.png​​ 这是一个重大的思维转变:“让我们不再从静止的地面(α-β 坐标)观察旋转矢量,而是跳上一个与旋转矢量以相同速度旋转的旋转木马!”这个新的旋转坐标系被称为“ dq 旋转坐标系”。 右图(两相值 dq) :多么惊人的结果!之前变化如此剧烈的两个波现在已经变成了**几乎恒定的值(直流)**,分别称为 d 和 q! 左图(Park变换dq) :可以看到dq坐标与旋转矢量完美同步旋转。如果你站在旋转木马上的马旁边,你会看到马静止不动,对吧?原理完全相同。从旋转物体的角度来看,它看起来是静止的。 【关于公园改建的注意事项】 通过与旋转矢量以相同速度旋转的坐标系(dq 坐标)进行观察,可以将交流值视为直流值。 为什么要经历如此繁琐的转换过程?这样做有什么巨大好处? 通过这两步转变,我们获得了巨大的好处:控制的极大简化。 控制不断变化的交流电数值很困难,但直流电数值呢?如果高于目标值,就降低它;如果低于目标值,就提高它。通过这种即使是小学生也能理解的简单操作(PID控制),就可以实现对电机的完美控制。 d 和 q 的直流值各自具有重要的物理意义。 q轴值(正交轴):它直接控制电机的扭矩(旋转力)。当您踩下电动汽车的油门时,车辆会迅速加速,这是因为微电脑提高了q轴的目标值。它就像一个“动力旋钮”。 d轴值(直轴):控制电机的磁通量(磁体强度)。对于永磁电机,转子磁体的强度是恒定的,因此基本上将d轴电流控制在零是最有效的。它真可谓是一个“效率调节旋钮”。 换句话说,克拉克和帕克变换的神奇之处在于,它们将电机的“功率”和“效率”元素(通常混合在一起)分离成两个独立的直流旋钮(d 和 q) 。 摘要:数学如何运用强大的力量随意操控复杂波形 三相交流电的复杂波形会在电机内部产生旋转力(旋转矢量)。 克拉克变换通过将三维世界重新绘制成二维(α-β)来简化问题。 公园改造包括乘坐旋转木马(dq 坐标)并将交流值转换为直流值。 使用 PID 控制器可以轻松准确地控制直流转矩 (q) 和磁通量 (d) 值! 这一系列精妙的数学运算是“矢量控制”的基础,而矢量控制正是现代高性能电机的基石。正是这项神奇的技术,让我们得以尽享动力强劲、静音高效、节能环保的电机所带来的种种益处。 感谢您阅读到最后! 如果您想阅读下一章基础内容,请点击这里↓ 【基础知识 第4部分】练习!让我们用框图来了解矢量控制的工作原理! 点击这里查看具体的安装方法以及如何运行示例代码的说明。 【恩智浦微控制器简介】【电机控制】【实践篇1】永磁同步电机的机理及控制方法(日文博客) 这是一个汇总了有关恩智浦电机控制文章的网站: NXP电机控制 - 概要页面 - (日语博客) =========================​ 我们目前无法 回复 此帖子“ 评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问, 请 参考“ 如何就 技术问题 联系 NXP ( 日语 博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有业务往来 ,您可以直接联系负责人。 ) 本文将以浅显易懂的方式讲解如何使用NXP FRDM控制板“FRDM-MCXA156”进行电机控制。文章分为基础知识部分和实践部分,希望您能参考感兴趣的部分。 ・基础知识①~⑦,实践①~③ 这次,作为基础知识的第三部分,我们将使用 NXP 微控制器来解释永磁同步电机的工作原理和控制方法。 MCUXpresso MCUXpresso IDE MCUXpresso SDK MCX 电机控制 技术聚焦 日本博客
查看全文
Release Announcement - GUI Guider v1.1 The latest version of GUI Guider was recently released by NXP. If you are unfamiliar with GUI Guider it is a graphical development tool for creating UIs on supported NXP microcontrollers. The tool allows you to create a UI, test the UI along with various levels of events all within a simulation environment, and then deploy the UI application directly to the NXP development board or generate the code for use in MCUXpresso IDE. GUI Guider is designed specifically for use with LVGL, an open-source graphics library, that is available within the MCUXpresso SDK.   This release of GUI Guider features: New Development Tool capabilities Menu shortcut and keyboard control New states: FOCUSED, EDITED, DISABLED Frame rate customization Screen transition configuration Parent / children widgets Callback function setting for animation image VGLite enablement Header path auto-config New or improved Widgets BMP and SVG assets 3D animation for PNG HW Acceleration capabilities Initial support for VGLite on RT1170 and RT595 New Device Target Supported i.MX RT1170 i.MX RT595 New release of GUI Guider v1.1, the user-friendly graphical user interface development tool from NXP that enables the rapid development of high quality displays with the open-source LVGL graphics library.
查看全文
工信部(中国)加强了 FRDM-KW38 和 KW36 的认证 中国的认证要求(工信部 [2002]353 号)显然计划(2022 年 12 月底)进一步加强(工信部 2021 年 1 月 27 日发布: 《关于 2400MHz、5100MHz 和 5800MHz 频段无线电管理有关事项的通知》)。 需要对 KW38 和 KW36 进行修改寄存器,以便以可接受的裕度满足新的中国要求: PA_RAMP_SEL值必须设置为0x02h (2us),而不是 0x01h (1us 默认值) 修改 SW:nxp_xcvr_common_config.c 中的 XCVR_TX_DIG_PA_CTRL_PA_RAMP_SEL( 2 ) 所有详细信息均在附件中。 注意:此 SW 修改仅适用于中国国家。 BLE软件 千瓦 KW35 | 36
查看全文
示例 S32K144 FlexCAN TX/RX/Error ISR 测试 S32DS2.2 本演示应用程序的目的是向您展示如何使用配置为灵活数据速率的FlexCAN模块,通过S32 SDK API进行操作。 - 在第一部分,应用程序将设置板载时钟、引脚及其他系统功能,例如SBC(如果该板将此模块用作CAN收发器)。 - 然后,它将配置FlexCAN模块的功能,例如FD、比特率和消息缓冲区 - 应用程序将等待在配置的消息缓冲区中接收帧,或等待按下两个按钮中的一个以触发事件,该事件将触发向接收方发送帧。 - 按下板1的SW3按钮将触发CAN传输,导致板2上的红色LED灯闪烁。 - 按下板1的SW2按钮将触发CAN传输,导致板2上的绿色LED灯闪烁。 - 此演示应用程序需要两块板,一块配置为主板,另一块配置为从板(请参阅应用程序代码中的MASTER/SLAVE定义) ,或使用CAN工具连接单块板。 - 事件和错误回调已安装,callback_test变量指示事件进入: bit0 .. 接收完成 bit1 .. 发送完成 bit2 .. 错误中断标志设置 bit3 .. 总线关闭中断标志设置 - 要进入总线关闭状态,只需将CANH与GND短接,并使用SW1或SW2发送消息,FlexCAN进入总线关闭状态(错误事件),蓝色LED亮起。 此外,TX MB 也已中止。移除短路连接,然后正常发送消息,蓝色LED熄灭。 ------------------------------------------------------------------------------ * 测试硬件:S32K144EVB-Q100 * MCU:FS32K1441 0N57U * 编译器:S32DS.ARM.2.2 * SDK 版本:S32SDK_S32K1xx_RTM_3.0.3 * 调试器:Lauterbach、OpenSDA * 目标:internal_FLASH
查看全文
Regulatory Domain and Wi-Fi Tx Power Level Management in Linux (Country regulatory settings) Default init case By default, when no country regulatory setting is defined, we use WW (World Wide safe setting, meaning we only transmit on bands which are allowed worldwide, with the TX power compatible with all countries regulations)   Setting country 1/ When operating in AP mode: - we usually set country code (ex : country_code=JP) in hostapd.conf to define the country. - this country definition will be advertised to all connected STA if ieee80211d=1 is set in hostpad.conf - the country can also be set with "iw reg set" command   2/ When operating in STA mode - country code can be set with "iw reg set" command or in wpa_supplicant.conf (ex : country=jp) - once connected to the AP (with 80211d enabled), the STA will switch to the AP country setting (this behaviour can be disabled by adding country_ie_ignore=1 driver parameter)   Once country is set: - we will only transmit on channels allowed for that country - with country maximum TX power - we might use DFS feature on channels declared as DFS channels for that specific country   TX power settings   1/ By default, using Linux regulatory settings (/lib/firmware/regulatory.db, generated from db.txt) These settings define allowed channels, DFS flags and max TX power on a country basis See section "Regulatory db" further.   2/ Linux regulatory settings can be overwritten by: a. cntry_txpwr=0 and txpwrlimit_cfg=nxp/txpower.bin driver param (generated from txpower.conf (channel/MCS->txpower), see AN13009) Same setting for all countries (static). Using channels/flags from db.txt, and minimum TX power between db.txt and txpower.bin/rgpower.bin b. cntry_txpwr=1 (look for nxp/txpower_XX.bin files (generated from txpower.conf (channel/MCS->txpower), see AN13009) Need one txpower_XX.bin file for each country XX (dynamically loaded, for instance with iw reg set XX) Using channels/flags from db.txt, and minimum TX power between db.txt and txpower_XX.bin   cntry_txpwr txpwrlimit_cfg TX power limit Method 0 nxp/txpower.bin nxp/txpower.bin (static) V1 1 - nxp/txpower_XX.bin (dynamic) V1 cfg     We have default TX power tables, but customer can tune these TX power settings, based on their HW. Please refer to "AN13009 Wi-Fi Tx Power Management in Linux"       Regulatory db   Source https://wireless.wiki.kernel.org/en/developers/Regulatory/wireless-regdb   Wifi regulatory setting (allow channels, etc) are defined in db.txt, then converted to regulatory.db (store in /lib/firmware) We can get official db.txt from here, and build regulatory.db with below command   git clone git://git.kernel.org/pub/scm/linux/kernel/git/wens/wireless-regdb.git make   Kernel regulatory.db integrity is checked by the Linux kernel. Disabling REGDB signature check with the folllowing kernel config: CONFIG_EXPERT=y CONFIG_CFG80211_CERTIFICATION_ONUS=y # CONFIG_CFG80211_REQUIRE_SIGNED_REGDB is not set   Rebuilding kernel and flashing scp Image [email protected]:/run/media/mmcblk0p1/      iw reg command examples and other notes   root@imx8mqevk:~# iw reg get global country 00: DFS-UNSET         (2402 - 2472 @ 40), (N/A, 20), (N/A)         (2457 - 2482 @ 20), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN         (2474 - 2494 @ 20), (N/A, 20), (N/A), NO-OFDM, PASSIVE-SCAN         (5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN         (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN         (5490 - 5730 @ 160), (N/A, 20), (0 ms), DFS, PASSIVE-SCAN         (5735 - 5835 @ 80), (N/A, 20), (N/A), PASSIVE-SCAN         (57240 - 63720 @ 2160), (N/A, 0), (N/A) root@imx8mqevk:~# iw reg get global country FR: DFS-ETSI         (2400 - 2483 @ 40), (N/A, 20), (N/A)         (5150 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW         (5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW         (5470 - 5725 @ 160), (N/A, 26), (0 ms), DFS         (5725 - 5875 @ 80), (N/A, 13), (N/A)         (57000 - 66000 @ 2160), (N/A, 40), (N/A) By default (if no country is set), we are using the world domain. this is the most restrictive. Then you can set the country (using driver module parameter, wpa_supplicant.conf, etc) or get the country automatically provided by the access point (80211d). This will update the regulatory domain, meaning the allowed channels, etc. You can check the country settings with "iw reg get" command. The regulatory domain has priority, compared to the channel list you would set in the wpa_supplicant.conf. OS LINUX Product: WiFi 88MW32X Product: WiFi 88W8801 Product: WiFi 88W8897 Product: WiFi 88W8987 Product: WiFi 88W8997 Product: WiFi 88X9098 Product: WiFi IW416 Product: WiFi IW6XX Product: WiFi RW6XX Protocol: Wi-Fi
查看全文
LS1046ARDB - SD カード上の U‑Boot バイナリを更新する方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> このハウツートピックは、LSDK 18.09 およびそれ以前のリリースにのみ適用されます。LSDK 18.12 以降のリリースについては、TF‑A バイナリのデプロイ を Layerscape Software Development Kit  ドキュメント で参照してください。 SDカード上のU-Bootバイナリを更新するには、次の手順に従ってください。 前提条件 LSDK 18.06 または LSDK 18.09 の U‑Boot バイナリをビルドするには、Linux ホストマシンに Ubuntu 18.04 64‑bit をインストールしておく必要があります。   U‑Boot バイナリのコンパイル u-boot リポジトリをクローンします。 $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot.git $ cd u-boot $ git checkout -b   LSDK- . For example, $ git checkout -b LSDK-18.09 LSDK-18.09  $ export ARCH=arm64 $ export CROSS_COMPILE=aarch64-linux-gnu- $ make distclean $ make ls1046ardb_sdcard_defconfig 必要に応じて、U-Bootファイルに変更を加えてください。 $ make make コマンドで "*** Your GCC is older than 6.0 and is not supported" というエラーが表示された場合は、LSDK 18.06 または LSDK 18.09 の U‑Boot バイナリをビルドする際に Ubuntu 18.04 64‑bit を使用していることを確認してください。        コンパイル済みの U‑Boot イメージ u-boot-with-spl-pbl.bin は u-boot/ に生成されます。 SD ブートでは ls104x デバイスが ls1088/ls2088/lx2160 デバイスとは異なるブートローダ方式を採用しているため、u-boot-with-spl-pbl.bin を使用する必要があります。 U‑Boot バイナリの SD カード開始ブロック番号 イメージ SD カードの開始ブロック番号 U-Boot PBL バイナリ 0x00008 = 8 すべての LSDK ファームウェアイメージの SD カード開始ブロック番号の完全な一覧については、PPA – LSDK 18.09 およびそれ以前のリリースのブートフロー用フラッシュレイアウト を参照してください。 U‑Boot バイナリを SD カードに書き込む SD カードを Linux ホストに挿入します。 Linux ホストで次のコマンドを実行してください。 $ sudo dd if=u-boot-with-spl-pbl.bin of=/dev/sdX bs=512 seek=8 conv=fsync cat /proc/partitions コマンドを使用して、デバイスとそのサイズの一覧を表示します。 正しいデバイス名が選択されていることを確認してください。 Linux PC の SDHC ストレージドライブは /dev/sdX として検出されます。X は a、b、c などの文字です。必ず正しいデバイス名を選択してください。このデバイス上のデータは上書きされます。 Linux ホストマシンが追加の SDHC カードリーダーなしで SDHC カードの読み書きを直接サポートしている場合、そのデバイス名は通常 mmcblk0 になります。              LinuxホストマシンからSDカードを取り外してください。 SD カードを LS1046ARDB に挿入し、SD カードから Ubuntu を起動します。SD カードでボードを起動する方法は次のいずれかです。 スイッチの設定: SW3[1:8] = 01001110 および SW5 [1:8] = 00100000、または SD カードへのブート切り替え: => cpld reset sd ブートログには、次の内容が表示されます。 ボード: LS1046ARDB、SD から起動 U‑Boot が SD カード上で LSDK を検出できない場合、SD カードに保存された lsdk_linux_arm64_tiny.itb から TinyDistro を起動します。 QorIQ LS1デバイス
查看全文
示例 S32K144 FlexCAN Pretended Networking STOP 模式测试 S32DS.ARM.2.2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** 详细说明: 本示例展示了如何使用 FlexCAN 0 的虚拟网络模式, 使 FlexCAN 模块能从 STOP 模式唤醒 MCU。  已启用超时唤醒和匹配事件唤醒功能。  此外,引脚中断也可用于退出 STOP 模式。  具体来说,按下 SW3 按钮后,MCU 将进入 STOP 模式。  当发生以下任一情况时,MCU 将退出 STOP 模式:  - 8 秒内无 CAN 消息传入(CAN PN 超时事件)  - 收到标准 ID 为 0x554 或 0x555 的消息(CAN PN 匹配事件)  - 按下 SW2 按钮(PTC12 中断)  - 在运行模式下,蓝色 LED 会进行调光,且不同唤醒事件对应的调光速率不同  ------------------------------------------------------------------------------  测试硬件:S32K144 EVB-Q100  MCU:FS32K144UAVLL 0N57U  Fsys:160MHz  调试器:Lauterbach, OpenSDA  目标:internal_FLASH ******************************************************************************** 概述
查看全文
LS1046ARDB - 如何更新 SD 卡上的 U-Boot 二进制文件 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本操作指南仅适用于 LSDK 18.09 及更早版本。对于 LSDK 18.12 及更新版本,请参考《Layerscape 软件开发套件 <版本> 文档》中的 “部署 TF-A 二进制文件” 部分。 请按照以下步骤更新 SD 卡上的 U-Boot 二进制文件。 前提条件 Linux 主机需安装 Ubuntu 18.04 64 位系统,用于编译 LSDK 18.06 或 LSDK 18.09 的 U-Boot 二进制文件。   编译 U-Boot 二进制文件 克隆 U-Boot 代码仓库: $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot.git $ cd u-boot $ git checkout -b   LSDK- . For example, $ git checkout -b LSDK-18.09 LSDK-18.09  $ export ARCH=arm64 $ export CROSS_COMPILE=aarch64-linux-gnu- $ make distclean $ make ls1046ardb_sdcard_defconfig 如有需要,修改 U-Boot 文件。 $ make 如果 make 命令显示错误 “*** Your GCC is older than 6.0 and is not supported”,请确保使用 Ubuntu 18.04 64 位版本编译 LSDK 18.06 或 LSDK 18.09 的 U-Boot 二进制文件。        编译好的 U-Boot 镜像 u-boot-with-spl-pbl.bin 位于 u-boot/ 目录下。 你需要使用 u-boot-with-spl-pbl.bin,因为对于 SD 卡启动,ls104x 系列设备所采用的 bootloader 方式与 ls1088/ls2088/lx2160 系列设备不同。 U-Boot 二进制文件的 SD 卡起始块编号 图像 SD卡起始块号 U-Boot PBL 二进制文件 0x00008 = 8 有关所有 LSDK 固件镜像的 SD 卡起始块编号的完整列表,请参考 《带 PPA 的启动流程的闪存布局 ——LSDK 18.09》及更早版本。 U-Boot 二进制文件在 SD 卡上的起始块编号 将 SD 卡插入 Linux 主机。 在 Linux 主机上运行以下命令: $ sudo dd if=u-boot-with-spl-pbl.bin of=/dev/sdX bs=512 seek=8 conv=fsync 使用 cat /proc/partitions 命令查看设备列表及其大小, 以确保选择了正确的设备名称。 Linux 电脑中的 SDHC 存储驱动器被检测为 /dev/ sdX,其中 X 是一个字母,如 a、b、c。确保选择正确的设备名称, 因为此设备上的数据将被替换。 如果您的 Linux 主机支持直接读写 SDHC 卡,无需额外的 SDHC 卡读卡器设备,则 SDHC 卡的设备名称通常为 mmcblk0。              从 Linux 主机上移除 SD 卡。 将 SD 卡插入 LS1046ARDB 开发板,通过该 SD 卡启动开发板进入 Ubuntu 系统。你可以通过以下两种方式之一使用 SD 卡启动开发板: 设置开关:SW3 [1:8] = 01001110 且 SW5 [1:8] = 00100000;或者 切换至 SD 卡启动: => cpld reset sd 在启动日志中,您将看到: 主板:LS1046ARDB,从 SD 卡启动 如果 U-Boot 在 SD 卡上未找到 LSDK,它将从 SD 卡上存储的 lsdk_linux_arm64_tiny.itb 启动 TinyDistro。 QorIQ LS1设备
查看全文
LS1046ARDB - How to update U-Boot binary on SD card This how-to topic is applicable only to LSDK 18.09 and older releases. For LSDK 18.12 and newer releases, refer Deploying TF-A binaries in Layerscape Software Development Kit  Documentation . Follow these steps to update U-Boot binary on the SD card.  Prerequisites  Ubuntu 18.04 64-bit should be installed on the Linux host machine for building LSDK 18.06 or LSDK 18.09 U-Boot binary.   Compiling U-Boot binary Clone the u-boot repository. $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot.git $ cd u-boot $ git checkout -b   LSDK- . For example, $ git checkout -b LSDK-18.09 LSDK-18.09  $ export ARCH=arm64 $ export CROSS_COMPILE=aarch64-linux-gnu- $ make distclean $ make ls1046ardb_sdcard_defconfig If required, make changes to the U-Boot files. $ make If the make command shows the error "*** Your GCC is older than 6.0 and is not supported", ensure that you are using Ubuntu 18.04 64-bit version for building LSDK 18.06 or LSDK 18.09 U-Boot binary.         The compiled U-Boot image, u-boot-with-spl-pbl.bin, is available at u-boot/. You need to use u-boot-with-spl-pbl.bin because for SD boot, ls104x devices use different way for bootloader from ls1088/ls2088/lx2160 devices. SD card start block number for U-Boot binary Image  SD card start block number U-Boot PBL binary 0x00008 = 8 Refer the Flash layout for boot flow with PPA – LSDK 18.09 and older releases for a complete listing of the SD card start block numbers for all LSDK firmware images. Programming U-Boot binary to SD card Plug the SD card into the Linux host. Run the following command on the Linux host: $ sudo dd if=u-boot-with-spl-pbl.bin of=/dev/sdX bs=512 seek=8 conv=fsync Use the command cat /proc/partitions to see a list of devices and their sizes to make sure that the correct device names have been chosen. The SDHC storage drive in the Linux PC is detected as /dev/ sdX, where X is a letter such as a, b, c. Make sure to choose the correct device name, because data on this device will be replaced. If your Linux host machine supports read/write SDHC card directly without an extra SDHC card reader device, the device name of SDHC card is typically mmcblk0.              Remove the SD card from the Linux host machine. Plug the SD card into LS1046ARDB and boot the board to Ubuntu using the SD card. You can boot the board using the SD card either by: setting the switches: SW3[1:8] = 01001110 and SW5 [1:8] = 00100000, or boot switching to SD card: => cpld reset sd In boot log, you’ll see: Board: LS1046ARDB, boot from SD If U-Boot does not find LSDK on the SD card, it will boot TinyDistro from lsdk_linux_arm64_ tiny.itb stored on the SD card. QorIQ LS1 Devices
查看全文
用LPTMR定时器中断无法从VLPS到VLPR的唤醒问题 我在仿真调试的时候,程序进入VLPS后,LPTMR定时器设定10秒中断,定时器中断可以从VLPS到VLPR的正常唤醒。但是不仿真的时候,关电重新上电,程序从RUN进入VLPR,然后程序进入VLPS后,之后无法进入LPTMR定时器中断,也无法唤醒到VLPR模式,一直处在VLPS状态。 但是外部IO口中断从VLPS到VLPR可以正常唤醒,不管是在仿真模式还是不仿真的情况都可以从VLPS正常唤醒到VLPR。 难道不仿真的时候VLPS导致LPTMR定时器时钟关了,还是有其他的问题? VLPR用的慢速时钟源8M,分频后慢系统时钟为4M,FLASH时钟为1M,LPTMR定时器时钟源用的慢系统时钟4M分4096分频,10000计数大约10s中断一次。 主函数主函数 Run to VLPR函数Run to VLPR函数 VLPR to VLPS函数VLPR to VLPS函数 Re: 用LPTMR定时器中断无法从VLPS到VLPR的唤醒问题 问题已经解决,要提前设置使能VLPS模式下SIRC时钟,默认是关闭的,程序中增加一句宏定义就可以了 #define  SCG_ENABLE_SIRC_IN_VLPS  1 Re: 用LPTMR定时器中断无法从VLPS到VLPR的唤醒问题 这是我的源代码。不管是仿真还是断开下载器,在VLPR模式下LPTMR都正常工作。但是就是在VLPS模式下LPTMR无法唤醒到VLPR模式。用外部IO中断唤醒都正常。但是下载仿真时在VLPS模式LPTMR又可以唤醒到VLPR模式。我的初始化时钟就在Run_to_VLPR(void)函数中的scg_vlpr_configuration()函数中。 #include "include.h" /* 中断优先级组 */ #define NVIC_Group0 0x07 #define NVIC_Group1 0x06 #define NVIC_Group2 0x05 #define NVIC_Group3 0x04 #define NVIC_Group4 0x03 typedef enum _mode { eRun = 1, eStop = 2, eVLPR = 4, eVLPS = 16, eHSRun = 128 }eLowPowerMode; void delay(uint32_t cycles) { /* Delay function - do nothing for a number of cycles */ while(cycles--) { __asm("nop"); } } void error_trap (void) { while (1) { } } void disable_clock_monitors(void) { /* Disable Clock monitor for System Oscillator */ SCG->SOSCCSR &= ~(SCG_SOSCCSR_SOSCCM_MASK); /* Disable Clock monitor for System PLL */ SCG->SPLLCSR &= ~(SCG_SPLLCSR_SPLLCM_MASK); } void scg_vlps_configuration (void) { uint32_t tempSIRC = SCG->SIRCCSR; /* Disable in VLPS */ tempSIRC &= ~(SCG_SIRCCSR_SIRCLPEN_MASK | SCG_SIRCCSR_SIRCSTEN_MASK); #if SCG_ENABLE_SIRC_IN_VLPS /* Enable in VLPS */ tempSIRC |= SCG_SIRCCSR_SIRCLPEN_MASK | SCG_SIRCCSR_SIRCSTEN_MASK; #endif SCG->SIRCCSR = tempSIRC; } void scg_vlpr_configuration(void) { uint8_t tempRCM = RCM->SRIE; uint32_t temp; /* Check if core is not using SIRC */ if ((SCG->CSR & SCG_CSR_SCS_MASK) != SCG_CSR_SCS(2)) { /* Disable SIRC */ SCG->SIRCCSR &= ~SCG_SIRCCSR_SIRCEN_MASK; /* Wait until SIRC is disabled */ while (SCG->SIRCCSR & SCG_SIRCCSR_SIRCVLD_MASK) {} /* Enable SIRC in VLP modes */ SCG->SIRCCSR = SCG_SIRCCSR_SIRCSTEN_MASK #if SCG_ENABLE_SIRC_IN_VLPS | SCG_SIRCCSR_SIRCLPEN_MASK #endif ; /* Enable SIRC */ SCG->SIRCCSR |= SCG_SIRCCSR_SIRCEN_MASK; /* Wait until SIRC is enabled */ while (0 == (SCG->SIRCCSR & SCG_SIRCCSR_SIRCVLD_MASK)) {} temp = SCG_RCCR_DIVCORE(1) | /* Core clock is SIRC/8 = 4MHz */ SCG_RCCR_DIVBUS(0) | /* Bus clock is Core clock / 1 = 4MHz */ SCG_RCCR_DIVSLOW(3) | /* Flash clock is Core clock / 1 = 1MHz */ SCG_RCCR_SCS(2); /* Select SIRC as system clock */ SCG->RCCR = temp; /* Select SIRC as system clock */ /* Wait until SIRC is used as system clock */ while ((SCG->CSR & SCG_CSR_SCS_MASK) != SCG_CSR_SCS(2)) {} /* Configure SIRC as system clock in VLPR modes */ SCG->VCCR = SCG_VCCR_DIVCORE(1) | /* Core clock is SIRC/8 = 1MHz */ SCG_VCCR_DIVBUS(0) | /* Bus clock is Core clock / 1 = 1MHz */ SCG_VCCR_DIVSLOW(3) | /* Flash clock is Core clock / 1 = 1MHz */ SCG_VCCR_SCS(2); /* Select SIRC as system clock */ /* Disable FIRC and SPLL */ /* ?Configurable SIRC as system clock */ /* ?Configure all reset sources to be 'Reset' (not as Interrupt) via RCM_SRIE */ /* ?Program each reset source as interrupt via RCM_SRIE for a minimum delay time of 10 LPO */ RCM->SRIE &= 0; /* ?Disable FIRC */ SCG->FIRCCSR = SCG_FIRCCSR_FIRCREGOFF_MASK; /* ?Execute few nops to ensure an interval of 45 ns */ delay(10); while (0 != (SCG->FIRCCSR & SCG_FIRCCSR_FIRCVLD_MASK)) { }; /* ?Configure every reset source back to original intended reset configuration (Interrupt or Reset) via RCM_SRIE */ RCM->SRIE = tempRCM; /* Set SIRCDIV2 value to 1MHz (SIRC / 😎 */ SCG->SIRCDIV = SCG_SIRCDIV_SIRCDIV2(2); } } void scg_configure_freq_for_VLPR() { } void Run_to_VLPR(void) { /* Disable clock monitors on SCG module */ disable_clock_monitors(); /* Adjust SCG settings to meet maximum frequencies values */ scg_vlpr_configuration(); /* Allow very low power run mode */ SMC->PMPROT |= SMC_PMPROT_AVLP_MASK; /* Check if current mode is RUN mode */ if (eRun == SMC->PMSTAT) { /* This bit enables source and well biasing for the core logic, * this is useful to further reduce MCU power consumption */ PMC->REGSC |= PMC_REGSC_BIASEN_MASK; /* Move to VLPR mode */ SMC->PMCTRL = SMC_PMCTRL_RUNM(2); /* Wait for transition */ while (SMC->PMSTAT != eVLPR) {} } else { /* Error trap */ error_trap(); } } #define SCG_ENABLE_SIRC_IN_VLPS 1 void VLPR_to_VLPS (void) { uint32_t tempPMC_ctrl = SMC->PMCTRL; /* Disable FIRC and SPLL and configure VLPS */ scg_vlps_configuration(); /* Enable SLEEPDEEP bit in the Core * (Allow deep sleep modes) */ S32_SCB->SCR |= S32_SCB_SCR_SLEEPDEEP_MASK; /* Allow very low power run mode */ SMC->PMPROT |= SMC_PMPROT_AVLP_MASK; /* Select VLPS Mode */ tempPMC_ctrl &= ~SMC_PMCTRL_STOPM_MASK; tempPMC_ctrl |= SMC_PMCTRL_STOPM(2); SMC->PMCTRL = tempPMC_ctrl; /* Reduce power consumption */ PMC->REGSC |= PMC_REGSC_BIASEN_MASK #if (0 == SCG_ENABLE_SIRC_IN_VLPS) | PMC_REGSC_CLKBIASDIS_MASK #endif ; /* Check if current mode is VLPR mode */ if(eVLPR == SMC->PMSTAT) { STANDBY(); // Move to Stop mode // __asm("DSB"); // __asm("ISB"); /* Go to deep sleep mode */ // __asm("WFI"); } else { /* Error trap */ error_trap(); } /* Verify VLPSA bit is not set */ if (0 != (SMC->PMCTRL & SMC_PMCTRL_VLPSA_MASK)) { // error_trap(); } } #define KEY0_IO PTD5 void Key_Init(void) { /* 配置按键 内部上拉 下降沿触发中断 */ GPIO_ExtiInit(KEY0_IO, falling_up); /*优先级配置 抢占优先级1 子优先级2 越小优先级越高 抢占优先级可打断别的中断 */ NVIC_SetPriority(PORTD_IRQn,NVIC_EncodePriority(NVIC_GetPriorityGrouping(),1,2)); NVIC_EnableIRQ(PORTD_IRQn); //使能PORTD_IRQn的中断 } #define LED1_IO PTC17 //核心板LED #define LED2_IO PTC16 #define LED3_IO PTD15 //母板LED #define LED4_IO PTD16 void LED_Init(void) { GPIO_PinInit(LED1_IO,GPO,0); GPIO_PinInit(LED2_IO,GPO,0); GPIO_PinInit(LED3_IO,GPO,0); GPIO_PinInit(LED4_IO,GPO,0); } int main(void) { uint16 w1; uint16 wCnt=0; Run_to_VLPR(); NVIC_SetPriorityGrouping(NVIC_Group2); LPTMR_Init(5000); /* 优先级配置 抢占优先级1 子优先级2 越小优先级越高 抢占优先级可打断别的中断 */ NVIC_SetPriority(LPTMR0_IRQn,NVIC_EncodePriority(NVIC_GetPriorityGrouping(),1,2)); NVIC_EnableIRQ(LPTMR0_IRQn); //使能LPTMR0_IRQn的中断 Key_Init(); LED_Init(); while(1) { wCnt++; if(wCnt>=100){ wCnt=0; VLPR_to_VLPS(); } delay(0x00007fff); LED_Reverse(1); } // return 0; } Re: 用LPTMR定时器中断无法从VLPS到VLPR的唤醒问题 Hi@yankui666 MCU在进入低功耗的时候要断开调试器,否则MCU可能并不会成功进入低功耗模式 1.我没看到你初始化时钟的示例代码 2.请先初始化完成时钟,外设后再去执行RUN_TO_VLPR 3.先调通RUN模式下LPTMR再去排查
查看全文
HDMI Audio Setting 1. Set up HDMI 2. Test raw audio 3. Make HDMI audio the default output 4. Encoded audio 1. Set up HDMI Set up your kernel to use HDMI adding the following code to bootargs on u-boot: video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 2. Test raw audio In order to test only raw audio, use the following command: aplay -D hw:1,0 Kaleidoscope.wav 3. Make HDMI audio the default output In order to configure audio output over HDMI, please, replace content of file ~/.asoundrc to the following one pcm.dmix_48000{      type dmix      ipc_key 5678293      ipc_key_add_uid yes      slave{           pcm "hw:1,0"           period_time 0           period_size 2048           buffer_size 24576           format S16_LE           rate 48000      } } pcm.!dsnoop_44100{      type dsnoop      ipc_key 5778293      ipc_key_add_uid yes      slave{           pcm "hw:0,0"           period_time 0           period_size 2048           buffer_size 24576           format S16_LE           rate 44100      } } pcm.!dsnoop_48000{      type dsnoop      ipc_key 5778293      ipc_key_add_uid yes      slave{           pcm "hw:1,0"           period_time 0           period_size 2048           buffer_size 24576           format S16_LE           rate 48000      } } pcm.asymed{      type asym      playback.pcm "dmix_48000"      capture.pcm "dsnoop_44100" } pcm.dsp0{      type plug      slave.pcm "asymed" } pcm.!default{      type plug      route_policy "average"      slave.pcm "asymed" } ctl.mixer0{      type hw      card 0 } This will configure alsa to use sound card hw:1,0. Please, pay attention to use the proper audio card name for your device. In order to see available sound cards on board: root@imx53qsb:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: imx3stack [imx-3stack], device 0: SGTL5000 SGTL5000-0 []   Subdevices: 1/1   Subdevice #0: subdevice #0 card 1: imx3stackspdif [imx-3stack-spdif], device 0: IMX SPDIF mxc spdif-0 []   Subdevices: 1/1   Subdevice #0: subdevice #0 For detail on how to create asound.conf, please see alsa-lib configuration introduction. 4. Encoded audio For encoded (i.e. AC3, DTS) audio, you can use, for example, ac3dec, an utility provided by alsa-tools with the following command line: ac3dec -D hw:1,0 -C test.ac3 This would work for both HDMI audio and SPDIF audio. Double check your hardware and/or schematic in order to know which one to use. i.MX53 Multimedia Re: HDMI Audio Setting Dear Daiane Angolini, I created a new ticket through SR. Please check the below case from SR. [Case:00198948] How to configure the HDMI Audio as 24bit in i.MX6Q / Linux 3.14.52 Best Regards, Eric. Re: HDMI Audio Setting Could you, please, create a new ticket? Otherwise it might get off the radar Re: HDMI Audio Setting Dear Daiane Angolini, I want to know how to configure the HDMI Audio as 24bit in i.MX6Q / Linux 3.14.52. Please let me know how to do that. It's very helpful to me if you tell me how to confirm that in i.MX6Q Evaluation board. Actually I could confirm the below contents in the some documents. - HDMI Audio 24bit is supported in the i.MX6Q Reaference Manual   . Table 33-6. Data Arrangement in System Memory for L-PCM (24 bits) in Chapter 33   . - HDMI Audio 24bit is NOT supported in the i.MX6 Linux Reference Manual for Linux 3.14.52   . Chapter 15 On-Chip High Definition Multimedia Interface (HDMI) Driver   . Best Regards, Eric. Re: HDMI Audio Setting look for some pulseaudio conf file. Create a bbappend on your meta layer in order to add this by default on your image. (sorry, i don't know pulseaudio ) Re: HDMI Audio Setting i think the pulseaduio detect the output of audio, sometime is HDMI and sometime is the other, so i need to specify the HDMI as the default output, how to do ? Re: HDMI Audio Setting it looks like bad, i also stat up the daemon like what i said in mail list, i restart again with command "pulseaudio -D", the output of audio is not from HDMI except the "card 0: wm8962audio [wm8962-audio], device 0: HiFi wm8962-0 []" it's really strange, help... Re: HDMI Audio Setting Well, I think you make it work (by your comment on meta-freescale) Re: HDMI Audio Setting Hi,      There is not the command "pacmd", just "pactl". BTW, i use the YOCTO project of FSL community to build all, what is my next step about for your ask ? Re: HDMI Audio Setting ohhhhhhhhhhhh you´re right! the way to configure pulseaudio is different.... From my old emails, I got this command line: pacmd set-default-sink 1 Could you, please, give it a try and let us know the results? Re: HDMI Audio Setting good, it really works if i use the native app to play audio in IMX6QSD but there is no audio output from HDMI with the pulse audio server. the output of audio just is from the "wm8962audio" as bellow in my IMX6QSD, any advices about this ? i want to use pulse audio server to output in HDMI interface. root@imx6qsabresd:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: wm8962audio [wm8962-audio], device 0: HiFi wm8962-0 []   Subdevices: 1/1   Subdevice #0: subdevice #0 card 1: imxhdmisoc [imx-hdmi-soc], device 0: IMX HDMI TX mxc-hdmi-soc-0 []   Subdevices: 0/1   Subdevice #0: subdevice #0 Re: HDMI Audio Setting Hello, Very beautiful guide, how to set default SPDIF audio card on Android ? Thanks
查看全文
Example MCAL S32K312 MEM_InFls DS3.5 RTD300 *******************************************************************************  The purpose of this demo application is to present a usage of the MEM_InFls MCAL Driver for the S32K3xx MCU.  The example uses MEM_InFls driver to write 128 bytes to FLASH memory address  0x50_0000 .  ------------------------------------------------------------------------------ * Test HW: S32K3X2EVB-Q172 * MCU: S32K312 * Compiler: S32DS3.5 * SDK release: RTD 3.0.0 * Debugger: PE micro * Target: internal_FLASH ******************************************************************************** Dinesh_Guleria_0-1715852390344.png Results :-- Dinesh_Guleria_1-1715852435648.png Ram location where FLASH writing erase code is placed :-- I placed the code at 256 byte below the MAX address of the RAM size 0x20417DAA = 541162922 Dinesh_Guleria_4-1715852864835.png Dinesh_Guleria_3-1715852777286.png Size of RAM need to save the flashing routine, as per the MAP & linker file :-- 0x00407e64 - 0x00407e38 = 44 bytes Dinesh_Guleria_2-1715852737622.png Dinesh_Guleria_5-1715852986217.png  S32K3 FLASH Memory Terminology :-- Dinesh_Guleria_0-1715853503848.png Dinesh_Guleria_2-1715853660788.png Dinesh_Guleria_3-1715853699814.png  
查看全文