Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
Jlink は imx93 のデバッグに失敗する JLink を使用して i.MX93 の M33 コアをデバッグする場合、ブレークポイントを設定すると、PC ポインタのみが停止し、さまざまな内部カウンターはカウントを継続するため、正常なデバッグができなくなります。この問題の解決策は何ですか?ご回答ありがとうございます! Re: Jlink fails to debug imx93 はい、単一の M33 コアで試してみましたが、システム カウンターを以前のように停止することはできません。理由が見つかりません。 よろしくお願いいたします。 Re: Jlink fails to debug imx93 こんにちは@leoX 私のテストは単一の M33 と Jlink に基づいていますが、M33 を remoteproc で起動しましたか? よろしくお願いします、 志明 Re: Jlink fails to debug imx93 ご返信ありがとうございます!タスクの実行サイクルを計算するためにタスク内で tstmr を読み取っていますが、ブレークポイントを追加すると計算されたサイクルが増加し、ブレークポイントを追加してもシステム カウンターがカウントを継続していることがわかります。また、A コアを介して M コアを開始しています。M33 のダウンロード モードを設定すると役立ちますか? よろしくお願いいたします。 Re: Jlink fails to debug imx93 こんにちは、 さまざまな内部カウンターのスクリーンショットを共有していただけますか? m33ダウンロードモードを設定しましたか? よろしくお願いします、 志明
查看全文
Get CPU temperature on imx93evk in Windows 11 IoT Enterprise Hello, I am using the imx93-evk board to query the CPU temperature on Windows 11 Iot. However, I cannot query the temperature whether I use the command or the third-party software. How can I query the CPU temperature? #imx93 Re: Get CPU temperature on imx93evk in Windows 11 IoT Enterprise Hi  KirkHsu: I would suggest you get in touch with IOT team at  [email protected]. Regards Daniel
查看全文
IMX8MP ML 示例无法工作 你好, 我正在运行电路板支持包 5.15.71-2.2.2,我想尝试一下 https://www.nxp.com/docs/en/user-guide/UG10166.pdf 中的机器学习示例第 8.1 节 根据示例运行此指定管道时(唯一的改动是将 waylandsink 改为 fakevideosink,因为我正在无头运行)。 GST_DEBUG=3 gst-launch-1.0 --no-position v4l2src device=/dev/video2 ! video/x-raw,width=640,height=480,framerate=24/1 ! tee name=t t. ! queue max-size-buffers=2 leaky=2 ! imxvideoconvert_g2d ! video/x-raw,width=300,height=300,format=RGBA ! videoconvert ! video/x-raw,format=RGB ! tensor_converter ! tensor_filter framework=tensorflow-lite model=/home/root/ssd_mobilenet_v2_coco_quant_postprocess.tflite custom=Delegate:External,ExtDelegateLib:libvx_delegate.so ! tensor_decoder mode=bounding_boxes option1=mobilenet-ssd-postprocess option2=/home/root/ssd_labels.txt option3=0:1:2:3,50 option4=640:480 option5=300:300 ! mix. t. ! queue max-size-buffers=2 ! imxcompositor_g2d name=mix latency=30000000 min-upstream-latency=30000000 sink_0::zorder=2 sink_1::zorder=1 ! fakevideosink 硬件加速的 imxcompositor_g2d 出现以下错误 ** Message: 19:38:14.427: accl = cpu Vx delegate: allowed_cache_mode set to 0. Vx delegate: device num set to 0. Vx delegate: allowed_builtin_code set to 0. Vx delegate: error_during_init set to 0. Vx delegate: error_during_prepare set to 0. Vx delegate: error_during_invoke set to 0. WARNING: Fallback unsupported op 32 to TfLite Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... 0:00:00.964549750 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xaaaaee03eb40 W [HandleLayoutInfer:274]Op 162: default layout inference pass. W [HandleLayoutInfer:274]Op 162: default layout inference pass. 0:00:01.005968875 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xaaaaee03ec60 0:00:01.050180875 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xffff4c013480 0:00:01.089492750 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xaaaaee03eea0 从日志和我尝试过的其他管道来看,VX 委托工作得很好,它能进行 HW 对象检测。唯一出现的问题是 imxcompositor_g2d。在使用 HW 图像合成器时,是否存在我可能没有注意到的特定限制? 图形与显示 多媒体 疑似软件缺陷 Yocto Project Re: IMX8MP ML Example not working 在我这边测试了这个,没有发现任何错误日志,如下所示的消息是警告消息,它也存在于旧电路板支持包中,这不是错误消息,之前曾向 GPU 团队报告过这条警告消息 0:00:01.005968875 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xaaaaee03ec60 Re: IMX8MP ML Example not working 不,Sink 并不重要,无论是假 Sink、udp Sink 还是其他。我已经专门在 imxcomposit or_g2d 元器件中识别出来了。因为将其更改为基于软件的合成器元器件,所以流水线运行良好。 Re: IMX8MP ML Example not working 您的意思是,管道在 waylandsink 上正常工作,但在从 waylandsink 到 fakevideosink 的过程中却失败了?
查看全文
在 Windows 11 物联网企业版中获取 imx93evk 的 CPU 温度 你好,我正在使用 imx93-evk 板查询 Windows 11 IoT 上的 CPU 温度。 但是,无论使用命令还是第三方软件,我都无法查询温度。 如何查询 CPU 温度? #imx93 Re: Get CPU temperature on imx93evk in Windows 11 IoT Enterprise 嗨,KirkHsu: 我建议您 与 [email protected] 的物联网团队联系 。 此致 丹尼尔
查看全文
IMX8MP ML Example not working Hi, I'm running BSP 5.15.71-2.2.2, and I wanted to try out the machine learning example in https://www.nxp.com/docs/en/user-guide/UG10166.pdf section 8.1 When running this given pipeline, based on the example (only thing that has been changed is the waylandsink to fakevideosink as i'm running headless) GST_DEBUG=3 gst-launch-1.0 --no-position v4l2src device=/dev/video2 ! video/x-raw,width=640,height=480,framerate=24/1 ! tee name=t t. ! queue max-size-buffers=2 leaky=2 ! imxvideoconvert_g2d ! video/x-raw,width=300,height=300,format=RGBA ! videoconvert ! video/x-raw,format=RGB ! tensor_converter ! tensor_filter framework=tensorflow-lite model=/home/root/ssd_mobilenet_v2_coco_quant_postprocess.tflite custom=Delegate:External,ExtDelegateLib:libvx_delegate.so ! tensor_decoder mode=bounding_boxes option1=mobilenet-ssd-postprocess option2=/home/root/ssd_labels.txt option3=0:1:2:3,50 option4=640:480 option5=300:300 ! mix. t. ! queue max-size-buffers=2 ! imxcompositor_g2d name=mix latency=30000000 min-upstream-latency=30000000 sink_0::zorder=2 sink_1::zorder=1 ! fakevideosink   The hardware accellerated imxcompositor_g2d gives the following error ** Message: 19:38:14.427: accl = cpu Vx delegate: allowed_cache_mode set to 0. Vx delegate: device num set to 0. Vx delegate: allowed_builtin_code set to 0. Vx delegate: error_during_init set to 0. Vx delegate: error_during_prepare set to 0. Vx delegate: error_during_invoke set to 0. WARNING: Fallback unsupported op 32 to TfLite Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... 0:00:00.964549750 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xaaaaee03eb40 W [HandleLayoutInfer:274]Op 162: default layout inference pass. W [HandleLayoutInfer:274]Op 162: default layout inference pass. 0:00:01.005968875 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xaaaaee03ec60 0:00:01.050180875 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xffff4c013480 0:00:01.089492750 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xaaaaee03eea0 From the logs, and other pipelines i have tried, the VX delegate works just fine, it does HW object detection. The only issue that happens is with imxcompositor_g2d. Are there specific limitations that I might not be aware of while using HW image compositors? Graphics & Display Multimedia Suspected Software Defect Yocto Project Re: IMX8MP ML Example not working tested this on my side, didn't find any error log, the message as below is warning message, which exist in the old bsp too, this isn't the error message, reported to the GPU team about this warning message before 0:00:01.005968875 1671 0xaaaaedd5fb00 WARN imxcompositor gstimxcompositor.c:1540:gst_imxcompositor_aggregate_frames: set rotate failed 0xaaaaee03ec60 Re: IMX8MP ML Example not working No, the sink doesnt matter, be it fake sink, udp sink, or others. I have identified it to the imxcompositor_g2d component specifically. Because changing it to a software based compositor component, the pipeline works just fine. Re: IMX8MP ML Example not working do you mean the pipeline works with waylandsink, then failed with waylandsink to fakevideosink?
查看全文
yolo11 物体检测 int8 量化模型使用 eiq 无法检测物体 我有一个 YOLOv11 物体检测模型。我登录了 yolo11n.pt 模型,并将其转换为 ONNX 格式。之后,我使用 onnxsim 简化了 ONNX 模型。然后,我使用 onnx2tf 将模型转换为 SavedModel (.pb) 格式。随后,我使用恩智浦的 eIQ 工具包转换了这个 .pb模型转换为 INT8 量化模型。为此,我使用 COCO128 数据集(100 多幅图像)作为校准数据集。 模型转换成功,但没有检测到任何物体,而使用 Ultralytics 导出应用程序接口获得的 INT8 模型却能正确检测到物体。当我检查这两个模型的内部权重时,它们是不同的,而且同一图像的模型输出也有很大差异。 请帮我转换 .pb正确的模型,使检测结果符合预期。 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: yolo11 object detection int8 quantized model using eiq does not detect objects 你好,swapnildaphal: 由 yolo 官方 Ultralytics 导出 API 获得的 INT8 模型也在内部调用 onnx2tf API。它应该与您提到的方法相同: yolo11n.pt -> yolo11.onnx -> yolo11_sim.onnx -> yolo11 tensorflow saved model -> tftlie int8 model。 对于 EIQ 工具包,.pb模型转换为 int8quantized,它也封装了 tflite 的量化代码。因此,在获得张量流保存的模型后,可以使用以下代码执行量化测试。需要注意的是,在量化过程中,指定模型的预处理方法应与原始预处理方法保持一致。 因此,您可以通过 ultralytics 的转换 API 生成 tensorflow 保存的 moel,然后调用 tflite 的官方量化工具对模型进行量化。 此致 丹尼尔
查看全文
How to build and use emulator for imx8m board Hi Sir, I am using imx8m mini EVK and Andriod 9.0 AOSP version. I am successfully able to download and build the AOSP for imx8 EVK board and it is working fine.  To build the AOSP for imx8mm evk I used below commands -       $ source build/envsetup.sh       $ lunch evk_8mm-userdebug       $ make 2>&1 | tee build-log.txt But I want to use emulator for my some development and testing activity. When i execute emulator command   -       $ emulator then emulator opens but it is not booting and working at all. In some blogs and AOSP documentation it is mentioned that it will work for - lunch aosp_x86_64-eng But I want to use emulator with my imx8 mini EVK board. i.e. - lunch evk_8mm-userdebug Please suggest how can I use emulator for my imx8MM build i.e. for ->  lunch evk_8mm-userdebug  What all changes and setting will be required for doing it. Thanks & Regards, Maneesh Android i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano i.MX6_All i.MX6DL i.MX6Dual i.MX6S i.MX6SL i.MX6SoloX i.MX6UL i.MX7Dual i.MX7Solo i.MX7ULP i.MXRT Linux Re: How to build and use emulator for imx8m board This guide is really helpful for anyone building the emulator specifically for the i.MX8M board. The step-by-step instructions make it easier to set up the environment and get the emulator running smoothly. I’m excited to try it out on my own device and see how well it performs. Thanks for sharing! Re: How to build and use emulator for imx8m board Hi, How did you port the latest android to imx8? I am at the beginning of android system dev, could you give me some advises? I have download the aosp and built it and run it on the emulator, I have  not decided the next step, any advice will be appreciated, Thank you for your time Best regards Re: How to build and use emulator for imx8m board Hello, Unfortunately, the emulation and the aosp_x86_64-eng device is not supported by our BSP. I apologize for the inconvenience this could give you. However, you can download the ASOP code with any changes in the following git. repo init -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r35  # This branch is the revision that our latest Android version uses. repo sync Best regards, Diego. Re: How to build and use emulator for imx8m board Hi, Any Suggestions over my above question ? Thanks, Maneesh Re: How to build and use emulator for imx8m board Hi Sir, As I mentioned in my above post that I am successfully able to compile all of the AOSP Source codes for imx8 Mini Board and able to test it on my imx8m Mini EVK board. But when I try to launch emulator on my ubuntu linux, the emulator window appeared but it remain blacked out forever. Here is the command - $ emulator   Is it possible to launch imx8 mini  AOSP and their Android framework on Android emulator? If possible, what is the steps for it ? or is there an alternative way to do emulation? NOTE - In some blogs and AOSP documentation it is mentioned that it will work for - lunch aosp_x86_64-eng But When I downloaded the AOSP and Try to build it from lunch aosp_x86_64-eng command then it gives error saying  - /bin/bash: -c: line 0: `echo -e "\033[1mvendor/nxp-opensource/fsl_imx_demo/Ethernet/Android.mk: \033[31merror:\033[0m\033[1m" ethernet: Specifies both LOCAL_SDK_VERSION (system_current) and LOCAL_PRIVATE_PLATFORM_APIS (current) but should specify only one "\033[0m" >&2' build/make/core/sdk_check.mk:34: error: done. 14:57:53 ckati failed with: exit status 1 Steps I followed to download and build the AOSP from NXP Website for imx8 - $ repo init -u https://source.codeaurora.org/external/imx/imx-manifest.git -b imx-android-pie -m imx-p9.0.0_2.0.0-ga.xml $ repo sync $ source build/envsetup.sh $ lunch evk_8mm-userdebug $ make 2>&1 | tee build-log.txt Now my question is -> 1. How to use emulator with this AOSP build which is generated by above commands? 2. How to build this downloaded AOSP source code for lunch aosp_x86_64-eng ? 3. From where to download raw AOSP source code for Android Pie without any changes from NXP ? Thanks, Maneesh
查看全文
i.MX9 の 24 MHz TPM クロックで TPM 入力キャプチャが大きな距離値 (約 12 メートル) を返すのはなぜですか? NXPコミュニティの皆様、こんにちは。 私はi.MX93 (Cortex-M33)を使用しており、 TPM 入力キャプチャを使用して超音波距離センサ (HC-SR04 など)をインターフェースしようとしています。TPM3 (チャネル 2 の入力キャプチャ) を使用して、ECHO ピンの立ち上がりエッジと立ち下がりエッジ間のパルス幅を測定しています。 TPM クロックは24 MHzに設定されており、距離は次の式を使用して計算されます。 float timeUs = (ティック / tpmClk) * 1e6 ; 浮動小数点距離Cm = timeUs / 58.0f ; 参考までに、ここに完全なコードを示します:- #include "fsl_debug_console.h" #include "board.h" #include "app.h" #include "fsl_tpm.h" #include "fsl_rgpio.h" #include "fsl_lpuart.h" /**************************************************************************************** * 定義 **********************************************************************************/ /**************************************************************************************** * プロトタイプ **********************************************************************************/ /**************************************************************************************** * 変数 **********************************************************************************/ 揮発性ブールtpmIsrFlag = false ; 揮発性uint32_t立ち上がり時間 = 0 ; 揮発性uint32_t落下時間 = 0 ; 揮発性ブールgotRisingEdge = false ; /**************************************************************************************** * コード **********************************************************************************/ void Init_LPUART( void ) { lpuart_config_t 設定; /* デフォルトの UART 設定を取得します (8N1、パリティなし、フロー制御なし) */ LPUART_GetDefaultConfig(&config); /* 必要に応じてパラメータを変更します */ config.baudRate_Bps = 115200U ; config.enableTx = true ; config.enableRx = true ; /* 指定されたパラメータでUARTを初期化します */ LPUART_Init( BOARD_LPUART 、&config、 BOARD_LPUART_CLK_FREQ ); } float CalculateDistance( void ) {     uint32_tティック;     下降時間 >= 上昇時間の場合 ticks = 下降時間 - 上昇時間;     それ以外 ticks = ( TPM_MAX_COUNTER_VALUE ( DEMO_TPM_BASEADDR ) - risingTime) + fallsTime; /* オーバーフロー処理 */     float tpmClk = CLOCK_GetIpFreq( LPTPM_CLOCK_ROOT ); /* TPMクロックに調整できます */     float timeUs = (ティック * 1.0f / tpmClk) * 1e6 ;     PRINTF ( "TPM クロック: %.2f\r\n" ,tpmClk);     浮動小数点距離Cm = timeUs / 58.0f ;     distanceCmを返します。 } voidセットアップ( void ) { rgpio_pin_config_t out_config ={         kRGPIO_デジタル出力、         0 , };     /* トリガーピン */ RGPIO_PinInit( BOARD_RGPIO 、 TRIG_PIN 、 &out_config); RGPIO_PinWrite( BOARD_RGPIO , TRIG_PIN , 0 ); } void SendTrigPulse( void ) { RGPIO_PinWrite( BOARD_RGPIO 、 TRIG_PIN 、 1 ); SDK_DelayAtLeastUs( 10 , SystemCoreClock); RGPIO_PinWrite( BOARD_RGPIO , TRIG_PIN , 0 ); } void TPM_INPUT_CAPTURE_HANDLER ( void ) {     uint32_tステータス = TPM_GetStatusFlags( DEMO_TPM_BASEADDR );     if (ステータス & TPM_CHANNEL_FLAG )     {         uint32_tキャプチャされた値 = TPM_GetChannelValue( DEMO_TPM_BASEADDR 、 BOARD_TPM_INPUT_CAPTURE_CHANNEL );         if (!gotRisingEdge) { 立ち上がり時間 = キャプチャされた値; gotRisingEdge = true ;             // 立ち下がりエッジ検出に切り替える TPM_SetupInputCapture( DEMO_TPM_BASEADDR 、 BOARD_TPM_INPUT_CAPTURE_CHANNEL 、 kTPM_FallingEdge );      }         それ以外 { 落下時間 = キャプチャされた値; tpmIsrFlag = true ; gotRisingEdge = false ;             // 次の測定では立ち上がりエッジ検出に戻る TPM_SetupInputCapture( DEMO_TPM_BASEADDR 、 BOARD_TPM_INPUT_CAPTURE_CHANNEL 、 kTPM_RisingEdge );      }         // このチャネルの割り込みフラグをクリアする TPM_ClearStatusFlags( DEMO_TPM_BASEADDR 、 TPM_CHANNEL_FLAG );    }     SDK_ISR_EXIT_BARRIER ;     // tpmIsrFlag = true;     // /* 割り込みフラグをクリアします。*/     // TPM_ClearStatusFlags(DEMO_TPM_BASEADDR、TPM_CHANNEL_FLAG);     // SDK_ISR_EXIT_BARRIER; } /*! * @briefメイン関数 */ int main( void ) { tpm_config_t tpmInfo; /* ボードピン、クロック、デバッグコンソールの初期化 */ BOARD_InitHardware(); SetUp(); /* GPIO をセットアップする */     // Init_LPUART(); /* もう1つのUARTを初期化します */ /* 端末にメモを印刷する */     PRINTF ( "\r\nTPM入力キャプチャの例\r\n" );     PRINTF ( "\r\n入力信号が受信されると、入力キャプチャ値が出力されます\r\n" ); TPM_GetDefaultConfig(&tpmInfo); /* TPMモジュールを初期化する */ TPM_Init( DEMO_TPM_BASEADDR , &tpmInfo); /* TPMチャネルで入力キャプチャを設定する */ TPM_SetupInputCapture( DEMO_TPM_BASEADDR 、 BOARD_TPM_INPUT_CAPTURE_CHANNEL 、 kTPM_RisingEdge ); /* タイマーをフリーランニングモードに設定する */ TPM_SetTimerPeriod( DEMO_TPM_BASEADDR , TPM_MAX_COUNTER_VALUE ( DEMO_TPM_BASEADDR )); /* 2番目のエッジが検出されたときにチャネル割り込みを有効にする */ TPM_EnableInterrupts( DEMO_TPM_BASEADDR 、 TPM_CHANNEL_INTERRUPT_ENABLE ); /* NVIC で有効にする */ EnableIRQ( TPM_INTERRUPT_NUMBER ); TPM_StartTimer( DEMO_TPM_BASEADDR , kTPM_SystemClock );     一方( 1 )     { tpmIsrFlag = false ; 送信トリガパルス();         while (!tpmIsrFlag) {             __NOP (); // キャプチャを待つ      }         フロート距離 = CalculateDistance();         PRINTF ( "上昇時刻: %u\r\n" ,上昇時刻);         PRINTF ( "落下時間: %u\r\n" ,落下時間);         PRINTF ( "距離: %.2f cm\r\n" , 距離); SDK_DelayAtLeastUs( 60000 ,SystemCoreClock);    } }   しかし、壁がセンサのすぐ近くにある場合でも (たとえば、<50 cm)、一貫して1228 cm ~ 1260 cm 程度の距離値が得られており、これは異常に大きい値です。以下にいくつかの例を示します。 TPM Clock : 24000000.00 RisingTime : 1172965159 FallingTime : 1174675524 Distance: 1228.71 cm TPM Clock : 24000000.00 RisingTime : 1283028325 FallingTime : 1284738837 Distance: 1228.82 cm TPM Clock : 24000000.00 RisingTime : 1448107508 FallingTime : 1449851665 Distance: 1252.99 cm TPM Clock : 24000000.00 RisingTime : 269392922 FallingTime : 269436317 Distance: 31.17 cm TPM Clock : 24000000.00 RisingTime : 278665048 FallingTime : 278708444 Distance: 31.18 cm TPM Clock : 24000000.00 RisingTime : 287937289 FallingTime : 287977974 Distance: 29.23 cm TPM Clock : 24000000.00 RisingTime : 297205949 FallingTime : 297248662 Distance: 30.68 cm TPM Clock : 24000000.00 RisingTime : 306477012 FallingTime : 306519726 Distance: 30.69 cm これらの値が一貫して大きすぎる理由はわかりません。 i.MX93EVK クロック|タイマー Re: Why is TPM input capture returning large distance values (~12 meters) with 24 MHz TPM clock on i ご返信ありがとうございます! Re: Why is TPM input capture returning large distance values (~12 meters) with 24 MHz TPM clock on i こんにちは、 TPM入力キャプチャを使用したHC-SR04超音波センサーから得られる大きな距離値(約12メートル)は、多くの場合、信号のパルス幅測定が不正確であることに起因しています。センサーはエコーパルスの持続時間を計測することで距離を測定しますが、測定にトリガーパルスが含まれている場合や、その他の不正確な点がある場合、距離測定値が実際よりも高くなってしまう可能性があります。    考えられる原因と解決策の内訳は次のとおりです。 1. パルス幅測定の誤り: トリガーパルス付属: 入力キャプチャは、エコー パルス自体だけでなく、トリガー パルスの立ち上がりエッジからエコー パルスの立ち下がりエッジまでの時間をキャプチャしている可能性があります。    ソリューション: 入力キャプチャがエコーパルスの持続時間のみを測定するように設定されていることを確認してください。通常、タイマーを設定してエコー信号の立ち上がりエッジでトリガーし、立ち下がりエッジをキャプチャします。    2. 信号干渉: 早期エコー検出: センサのレシーバは、トランスミッタからの信号が物体に反射する前にそれを検出し、不自然に長いパルス幅を生み出す可能性があります。    斜め反射: 角度のある表面からの反射により、エコー信号が弱くなったり遅延したりして、距離の読み取りが不正確になるCANがあります。    ソリューション: シールド:早期検出を最小限に抑え、信号の方向性を向上させるために、トランスミッタとレシーバの上に小さなチューブまたはシュラウドを使用します。    複数の読み取り:複数の読み取りを行い、過度に大きい値を除外するか、平均を計算します。    NewPing ライブラリ:これらの問題に対処するために設計された NewPing ライブラリの使用を検討してください。  4. ソフトウェアの実装: タイマー設定: タイマー プリスケーラまたはクロックの設定が正しくないと、パルス幅測定の精度に影響するCANがあります。    Ping間の遅延: センサには ping 間の最小時間があり、これを超過すると読み取り結果が不正確になる可能性があります。    ソリューション: タイマー設定の確認:正確な時間測定を確実に行うために、タイマーのプリスケーラとクロックの構成を確認します。    適切な遅延:センサがリセットされて安定できるように、ping 間に十分な遅延を確保します。      よろしくお願いします。  
查看全文
如何为 imx8m 板 构建和使用仿真器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好,先生, 我使用的是 imx8m mini EVK 和 Andriod 9.0 AOSP 版本。 我能够成功下载并版本 imx8 EVK 板 的 AOSP,而且运行良好。 为了为 imx8mm evk 版本 AOSP,我使用了以下命令- $ 来源 版本/envsetup.sh $ lunch evk_8mm-userdebug $ make 2>&1 | tee build-log.txt 但我想使用模拟器进行一些开发和测试活动。 当我执行模拟器命令时 模拟器 然后模拟器打开,但它根本无法启动和运行。 在一些博客和 AOSP 文档中提到,它适用于 - 午餐 aosp_x86_64-eng 但是我想在我的 imx8 迷你 EVK 板上使用模拟器。即 - 午餐 evk_8mm-userdebug 请建议我怎样才能在我的 imx8mm 版本中使用模拟器,即用于-> lunch evk_8mm-userdebug 需要做哪些更改和设置? 谢谢& 、 马内什 Android i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano i.MX6_All i.MX6DL i.MX6 双核 i.MX6S i.MX6SL i.MX6SoloX i.MX6UL i.MX7 双核 i.MX7 单核 i.MX 7ULP i.MXRT Linux Re: How to build and use emulator for imx8m board 本指南对任何专门为 i.MX8 M 板构建仿真器的人都非常有用。分步说明可以更轻松地安装环境并使仿真器平稳运行。我很高兴能在自己的设备上试一试,看看它的性能如何。感谢您的分享! Re: How to build and use emulator for imx8m board 您好, 你是如何将最新的安卓系统移植到 imx8 上的? 我刚开始开发安卓系统,您能给我一些建议吗? 我已经下载了 aosp 并将其版本并在模拟器上运行,我还没有决定下一步,任何建议将不胜感激, 感谢您抽出宝贵时间 顺祝商祺! Re: How to build and use emulator for imx8m board <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 不幸的是,我们的电路板支持包不支持仿真和 aosp_x86_64-eng 设备。对于这可能给您带来的不便,我深表歉意。 不过,您可以在以下 git 中下载任何修改后的 ASOP 代码。 仓库 init-u https://android.googlesource.com/platform/manifest-b android- 9.0.0_r35 # 这个分支是我们最新安卓版本使用的修订版。 仓库同步 顺祝商祺! 迭戈 Re: How to build and use emulator for imx8m board <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 对我的上述问题有什么建议? 谢谢! 马内什 Re: How to build and use emulator for imx8m board <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好,先生, 正如我在上面的帖子中提到的那样,我能够成功编译 imx8 Mini 板 的所有 AOSP 源代码 而且能够在我的 imx8m Mini EVK 板上对其进行测试。 但是当我尝试在我的ubuntu linux上用上市模拟器时,模拟器窗口出现了,但它永远处于封锁状态。 命令如下 模拟器   是否有可能在安卓模拟器上用上市 imx8 mini AOSP 及其安卓框架? 如果可能,有哪些步骤?还是有其他仿真方法? 备注 在一些博客和 AOSP 文档中提到,它适用于 - 午餐 aosp_x86_64-eng 但是当我下载 AOSP 并尝试从午餐开始版本 aosp_x86_64-eng 命令时,它会出错,说- /bin/bash:-c: line 0: `echo -e"\033[1mvendor/nxp-opensource/fsl_imx_demo/Ethernet/Android.mk:\ 033 [31merro r:\033 [0m\ 033 [1m " 以太网:同时指定 LOCAL_SDK_VERSION (system_current) 和 LOCAL_PRIVATE_PLATFORM_API(当前)但应仅指定一个 "\ 033 [0m " > & 2' build/make/core/sdk_check.mk: 34:错误:完成。 14:57:53 ckati 失败,退出状态为 1 我按照以下步骤从恩智浦网站下载和版本 imx8 的 AOSP- $ 仓库 init -u https://source.codeaurora.org/external/imx/imx-manifest.git -b imx-android-pie -m imx-p9.0.0_2.0.0-ga.xml $ 仓库同步 $ 来源 build/envsetup.sh $ lunch evk_8mm-userdebug $ make 2>&1|tee build-log.txt 现在我的问题是> 1。如何在由上述命令生成的这个 AOSP 版本中使用仿真器? 2。如何为午餐版本这个下载的 AOSP 源代码 aosp_x86_64-eng? 3.从哪里下载未经恩智浦修改的 Android Pie 原始 AOSP 源代码? 谢谢! 马内什
查看全文
アプリケーション時間測定中にしきい値を下回る予期しない VC_OV イベント情報が発生した こんにちは、      サンプル レート 24 のアプリケーション タイム測定モードを使用しており、過電圧 (OV) しきい値を 4250 mV に設定しています。 ただし、充電中にバッテリーが約 80% SoC (約 4077 mV) に達すると、一部のセルが VC_OV イベント情報 をトリガーすることがあります。手動測定後、実際のセル電圧は OV しきい値を超えません。 測定された電圧が明らかにしきい値を下回っているにもかかわらず、VC_OV イベント情報が発生するこのような動作の原因は何でしょうか? ご協力ありがとうございます。 Mark 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement マーク様へ MC33774A セーフティマニュアルをダウンロードし、セクション 10、11 を参照してください。あなたのようなCASEについては、FTME (Fault Tolerant Measurement Error) の説明があります。 セーフティマニュアルは、 MC33774A 製品ページの「セキュア」セクションからダウンロードしてください。 敬具、 ヨゼフ 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement こんにちは、ヨゼフさん。 今後ともどうぞサポートをお願い申し上げます。 ハードウェアデザインはすでに現地の FAE によってレビューされ、確認されています。MC33774A はすでにバッテリー モジュールに完全に統合されているため、残念ながらオシロスコープで個々のセル電圧を直接調べることはできません。 また、充電電流の制御が不十分なために過渡的なスパイクが発生し、それが散発的な過電圧 (OV) イベント情報につながる可能性も考えられました。あなたの専門的な説明により、これらのイベント情報が一時的な行動によって引き起こされた可能性が高いという私たちの仮説がさらに裏付けられました。 続いて、次の質問をさせていただきます。 一時的なスパイクによって特に発生する OV イベントを識別するために推奨されるソフトウェアベースの方法はありますか? 貴重なご支援に改めて感謝申し上げます。 よろしくお願いします、 マーク 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement マーク様へ 部品番号と回路図をありがとうございます。ただし、回路図では、セルと CTx CBx ピンの間に推奨コンポーネントが使用されているかどうかはわかりません。これらの推奨コンポーネントについては、MC33774A の完全なデータシートのセクション 11.1.1.2 を参照してください。 MC33774A の完全なデータシートは、 MC33774A 製品ページの「セキュア」セクションからダウンロードしてください。 急速充電中、一時的に OV しきい値を超える電圧過渡が発生するCANがあります。これらのスパイクは手動測定では捕捉できない可能性がありますが、MC33774A では検出できます。過渡電圧があるかどうかを確認するには、オシロスコープを使用して OV をトリガーする個々のセルへの電圧を測定してください。 充電/測定中はバランス調整がオンになっていないことを確認してください。バランス調整中は測定された電圧は保証されません。 敬具、 ヨゼフ 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement こんにちは、ヨゼフさん。 ご返答ありがとうございます。 事前に十分な情報を提供できなかったことをお詫び申し上げます。 MC33774ATP1AEを使用しています。そしてここに部品の回路図があります。 ご協力ありがとうございます。 よろしくお願いします、 Mark Re: Unexpected VC_OV Events Below Threshold during Application Timed Measurement マーク様へ 使用しているコンポーネントの完全な部品番号を教えてください。 電圧レベルと部品の値を含む回路図を共有してください。 敬具、 ヨゼフ
查看全文
使用 I2C 发送作为主站时无 SCL/SDA 信号 我已将 LPI2C1 安装为主服务器,但在尝试发送时没有得到任何输出。我有上拉电阻,信号仅连接到 1 个从属设备。请参见下文。造成这一问题的可能原因是什么? 初始化: /* 设置 I2C1 中断 */ IntCtrl_Ip_EnableIrq(LPI2C1_IRQn); IntCtrl_Ip_InstallHandler(LPI2C1_IRQn, LPI2C1_Master_Slave_IRQHandler, NULL_PTR); /* Init lpi2c in master mode */ Lpi2c_Ip_MasterInit(LPI2C_CHANNEL_0,&I2c_Lpi2cMasterChannel0); 发送数据: 布尔 I2C_read_fault_status(uint8 *rx_buffer) { TxBuff[0] = 0x78; if (LPI2C_IP_SUCCESS_STATUS == Lpi2c_Ip_MasterSendData(LPI2C_CHANNEL_0, (uint8 *)&TxBuff[0], 1U, FALSE)) { LM5171_data_ptr = rx_buffer; LM5171_data_len = 1; 返回 TRUE; } Re: No SCL/SDA Signals when using I2C Send as Master 我们使用的是 S32K324 部件、S32DS3.5 调试器和 Multilink FX 通用接口。我们的热电阻版本是 4.00 HF02。LPI2C 外设中没有启用调试的选项(与其他外设一样)。我没想到要手动设置该选项!当我设置 DBGEN 位时,信号如期工作。 Re: No SCL/SDA Signals when using I2C Send as Master 您使用的是哪种调试模式?特定的调试器还是板载调试器? Re: No SCL/SDA Signals when using I2C Send as Master Hi@phil_b 能告诉我们您使用的零件编号吗?此外,热电阻版本是? 如果您使用的是 S32K3,请尝试设置该位,然后再试一次。 Re: No SCL/SDA Signals when using I2C Send as Master 当我在调试模式下运行时,信号丢失了。当我拆下调试连接器时,信号还在!有没有办法在调试模式下查看信号?
查看全文
i.MX95 decoder performance Hello. I have a question about the performance of the i.MX95 chip. We are planning to decode and output more than 16 channels of 640×480 @ 30 fps, 600 kbps video on the i.MX95. (1) Is this possible, and what is the maximum number of channels it supports? When we used the i.MX8QuadMax, its VPU only supported up to eight simultaneous decoders. (2) Does the i.MX95 also have a fixed number of hardware decoders like the QuadMax, or is its capacity determined dynamically by overall VPU performance? Also, with the i.MX8QuadMax we could only use GStreamer (no native decoder API was provided). (3) Does the i.MX95 offer a dedicated decoder API, or—like the QuadMax—must it be used solely through GStreamer? Thank you. Re: i.MX95 decoder performance Hi, For video decoding, the h264 decoder support 4k60 max or up to 32 streams. For VPU  simultaneous decoders number, it's decided by maximum DDR bandwith and maximum resolution. No native decoder API was provided. Best Regards, Zhiming
查看全文
lx2160a カーネル 5.10.35 の SPI モードについて こんにちは: デフォルトの DSPI_TCF_MODE 送信は非常に遅いことがわかりました。SPI 転送を高速化したいのですが、DSPI_DMA_MODE 転送はサポートされていないようです。モードを DSPI_EOQ_MODE に変更すると、カーネルがクラッシュします。SPI を介したデータ転送を効果的に高速化するには、どのような手順を踏む必要があるかを知りたいです。 私の変更点は次のとおりです。 spi-fsl-dspi.c内 静的定数構造体 fsl_dspi_devtype_data ls2085a_data = { .trans_mode = DSPI_EOQ_MODE、 .max_clock_factor = 8、 }; Re: lx2160a kernel 5.10.35 about spi mode NXP が提供する Linux カーネル ソース コードを参照してください。 https://github.com/nxp-qoriq/linux/blob/lf-5.10.y/drivers/spi/spi-fsl-dspi.c 次の 2 つのモードのみがサポートされます。 列挙型dspi_trans_mode { DSPI_XSPI_MODE、 DSPI_DMA_MODE、 };   lx2160a プラットフォームでは DSPI_XSPI_MODE モードを使用してください。 [LX2160A] = { .trans_mode = DSPI_XSPI_MODE、 .max_clock_factor = 8、 .fifo_size = 4、 },
查看全文
Jlink fails to debug imx93 When using JLink to debug the M33 core of i.MX93, after setting breakpoints, it seems only the PC pointer is halted, while various internal counters continue counting, preventing normal debugging. What are the solutions for this issue?Thank you for ansering! Re: Jlink fails to debug imx93 Yes, and I tried on single M33 core, the system counter can't be halted as before. I can't find the reason. Best Regards. Re: Jlink fails to debug imx93 Hi @leoX  My test is based on single M33 and Jlink, did you boot M33 with remoteproc? Best Regards, Zhiming Re: Jlink fails to debug imx93 Thank you for your response! I am reading tstmr in a task to calculate the task's execution cycle, but if I add a breakpoint, the calculated cycle increases, indicating that the system counter continues to count when I add a breakpoint. Also, I am starting the M core through the A core. Does setting the download mode for M33 help? Best Regards Re: Jlink fails to debug imx93 Hi, Can you share the screenshot of  various internal counters?  Did you set the m33 download mode? Best Regards, Zhiming
查看全文
RT1176 SFPD QSPI IS25LP064D-JKLE 私は評価ボードと同じ方法で FlexSPI1 を実装するカスタム RT1176 ボードをフラッシュしようとしていますが、使用しようとしている IS25LP064D-JKLE をサポートするために、フラッシュ VCC に 3.3V を供給しています。flexspi_nor_config.cを添付しました。およびメモリの設定。デフォルトのflexspi_nor_polling_transfer_cm7を使用しています。Link Application to RAM を有効にしてデバッグすると、「プログラムデータ - 読み出しデータ値が正しくありません!」というエラーが返されます(125行目)。設定上の問題が何なのかまだ把握できていません。現在、MCU Link MR を使用していますが、Jlink にもアクセスできます。カスタムボードにはディップ・スイッチがあり、ブートモード 1 を 1、ブートモード 0 を 0 に設定しています。 Re: RT1176 SFPD QSPI IS25LP064D-JKLE こんにちは@AnteoJ 、 NXP MIMXRTシリーズにご興味をお持ちいただきありがとうございます。 RT1020-EVK で使用されるフラッシュは ISSI_IS25LP064A SO、対応する flexspi_nor_config.c は SDKs 内にあります。まずはこれを確認してください。 また、フラッシュを交換するときは、まず SEC/MCUBootUtility に組み込まれているテンプレートのテストに合格すると、独自のフラッシュを LUT の問題から保護することができます。 よろしくお願いします、 ギャビン Re: RT1176 SFPD QSPI IS25LP064D-JKLE データシートに従って特定のフラッシュの値を調べて置き換えましたが、デバッグを開始すると、依然として IMPRECISERR と UNDEFINSTR が発生します。調整する必要がある追加のパラメータがあるかどうかはわかりません。ここに私のコードがあります: /* * 著作権 2018-2022 NXP * 無断転載を禁じます。 * * SPDXライセンス識別子: BSD-3条項 */ #include "evkbmimxrt1170_flexspi_nor_config.h" /* ツールによって使用されるコンポーネント ID 定義。*/ #ifndef FSL_COMPONENT_ID #FSL_COMPONENT_ID "プラットフォーム.ドライバ.xip_board" を定義します #endif /**************************************************************************************** * コード **********************************************************************************/ #定義されている場合(XIP_BOOT_HEADER_ENABLE) && (XIP_BOOT_HEADER_ENABLE == 1) # __CC_ARM が定義されている場合 || __ARMCC_VERSION が定義されている場合 || __GNUC__が定義されている場合 __attribute__ ((セクション(".boot_hdr.conf")),使用済み)) #elif 定義済み( __ICCARM__ ) #pragma location = ".boot_hdr.conf" #endif #FLASH_DUMMY_CYCLES 0x03 を定義する #FLASH_DUMMY_VALUE 0x03 を定義する const flexspi_nor_config_t qspiflash_config = { .memConfig= { 。タグ= FLEXSPI_CFG_BLK_TAG、 .バージョン= FLEXSPI_CFG_BLK_VERSION、 .readSampleClksrc=kFlexSPIReadSampleClk_Loopback内部的に、 .csホールド時間= 3u、 .csセットアップ時間= 3u、 // DDRモード、ワードアダッサブル、セーフ構成、差動クロックを有効にする .controllerMiscOption= 0x10, .デバイスタイプ= kFlexSpiDeviceType_SerialNOR、 .sflashPadType= kSerialFlash_4Pads、 .シリアルクロック周波数= kFlexSpiシリアルクロック_60MHz、 .sflashA1サイズ= 8u * 1024u * 1024u、 /* フラッシュ設定機能を有効にする */ .configCmdEnable= 1u、 .configModeType[0]= kDeviceConfigCmdType_Generic、 /* 設定コマンドシーケンスを設定する */ .configCmdSeqs[0]= { .seqNum= 1, .seqId= 12, 。予約済み= 0, }, /* フラッシュ内の読み取りレジスタの設定値を準備する */ .configCmdArgs[0]= (FLASH_DUMMY_VALUE << 4)、 .lookupTable= { // LUTを読み込む [0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x20), [1] = FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, FLASH_DUMMY_CYCLES, READ_SDR, FLEXSPI_4PAD, 0x04), // ステータスLUTの読み取り [4 * 1 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x04), // 書き込み有効LUT [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x0), // セクターLUTを消去する [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18), // ブロックLUTを消去する [4 * 8 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18), // PapeプログラムLUT [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02, RADDR_SDR, FLEXSPI_1PAD, 0x18), [4 * 9 + 1] = FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04, STOP, FLEXSPI_1PAD, 0x0), // チップLUTを消去する [4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60, STOP, FLEXSPI_1PAD, 0x0), // 読み取りレジスタLUTを設定する [4 * 12 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xC0, WRITE_SDR, FLEXSPI_1PAD, 0x01), [4 * 12 + 1] = FLEXSPI_LUT_SEQ(STOP, FLEXSPI_1PAD, 0x00, 0, 0, 0), }, }, .ページサイズ= 256u、 .セクターサイズ= 4u * 1024u、 .ipcmdシリアルクロック周波数= 0x1、 .ブロックサイズ= 64u * 1024u、 .isUniformBlockSize= 偽、 }; #endif /* XIP_BOOT_HEADER_ENABLE */
查看全文
为什么 i.MX9 上采用 24 MHz TPM 时钟时,TPM 输入捕获会返回较远的距离值(约 12 米) 你好,恩智浦社区、 我正在使用 i.MX93(Cortex-M33),正在尝试使用 TPM 输入捕获来连接 超声波距离传感器(如 HC-SR04 )。我正在使用TPM3(通道2上的输入捕获)测量ECHO引脚上升沿和下降沿之间的脉冲宽度。 TPM 时钟配置为24 MHz,距离用公式计算: floattimeUs = (ticks / tpmClk) *1e6; floatdistanceCm = timeUs /58.0f; 以下是我的完整代码供参考:- #include "fsl_debug_console.h" #include " board.h " #include "app.h" #include "fsl_tpm.h" #include "fsl_rgpio.h" #include "fsl_lpuart.h" /******************************************************************************* * 定义 ******************************************************************************/ /******************************************************************************* * 原型 ******************************************************************************/ /******************************************************************************* * 变量 ******************************************************************************/ 易变 booltpmIsrFlag = 假; 易变 uint32_t上升时间 = 0; 易变 uint32_tfallingTime = 0; 易变 boolgotRisingEdge = 假; /******************************************************************************* * 代码 ******************************************************************************/ voidInit_LPUART(void) { lpuart_config_t config; /* 获取默认 UART 配置(8N1、无奇偶校验、无流量控制) */ LPUART_GetDefaultConfig(&config); /* 根据需要修改参数 */ config.baudRate_Bps = 115200U; config.enableTx = true; config.enableRx = true; /* 使用指定参数初始化 UART */ LPUART_Init(BOARD_LPUART,&config、 board_lpuart_clk_freq); } 浮点数计算距离void) { uint32_tticks; 如果(fallingTime>= risingTime) ticks = fallingTime - risingTime; 不然 ticks = (tpm_max_counter_value(demo_tpm_baseaddr) - risingTime)+ fallingTime;/* 处理溢出 */ 浮点数tpmClk = CLOCK_GetIpFreq(lptpm_clock_root);/* 可以调整为 TPM 时钟 */ 浮点数timeUs = (ticks *) 1.0f/ tpmClk) * 1e6; PRINTF("TPM Clock :%.2f\r\n",tpmClk); 浮点数distanceCm = timeUs / 58.0f; 返回distanceCm; } void设置void) { rgpio_pin_config_t out_config ={ kRGPIO_DigitalOutput, 0, };     /* 触发信号引脚 */ RGPIO_PinInit(BOARD_RGPIO,TRIG_PIN,&out_config); RGPIO_PinWrite(BOARD_RGPIO,TRIG_PIN,0); } voidSendTrigPulse(void) { RGPIO_PinWrite(BOARD_RGPIO, TRIG_PIN, 1); SDK_DelayAtLeastUs(10,SystemCoreClock); RGPIO_PinWrite(BOARD_RGPIO, TRIG_PIN, 0); } void tpm_input_capture_handler(处理程序) { uint32_tstatus = TPM_GetStatusFlags(demo_tpm_baseaddr); 如果(状态& tpm_channel_flag)     { uint32_tcapturedValue = TPM_GetChannelValue(demo_tpm_baseaddr, board_tpm_input_capture_channel); 如果(!gotRisingEdge) { risingTime = capturedValue; gotRisingEdge = true; // 切换到下降沿检测 TPM_SetupInputCapture(demo_tpm_baseaddr,TPM_SetupInputCapture(,kTPM_FallingEdge);      } 不然 { fallingTime = capturedValue; tpmIsrFlag = true; gotRisingEdge = 假; //切换回上升边缘检测以进行下次测量 TPM_SetupInputCapture(demo_tpm_baseaddr,TPM_SetupInputCapture(,kTPM_RisingEdge);      } // 清除该通道的中断标志 TPM_ClearStatusFlags(demo_tpm_baseaddr, tpm_channel_flag);    } sdk_isr_exit_barrier; // tpmIsrFlag = true; //* 清除中断标志。 // TPM_ClearStatusFlags(DEMO_TPM_BASEADDR, TPM_CHANNEL_FLAG); // sdk_isr_exit_barrier; } /*! * @brief主要功能 */ intmain(void) { tpm_config_t tpmInfo; /* 板引脚、时钟、调试控制台初始化 */ BOARD_InitHardware(); setUp (); /* 安装 GPIO */ // Init_LPUART(); /* 再初始化一个 UART */ /* 向终端打印注释 */ PRINTF( "\ r\n TPM 输入捕获示例\ r\n "); PRINTF ("\ r\n 一旦接收到输入信号,就会打印出输入捕获值\ r\n "); TPM_GetDefaultConfig(&tpmInfo); /* 初始化 TPM 模块 */ TPM_Init(demo_tpm_baseaddr&tpmInfo); /* 在 TPM 通道上设置输入捕获 */ TPM_SetupInputCapture(demo_tpm_baseaddr, TPM_SetupInputCapture(, kTPM_RisingEdge); /* 将计时器设置为自由运行模式 */ TPM_SetTimerPeriod(demo_tpm_baseaddr, tpm_max_counter_value(demo_tpm_baseaddr)); /* 检测到第二个边沿时启用通道中断 */ TPM_EnableInterrupts(demo_tpm_baseaddr, tpm_channel_interrupt_enable); /* 在 NVIC 启用 */ 启用 IRQ(tpm_interrupt_number); TPM_StartTimer(demo_tpm_baseaddr, kTPM_SystemClock); 虽然(1)     { tpmIsrFlag = 假; SendTrigPulse(); 当(!tpmIsrFlag) { __NOP ();//等待捕获      } 浮点数distance = CalculateDistance(); PRINTF("RisingTime :%u\r\n",risingTime); PRINTF("FallingTime :%u\r\n",fallingTime); PRINTF("Distance:%.2f cm\r\n"距离); SDK_DelayAtLeastUs(60000,SystemCoreClock);    } }   但是,我始终得到的距离值在 1228 厘米到 1260 厘米之间,这是不正常的大,即使在离传感器很近的地方有一堵墙(例如<50 厘米)也是如此。下面是一些阅读范例: TPM Clock : 24000000.00 RisingTime : 1172965159 FallingTime : 1174675524 Distance: 1228.71 cm TPM Clock : 24000000.00 RisingTime : 1283028325 FallingTime : 1284738837 Distance: 1228.82 cm TPM Clock : 24000000.00 RisingTime : 1448107508 FallingTime : 1449851665 Distance: 1252.99 cm TPM Clock : 24000000.00 RisingTime : 269392922 FallingTime : 269436317 Distance: 31.17 cm TPM Clock : 24000000.00 RisingTime : 278665048 FallingTime : 278708444 Distance: 31.18 cm TPM Clock : 24000000.00 RisingTime : 287937289 FallingTime : 287977974 Distance: 29.23 cm TPM Clock : 24000000.00 RisingTime : 297205949 FallingTime : 297248662 Distance: 30.68 cm TPM Clock : 24000000.00 RisingTime : 306477012 FallingTime : 306519726 Distance: 30.69 cm 我不知道为什么这些数值总是过大。 i.MX93EVK 时钟|计时器 Re: Why is TPM input capture returning large distance values (~12 meters) with 24 MHz TPM clock on i 谢谢您的答复! Re: Why is TPM input capture returning large distance values (~12 meters) with 24 MHz TPM clock on i 你好 使用 TPM 输入捕获的 HC-SR04 超声波传感器的大距离值(约 12 米)通常源于信号的脉冲宽度测量不正确。传感器通过计时回波脉冲的持续时间来测量距离,如果测量包括触发信号或不准确,则可能导致距离读数膨胀。   以下是潜在原因和解决方案的详细介绍: 1。脉冲宽度测量不正确: 触发信号脉冲包括: 输入捕获可能捕获从触发脉冲的上升沿到回波脉冲下降沿的时间,而不仅仅是回波脉冲本身。   解决方案: 确保将输入捕获配置为仅测量回波脉冲的持续时间。这通常涉及将计时器设置为在回波信号的上升沿触发并捕获下降沿。   2.信号干扰: 早期回声检测 传感器的接收器可能会在发射器从物体反弹之前检测到信号,从而导致人为的脉冲宽度变长。   斜射反射 倾斜表面的反射会导致回声信号变弱或延迟,从而导致距离读数不准确。   解决方案: 屏蔽:在发射器和接收机上使用小管子或护罩,以最大限度地减少早期检测并改善信号方向性。   多次读数: 读取多个读数,过滤掉过大的数值或计算平均值。   NewPing 库: 考虑使用 NewPing 库,该库专门用于处理这些问题。 4.软件实施: 计时器配置: 不正确的计时器预分频器或时钟设置会影响脉冲宽度测量的精度。   Pings 之间的延迟: 传感器有一个最小间隔时间,超过这个时间会导致读数不准确。   解决方案: 检查定时器设置: 检查定时器的预分频器和时钟配置,确保时间测量准确。   适当的延迟:确保 ping 之间有足够的延迟,以使传感器能够 RESET 和稳定。     此致  
查看全文
Unexpected VC_OV Events Below Threshold during Application Timed Measurement Hi,      I'm using the Application Timed Measurement mode with a sample rate of 24, and have set the over-voltage (OV) threshold at 4250 mV. However, during charging when the battery reaches around 80% SoC (approximately 4077 mV), some cells occasionally trigger VC_OV events. After manual measurement, the actual cell voltages do not exceed the OV threshold. What could cause this kind of behavior, where VC_OV events occur even though the measured voltage is clearly below the threshold? Thanks for any help. Mark 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement Hi Mark, please download MC33774A safety manual and please refer to the sections 10., 11. in it. There is a description of FTME (Fault Tolerant Measurement Error) for such cases as yours. Please download the safety manual from the MC33774A product page, under the Secure section. With Best Regards, Jozef 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement Hi Jozef, Thank you very much for your continued support. The hardware design has already been reviewed and confirmed by our local FAE. Since the MC33774A is already fully integrated into the battery module, we are unfortunately not able to directly probe the individual cell voltages with an oscilloscope. We also suspected that insufficient control of the charging current might be causing transient spikes, which in turn lead to sporadic over-voltage (OV) events. Your professional explanation has further confirmed our assumption that these events are likely caused by transient behavior. As a follow-up, we would like to ask: Are there any software-based methods you would recommend to help identify OV events caused specifically by transient spikes? Thank you again for your valuable assistance. best regards, Mark 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement Hi Mark, thank you for the part number and the schematic. However in the schematic I don't see if you have used recommended components between the Cells and CTx CBx pins. For these recommended components please refer to the section 11.1.1.2 in the MC33774A full datasheet.  Please download the MC33774A full datasheet from the MC33774A product page, under the Secure section.  During fast charging, voltage transients can occur that briefly exceed the OV threshold. These spikes may not be captured by manual measurements but can be detected by the MC33774A. Please measure the voltages to individual cells triggering the OV with an oscilloscope, to check if there are any transient voltages. Please make sure, that balancing is not on during charging/measurement. During balancing the measured voltage is not guaranteed.  With Best Regards, Jozef 回复: Unexpected VC_OV Events Below Threshold during Application Timed Measurement Hi Jozef,    Thank you for your response.    Apologies for not providing sufficient information earlier.     we using MC33774ATP1AE. and here is the part Schematic.    Thanks for any help. best regards, Mark Re: Unexpected VC_OV Events Below Threshold during Application Timed Measurement Hi Mark, please share the full part number of the component you are using. Please share your schematic with voltage levels and part values. With Best Regards, Jozef
查看全文
Jlink 调试 imx93 失败 使用 JLink 调试 i.MX93 的 M33 内核时,设置断点后,似乎只有 PC 指针停止,而各种内部计数器继续计数,导致无法正常调试。有什么办法可以解决这个问题? Re: Jlink fails to debug imx93 是的,我在单个 M33 内核上试过,系统计数器不能像以前那样停止。我找不到原因。 顺祝商祺! Re: Jlink fails to debug imx93 你好 @leoX 我的测试基于单个 M33 和 Jlink,你用 remoteproc 启动 M33 了吗? 最诚挚的问候, 志明 Re: Jlink fails to debug imx93 谢谢您的答复!我正在读取一个任务中的 tstmr,以计算该任务的执行周期,但如果我添加一个断点,计算出的周期就会增加,这表明当我添加一个断点时,系统计数器会继续计数。此外,我正在通过 A 核心启动 M 核心。设置 M33 的下载模式是否有用? 顺祝商祺! Re: Jlink fails to debug imx93 你好, ,能否分享各种内部计数器 的截图? 您是否设置了 m33 下载模式? 最佳问候, Zhiming
查看全文
RT1176 SFPD QSPI IS25LP064D-JKLE 我正在尝试使用与评估板相同的方式刷新实现 FlexSPI1 的自定义 RT1176 板,唯一的不同是我提供了 3.3V 的闪存 VCC 来支持我正在尝试使用的 IS25LP064D-JKLE。我附上了我的 flexspi_nor_config.c。和内存设置。我使用的是默认的 flexspi_nor_polling_transfer_cm7。当我在启用 “将应用程序链接到 RAM” 的情况下进行调试时,它返回 " 程序数据-读出的数据值不正确!"(第 125 行)。我还没弄清楚我的配置出了什么问题。我目前正在使用 MCU Link MR,但也可以访问 Jlink。我的自定义板有 DIP 开关,我将启动模式 1 设置为 1,启动模式 0 设置为 0。 Re: RT1176 SFPD QSPI IS25LP064D-JKLE 你好@AnteoJ、 感谢您对 NXP MIMXRT 系列的关注! RT1020-EVK 使用的闪存恰好是 ISSI_IS25LP064A,因此您可以在其 SDK .NET 中找到相应的 flexspi_nor_config.c。请先检查这一点。 此外,在更换闪光灯时,你可以先通过高效密码学标准(SEC)/MCUBootUtility中内置模板的测试,这些模板能够保护你自己的闪光灯免受LUT问题的影响。 致以最诚挚的问候, Gavin Re: RT1176 SFPD QSPI IS25LP064D-JKLE 尽管我在启动调试时仍会遇到 IMPRECISERR 和 UNDEFINSTR,但我已根据数据手册对特定闪存的值进行了检查和替换。我不确定是否还有其他参数需要调整。以下是我目前的代码:/* * 版权所有 2018-2022 NXP * 保留所有权利。 * * SPDX-License-Identifier:BSD-3-Clause */ #include"evkbmimxrt1170_flexspi_nor_config.h" /* 元器件 ID 定义,由工具使用。*/ #ifndef FSL_COMPONENT_ID #define FSL_COMPONENT_ID"platform.drivers.xip_board" #endif /******************************************************************************* * 代码 ******************************************************************************/ #if defined(XIP_BOOT_HEADER_ENABLE)&& (XIP_BOOT_HEADER_ENABLE == 1) #if defined(__CC_ARM) || defined(__ARMCC_VERSION) || defined(__GNUC__) __attribute__ ((section(".boot_hdr.conf")、used)) #elif defined(__ICCARM__) #pragma location =".boot_hdr.conf" #endif #define FLASH_DUMMY_CYCLES 0x03 #define FLASH_DUMMY_VALUE 0x03 const flexspi_nor_config_t qspiflash_config = { .memConfig= { .tag= FLEXSPI_CFG_BLK_TAG, .version= FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally、 .csHoldTime= 3u, .csSetupTime= 3u, // 启用 DDR 模式、可添加字、安全配置、差分时钟 .controllerMiscOption= 0x10, .deviceType= kFlexSpiDeviceType_SerialNOR, .sflashPadType= kSerialFlash_4Pads, .serialClkFreq= kFlexSpiSerialClk_60MHz, .sflashA1Size= 8u * 1024u * 1024u, /* 启用闪存配置功能 */ .configCmdEnable= 1u, .configModeType[0]= kDeviceConfigCmdType_Generic, /* 设置配置命令序列 */ .configCmdSeqs[0]= { .seqNum= 1, .seqId= 12, .保留= 0, }, /* 为闪存中的读取寄存器准备设置值 */ .configCmdArgs[0].= (FLASH_DUMMY_VALUE<< 4), .lookupTable= { // 读取 LUT [0] = FLEXSPI_LUT_SEQ(CMD_SDR,FLEXSPI_1PAD,0xEB,RADDR_SDR,FLEXSPI_4PAD,0x20), [1] = FLEXSPI_LUT_SEQ(DUMMY_SDR,FLEXSPI_4PAD、FLASH_DUMMY_CYCLES, READ_SDR, FLEXSPI_4PAD, 0x04), // 读取状态 LUT [4 * 1 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR、FLEXSPI_1PAD, 0x04), // Write Enable LUTs [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x0)、 // 擦除扇区 LUT [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR,FLEXSPI_1PAD,0x20,RADDR_SDR,FLEXSPI_1PAD,0x18), // 擦除块 LUT [4 * 8 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR、FLEXSPI_1PAD, 0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18), // Pape Program LUTs [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD、0x02, RADDR_SDR, FLEXSPI_1PAD, 0x18), [4 * 9 + 1] = FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04, STOP, FLEXSPI_1PAD, 0x0)、 // 擦除芯片 LUT [4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60, STOP, FLEXSPI_1PAD, 0x0), // 设置读寄存器 LUT [4 * 12 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR、FLEXSPI_1PAD, 0xC0, WRITE_SDR, FLEXSPI_1PAD, 0x01), [4 * 12 + 1] = FLEXSPI_LUT_SEQ(STOP, FLEXSPI_1PAD, 0x00, 0, 0), }, }, .页面大小= 256u, .sectorSize= 4u * 1024u, .ipcmdSerialClkFreq= 0x1, .blockSize= 64u * 1024u, .isUniformBlockSize= false, }; #endif /* XIP_BOOT_HEADER_ENABLE */
查看全文
RT1176 SFPD QSPI IS25LP064D-JKLE I am attempting to flash a custom RT1176 board that implements FlexSPI1 in the same manner as the eval board, except I have supplied flash VCC with 3.3V to support the IS25LP064D-JKLE I am trying to use. I have attached my flexspi_nor_config.c and memory setup. I am using the default flexspi_nor_polling_transfer_cm7. When I debug with Link Application to RAM Enabled, it returns "Program data - read out data value incorrect !" (line 125). I have yet to figure out what the issue is in my configuration. I am currently using an MCU Link MR, but also have access to a Jlink. My custom board has DIP Switches, and I have bootmode 1 set to 1 and bootmode 0 set to 0. Re: RT1176 SFPD QSPI IS25LP064D-JKLE Hi @AnteoJ , Thanks for your interest in NXP MIMXRT series! The flash used by the RT1020-EVK happens to be ISSI_IS25LP064A, so you can find the corresponding flexspi_nor_config.c in its SDK . Please check this first. Also, when replacing the flash you can first pass the tests of the built-in templates in SEC/MCUBootUtility, which are able to shield your own flash from LUT issues. Best regards, Gavin Re: RT1176 SFPD QSPI IS25LP064D-JKLE I have gone through and replaced values for my specific flash according to the datasheet although I still run into a IMPRECISERR and UNDEFINSTR when I start up debug. I am not sure if there are additional parameters that need to be adjusted. Here is my code so far: /* * Copyright 2018-2022 NXP * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include "evkbmimxrt1170_flexspi_nor_config.h" /* Component ID definition, used by tools. */ #ifndef FSL_COMPONENT_ID #define FSL_COMPONENT_ID "platform.drivers.xip_board" #endif /******************************************************************************* * Code ******************************************************************************/ #if defined(XIP_BOOT_HEADER_ENABLE) && (XIP_BOOT_HEADER_ENABLE == 1) #if defined(__CC_ARM) || defined(__ARMCC_VERSION) || defined(__GNUC__) __attribute__((section(".boot_hdr.conf"), used)) #elif defined(__ICCARM__) #pragma location = ".boot_hdr.conf" #endif #define FLASH_DUMMY_CYCLES 0x03 #define FLASH_DUMMY_VALUE 0x03 const flexspi_nor_config_t qspiflash_config = { .memConfig = { .tag = FLEXSPI_CFG_BLK_TAG, .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 3u, .csSetupTime = 3u, // Enable DDR mode, Wordaddassable, Safe configuration, Differential clock .controllerMiscOption = 0x10, .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_4Pads, .serialClkFreq = kFlexSpiSerialClk_60MHz, .sflashA1Size = 8u * 1024u * 1024u, /* Enable flash configuration feature */ .configCmdEnable = 1u, .configModeType[0] = kDeviceConfigCmdType_Generic, /* Set configuration command sequences */ .configCmdSeqs[0] = { .seqNum = 1, .seqId = 12, .reserved = 0, }, /* Prepare setting value for Read Register in flash */ .configCmdArgs[0] = (FLASH_DUMMY_VALUE << 4), .lookupTable = { // Read LUTs [0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x20), [1] = FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, FLASH_DUMMY_CYCLES, READ_SDR, FLEXSPI_4PAD, 0x04), // Read Status LUTs [4 * 1 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x04), // Write Enable LUTs [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x0), // Erase Sector LUTs [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18), // Erase Block LUTs [4 * 8 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18), // Pape Program LUTs [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02, RADDR_SDR, FLEXSPI_1PAD, 0x18), [4 * 9 + 1] = FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04, STOP, FLEXSPI_1PAD, 0x0), // Erase Chip LUTs [4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60, STOP, FLEXSPI_1PAD, 0x0), // Set Read Register LUTs [4 * 12 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xC0, WRITE_SDR, FLEXSPI_1PAD, 0x01), [4 * 12 + 1] = FLEXSPI_LUT_SEQ(STOP, FLEXSPI_1PAD, 0x00, 0, 0, 0), }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .ipcmdSerialClkFreq = 0x1, .blockSize = 64u * 1024u, .isUniformBlockSize = false, }; #endif /* XIP_BOOT_HEADER_ENABLE */
查看全文