Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
i.MX Android Debug Tips for Power Management by b47504 Overview This document is intended to introduce debug tips about i.MX power management based on i.MX Android software. The following topics are involved in this document: How to debug suspend/resume issues How to do power optimization How to debug suspend/resume issues General method: Capture more PM  debug message Enable PM debug system to get more info about PM in kernel and debug interface Power management options  ---> [*] Power Management Debug Support                                     [*]   Extra PM attributes in sysfs for low-level debugging/testing Enable wakelock debug_mask to capture more message about wakelock root@android:/ # echo 15 > /sys/module/wakelock/parameters/debug_mask root@android:/ # echo 15 > /sys/module/userwakelock/parameters/debug_mask Enable earlysuspend debug_mask to capture more message about early suspend and late resume. root@sabresd_6dq:/ # echo 15 > /sys/module/earlysuspend/parameters/debug_mask Add no_console_suspend=1 to the boot option for kernel This makes the system print more useful info before entry in suspend Eg: --- a/sabresd_6dq/BoardConfig.mk +++ b/sabresd_6dq/BoardConfig.mk -BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale +BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale no_console_suspend=1 System cannot enter suspend mode Check below setting items have been disabled: §  Whether the usb cable has been removed(usb gadget will hold a wake lock) §  Setting->Display->Sleep, check whether the inactivity timeout period setting is longer than your expected time. §  Setting->System->Developer options->stay awake(stay awake not be set), check whether the option is disabled Check if all wake locks have been released(You can see which wake lock is held, and then debug into the specific module): root@sabresd_6dq:/ # cat /sys/power/wake_lock System could not resume from suspend/System crash when resume or suspend Check the PMIC_STBY_REQ signal. System use PMIC_STBY_REQ signal to notify power management IC to change voltage from standby voltage to functional voltage and vice versa. In general, pmic_stby_req pin is connected to pmic standby pin. So measure the pin to check whether the  de-assert signal is triggered. If the signal is not triggered, we may consider whether wake-up sources are correctly setup. If the signal is triggered, we may double-check whether the pmic supply power normally. And not limited to the two points, we should also double-check everything we doubt according to the system log and hardware measured waves.  Using Trace32 or ICE to locate the problem. Please view trace32 website to get more details. Track from mx6_suspend_enter in arch/arm/mach-mx6 .                Track "state" value and try to map to different the low power mode via function mxc_cpu_lp_set.                Check "mx6_suspend.S" which conduct the detailed operations in suspend: "MEM" is mapped to "dormant" mode. So goto "dormant" symbol and try to dump different operations to narrow down suspend/resume failure If this failure maybe related to DDR operation, try to dummy DDR IO relative low power operation. Using ram console to dump kernel log after reboot. Ram console will keep one kernel log copy into one certain memory space. You can use the following command to check last time kernel log, if memory power was not cut off during the reboot process. Eg(if it is the first time boot, you cannot find the /proc/last_kmsg file): root@sabresd_6dq:/ # cat /proc/last_kmsg Kernel resume back from suspend but android not This is usually introduced by the wrong key layout file Use getevent/sendevent tool to get power key scan code #getevent  Correct the Keylayout file    system/usr/keylayout/****.kl Correct the scandcode with your power key report value to Match the POWE key Suspend/Resume consume too much time: We can print the specific module name and time consume details, if the module's suspend/resume time consume more than the threshold parameter by read/write /sys/power/device_suspend_time_threshold file. By default, the parameter is setup to 0, via disabled the function. We can enable it by the following command: Eg: root@android:/ # echo 10  > /sys/power/device_suspend_time_threshold This command means that if the module's suspend/resume time consume more than 10 us, the system will print the module's detail out. If you want to know the more details how to implement it on kernel, please check kernel/power/main.c Notes: Can use the shell command to enter different system level low power modes for debug (For more details: you can check Linux_6DQ_RM.pdf): #echo mem > /sys/power/state #echo standby > /sys/power/state How to do power optimization Runtime Mode Check whether CPUFreq and  Bus_freq scale are enabled root@android:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor root@android:/ # cat /sys/devices/platform/imx_busfreq.0/enable More details about this, please refer to "Documentation/cpu-freq/ governors.txt” . Check whether the system bus is working on your expected frequency. For MX6Q: root@android:/ #  cat /sys/kernel/debug/clock/osc_clk/pll2_528_bus_main_clk/periph_clk/mmdc_ch0_axi_clk/rate Check CPU Loading and Interrupt(cat /proc/interrupts)                root@android:/ #  cat /proc/interrupts                Through this command you can check whether some module will trigger interrupt frequently.  And consider that whether we have some chances to reduce the interrupt count. Check clock tree carefully to see which clocks are not gated off  but no any modules need them. root@android:/ # powerdebug -d -c Reduce GPU frequency.GPU also offered interface to modify the frequency. According to your own product, you can reduce the gpu frequency. Default gpu3DMaxClock is set to 64 in init.rc file, we can tuning a suitable value by ourselves. diff --git a/imx6/etc/init.rc b/imx6/etc/init.rc index 8c420b5..eb11ffe 100755 --- a/imx6/etc/init.rc +++ b/imx6/etc/init.rc @@ -397,6 +397,9 @@ on boot #  Set GPU 3D minimum clock to 3/64     write /sys/module/galcore/parameters/gpu3DMinClock 3 +#  Set GPU 3D maximum clock to 64/64 +   write /sys/module/galcore/parameters/gpu3DMaxClock 64 + Suspend Mode Check whether all devices enter suspend mode or low power mode: Add debug message into devices drivers to check whether all devices driver suspend interface are called Use oscilloscope to measure the related signal (depend on specific device datasheet and custom hw design) to check whether every device enter low power mode Remove devices from the board(or rmmod the device driver) , and do hardware rework to exclude some hardware module if needed. Then we can figure out which module introduced the high consumption, and debug into the specific module. Add debug message in device drivers which may lead high power consumption, catch the waveform from these modules which may impact the high power consumption Check whether DDR enter in self-refresh mode(Please check the DDR datasheet to figure out which pin indicate self-refresh state, and check it with oscilloscope) Config GPIO PADs as output zero or input mode (depending to HW design) Cut off LDOs/DCDCs which no modules need (depending to HW design) Check all PLLs will cut off, just 32KHZ sleep clock living Android i.MX6_All Re: i.MX Android Debug Tips for Power Management Yes ~ I also want to know Thanks. Re: i.MX Android Debug Tips for Power Management Hi,Yuan Zhao   Could you update these tips for Android 5.0+?   Because some tips cannot suitable for it. For example, I cannot find the /proc/wakelocks, the content of wakelock.c has changed. Thank you !
View full article
i.MX プラットフォーム用のWiFiドライバー <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> embWiSe Technologies(Embedded Wireless Systems Engineeringの頭字語)は、さまざまなWiFiチップセット用の完全な組み込みWiFiドライバーを提供します。embWiSeは、フリースケールの i.MX コミュニティの一員であることを嬉しく思っており、すべての i.MX プラットフォームでWiFiドライバのサポートを提供することに全力で取り組んでいます。embWiSeのWiFiドライバソフトウェアソリューションは、エンジニアリングのリードタイムと市場投入までの時間の問題を軽減し、デバイス設計者のTCOを削減します。 embWiSeは、スマートフォン、フィーチャーフォン、プリンター、DSC、さまざまなアプリケーションや業種のハンドヘルドデバイスなど、世界中のいくつかのモバイル、CE、およびその他の接続デバイスにデザインインを持っています。 具体的には、embWiSeはWinCE6.0でSDIO-WiFi + Bluetoothドライバーを提供します。i.MX51、i.MX53、およびi.MX6プラットフォーム上のWEC7およびWEC2013オペレーティングシステム。WiFiドライバーは、WEC7およびWEC2013のネイティブSDIOスタックおよびセキュリティサプリカントと統合されています。embWiSeは、ネイティブBTスタックと統合されたSDIOおよびUARTインターフェースを介したHCI Bluetoothドライバーも提供します。 さらに、embWiSeは、ThreadX、Nucleus Plus、QNX、uC/OS、uITRONなどの他の組み込みOSプラットフォーム上でSDIO-WiFiドライバーを提供しています。embWiSeは、カスタムハードウェアプラットフォーム上でWiFiドライバーを統合、テスト、検証するための付加価値のあるエンジニアリングサービスも提供しています。 詳細については、 http://www.embwise.com にアクセスするか、 [email protected] に連絡して 詳細を確認してください。
View full article
彼らはここにいます!ARM Cortex-M4コアをベースとするフリースケールKinetisマイクロコントローラ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> フリースケールのジェフ・ボックが、ARM Cortex-M4コアをベースとするKinetisの32ビット・マイクロコントローラの 優れた 機能を紹介します
View full article
Kinetis K53 Medical Teaching Lab from the University of Brasov The Technical University in Brasov (Romania) has set up a Medical Teaching lab featuring the Freescale Tower Kit K53 with Oximeter MED-SPO2 and 2 electrode system EKG MED-EKG. Find below the material associated to this lab led by Prof. Sorin-Aurel Moraru from the Faculty of Engineering. He can be contacted at [email protected] The course is in Romanian and include an overview of the hardware and exercises
View full article
视频 - i.MX53 快速启动板 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Marsha Chang 于 2011 年 4 月 29 日下午 4:56 添加 (在 “我的视频” 中查看)
View full article
Video - qbit II http://www.youtube.com/watch?v=wGkK-yE00Jg&feature=player_embedded   Uploaded by Renato Torres on Jan 20, 2011 No description available. Category: Science & Technology License: Standard YouTube License   General
View full article
ビデオ - i.MX53 クイック スタート ボード入門 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 追加した人 マーシャ・チャン on 2011年3月16日 at 11:16am (マイビデオで視聴)
View full article
视频 - 基于 i.MX53、i.MX51、i.MX27 的 iWave 嵌入式解决方案 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> http://www.youtube.com/watch?feature=player_embedded&v=EBocaGGrkqE   Charbax于2011 年 6 月 20 日上传 http://iwavesystems.com进行基于飞思卡尔的 PCB 设计和软件优化。 类别: 科学技术 执照: 标准 YouTube 许可   概述
View full article
Installing U-Boot on i.MX27ADS First upload the U-Boot firmware using Network (Transferring file over network) or Serial (Transferring file over serial) This is a common serial transfer output: => loady ## Ready for binary (ymodem) download to 0xa0800000 at 115200 bps... CCmode, 1359(SOH)/0(STX)/0(CAN) packets, 9 retries ## Total Size      = 0x0002a388 = 172936 Bytes Unprotect the bootloader flash area: protect off C0000000 C003FFFF Erase the flash blocks: erase C0000000 C003FFFF Copy from RAM to Flash: If firmware has been thansfered over serial: cp.b A0800000 C0000000 2a388 If firmware has been transfered over tftp: cp.b 100000 C0000000 2a388 Installing U-Boot using BDI3000 You can use a BDI2000/3000 to write to the S71WS256 pSRAM: Get this config file. Thanks to the folks at Ultimate Solutions for being such a nice people and writing an almost ready file! Edit the [FLASH] section to this: [FLASH] CHIPTYPE              S29M32X16 CHIPSIZE                0x2000000 BUSWIDTH             16 FILE                        /home/lsantos/work/i.mx27/u-boot/u-boot-v2/uboot.bin ; change to you path FORMAT                 BIN 0xC0000000 ERASE                   0xC0000000 ERASE                   0xC0008000 ERASE                   0xC0018000 ERASE                   0xC0010000 ERASE                   0xC0020000 Don't forget to edit the [HOST] section to your machine's IP address. Telnet to the BDI - CONFIG: loading configuration file passed - CONFIG: loading register definition passed - TARGET: processing reset request - TARGET: BDI asserts TRST and RESET - TARGET: BDI removes TRST - TARGET: Bypass check 0x00000001 => 0x00000002 - TARGET: JTAG exists check passed - Core#0: ID code is 0x07926121 - TARGET: All ICEBreaker access checks passed - TARGET: BDI removes RESET - TARGET: BDI waits for RESET inactive - TARGET: resetting target passed - TARGET: processing target startup .... - TARGET: processing target startup passed Erase the first 128 KiB ADS>erase Erasing flash at 0xc0000000 Erasing flash at 0xc0008000 Erasing flash at 0xc0018000 Erasing flash at 0xc0010000 Erasing flash at 0xc0020000 Erasing flash passed Write the flash ADS>prog Programming /home/lsantos/work/i.mx27/u-boot/u-boot-v2/uboot.bin , please wait .... Programming flash passed Check everything went really well ADS>verify Verifying /home/lsantos/work/i.mx27/u-boot/u-boot-v2/uboot.bin , please wait .... Verifying target memory passed Now you can unplug the BDI and reset the board U-Boot 2.0.0-rc9-00136-gbf725a2-dirty (Jun 17 2009 - 15:45:23)  Board: Freescale i.MX27 ADS cfi_probe: cfi_flash base: 0xc0000000 size: 0x02000000  chip id: [2,882,1,01d] mpll:     265999329 Hz spll:     239999725 Hz arm:      177332886 Hz perclk1:    8866644 Hz perclk2:   17733288 Hz perclk3:   44333221 Hz perclk4:   17733288 Hz clkin26:   26000000 Hz ahb:       44333221 Hz ipg:       22166610 Hz Malloc space: 0xa7b00000 -> 0xa7f00000 (size  4 MB) Stack space : 0xa7af8000 -> 0xa7b00000 (size 32 kB) envfs: wrong magic on /dev/env0 no valid environment found on /dev/env0. Using default environment running /env/bin/init...  Hit any key to stop autoboot:  2  type update_kernel [ ] to update kernel into flash type udate_root [ ] to update rootfs into flash  uboot:/ Of course, this setup works with Redboot, just change the FILE entry at the [FLASH] section or use the prog command: ADS>prog 0xc0000000 /home/lsantos/work/i.mx27/redboot/build/install/bin/redboot.bin BIN Programming /home/lsantos/work/i.mx27/redboot/build/install/bin/redboot.bin , please wait .... Programming flash passed ADS>verify Verifying /home/lsantos/work/i.mx27/redboot/build/install/bin/redboot.bin , please wait .... Verifying target memory passed Rebooting ++... Read from 0x07ee0000-0x07f00000 at 0xc1fe0000: . ... Read from 0x07ed3000-0x07ed4000 at 0xc1fff000: . **Warning** FLASH configuration checksum error or invalid key Use 'fconfig -i' to [re]initialize database PMIC ID: 0x0000009b [Rev: 3.3] Ethernet FEC MAC address: is not set  Board Type: ADS Clock input: 26 MHz Booting from [NOR flash]  PHY ID 22 @ 1 FEC: [ HALF_DUPLEX ] [ disconnected ] [ 10M bps ]: Ethernet eth0: MAC address 00:04:9f:00:af:7a Can't get BOOTP info for device!  RedBoot(tm) bootstrap and debug environment [ROMRAM] Non-certified release, version FSL 200749 - built 19:37:28, Jun 17 2009  Platform: MX27 ADS/EVB (Freescale i.MX27 based) PASS 2.1 [x32 SDR] Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.  RAM: 0x00000000-0x07f00000, [0x00025260-0x07ed1000] available FLASH: 0xc0000000 - 0xc2000000, 256 blocks of 0x00020000 bytes each. RedBoot> i.MX2x
View full article
时钟设置和分配 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 在本视频中,我们将讨论 KL25Z 设备中的时钟分布。将演示使用板载晶体初始化 PLL 的示例。 (在 “我的视频” 中查看) 回复:时钟设置和分配 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 完整的视频教程可在以下网址找到: 《艾利之书 - 微控制器、机器人技术和曲速引擎》 。
View full article
クロックのセットアップと分配 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> このビデオでは、KL25Zデバイスのクロック分配について説明します。オンボードの水晶振動子を使用してPLLを初期化する例を示します。 (マイビデオで視聴) Re: クロックのセットアップと配布 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ビデオ チュートリアルの完全なセットについては、「The Book of Eli - Microcontrollers, robotics and warp drives」をご覧ください。
View full article
P2010/P2020 Clocking Specific FAQs P2010/P2020 H/W spec describes that Max SYSCLK frequency is 100MHz. Generically when user inputs 100MHz clock, actual clock speed become more faster. I think P2010/P2020 has enough margin for faster SYSCLK as long as I use up to 100MHz oscillator. Is my understanding correct? Yes, your understanding is correct. As long as you use 100MHz oscillator it should be fine. QorIQ P2 Devices
View full article
在 ls-5.15.71-2.2.0_distro 中编译内核 在 ls-5.15.71-2.2.0_distro 中编译内核 在LLDPUG_RevL5.15.71-2.2.0中,似乎在进行一些重新配置时 内核、rootfs 应该重新打包以完成更改。 这里将生成内核,无需在 Linux 主机上重新打包 编译内核。
View full article
Wireless FRDM Workshop Below is the pre-work and lab guides for the Wireless FRDM workshop.  The pre-work shows how to install VS Code and the MCUXpresso SDK.  The lab guide for the workshop contains the workshop material. The binaries for the Matter lab are also posted below to be used during the workshop. Please reach out in the comments if you would like to setup an i.MX 91 FRDM board as a Matter controller for the Matter lab.  Thanks!
View full article
7816-4 APDUの達成方法 MIFARE DESFire EV1 は、ISO/IEC に準拠した APDU メッセージ構造をサポートします 7816-4 は、ネイティブ MIFARE DESFire EV1 APDU 形式のオプションのラッピングと さらに、実用的な観点から7816-4コマンドを実装しました。
View full article
Adeneo Embeddedは、i.MX6プラットフォーム用のWindows Embedded Compact 7 BSPにPCIeのサポートを追加 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Adeneo Embeddedは、PCIeのサポートを追加することで、i.MX6プラットフォーム用のすでに豊富な機能を持つWindows Embedded Compact 7(WEC7)BSPを強化します。PCIeのサポートにより、お客様はさまざまなPCIベースの周辺機器を高性能i.MX6プラットフォームに接続できるようになりました。ビデオで示されている例では、PCIeベースのネットワークカードがi.MX6 SABRE liteボードで動作しているのを確認できます。AdeneoのPCIバスおよびコントローラードライバーの実装は、製品品質です。 (マイビデオで視聴)
View full article
Processor Expertとは何ですか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Processor Expertソフトウェアは、フリースケール製半導体製品のソース・コードを生成するソフトウェア・コンポーネントの作成、設定、最適化、移行、配布を行うための開発システムです。 PExの主な機能は次のとおりです。 すべてのピン、レジスタなどをカプセル化する、サポートされているすべてのシリコンに関する広範で包括的なナレッジベース シリコンリソースの競合は設計時にフラグが立てられ、早期修正が可能 シリコンのドキュメントを読むことなく、ペリフェラルドライバを簡単に作成 RTOSとペリフェラルドライバの容易な統合 生成されたドライバーには、サポートされているプロセッサ間で簡単に移行できるクロスプラットフォーム API があります。 ユーザーは、すべての一般的なタスク(シリアル通信、タイマ、ADC、DAC、デジタルI/Oなど)をカバーする 組み込みコンポーネント と呼ばれる幅広い基本的なビルディングブロックを使用して、アプリケーションまたはライブラリを構築します 。これらのコンポーネントはグラフィカル・ユーザー・インターフェースで構成でき、Processor Expertは、プロセッサとその周辺機器の初期化およびランタイム制御ドライバーのCソースコードを生成します。 Processor Expertは、以下のものでご利用いただけます。 マイクロコントローラ用のCodeWarriorと統合 Microcontroller Driver Suiteと呼ばれるスタンドアロンパッケージとして。KinetisおよびColdFire+マイクロコントローラをサポートしています。コンパイラやリンカは含まれておらず、CodeWarrior 以外の他の IDE で使用できます。 Kinetis Design Stuido (KDS) との統合 詳細については、フリースケールのWebサイト http://www.freescale.com/processorexpert を参照してください。
View full article
Configuring USB composite HID mouse + keyboard MCUXpresso Config Tools provide a USB configuration component that allows configuring USB settings in a graphical environment and generates a configuration and sample C code according to the configuration.  This tutorial shows how to create the configuration and sample code for the mouse and keyboard HID USB class for the RT1050 EVKB board and build it using the MCUXpresso IDE.  Note: The i.MX RT1050 EVKB board is used; however, the instructions are applicable in a similar way on other NXP EVK boards.   Prerequisites EVKB-IMXRT1050 board  MCUXpresso IDE (v.11.x)  The SDK package for the board (EVKB-IMRT1050)  must be imported and ready to use into MCUXpresso IDE (in the installed SDKs)  Steps 1. Launch MCUXpresso IDE and click Create a new C/C++ project…:  2. Select the EVKBIMXRT1050 board in the MIMXRT1050 processor folder, click  Next:  3. Specify the project name (for example, Test_USB). In the Middleware section, select USB > USB Device. Then click Finish: 4. Unfold the drop-down menu (down arrow) of the Config tools icon (X) and launch the Peripherals tool: 5. In the Peripherals view of the Peripherals tool, click the USB1 peripheral checkbox, ignore the error for now: 6. When the Add configuration component instance dialog appears, select the USB configuration component, click  OK: 6. The USB configuration component instance is added. As it requires the component for MPU initialization, click the + icon to add it.  Confirm the selection of the MPU utility component in the dialog that appeared. Keep the MPU component in the default setting and close its editor tab. 7. In the USB component settings editor, select the HID Keyboard (bare metal) in the preset drop-down list:   The keyboard interfaces are now added to the Supported interfaces list and pre-configured. 8. To add the mouse interface, click the + in the Supported interfaces section. Select the newly added item and change the Class item to HID.   9. Check that the Use case Preset for the interface #1 is set to 'Mouse':   10. The Problems view shows an error as the clock function is inactive by default. To enable it, right-click on the error and select “Enable USBPHY1 PLL clock”: Note:  Optionally, it's possible to click the Show the problem… and adjust it in the Clocks tool. 11. Click the Update Code button in the main toolbar, a pop-up appears: In the pop-up, confirm the code update by clicking the OK button: Build the application using the Build Command in the Quickstart Panel.   13. Now connect the board to the computer via the USB debug connection. Note: The EVKB-IMXRT1050 board provides multiple USB connectors. For flashing the application, it is it’s necessary to use the debug connection.  Also ensure that the board power is configured properly. There are several other configuration jumpers on the board. So in case the application cannot be flashed or debugged,  follow the user guide of the board. 14. To launch the application in the debugger, click the Debug text located in the bottom-left corner of the IDE.   This launches the debugging and the connected board should be detected. Confirm the selection of the debug probe.   Once the connection is successful, launch the application by clicking the Run button. If the application connects successfully, connect an additional USB cable from the application USB connector to your PC. The generated source code files contain a sample code that moves a mouse cursor in a loop and sends Home and End keys. After the cable is connected and the application runs, the movement of the mouse cursor and the text cursor moves left to right are visible.    
View full article
Adeneo Embedded 的 Andrea 平板电脑多媒体应用桌面 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好,在这里您可以看到 Adeneo Embedded 的演示 Andrea's Tablet 在 Freescale 的 i.MX6 Sabre SDP 平台上运行 Android 操作系统 该视频采用了带有 Open GL 的 Adeneo 嵌入式启动器、视频播放器应用程序、图片查看器应用程序和音频播放器应用程序。 想要更多信息吗? 请访问我们的网站: www.adeneo-embedded.com (在 “我的视频” 中查看)
View full article
KW45 / MCX W71 - Trimming adjust of 32MHz & 32kHz external crystals  Introduction The KW45-EVK & FRDM-MCX W71 include an RSIM (Radio System Integration Module) module with an external 32 MHz crystal oscillator and 32kHz external oscillator. 32MHz clock source reference is mainly intended to supply the Bluetooth LE Radio peripheral, but it can be used as the main clock source of the MCU as well. This oscillator includes a set of programmable capacitors to support crystals with different load capacitance needs. Changing the value of these capacitors can modify the frequency the oscillator provides, that way, the central frequency can be tuned to meet the wireless protocol standards. This configurable capacitance range is from C: 3.74pF to C: 10.67pF and it is configured through the RFMC Register XO_Test field at the CDAC. The KW45 comes preprogrammed with a default load capacitance value (0x1Eh). However, since there is variance in devices due to tolerances and parasite effects, the correct load capacitance should be checked by verifying that the optimal central frequency is attained.  You will need a spectrum analyzer to measure the central frequency. To find the most accurate value for the load capacitance, it is recommended to use the Connectivity Test demo application. 32kHz clock source reference is mainly intended to run in low power when the 32MHz clock is switched off. This 32kHz clock enable to leave the low power mode and enter in Bluetooth LE events. Adjusting 32MHz Frequency Example Program the KW45 /MCX W71 Connectivity Test software on the device. This example can be found in SDK_2_15_000_KW45B41Z-EVK_MR5\boards\kw45b41zevk\wireless_examples\genfsk\connectivity_test folder from your SDK package. Baremetal and FreeRTOS versions are available. In case that KW45-EVK board is being used to perform the test, you should move the 15pF capacitor populated in C3 to C4, to direct the RF signal on the SMA connector.                               3. Connect the board to a serial terminal software. When you start the application,              you will be greeted by the NXP logo screen: Press the enter key to start the test. Then press "1" to select "Continuous tests":        5. Finally, select "6" to start a continuous unmodulated RF test. At this point, you should be able to measure the signal in the spectrum analyzer. You can change the RF channel from 0 to 127 ("q" Ch+ and "w" Ch- keys), which represents the bandwidth from 2.360GHz to 2.487GHz, stepping of 1MHz between two consecutive channels. To demonstrate the trimming procedure, this document will make use of channel 42 (2.402GHz) which corresponds to the Bluetooth LE channel 37. In this case, with the default capacitance value, our oscillator is not exactly placed at the center of the 2.402GHz, instead, it is slightly deflected to 2.40200155 GHz, as depicted in the following figure:       6. The capacitance can be adjusted with the "d" XtalTrim+ and "f" XtalTrim- keys. Increasing the capacitance bank means a lower frequency. In our case, we need to increase the capacitance to decrease the frequency. The nearest frequency of 2.402 GHz was 2.40199940 GHz      7. Once the appropriate XTAL trim value has been found, it can be programmed as default in any Bluetooth LE example, changing the BOARD_32MHZ_XTAL_CDAC_VALUE constant located in the board_platform.h file:   Adjusting 32kHz Frequency Example You could adjust the capacitor bank on the 32kHz oscillator. You need to observe the 32kHz frequency at pin 45 (PTC7) using an spectrum analyzer or a frequency meter. Inserting this below code in the main(void) in your application: Hello_world application in this example. 32kHz frequency is not active by default on pin45(PTC7). You need to configure the OSC32K_RDY at 1 in the CCM32K register Status Register (STATUS) field to observe the 32kHz frequency at pin 45 (PTC7). Configure the CAP_SEL, XTAL_CAP_SEL and EXTAL_CAP_SEL field available in the CCM32K register 32kHz Oscillator Control Register (OSC32K_CTRL). XTAL_CAP_SEL and EXTAL_CAP_SEL values are from 0pF (0x00h) to 30pF (0x0Fh). You could configure those 2 registers in the clock_config.c file. Default values are 8pF for both registers.   Protocol: BLE -> connectivity
View full article