Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
S32K148 locked up S32K148 MCU use J-LINK to brush flash by mistake, then use J-LINK link to get the following error, JLINK unsecured is useless, how to solve it? Connecting ... - Connecting via USB to probe/ programmer device 0 - Probe/ Programmer firmware: J-Link V9 compiled Dec 13 2022 11:14:50 - Probe/ Programmer S/N: 25994751 - Device "S32K148 " selected. - Target interface speed: 50 kHz (Fixed) - VTarget = 3.301V - ConfigTargetSettings() start - ConfigTargetSettings() end - Took 305us - InitTarget() start - SWD selected. Executing JTAG - > SWD switching sequence. - Protection bytes in flash at addr. 0x400 - 0x40F indicate that readout protection is set. For debugger connection the device needs to be unsecured. Note: Unsecuring will trigger a mass erase of the internal flash. - Executing default behavior previously saved in the registry. - Device will be unsecured now. - Timeout while unsecuring device. Erase never stops. - InitTarget() end - Took 2.17s - Found SW-DP with ID 0x2BA01477 - DPv0 detected - CoreSight SoC-400 or earlier - Scanning AP map to find all available APs - AP[2]: Stopped AP scan as end of AP map has been reached - AP[0]: AHB-AP (IDR: 0x24770011, ADDR: 0x00000000) - AP[1]: JTAG-AP (IDR: 0x001C0000, ADDR: 0x01000000) - Iterating through AP map to find AHB-AP to use - AP[0]: Skipped. Could not read CPUID register - AP[1]: Skipped. not an AHB-AP - Attach to CPU failed. Executing connect under reset. Re: S32K148锁死 Hi@dongkuili First of all, there is no guarantee that it will be recovered, because the encrypted segment you wrote the wrong persistence value to may not support mass erase erasure. You can read the document 6. S32K1xx series MCU chip lockup (lockup) phenomenon https://mp.weixin.qq.com/s?__biz=MzI0MDk0ODcxMw== &mid=2247485716 &idx=1 &sn=979631aa2385a4e3c7651ee75ee252b4 &chksm= e9124d92de65c484f1cfec7de451958cfd5cf818c46a4f71a7d3dd8a522af229c5a18aad58ff &scene=21#wechat_redirect Re: S32K148锁死 Thanks for the reply. I read the linked documents and the chip manual carefully, and I still can't recover by mass erase after several attempts. I want to use S32FlashTool_v2.3.4, but it doesn't support S32K148, is there any S32FlashTool that supports S32K148? Re: S32K148锁死 Hi@dongkuili It has nothing to do with what software you are using, follow what the article says and go straight to testing the waveform of the RESET pin to determine if it might be recovered, if not then don't waste your time.
View full article
S32K3XXドライバ構成 S32K3XXシリーズチップの新規構築プロジェクトについてお伺いします。ドライバを使用する際に、各ドライバ(各ドライバタイプはポジション1に対応)の設定インターフェースにある各設定項目(ポジション3に表示)について解説したドキュメントやチュートリアルはありますか?実際のエンジニアリングアプリケーションでは、どのような情報を参考に設定すればよいでしょうか?設定するたびに設定項目名を見て機能を推測し、設定内容を決めています。公式の根拠が不足しているように感じ、それぞれの設定が非常に不確実で根拠がないと感じています。 Re: S32K3XX的drivers配置 こんにちは@Aaron_LL AN13435 の次のセクションでは、さまざまなコンポーネントについて説明します。 さらに、公式 Web サイトには周辺機器の設定トレーニング チュートリアルが多数用意されており、そこから見つけることができます。 https://www.nxp.com/products/S32K3
View full article
S32K388CVB-Q289 Driving PTC21 Dear Team I am using S32K388CVB-Q289, and enabling the FlexCAN_0 along with the TJA1153 CAN0. I am connected a second node on the physical bus for testing porpose. But the FlexCAN_0 gets Ack errors upon transmission When I double check that the TJA1153 transceiver is enabled, I measure pin 5 in J95 But it reads ~2 Volts. And when I change the GPDO85 register between 0 and 1, the voltage read on the pin is not affected. Although I can see that pin is Set high in GPDO85 register, and that the Output driver is enabled in MSCR85 Configuration: Re: S32K388CVB-Q289 Driving PTC21 Hi, to check pin level simply remove J95.5-6 jumper and check MCU (5) and TJA1153 (6) side. Note TJA1153 has VIO connected to VDD_HV_B_PERH (VDD_HV_B 3.3V) using J804, while used MCU pins are on VDD_HV_A (5V) There is no need to drive EN pin, unless user want to switch between TJA1153 modes. Both EN and STB_N are pulled up to VIO by external resistors. STB_N should be driven low by MCU to allow local configuration if device is in Vanilla state. At the end of config TJA1153, STB is put back to Normal mode with EN, STB_N high. If you see message on the bus, but it is not ACKed, most probably it is due to inconsistent CAN bit timing between both nodes. Anyway, ready example for S32K388EVB is posted on  https://community.nxp.com/t5/S32K/Need-MCAL-working-CAN-Configuration-for-S32K388-EVB-bench/m-p/1923345/highlight/true#M38660   BR, Petr Re: S32K388CVB-Q289 Driving PTC21 Thanks for your response. The voltage levels seems now good. EN and nSTB go to high. Still I get Ack errors, with nothing appearing on the bus in my test measurement tool. Is it possible that my transceiver is in Vanilla state, and hence it is not operational till I configure it once? I read the example, but it would be way easier for my current setup to just send the CAN messages from test tool, rather than connecting the transceivers to each other. Can you share with me the initialization sequence, what I should send through CAN for a basic configuration that just send and receive (no security requirements needed)? Re: S32K388CVB-Q289 Driving PTC21 Hi, by default the device is in Vanilla state so must be configured, either from host or remotely. After configuration, the state can be changed, but in examples it is commonly kept in Vanilla state, so init is needed after each power on. If the posted example is working between FlexCAN modules on the board, it should work as well if just single one is connected to your CAN tool. In that example the ID being transmitted is added to the CAN0 transceiver's passlist, other configurations are left as default. You can refer to below example, done in IP level,  for another init sequence. https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K358-FlexCAN-TXRX-ISR-S32DS35-RTD400-500/ta-p/1981987 It expects transceiver in Vanilla state as well and set transceiver's passlist to pass all std and ext ID and do not block any message coming from bus. Finally leaving configuration mode without writing to non-volatile memory nor locking the transceiver (keeping Vanilla). BR, Petr
View full article
異なる DDR サイズに応じて i.MX8MP の予約メモリを調整するにはどうすればよいでしょうか? NXPエキスパートの皆様、こんにちは。 コミュニティ全体を検索しましたが、満足のいく答えは見つかりませんでした。 以下はNXPのLinux 6.12のimx8mp.dtsiの予約メモリノードです。 予約メモリ { #アドレスセル = <2>; #size-cells = <2>; 範囲; /* * optee の使用のために予約されたメモリ。使用しないでください。 * OP-TEE がインストールされている場合は、これが dtb に自動的に追加されます。 * optee@56000000 { * reg = <0 0x56000000 0 0x2000000>; * マップなし; * }; */ /* 連続した割り当てのためのグローバル自動構成領域 */ Linux、cma { compatible = "共有DMAプール"; 再利用可能 サイズ = <0 0x3c000000>; 割り当て範囲 = <0 0x40000000 0 0xC0000000>; linux、cma-デフォルト; }; GPU予約済み: GPU予約済み@100000000 { マップなし; レジスタ = <0x1 0x00000000 0 0x10000000>; }; dsp_reserved: dsp@92400000 { レジスタ = <0 0x92400000 0 0x1000000>; マップなし; }; dsp_reserved_heap: dsp_reserved_heap@93400000 { レジスタ = <0 0x93400000 0 0xef0000>; マップなし; }; dsp_vdev0vring0: vdev0vring0@942f0000 { レジスタ = <0 0x942f0000 0 0x8000>; マップなし; }; dsp_vdev0vring1: vdev0vring1@942f8000 { レジスタ = <0 0x942f8000 0 0x8000>; マップなし; }; dsp_vdev0バッファ: vdev0バッファ@94300000 { compatible = "共有DMAプール"; レジスタ = <0 0x94300000 0 0x100000>; マップなし; }; }; 1.2GB/4GB/8GB DDR サイズの i.MX8MP の reserved-memory/linux,cma/size と reserved-memory/linux,cma/alloc-ranges を調整するにはどうすればよいでしょうか?(サイズ(960MB)は2GB DDRには大きすぎること、割り当て範囲も2GB DDRの範囲外であることは明らかです) 2.linux,cma/size と linux,cma/alloc-ranges を除いて、DDR サイズ 2GB/4GB/8GB に応じて変更する必要がある他のプロパティはありますか? 3. gpu_reserved ノードの reg が 2GB ddr の範囲外であることは明らかですが、どのように変更すればよいでしょうか? NXP の linux6.12 arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts で、reserved-memory/linux,cma/size&alloc-ranges が変更されていることがわかります。 予約メモリ { #アドレスセル = <2>; #size-cells = <2>; 範囲; /* 連続した割り当てのためのグローバル自動構成領域 */ Linux、cma { compatible = "共有DMAプール"; 再利用可能 サイズ = <0 0x38000000>; 割り当て範囲 = <0 0x40000000 0 0xB0000000>; linux、cma-デフォルト; }; }; 4.この変更のきっかけは何ですか?これは DDR サイズの違いによるものでしょうか? また、NXP の Linux 6.12 arch/arm64/boot/dts/freescale/imx8mp-evk-root.dts では、node/reserved-memory がさらに変更されていることにも気付きました。 &{/予約メモリ} { jh_reserved: jh@fdc00000 { マップなし; レジスタ = <0 0xfdc00000 0x0 0x400000>; }; loader_reserved: loader@fdb00000 { マップなし; レジスタ = <0 0xfdb00000 0x0 0x00100000>; }; ivshmem_reserved: ivshmem@fda00000 { マップなし; reg = <0 0xfda00000 0x0 0x00100000>; }; ivshmem2_reserved: ivshmem2@fd900000 { マップなし; reg = <0 0xfd900000 0x0 0x00100000>; }; pci_reserved: pci@fd700000 { マップなし; レジスタ = <0 0xfd700000 0x0 0x00200000>; }; 受刑者予約: 受刑者@c0000000 { マップなし; レジスタ = <0 0xc0000000 0x0 0x3d700000>; }; }; &{/予約メモリ/linux,cma} { サイズ = <0 0x28000000>; 割り当て範囲 = <0 0x40000000 0 0x60000000>; }; 5. 新しく追加されたノード jh_reserved/loader_reserved/ivshmem_reserved/ivshmem2_reserved/pci_reserved/inmate_reserved はどのような状況で使用する必要がありますか? 上記の疑問について詳しく説明してください。 i.MX 8M | i.MX 8M ミニ | i.MX 8M ナノ Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? こんにちは、ホルヘ・カスさん。 ご協力誠にありがとうございます。Quction6についてはまだ疑問があります。 2GB/4GB/8GB DDR を搭載したカスタム imx8mp ボード (6GB DDR を搭載した imx8mpevk ボードに基づく) では、異なる DDR サイズの各ボードごとに個別の u-boot.imx があり、linux6.12 ソース コードの imx8mp-evk.dts から次の ' memory@40000000' ノードを変更せずに保持します。 メモリ@40000000 { device_type = "メモリ"; レジスタ = <0x0 0x40000000 0 0xc0000000>, <0x1 0x00000000 0 0xc0000000>; //3GB+3GB=6GB }; そして、弊社の imx8mp ボードは正常に動作します。また、彼らは一晩のテストに合格することもできます。 以下は 4GB DDR を搭載した imx8mp ボードです。 root@router:/#無料 使用可能な使用済み無料共有バフ/キャッシュの合計 Mem: 3686580 159528 2914044 19536 613008 3458156 // 4GB DDR の場合、合計 3686580 KB を認識するのが妥当です。 スワップ: 0 0 0 root@router:/# /プレスリリース、製品ニュース/MCB2/memtester 3G memtester バージョン 4.3.0 (32 ビット) 著作権 (C) 2001-2012 Charles Cazabon。 GNU General Public License バージョン 2 (のみ) に基づいてライセンスされます。 ページサイズは4096です ページサイズマスクは0xfffff000です 3072MB(3221225472バイト)必要 3072MB (3221225472 バイト) を取得しました。mlock を試行しています...ロックされました。 ループ1: スタックアドレス: テスト3[3326.210063] clean_cache.sh (100707): drop_caches: 1 [ 3326.277139] clean_cache.sh (100707): drop_caches: 2 [ 3326.316299] clean_cache.sh (100707): drop_caches: 3 わかりました ランダム値: OK XOR比較: OK 比較SUB:OK MULを比較: OK DIVを比較: OK 比較OR:OK ANDを比較: OK 順次増分: OK ソリッドビット:OK ブロックシーケンシャル:OK チェッカーボード:OK ビットスプレッド:OK ... // 一晩のテストでは問題は見つかりませんでした。 4GB DDRデバイスのカーネル起動段階のメモリ情報は次のとおりです。 [ 0.000000] マシンモデル: NXP i.MX8MPlus EVKボード [ 0.000000] efi: UEFI が見つかりません。 [ 0.000000] 予約メモリ: 0x00000000c4000000 に CMA メモリプールを作成しました。サイズは 960 MiB です。 [ 0.000000] OF: 予約済みメモリ: 初期化されたノード Linux、cma、互換ID 共有DMAプール [ 0.000000] OF: 予約済みメモリ: 0x00000000c4000000..0x00000000ffffffff (983040 KiB) マップ再利用可能 Linux,cma [ 0.000000] OF: 予約済みメモリ: 0x0000000057c00000..0x0000000057ffffff (4096 KiB) nomap 再利用不可 optee_shm@0x57c00000 [ 0.000000] OF: 予約済みメモリ: 0x0000000056000000..0x0000000057bfffff (28672 KiB) nomap 再利用不可 optee_core@0x56000000 [ 0.000000] OF: 予約済みメモリ: 0x0000000100000000..0x000000010ffffffff (262144 KiB) nomap 再利用不可 gpu_reserved@100000000 [ 0.000000] OF: 予約済みメモリ: 0x0000000092400000..0x00000000933fffff (16384 KiB) nomap 再利用不可 dsp@92400000 [ 0.000000] OF: 予約済みメモリ: 0x0000000093400000..0x00000000942effff (15296 KiB) nomap 再利用不可 dsp_reserved_heap@93400000 [ 0.000000] OF: 予約済みメモリ: 0x00000000942f0000..0x00000000942f7fff (32 KiB) nomap 再利用不可 vdev0vring0@942f0000 [ 0.000000] OF: 予約済みメモリ: 0x00000000942f8000..0x00000000942fffff (32 KiB) nomap 再利用不可 vdev0vring1@942f8000 [ 0.000000] 予約メモリ: 0x0000000094300000 に DMA メモリプールを作成しました。サイズは 1 MiB です。 [ 0.000000] OF: 予約済みメモリ: 初期化されたノード vdev0buffer@94300000、互換性のあるIDは共有DMAプール [ 0.000000] OF: 予約済みメモリ: 0x0000000094300000..0x00000000943fffff (1024 KiB) nomap 再利用不可 vdev0buffer@94300000 [ 0.000000] NUMA: [mem 0x0000000040000000-0x000000013fffffff] でノードを偽装しています [ 0.000000] NODE_DATA(0) 割り当て済み [mem 0x13f84a840-0x13f84d3bf] [ 0.000000] ゾーン範囲: [ 0.000000] DMA [メモリ 0x0000000040000000-0x00000000ffffffff] [ 0.000000] DMA32 空 [ 0.000000] 正常 [メモリ 0x0000000100000000-0x000000013ffffffff] [ 0.000000] 各ノードの移動可能ゾーンの開始 [ 0.000000] 初期メモリノード範囲 [ 0.000000] ノード 0: [メモリ 0x0000000040000000-0x0000000055ffffff] [ 0.000000] ノード 0: [メモリ 0x0000000058000000-0x00000000923fffff] [ 0.000000] ノード 0: [メモリ 0x0000000092400000-0x00000000943fffff] [ 0.000000] ノード 0: [メモリ 0x0000000094400000-0x00000000ffffffff] [ 0.000000] ノード 0: [メモリ 0x0000000100000000-0x000000010fffffff] [ 0.000000] ノード 0: [メモリ 0x0000000110000000-0x000000013ffffffff] [ 0.000000] 初期化メモリ セットアップ ノード 0 [メモリ 0x0000000040000000-0x000000013fffffff] [ 0.000000] ノード0のゾーンDMA: 使用できない範囲に8192ページ 1.実際には 4GB DDR デバイスの memory@40000000 ノードの6GB reg 構成によって発生した不合理なログを特定できますか? 2.SO、カーネルはDTSのmemory@40000000/reg構成のみに基づいてメモリ範囲を計算しているのではなく、U-BootからATAGを介してカーネルに渡される実際の物理メモリサイズと合わせて、包括的にメモリ範囲を決定しているのではないかと推測しています。つまり、2GB/4GB/8GBのメモリ構成ごとに別々のDTBファイルを用意する必要はないのではないかと考えています。この点についてご確認いただけますでしょうか? 改めて感謝申し上げます。 Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? こんにちは、 1. デバイス ツリー内の予約済みメモリ ノードを調整するための具体的なドキュメントはありません。これらの値は DDR サイズとアプリケーションによって異なるためです。唯一の制限は、リファレンス マニュアルのメモリ マップに記載されているように、各モジュールに割り当てられた最大メモリ領域になります。 BSP のデフォルトの CMA サイズは 960 MB CAN が、2GB DDR の場合、960 MB は大きすぎるため、CMA を 256 MB ~ 512 MB 程度に減らすのが一般的です。有効な DDR スペースでの割り当てに重点を置く必要があります。 2. 追加のプロパティを追加する必要はありません。 3. 設計で使用可能なサイズに応じて各ノードを再編成できます。例: gpu_reserved: gpu_reserved@70000000 { no-map; reg = <0 0x70000000 0 0x10000000>; }; 他も同様です。 4. このデバイス ツリーは、ハイパーバイザーの予約済みメモリに使用されます。 5. これらのノードは Jailhouse/PCIe/仮想化に使用されますが、使用しない場合はこれらのノードを省略できます。 詳細については、このドキュメントをCAN参照できます。 i.MX 仮想化ユーザーガイド 6. はい、各 DDR サイズに一致するはずです。 よろしくお願いいたします。 Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? 質問6:(追加 ) メモリ@400000000ノード(arch/arm64/boot/dts/freescale/imx8mp-evk.dts内)のregプロパティはDDR容量(2GB/4GB/8GB)に応じて変更する必要がありますか? メモリ@40000000 { device_type = "メモリ"; レジスタ = <0x0 0x40000000 0 0xc0000000>, <0x1 0x00000000 0 0xc0000000>; }; はいの場合、異なる DDR サイズのカスタム i.MX8MP ボードには個別の DTB ファイルが必要であることを意味しますか? 事前に考えます! Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? こんにちは、ホルヘ・カスさん。 カーネルは U-boot から渡された DDR サイズを使用するので、DTS で memory@40000000/reg を構成する目的は何ですか? Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? こんにちは、 情報ありがとうございます。 1. エラーや警告などの重大なログはなく、カーネルは U-boot から利用可能なメモリ範囲を使用するだけです。 2. カーネルでは U-boot と DTS の両方の構成が使用されます。 デバイス ツリーでは、物理メモリが十分でない場合でも仮想メモリをさらに割り当てることができますが、RAM の使用量が多いとシステムがクラッシュする可能性があります。 よろしくお願いいたします。 Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? こんにちは、 社内チームに確認しました。 U-boot 構成には、使用可能な物理 DDR メモリに関する正しいデータが含まれていますが、DTS 予約メモリ ノードもカーネルに渡されます。あなたのCASE、ノードにさらに仮想メモリを割り当てることができますが、物理予約メモリをすべて使い切ると、使用可能なメモリがないためエラーが発生し、物理アドレスが存在しない、または他のモジュールによって使用される可能性があるためにリソースの問題が発生します。 予約メモリを各ボードに適合させる必要があります。おっしゃるとおり、これは機能しますが、RAM の使用量が多い場合は、エラーやカーネル パニックが発生する可能性があります。 前回の返信を訂正させていただきます。 よろしくお願いいたします。
View full article
使用SHA3验证S32K148固件 寻求帮助以获得对嵌入式网络安全方法的更高层次的理解。 现在我的想法是,当我们的生产固件准备好时,我们会在应用程序二进制文件上生成一个 SHA3 哈希,并将其存储在安全的内存位置。 然后在应用程序启动时,应用程序将在所有应用程序内存上创建另一个哈希(或者我猜是预定义的启动/停止地址)。 某些东西必须比较两个哈希值(不确定 cSEC 模块是否在硬件中执行此操作?)。如果通过,申请就可以继续进行,如果不通过,申请就会被拒绝。 这种理解看起来正确吗? 我的系统没有引导加载程序。 回复:使用SHA3验证S32K148固件 谢谢卢卡斯。 如果您不想永远处于重置状态,您可以根据不可用的密钥做什么?如果有密钥,如何使用它? 密钥最初是如何存储的?有什么方法可以防止黑客覆盖或重新编程整个设备? S32DS 中有一个名为 csec_boot_protection_S32K148 的项目示例。我正在看它,但有点难以理解它是如何工作的。是否有关于这个具体例子的一些文档,或者只有代码本身?
View full article
NFC reader library porting guide for LPC11u37h(Ver 5.12) - Switching the NFC frontend As NFC reader library 5.12 also supports PN5180, switching the NFC frontend from CLRC663 to PN5180 is quite easy based on previous porting. The porting also includes the hardware settings and software modification. Hardware Setup for porting: a) Remove resistors on PNEV5180B to disconnect the onboard lpc1769 from PN5180, following steps on page 16 of https://www.nxp.com/docs/en/application-note/AN11908.pdf  b) Connect LPCXpresso board for LPC11U37 with PNEV5180 as below: Software Modification for porting: 1. Make a copy of Board_Lpc11u37Rc663.h , and change its name to "Board_Lpc11u37Pn5180.h", and import it into the DAL/boards folder. 2.Change the source code in the header file as below: 3. Add two more pins' definition and configuration for BUSY and DWL pins of PN5180, and new configuration for reset pin. and modify the reset logic: 4.Change the IRQ interrupt trigger type to rising edge. 5.Include this header file in BoardSelection.h 6.Add this new configuration in ph_NxpBuild_App.h 7.Add this new configuration in phApp_Init.h 8.Add this new configuration in ph_NxpBuild_Platform.h 9.Add this new configuration in Settings. 10.Building result: Testing result: NFC Frontend Solutions NFC Reader Library Re: NFC reader library porting guide for LPC11u37h(Ver 5.12) - Switching the NFC frontend so far, just NFC Reader Library v4.040.05 R2 supports PNEV512B, but the main problem is this version just support LPCopen library, while KL17 is supported by SDK, so you have to refer to NFC reader library which support Kinetis as well. Re: NFC reader library porting guide for LPC11u37h(Ver 5.12) - Switching the NFC frontend Hi Mr. Kan Li, first of all congrats and thanks you for your post. I write a comment here because I'm having problems including the library in my project, how can I do it for a PN512 chip as frontend and a KL17 as MCU. Also I'm using MCUXpresso v10.2.1. Kind regards, JC.
View full article
SynGas OBD 节油器是否合法?真实的深度 SynGas 评论 2026 SynGas 评论:SynGas OBD Fuel Saver 是否合法?这是我在亲自测试之前的第一个问题。2026 年的油价依然居高不下,很多驾驶员都在寻找提高燃油效率的现实方法,而不需要昂贵的汽车改装或复杂的改装系统。 SynGas是一款简单的即插即用设备,可连接到车辆的OBD2端口,并声称通过根据实际驾驶习惯使用汽车的ECU来优化燃油消耗。它的有趣之处在于,它并不承诺立竿见影的神奇效果。取而代之的是,该设备在最初的 150 英里内会经历一个学习阶段,以便更好地了解加速、制动和整体驾驶模式,然后才能更有效地调整燃油优化。 点击此处查看 SynGas 的最新详情和官方信息 2026 年,节油技术已成为一个热门话题,因为人们正在积极寻找经济实惠的方法来降低交通成本。SynGas通过提供即插即用的方法来直接利用这一趋势,而不是昂贵的ECU调整或持续购买燃料添加剂。 那么,SynGas OBD 节油器是否合法? 根据研究、用户反馈和500英里后的真实驾驶观察,它似乎是真正的OBD2燃料优化设备,而不是另一个随机的互联网花招。然而,现实的期望很重要。这并不神奇,每辆车或每位驾驶员的结果也不尽相同。最大的价值似乎来自于长期的日常使用,尤其是对于通勤者和长时间在路上行驶的驾驶员来说。 点击此处查看 SynGas OBD 节油器的工作原理和当前供应情况:     Re: Is SynGas OBD Fuel Saver Legit? An Honest Depth SynGas Reviews 2026 您的问题似乎与恩智浦 QorIQ 系列(数字网络)处理器无关。 请在正确的社区区块中提交您的问题。
View full article
imx8ulp 功能域间外设数据共享 你好 我正在尝试了解i.MX 8ULP上的外设和跨功能域数据共享,尤其是在一个功能域处于低功耗状态时。 从参考手册中的图 6(i.MX 8ULP 架构图)中,我了解哪些外设与实时域 (RTD) 和应用域 (APD) 相关。不过,我想确认一下在以下情况下哪些是可能的,哪些是不可能的: 1) 在 APD 低功耗状态下,RTD 访问 APD 外设 如果 APD 处于非常低的功耗模式(例如,挂起到 RAM 或其他低功耗状态),是否支持 RTD 从 APD 自有外设访问数据? 如果可以,建议采用什么方法(共享内存、DMA 等)? 是否存在电源模式限制,即由于时钟/电源受限而无法访问 APD 外围设备? 同样,反过来也是可能的: 2) RTD 处于低功耗时,APD 可访问 RTD 外围设备 当 RTD 处于最低/低功耗状态时,APD 能否访问 RTD 所有外设的数据?如果是,建议采用什么方法? 3) RTD 和 DSP 功能域之间的外围设备/数据共享(在 RTD 内) 我们也很好奇这是如何适用于 RTD 中的 DSP 功能域的: RTD 和 DSP 之间的外设/数据共享处理方式是否与 RTD↔APD 共享类似,还是因为 DSP 位于 RTD 内部而有所不同? 在图 6 中,我们注意到从 DSP 功能域横杆到 RTD 横杆(有一条线表示连接)的连接上似乎缺少了 Sx 标签。这是文档错误吗? 该图似乎暗示数据只能在 RTD → DSP 之间流动,而不是在 DSP → RTD 之间流动,这似乎不是故意的。您能确认正确的访问方向吗? 4) APD 访问 DSP 功能域数据 最后,APD 如何访问 DSP 功能域生成的数据? APD 是通过横梁链(APD → RTD → DSP)访问 DSP 资源,还是有更直接/标准的机制? 谢谢! i.MX8ULP Re: imx8ulp peripheral data sharing between domains 你好@ meketok 希望你一切都好。 这个问题问得好。 你可以从 U-启动 看看 imx8ulp.dtsi ,看看通过 Per_Bridge1 可以访问该外围设备。 但在 Linux 环境中不建议这样做,因为通过桥接器从 APD(Cortex A)访问 M33 外设会产生"侧信道。"如果 Cortex A 崩溃,它可能会挂起 M33 的总线,从而违背硬件隔离的目的。 顺祝商祺! 萨拉斯 Re: imx8ulp peripheral data sharing between domains 大家好, ,这的确是一个有趣的话题。 1) 是否可以使用 rpmsg 驱动程序?它有哪些限制(即带宽、延迟)? 2) 支持此功能需要在 M33 上运行哪些确切的 M33 固件? 至少 i.MX 8ULP EVK 使用 I2C0 和 I2C1(与 RTD 功能域相关的总线)与传感器和其他外围设备通信。 Re: imx8ulp peripheral data sharing between domains 你好@Spal_13 希望你一切都好。 实际上,这些功能域有自己的外围设备,这些外围设备不是共享的。 请看参考手册的图 6. i.MX 8ULP 架构图: 您可以看到无法从非所有者的功能域访问外围设备。 以 APD 为参考: 您可以看到 APD 可以访问的 GPIO 包括 GPIOE、GPIOF 和 GPIOD(GPIOD 通过 LPAVD)。 您可以在imx8ulp.dtsi 中确认这一点: 顺祝商祺! 萨拉斯 Re: imx8ulp peripheral data sharing between domains @Manuel_Salas 你能解释一下你向 @Spal_13 展示的连接图中各个功能域的紫色 AXI 总线吗? 您能解释一下为什么 A35 内存映射中会出现 RTD 外设桥 0 和外设桥 1 吗? 您能解释一下为什么 APD 外设桥 3 和外设桥 4 会出现在 M33 内存映射中吗? 表 2. A35 系统内存图 表 5. CM33 内存映射 Re: imx8ulp peripheral data sharing between domains @Manuel_Salas 能否请您解释一下这里的代码? u-boot 在 AP 功能域中运行并访问 RTD 功能域 i2c0。 端口(iomux)和 i2c0 模块。为什么? uboot-imx/板/freescale/imx8ulp_evk/imx8ulp_evk.c 位于 lf-6.12.3-1.0.0 · nxp-imx/uboot-imx · GitHub #define I2C_PAD_CTRL (PAD_CTL_ODE) static const iomux_cfg_t lpi2c0_pads[] = { IMX8ULP_PAD_PTA8__LPI2C0_SCL | MUX_PAD_CTRL(I2C_PAD_CTRL), IMX8ULP_PAD_PTA9__LPI2C0_SDA | MUX_PAD_CTRL(I2C_PAD_CTRL), }; #define TPM_PAD_CTRL (PAD_CTL_DSE) static const iomux_cfg_t tpm0_pads[] = { IMX8ULP_PAD_PTA3__TPM0_CH2 | MUX_PAD_CTRL(TPM_PAD_CTRL), }; void mipi_dsi_mux_panel(void) { int ret; struct gpio_desc desc; /* It is temp solution to directly access i2c, need change to rpmsg later */ /* enable lpi2c0 clock and iomux */ imx8ulp_iomux_setup_multiple_pads(lpi2c0_pads, ARRAY_SIZE(lpi2c0_pads)); writel(0xD2000000, 0x28091060);    Re: imx8ulp peripheral data sharing between domains 我对这个问题也非常感兴趣。 1.@Spal_13的问题都与芯片有关,包括各种可能情况的问题。 2。恩智浦的电路板支持包 Linux只是可以在iMX8ULP芯片上运行的众多场景之一。恩智浦的软件设计就是这样。只是恩智浦的电路板支持包 Linux不这样做。只是恩智浦电路板支持包 Linux 的应用场景不涉及这一点。你无法根据当前的 BSP 场景来解释芯片的功能。 3.你对图 6(即 MX 8ULP 架构图)的理解与@meketok完全相反。meketok 的问题直接指向了相反的答案。坦率地说,我目前认为 meketok 是对的,而你错了。 4.请逐一回答@meketok的问题。 Re: imx8ulp peripheral data sharing between domains 你好,@Manuel_Salas、 基本 8ULP 架构假定两个内核可以协同使用,以实现最佳功效。 例如,APD 可能会进入睡眠/掉电模式,而 RTD 保持活动状态,从传感器采集数据,然后将其独立保存到缓冲区。只有在检测到用户干预(触摸、按钮、运动)时,APD 才会激活。 但是,当你说M33总线可能会被挂起时,就会出现严重的限制。那我们为什么需要这个 M33 核心呢? 如果可能存在这种挂起的情况,那么我们大家(恩智浦和社区)应共同研究解决方法,并且必须清楚地描述"危险的" 场景。 此外,imx8ulp EVK(假设黄金样本)演示了与 APD 的 RTD 连接外围设备的交互式工作: 1) 我们可以访问 I2C0 (RTD) 总线设备: root@imx8ulpevk:~# i2cget -f -y 0 0x60 0x00 root@imx8ulpevk:~# i2cget -f -y 0 0x6c 0xc1 root@imx8ulpevk:~# i2cget -f -y 0 0x6c 2 0x61 2)与 DTS 相对应: &i2c_rpbus_0 { #address-cells =<1> ; #size-cells =<0> ; status ="okay" ;   mpl3115@60 { // 高度计 兼容 ="FSL,MPL3115" ; reg =<0x60> ; };   ite_bridge: it6161@6c { // MIPI 转 HDMI 兼容 ="ite,it6161" ; reg =<0x6c> ;          }; };   3)我们还可以看到按下与 RTD 相连的按钮 SW7/8 (PTB13/12) 所产生的事件:   root@imx8ulpevk:~# evtest /dev/input/event0 输入驱动程序版本为 1.0.1 输入设备 ID:总线 0x19 供应商 0x0 产品 0x0 版本 0x0 输入设备名称:" rpmsg-keys " 支持的活动 事件类型 0 (EV_SYN) 事件类型 1 (EV_KEY) 事件代码 114(KEY_VOLUMEDOWN) 事件代码 115(KEY_VOLUMEUP) 属性: 测试...(中断退出) 事件:时间 1748573575.153335、类型 1(EV_KEY),代码 115(KEY_VOLUMEUP),值 1 事件:时间 1748573575.153335、-------------- SYN_REPORT ------------ 事件:时间 1748573575.332514、类型 1(EV_KEY),代码 115(KEY_VOLUMEUP),值 0 事件:时间 1748573575.332514、-------------- SYN_REPORT ------------ 事件:时间 1748573579.152752、类型 1(EV_KEY),代码 114(KEY_VOLUMEDOWN),值 1 事件:时间 1748573579.152752、-------------- SYN_REPORT ------------ 事件:时间 1748573579.309757、类型 1(EV_KEY),代码 114(KEY_VOLUMEDOWN),值 0 事件:时间 1748573579.309757、-------------- SYN_REPORT ------------   Re: imx8ulp peripheral data sharing between domains 你有答案了吗?
View full article
i.MX RT1042 - 使用 lwIP 时 DTC RAM 溢出,将数据移至 OCRAM 后 DHCP 失败 你好,恩智浦社区、 我正在使用 MCUXpresso SDK 在 i.MX RT1042(Cortex-M7)上开发固件。我的应用程序由多个模块组成,我使用 lwIP 与以太网连接,并启用了 ping 功能。 初始问题 - DTC RAM 溢出 启用 lwIP 后,我发现即使其他内存区域未使用,DTC RAM 也会溢出。以下是该配置的内存使用情况: 内存区域 已用大小 区域大小%已用年龄 ------------------------------------------------------- BOARD_FLASH: 223652 B 8 MB 2.67% Sram_DTC: 141580 B 128 KB 108.02% sram_itc: 0 b 128 kb 0.00% sram_oc: 0 b 256 kb 0.00% board_sdram: 0 b 30 mb 0.00% ncache_region: 0 b 2 mb 0.00% 现阶段,我还需要添加更多的应用模块,但 DTC RAM 已经满了。 尝试的解决方案 - 将数据移至 OCRAM 为了减少 DTC RAM 的使用,我更改了全局数据放置配置,并修改了链接器脚本,将以下部分移入 OCRAM: *(DataQuickAccess) *(NonCacheable.init) *(不可缓存) 更改后,内存映射如下所示: 内存区域 已用大小 区域大小%已用年龄 ------------------------------------------------------- BOARD_FLASH: 223652 B 8 MB 2.67% Sram_DTC: 8KB 128KB 6.25% sram_itc: 0 b 128 kb 0.00% Sram_OC: 133388 B 256 KB 50.88% board_sdram: 0 b 30 mb 0.00% ncache_region: 0 b 2 mb 0.00% 在这种配置下,大多数模块都能正常工作,但 DHCP 无法获取 IP 地址,而以太网链接却能启动,应用程序的其他部分也能继续运行。 问题 对于使用 lwIP + 以太网的应用,在 i.MX RT1042 上处理高 DTC RAM 使用率的建议和正确方法是什么? 如何决定哪些数据或模块应存放在......? DTC RAM ITC RAM OCRAM NCACHE 地区 SDRAM 具体到 lwIP,哪些数据结构(pbufs、heap、netif、DMA 缓冲区、堆栈)必须保留在 DTC 或非高速缓存内存中才能正确运行? 将 lwIP 数据移至 OCRAM 时,DHCP 故障是否与高速缓存一致性、MPU 设置、对齐或非高速缓存要求有关? 如有任何指导、最佳实践或参考示例,将不胜感激。 顺祝商祺! i.MX RT105x Re: i.MX RT1042 – DTC RAM overflow with lwIP, DHCP fails after moving data to OCRAM 你好@Dkakadia、 感谢您对 NXP MIMXRT 系列的关注! DHCP 故障问题很可能与缓存一致性有关。在启用了数据缓存的情况下使用以太网 DMA 时,需要缓存一致性管理。对于 lwIP,当使用 OCRAM 作为主 RAM 时,建议将关键数据结构放在 SRAM_DTC 或其他非高速缓存区域。 您可以参考这位客户的帖子: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Problem-with-sample-lwip-and-OCRAM/td-p/985330 此外,您可以考虑配置 FlexRAM 以增加 DTCM 空间,而不是将所有内容直接传输到 OCRAM。请参阅此 AN: https://www.nxp.com/docs/en/application-note/AN12077.pdf 致以最诚挚的问候, Gavin Re: i.MX RT1042 – DTC RAM overflow with lwIP, DHCP fails after moving data to OCRAM 你好@Gavin_Jia 感谢您的回复和分享参考。 根据您的建议,我检查了缓存一致性方面的问题,并相应地更新了内存位置。有了这些更改,以太网 + lwIP 协议栈(包括 DHCP)现在可以正常工作了。 在我当前的产品设计中,未填充外部同步动态随机存取存储器(SDRAM),因此我从项目中移除了所有同步动态随机存取存储器(SDRAM)依赖关系。目前,我已在 OCRAM 中声明了 NCACHE 区域,并小心翼翼地将以太网 DMA 相关缓冲区和 lwIP 关键数据结构放入不可缓存内存中。 但是,随着我继续集成其他模块,我再次开始面临内存压力,主要是在内部 RAM 区域。该应用程序现在包括多个外围设备和中间件,例如: lwIP + 以太网、FlexPWM、SPI、UART、I2C 其他特定应用模块 由此,我想到了几个后续问题: 在使用以太网 + LwIP 和多个外设驱动器的 i.MX RT1042 上运行中等复杂的应用程序,实际上是否需要包括外部同步动态随机存取存储器(SDRAM),还是应该在仔细放置的情况下完全从内部存储器运行这样的应用程序? 在内存分区、缓存配置或 FlexRAM 配置方面,我是否可能遗漏了重要步骤或最佳实践,从而无法进一步优化内部内存的使用? 在非 SDRAM 设计中,推荐的长期策略是什么: 扩展应用功能 管理 lwIP 缓冲区、堆和任务栈 在添加更多模块时防止内存反复溢出 如果不使用同步动态随机存取存储器(SDRAM),这是否是预期的限制,或者是否建议进一步优化,任何指导都将非常有帮助。 再次感谢您的支持和真知灼见。 致以最诚挚的问候, Daksh Re: i.MX RT1042 – DTC RAM overflow with lwIP, DHCP fails after moving data to OCRAM 此外,当增加任何一个 DTCM/ITCM/OCRAM 超过 128KB 时,都会导致代码出现硬故障,文件中提到可以为任何部分分配更多大小,但要注意总大小,即 512KB。 Re: i.MX RT1042 – DTC RAM overflow with lwIP, DHCP fails after moving data to OCRAM "此外,您可以考虑配置 FlexRAM 以增加 DTCM 空间,而不是将所有内容直接传输到 OCRAM。请参阅此 AN: https://www.nxp.com/docs/en/application-note/AN12077.pdf" 该文件提到 ITCM 或 DTCM 可以配置为 0 KB(另见表 1 中显示的可能静态配置)。 但是,当我将 DTCM 配置为 0 而不增加/增加 ITCM 时,应用程序会崩溃。
View full article
LS1046A RDB:用于测试 linux gpio 中断处理性能的 GPIO 您好, 我正在使用 LS1046ARDB,想测量中断延迟。我的目标是通过外部信号发生器(输入 GPIO)触发信号中断,然后切换另一个引脚(输出 GPIO)作为响应,用示波器测量延迟。 我正在寻找板接头上可以混合为 GPIO 的可访问引脚。 我的想法是使用 IEEE-1588 接头 (J11),但不确定这是否可行,也不知道需要做些什么。 参考手册指出,可以通过 RCW(EC2=1)将 EC2 引脚配置为 GPIO3。 如果我在 RCW 中设置 EC2=1,这些信号是否会路由到 J11? LS1046A RDB 上是否有其他易于访问的引脚可供使用? 感谢您的帮助 QorIQ LS1设备 Re: LS1046A RDB: GPIOs for testing gpio interrupt handling performance of linux 谢谢您的帮助!这应该行得通。我发现GPIO_2[1]、GPIO_2[2]、GPIO_2[3] 与 TP14、TP13 和 TP11 相对应。 Re: LS1046A RDB: GPIOs for testing gpio interrupt handling performance of linux 您可以使用与 SPI 信号复用的GPIO。 GPIO_2[1]、GPIO_2[2]、GPIO_2[3] SPI 接口在 RDB 上未使用,并终止到测试点。 请参阅"表 3-8。详情请参阅 LS1046ARM 中的 SPI 信号配置" 。
View full article
K344 中心点対 PWM 中心点起動 ADC BCTU サンプリング https://community.nxp.com/t5/S32K-Knowledge-Base/RTD400-K344-Center-Aligned-PWM-Trigger-ADC-BCTU/ta-p/2034211に基づき、BCTU ウォーターマークをトリガーするのに 3 つの BCTU トリガー割り込みが必要な理由を知りたいです。割り込みを 1 回だけトリガーし、その後、割り込み内で PWM 周期の変更、ADC 値の読み取りなどを実行したいと考えています。EB MCAL 開発に基づいて、同じ機能を実現するための優れたソリューションやサンプルルーチンは何ですか? Re: K344中心对齐PWM中心点触发ADC BCTU采样 当社製品にご興味をお持ちいただき、また当社コミュニティに貢献していただき、ありがとうございます。 投稿に直接返信して、投稿の所有者からのフィードバックを得ることができます。 一方、単一の BCTU トリガーを使用した別のアプローチを参照することもできます。 S32M27x/S32K3 – eMIOS/BTCU/ADC/DMA – [RTD600] -> https://community.nxp.com/t5/S32M-Knowledge-Base/S32M27x-S32K3-eMIOS-BTCU-ADC-DMA-RTD600/ta-p/2155542 MCAL 実装については、ハードウェア抽象化レイヤーのADC から PWM の例を参照してください。 S32K3ページへ移動-> 設計リソース -> ソフトウェア -> S32K3リファレンスソフトウェア -> オートモーティブソフトウェア - S32K3 - ハードウェア抽象化レイヤー -> S32K3 HAL統合例 2025.07 次の ADC トリガーを実行します。 同時に、キャプチャされた ADC 値に応じてデューティ サイクルを更新します。 この情報が役に立つことを願います。 Re: K344中心对齐PWM中心点触发ADC BCTU采样 解決策をありがとうございます。複数のトリガー中断が発生する理由と、そのような中断を回避する方法を知りたいです。または、設定によってこの割り込みソースを無効にすることは可能ですか? Re: K344中心对齐PWM中心点触发ADC BCTU采样 こんにちは、 BCTU トリガー通知が有効になっている場合、BCTU が ADC をトリガーしたときに呼び出されます。例では、BCTU CL に 3 つの項目が含まれているため、ADC は入力 (eMIOS) トリガーごとに 3 回トリガーされます。 この通知を無効にするには、トリガー通知オプションに NULL を設定します。 BR、ペトル
View full article
I²C Hardware Debugging I²C is used as a serial interface between chips. It is so commonplace that it is used in so many systems that no problems arise. However, sometimes even small things can get you hooked. Here we will introduce some common I²C problems and some easy debugging methods. 0. Table of Contents table of contents Anyway it doesn't work! (--; The target doesn't respond (꒪⌓꒪) Repeat start was necessary/unavailable Controllers that do not support clock stretching Multi-Controller The clock frequency is lowered Long distance routing. Noise and crosstalk can cause communication problems. Measuring Bus Capacitance SDA Line Stuck and Bus Clear Who is giving the signal? Reference materials 1. It just doesn't work! (--;   I forgot to put on the pull-up orz This is a common problem when using an I²C device for the first time. When you obtain a sample chip and try it out on a breadboard or universal board, you connect it to a microcontroller while checking the I²C signal names. At this point, it's easy to forget to attach a pull-up resistor . I²C signals have an output called " open drain ." A high-level voltage cannot be obtained unless an external pull-up resistor is attached. When trying to easily check operation using a breadboard, it is easy to forget about this resistor. Don't forget to use pull-up resistors on the SDA and SCL signals! How do you determine the pull-up resistor value? How is the value of a pull-up resistor determined? Generally, values such as 2.2 kΩ or 4.7 kΩ are used. I think many people use these values without much consideration. But what happens if a smaller or larger value is used ? A pull-up with a small resistance value can cause the problem of "not being able to pull the signal low enough." When a device outputs a low signal, current flows through the pull-up resistor. If the resistance is small, the current flowing here will be large, and this current will flow into the device that is outputting a low signal. The transistor that pulls the signal low inside the device has a resistance component, and this resistance and current create a voltage. For this reason, if the current becomes large, a higher-than-expected voltage will be generated, and a sufficiently low low-level voltage will not be obtained. Conversely, pull-up resistors with large resistance values can cause problems such as insufficient communication speeds. When a signal transitions from LOW to HIGH, the capacitance of the signal line is charged via the pull-up resistor, causing the voltage to rise. If a large resistance value is used for the pull-up, the current at this time becomes smaller, and it takes longer for the signal to rise (voltage to rise). There is a method for calculating the value of the pull-up resistor. Details are provided in Section 7 of the I²C Specification [English version (rev7)] [Japanese version (rev5)] . Generally, when using I²C fast mode (400kHz) with a pull-up voltage of 3.3V, a pull-up resistance of around 1kΩ to 8kΩ can be used without any problems [Figure 1]. Figure 1: Pull-up resistor values for I²C signal lines 2. The target doesn't respond (꒪⌓꒪)   No ACK returned!😭 I connected the microcontroller to the target, added a pull-up resistor, and checked the signal's HIGH level with an oscilloscope, but the target still did not respond . "Target not responding" means that no ACK is returned after the target address is sent. This is common in the early stages of evaluation. Many targets allow you to change the target address depending on their settings (for example, by connecting the address setting pin to power or GND), so you need to double-check which address is set. Also, even if you think you've set the address correctly, you need to check whether the address written in hexadecimal on the datasheet is a 7-bit representation (right-justified) or an 8-bit representation (left-justified). Furthermore, the microcontroller development tool (SDK) you're using may specify hexadecimal addresses in 7-bit representation (such as MicroPython) or 8-bit representation (such as Arm Mbed).💦 The I²C specification does not use either representation, and addresses are standardized to binary representation, so there is no such misunderstanding, but you should be careful when specifying them in hexadecimal.   How to check How can you specify the target address? Check this in the device specifications and development tools. Then double-check that the device address is set as intended. When checking on an actual device, for example in MicroPython the I2C class has a scan() method which displays a list of devices connected to the bus that are returning ACKs. One technique is to use this kind of function to quickly see what the settings are [Figure 2]. If the SDK you are using does not have a function like I2C::scan(), try sending addresses in order and checking for ACK/NACK. Figure 2: Testing I2C.scan() 3. Repeat starts were necessary/unavailable   Even if I communicate according to the target device specifications, I can't read the data? The I²C specification defines the signal levels and protocols in detail. Writes and reads can be performed in a defined manner on any target device. However , the method for accessing the registers and data buffers within that target is determined by the specifications of each device. For target devices with multiple internal registers, it is generally possible to specify and read/write registers using communications such as those shown in Figure 3. However, even if communications are performed in this manner, there are cases where the expected data is not read.   Repeat Start Condition When executing a write transaction to specify a register address and a read transaction to read the register consecutively, a repeated start condition is often used to start the second transaction. The repeated start condition is used to avoid the bus-free state that occurs after a stop condition before generating the next start condition. From the target device's perspective, using a repeated start condition is usually equivalent to using a stop and start condition. However, there are devices that do not do this, and for such devices you must use one of the two methods to read the registers. Some microcontroller SDKs provide an API for reading registers on I²C targets, which automatically handles access with a repeated start condition, but some microcontrollers do not support inserting a stop condition. In such cases, the API cannot be used as is, and it becomes necessary to handle the protocol at a lower level. It is important to be careful as devices and microcontroller SDKs can have "specification pitfalls" like this that you only notice later. Figure 3: Typical register access 4. Controllers that do not support clock stretching   The behavior is strange! I²C has an optional function called " clock stretching ." Even nowadays, there are rare devices that have this function. The general I²C controllers installed in many microcontrollers support this clock stretching function, so you don't have to worry about it too much, but if you are implementing your own controller, you need to be aware of this optional function.   What is clock stretching? I²C transmits and receives data according to the timing of the clock output by the controller. However, clock stretching is an option that allows the target side to make the controller wait [Figure 4]. The controller also outputs the clock via open drain. The controller monitors its own clock output and checks whether the signal is HIGH when it outputs HIGH. If the target side wants to make the controller wait, it holds this clock signal LOW. The controller knows it is being made to wait when the clock, which should be HIGH, turns LOW. If the controller ignores this target behavior, it may cause communication problems such as fewer clocks being output. Figure 4: Clock stretching 5. Multi-Controller   Also for debugging a running target device Multi-controller is also an optional feature of I²C. Multiple controllers can control communication on the same bus without affecting each other's communication.   There aren't many applications that use it There are not many cases where multiple controllers are used, except for a few applications. However, the I²C controllers built into many microcontrollers have this function. Using this function, for example, if there is a problem with a running system, you can connect another microcontroller to the I²C bus and read or overwrite the contents of each target's register settings to verify them [Figure 5]. Normal debugging involves checking the code you have written, so you probably won't have an opportunity to do this, but it may be useful when verifying an unknown system for which the source code is unavailable. Figure 5: Multi-master debugging 6. Clock frequency is lower   I thought I had set it to a 100kHz clock. There aren't many cases where the I²C bandwidth is used to its full potential. However, what if you find that communication is occurring at a clock frequency that is significantly different from the speed you intended? Clock stretching, which was introduced in the previous section, is related to frequency reduction . Below is an example at 100kHz, but the higher the frequency used, the greater this effect (rate of frequency reduction).   Check the waveform and adjust the frequency Clock stretching is a function that makes the controller wait. However, it does not only affect the target. As the signal line length increases and the number of connected devices increases, the capacitance of the bus increases. In this case, if a large resistor is used for pull-up, the rise of the signal will be slowed down. A slow signal rise time increases the time it takes for the clock to go high. After the clock goes high, the controller operates to ensure the set high hold time, resulting in a longer low-to-high transition time, which extends the low period. This causes a drop in the clock frequency [Figure 6]. Depending on the controller, you may be able to set the clock frequency in detail, or the LOW and HIGH periods of the clock. If you are concerned about the frequency, check the waveform and adjust the clock settings. 7. Long-distance routing. Noise and crosstalk can cause communication problems.   Data errors caused by waveform distortion I²C is an easy-to-use two-wire serial bus. Because it is a slow signal, it will operate stably even if the signal line is extended to a distance of a few tens of centimeters (although this depends on the environment). However, if you are not careful and consider the characteristics of I²C, you may experience unexpected behavior. High impedance, two wires Because I²C is an open-drain signal, when a HIGH level is output, the impedance of the signal line is high. With a push-pull signal, if the device outputting the signal is LOW it is close to short-circuiting to GND, and if it is HIGH it is close to short-circuiting to the power supply, but with I²C it is connected to the power supply via a pull-up resistor. If noise is picked up on the signal line here, the noise current will escape to the power supply via the resistor. In addition, the currents of each I²C signal line also affect each other, which causes crosstalk. To reduce noise and crosstalk, careful wiring is required. For example, GND or power supply wiring should be placed between the data and clock signals [Figure 7]. Alternatively, using a bus buffer is effective when transmitting over long distances via cable. However, because I²C is a bidirectional open-drain signal, standard logic buffers cannot be used as is. Various buffers are available for I²C, including those with signal voltage conversion functions and those that convert single-ended I²C to differential signals. By combining these, it is possible to create a stable and reliable system even when signal lines are run long distances. Figure 7: Crosstalk and noise 8. Measuring Bus Capacitance   Bus capacity limit... But how do you measure it? Up to 400kHz, I²C can communicate with a bus capacitance of up to 400pF. For 1MHz, I²C can communicate with a bus capacitance of up to 550pF. But how can we know this bus capacitance?   Calculate backward from the signal waveform This blog post introduces several topics related to bus capacitance, all of which point out that the rise time of signals increases. Bus capacitance can be determined from this rise time. [Figure 8] shows an example waveform. For an I²C signal pulled up to a 5V power supply with 2.2kΩ, the rise time (T) from the LOW reference voltage V OL = 1.5V to the HIGH reference voltage V OH = 3.5V is 154ns. The formula in section 7.1 of the I²C specification [English version (rev7)] [Japanese version (rev5)] is "T = 0.8473 x RC," so if we apply "C = T / (0.8473 x R)," we get approximately 82pF. Subtracting the capacitance of the probe used for measurement (15pF), we get approximately 67pF. Figure 8: Calculating bus capacitance 9. SDA Line Stuck and Bus Clear   SDA stuck at LOW and stopped working The controller and target communicate with each other based on a clock. If the number of clocks becomes inconsistent due to noise or other reasons, not only will the communication be bit-shifted, but the situation will become known as "bus stuck." Figure 9-a shows an example in which the controller thinks it has sent nine clock pulses and finished communication, but the target is still returning an ACK as the last bit.   Getting out of a stuck bus situation There are two ways to get out of this state. One is to reset the target. The other is to clear the bus. Bus clearing is described in the I²C specification [English version (rev7)] [Japanese version (rev5)] (Section 3.1.16). If SDA is stuck LOW, you can return the target state to normal by generating nine clock pulses. [Figure 9-b] shows an example where an ACK was issued at the end of a read transfer due to a programming error on the microcontroller side. The MSB of the next data to be read happened to be 0, so SDA was fixed LOW. To get out of this situation, we issue a clock nine times and clear the bus, after which we can see that the target has returned to normal. In addition, the System Management Bus (SMBus), which uses I²C as its specification, has a timeout function on top of the normal I²C specification, and is specified to automatically return to normal operation after a maximum of 35 ms has elapsed on the target device. The I²C specification does not have such a timeout provision, so once a stuck state occurs, it cannot be recovered from without resetting or clearing the bus. Figure 9-a: Example of a bus stuck Figure 9-b: Bus Clear   10. Who is sending the signal? Series resistor   Who is keeping the signal low? When looking at the bus status of the bus stack mentioned above or a multi-controller system, you may want to know which device is sending the signal. The voltage when a LOW signal is output varies depending on the drive capacity of each device, and this can tell you which device is sending the signal.   Add a series resistor and check the voltage [Figure 10] is an example of a multi-controller waveform. This waveform shows two controllers attempting to start communication at the same time, with clock synchronization and arbitration taking place. One controller (microcontroller 1) is attempting to start communication at 400 kHz, and the other controller (microcontroller 0) is attempting to start communication at 100 kHz, each driving the SCL signal. Looking at the clock waveform, we can see that the terminal of the 100kHz controller is connected to the bus via a 100Ω resistor, so when microcontroller 0 outputs a LOW, this series resistor limits its ability to draw current, causing the LOW voltage to rise slightly. By using this mechanism, we can determine which device output a LOW. Figure 10: Who is signaling?   11. Reference materials I2C Bus Specification and User Manual (Rev5.0 Japanese version) I2C Bus Specification and User Manual (Rev7.0 English version) Interface March 2024 issue (CQ Publishing) : Special feature "Serial communication from scratch [UART/I2C/SPI with Pico]" Transistor Technology Special No.161 "Measure, Measure, Measure Circuit & Technique Collection" Appendix: "Detailed Explanation of 2-wire Serial Interface I²C" - The above magazine article is an excerpt from this article. NXP Community Blog: An Overview of the I²C Bus [Originally published in Interface, March 2024 issue (CQ Publishing), " UART, I²C, SPI, CAN... Problems that can occur with various standards " pp. 101-115. The I²C-related section has been excerpted and revised for this blog post .] Change history: 2025-02-04: First Edition 2025-08-14: Corrected a typographical error in the section "3. Repeat Start was necessary/unavailable." Added a line break to the text of the section "7. Long-distance routing. Communication becomes erratic due to noise and crosstalk." 2026-01-02: Added an introductory section before the table of contents / Added a YouTube video link to the section about MicroPython. 2026-04-14: Fixed broken links. Improved readability.     ========================= We are currently unable to respond to comments in the "Comment" section of this post. We apologize for the inconvenience, but when making inquiries, please refer to `` Technical Questions to NXP - How to Contact Us( Japanese Blog) ''. (If you are already an NXP distributor or have a relationship with NXP, you may ask the person in charge directly.) I²C is used as a serial interface between chips. It is so commonplace that it is used in so many systems that no problems arise. However, sometimes even small things can get you hooked. Here we will introduce some common I²C problems and some easy debugging methods. Interface Japanese blog
View full article
S32G2 IPC通信 NXPコミュニティの親愛なるメンバーの皆様、 私はちょうどNXP S32G2 IPCフレームワークに取り組み始めました。私は次のアプリケーションノートAN13750ています:「S32G2でのマルチコアアプリケーションの有効化 using S32G2 Platform Software Integration」と題し、いくつかの疑問を抱きました。 まず、ドキュメントからの流れを正しく理解しているかどうか 1. IPCを使用してLinuxイメージをビルドし、SDカードを使用してA53コアを起動します。 2. Design Studio を使用して M7 の IPC イメージをビルドし、ブートローダーを使用して M7 を SRAM に読み込みます。ブートローダーはEB Tresosによって提供されます。 3. A53からM7でIP通信を開始します。 上記の理解が正しいことを前提として、 1. デバッガを使用して、デザインスタジオからM7アプリケーションを直接実行できますか。 2. LinuxイメージをA53のSDカードから起動させます。 3. A53 linuxからM7とのIPC通信を開始します。 これは可能ですか?私は今のところEBブートローダーを扱いたくありませんが、プロセス全体についての私の理解が間違っていて、このブートローダーがIPCの機能にとって重要である場合を除きます。どんなコメント/提案も大歓迎です。 PS:アプリケーションノートで使用されている3つのコアではなく、1つのM7コアのみを使用したいです。 最良 ヴィシュヌ Re:S32G2 IPC通信 編集:「Description.txt」
View full article
iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption I'm getting the following error when writing to a filesystem using the CAAM for filesystem encryption with `tk(cbc(aes))`. caam_jr 30902000.jr: 4000141c: DECO: desc idx 20: DECO Watchdog timer timeout error This only happens occasionally but seems to be more prevalent when running with all cores enabled. Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption Sorry for the delay in replying. We are using `linux-imx_5.15.71_2.2.2-phy5` from Phytec with patches from https://github.com/Freescale/linux-fslc/tree/5.15-2.2.x-imx up until 5.15.183.  Unfortunately the problem only occurs occasionally (less than 1 instance every 500 hours or so of CI testing across multiple units) and I haven't been able to create a simple reproducer. An initial attempt to enable `CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG` prevents our device from booting as we are using the CAAM to encrypt the root filesystem along with various data partitions and this generates too much logging. I'm looking at adding log information to a circular buffer and emitting this when the error occurs.  As this will only result in the last 1000 or so records being emitted, I'd like to know whether there are any setup messages that we should always log to support analysis. Thanks Daniel Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption Can you please share the version of BSP you're working and the Steps and logs when problems occur? Regards Harvey Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption Unfortunately, I've been unable to reproduce with other tools 😞 I have added logging of last 2048 CAAM log messages on failure and we are now waiting for failure to re-occur in CI.  I'll send logs as soon as I get them Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption Watchdog timeout error was triggered by DECO halt on but there were multi case to make DECO halt on, such as input/output buffer address, length or etc. Can you reproduce this with stress test with "dd" or "fio" tool? If the issue can be reproduced stably, it can help us to find the root cause. Regards Harvey Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption Finally had it fail with logging.  This should include the last 2048 log records from the CAAM subsystem.  Only difference to standard logging is that `src` and `dst` buffer data is not included. Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption From a brief look at my log, it appears that at the point of failure, the 8th of 8 queued requests for a sequence of offsets is what generates the DECO watchdog timeout error.  In the earlier portions of the log, it appears that there are rarely any queued requests (possibly sometimes one?) even when handling other sequences of offsets.  Is this a clue? The 7 queued requests before this do seem to complete correctly so could one of the following the cause... The queue actually only supports 7 entries - in which case reducing the number of queued entries may help (where can I change this?) The DECO watchdog timeout starts when entries are added to the queue and simply expires due to the time taken to handle 8 entries - in which case extending the timeout period may help (again, if possible, where can I change this?) This specific request actually has a problem - but to me it looks equivalent to the 7 previous requests so this seems unlikely Thanks Daniel Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption Note we are running the CPU and DDR at reduced speed for power saving reasons - which may impact this Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption No, I haven't been able to reproduce with dd or fio.  On the system I captured the previous log from, it only happens very occasionally (once in 2 months so far).  On another system it with slightly different code, it happens at least once a day.  We believe this is when loading a large set of shared libraries during startup (which aren't used on the system I got logs from).  Unfortunately, we are not able to easily collect logs from this version - however we would be able to test a patch relatively quickly to see if the issue is resolved. Do the previous logs contain enough information for investigation purposes?  If not then what else would be required? Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption Having got the logs, I decided to dig in further myself.  It appears that when the system is under high memory load but still has the DDR running at 400MT/s (or in our case sometimes 100MT/s), the CAAM will sometimes generate a watchdog error. The eMMC driver forces the DDR to 3000MT/s, but for writes, this doesn't necessarily occur until after the encryption has been performed. We have fixed this for our use case by requesting `BUS_FREQ_HIGH` in `caam_jr_enqueue()` and releasing it again via scheduled work from `caam_jr_dequeue()`. This fixes filesystem accesses, however it causes problems when called from the network stack (via xfrm for example) as `request_bus_freq()` ends up being called in atomic context (from much further up the network stack) and both `request_bus_freq()` and `clk_xxx()` calls utilise mutex's We have worked around this by disabling use of CAAM for everything but the filesystem, but a better solution would be required if upstreamed.
View full article
NXP Model-Based Design Toolbox for S32K3 version 1.7.0 - Product Release Announcement Product Release Announcement Analog & Automotive Embedded Systems NXP Model-Based Design Toolbox for S32K3 – version 1.7.0 The 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.7.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, S32K358, S32K364, S32K366, S32K374, S32K376, S32K388, 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), and support for the GD3162 Gate Driver based on the S32K396 GD3162 Software. 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 180 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=7608021 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 S32K358 S32K364 S32K366 S32K374    S32K376    S32K388    S32K394  S32K396 Support for the following peripheral components and functions: ADC CAN DIO eTPU FEE GD3162 GPT I2C ICU LIN MCL (including DMA support) MEM Memory read/write PWM Profiler Registers read/write SPI UART New RTD version supported (6.0.0) Integrates S32K396 GD3162 v2.0.2 The toolbox enables access to the GD3162 gate driver for S32K396 derivatives from Simulink models, by delivering a library block (Gd3162) that generates code on top of GD3162 components API. New S32 Configuration Tools version supported (2024.R1.8)😎 Integration with EB tresos v29.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. 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.   Such custom projects, addressing specific hardware designs are offered inside the current version of the toolbox to integrate the following EVBs: MCTPTX1AK324 S32K344-WB 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. The toolbox has been tested and validated on the official NXP Evaluation Boards     S32K31XEVB-Q100     S32K312EVB-Q172     XS32K3X2CVB-Q172     XS32K3X4EVB-Q257     XS32K3XXEVB-Q172     MR-CANHUBK344             S32K3X4EVB-T172      S32K344-WB        XS32K3X8CVB-Q172     S32K388EVB-Q289             XS32K396-BGA-DC     XS32K396-BGA-DC1 Integrates the Automotive Math and Motor Control Library release 1.1.41 All functions in the Automotive Math and Motor Control Functions Library v1.1.41 are supported as blocks for simulation and embedded target code generation. 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. 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. 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 GD3162 Applications To demonstrate the integration and support of the GD3162 gate driver IC, we have included a reference Simulink application that configures six GD3162 devices in   a daisy-chain topology using SPI communication. The setup enables sequential initialization, configuration, and status monitoring of each GD3162 device using the S32K396 as a controller MCU. 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. 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. 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: R2021a R2021b R2022a R2022b R2023a R2023b R2024a R2024b R2025a Examples for every peripheral/function supported More than 180 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 Quick Start Guides 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.7.0 is fully integrated with MATLAB® environment. Target Audience: This release (1.7.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
View full article
Kinetis 器件的复位引脚建议 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嘿,Kinetis 爱好者们!我们 Kinetis 微控制器系统工程团队了解客户遇到的各种情况,但没有一种情况像复位引脚的处理那样特别麻烦。本文档的目的是提供我们在 Kinetis 系统工程部门收到的常见问题 (FAQ) 列表。这是一个动态列表,因此可能并不完整。然而,我们希望您发现以下问题和答案很有用。 问:我需要连接复位信号才能调试 Kinetis 设备吗? 这是一个常见的问题。严格来说,您不需要将 Kinetis 设备的设备复位线连接到调试连接器即可进行调试。调试端口 MDM-AP 寄存器允许通过仅使用 SWD_CLK 和 SWD_DIO 线设置系统复位请求位来使处理器保持复位状态。 但是,在决定从调试连接器中省略复位线之前,您应该仔细考虑这可能会如何影响在某些情况下对设备进行编程和调试的能力。 调试器/闪存编程器或外部调试器是否需要复位引脚?您使用的特定工具可能仅支持通过重置线重置设备,而不提供通过 MDM-AP 重置设备的功能。 您是否更改了调试信号的默认功能?您可能需要在应用程序中使用 SWD_CLK 和/或 SWD_DIO 信号来实现其他功能。对于低引脚数封装来说尤其如此。一旦功能发生变化(通过 PORTx_PCRy 寄存器),您将无法再通过这些信号访问 MDM-AP。如果您无法访问重置信号,那么您就无法阻止核心执行禁用引脚 SWD 功能的代码。因此您将无法重新编程该设备。为了防止这种情况,您需要: 设置您的代码以在复位释放几秒钟后更改 SWD 引脚的功能,以便调试器可以在发生这种情况之前停止核心。 在您的代码中放置某种“后门”机制,不会在这些引脚上重新编程 SWD 功能或重新启用 SWD 功能。例如,通过 UART 或 SPI 接口发送的特定字符序列。 一些 Kinetis 设备允许禁用复位引脚的复位功能。在这种情况下,您只能使用 SWD 信号作为通过 MDM-AP 重置设备的一种方式。如果您除了禁用复位引脚之外还更改了 SWD 引脚功能,那么如果您想对设备进行重新编程,就必须提供重新启用 SWD 功能的后门方法。 Kinetis硬件支持 Kinetis K系列MCU Kinetis L系列MCU Kinetis V系列MCU/单片机 Kinetis W系列MCU
View full article
PHY3250ブートローダーの復元 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Phytec LPC3250ボード上の キックスタート または S1L ブートローダーを誤って消去し てしまった場合は、この手順を使用してそれらを復元できます。 この復元方法で提供されるブートローダーは、Phytecボードに付属するバージョンよりも新しい可能性があることに注意してください。ブートローダーのオリジナルバージョンは、PhytecのWebサイトからもダウンロードできます。 ボード上のブートローダの復元には特別なハードウェア(JTAGなど)は必要なく、LPC32x0共通ドライバライブラリにビルドまたは含まれているブートローダとツールを使用して実行されます。ただし、アップデート手続きを行うには、シリアルポート付きのPCが必要です。 キックスタート ローダーと S1L の復元 は、2段階のプロセスです。 キックスタート ローダーが最初に復元され、次に S1L が復元されます。シリアルローダーは、アプリケーションとバーナーイメージ(アプリケーションをNANDFLASHにプログラムするために使用されます)を転送するために使用されます。LPC32x0は、ダウンロード後に画像を自動的にNANDフラッシュに書き込み、ステータスを提供します。 ステップ1:リソースページのビルド済みブートソフトウェアと復元イメージをダウンロードします。 ステップ2:WindowsベースのPCでファイルを抽出します ステップ3:Phytecボードの下部シリアルコネクタとPCの間にシリアルケーブルを接続します ステップ4:シリアルローダーソフトウェアを起動します(LPC3250_Loader.exe)ビルド済みのブートソフトウェアパッケージに含まれています。 ステップ5:シリアルローダーの「プライマリブート(IRAM)」ファイルをburner_kickstart_nand_small_block_rvw.binファイルに設定します。シリアルローダーの「Secondary Executable (SDRAM)」ファイルをkickstart_nand_small_block_rvw.binファイルに設定します。Comport コントロールの選択が、Phytec ボードに接続されている PC の COM パーツと一致していることを確認します。 注: ビルド済みのバイナリの名前は、バイナリのビルドに使用したツールによっては、手順 5 と 7 に記載されている名前と若干異なる場合があります。バイナリが Realview ではなく GNU でビルドされた場合、各名前の 'rvw' フィールドには、代わりに識別された 'gnu' が含まれます。必要に応じて、お持ちのバイナリのファイル名を変更してください。   ステップ6:シリアルローダーの「Load bin's / Start primary」ボタンを押して、ボードの電源を入れます。バーナー イメージとキックスタート ローダー イメージがボードに転送され、キックスタート ローダーはバーナー アプリケーションによってブート ROM からブートするために NAND FLASH ブロック 0 にプログラムされます。ファイルが転送されたら、「ターミナルモードを有効にする」ボタンを押してプログラムのステータスを確認します。シリアルローダーツールの[ステータス/ターミナル出力]ウィンドウに、次の出力が表示されます。   BootIDを待っていますか?..þ5 ..設立する!「A」を送信しています。完成です!2番目のBootIdを期待しますか?..5 ..設立する!'U','3'..完成です!「R」を期待してください.。R ..設立する!startaddress .. を送信しています。完成です!送信サイズ ..完成です!コードを送信しています..完成です!--- セカンダリ実行可能ファイルのロード--- 「X」を待ちます。X ..設立する!-- コマンドを送信しています ..p ..完成です! startaddress .. を送信しています。完成です!送信サイズ ..完成です!プライマリブートからの受け入れを待ちます..o ..わかりました! コードを送信しています..完成です!最終的な 't' を期待してください ..t ..設立する ---- セカンダリ実行可能ファイルがロードされました。--- --- ターミナルモードの有効化 --- ブロックをフォーマットしています... フォーマットが完了 キックスタートをフラッシュに書き込んでいます... データの検証......首尾良く NANDフラッシュが正常にプログラムされています ステップ7:シリアルローダーの「プライマリブート(IRAM)」ファイルをburner_s1app_nand_small_block_rvw.binファイルに設定します。シリアルローダーの「Secondary Executable (SDRAM)」ファイルをs1l_from_kick_full_rvw.binファイルに設定します。Comport コントロールの選択が、Phytec ボードに接続されている PC の COM パーツと一致していることを確認します。   ステップ8:シリアルローダーの「Load bin's / Start primary」ボタンを押して、ボードをリセットします。バーナーイメージと S1L イメージがボードに転送され、 S1L はキックスタートローダーからブートするためにNANDFLASHブロック1(およびそれ以降)にプログラムされます。ファイルが転送されたら、「ターミナルモードを有効にする」ボタンを押してプログラムのステータスを確認します。シリアルローダーツールの[ステータス/ターミナル出力]ウィンドウに、次の出力が表示されます。   BootIDを待っていますか?..5 ..設立する!「A」を送信しています。完成です!2番目のBootIdを期待しますか?..5 ..設立する!'U','3'..完成です!「R」を期待してください.。R ..設立する!startaddress .. を送信しています。完成です!送信サイズ ..完成です!コードを送信しています..完成です!--- セカンダリ実行可能ファイルのロード--- 「X」を待ちます。X ..設立する!-- コマンドを送信しています ..p ..完成です! startaddress .. を送信しています。完成です!送信サイズ ..完成です!プライマリブートからの受け入れを待ちます..o ..わかりました! コードを送信しています..完成です!最終的な 't' を期待してください ..t ..設立する ---- セカンダリ実行可能ファイルがロードされました。--- --- ターミナルモードの有効化 --- ブロックをフォーマットしています... フォーマットが完了 S1 画像をフラッシュに書き込みています... NANDフラッシュが正常にプログラムされています ステップ8:シリアルローダーを閉じてターミナルプログラムを開き、ボードをリセットします シリアルローダツールを閉じて、Teratermなどのターミナルプログラムを開きます。ボードをリセットすると、 S1L が起動するはずです。   5 Phytec 3250ボード ビルド日: May 21 2010 12:43:21 PHY3250>
View full article
FTF-ACC-F1259 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 同步多线程 (SMT) 是一种先进的处理器微架构功能,它允许独立执行线程更有效地利用超标量 CPU 管道组织。双向超标量流水线中的 SMT 实现以相对较小的增量动态功耗最大化双线程并发性。本次会议重点关注下一代 Power Architecture e200z9 处理器核心中包含的 SMT 功能,以及通过该微架构可实现的改进的性能/功率指标。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 同步多线程 (SMT) 是一种先进的处理器微架构功能,它允许独立执行线程更有效地利用超标量 CPU 管道组织。双向超标量流水线中的 SMT 实现以相对较小的增量动态功耗最大化双线程并发性。本次会议重点关注下一代 Power Architecture e200z9 处理器核心中包含的 SMT 功能,以及通过该微架构可实现的改进的性能/功率指标。 回复:FTF-ACC-F1259 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 新款e200z9什么时候上市?
View full article
FTF-INS-F1277 Automotive integrated circuits are requiring high temperature and high voltage application environments. High temperature and high voltage impose severe constraints on the design of IC interconnect and the materials used in the assembly and packaging processes. The use of fine gauge copper wire bonding has been growing very rapidly in consumer, portable, and industrial electronics. Freescale has made significant inroads in introducing and accelerating the adoption of fine gauge copper wire in the high reliability automotive space. The molding compounds were studied and reformulated to accommodate high voltage up to 65V. This presentation will discuss key learnings in copper wire bonding process and molding compound formulation development, and present an exciting update on Freescale strategy on gold to copper wire conversion. Automotive integrated circuits are requiring high temperature and high voltage application environments. High temperature and high voltage impose severe constraints on the design of IC interconnect and the materials used in the assembly and packaging processes. The use of fine gauge copper wire bonding has been growing very rapidly in consumer, portable, and industrial electronics. Freescale has made significant inroads in introducing and accelerating the adoption of fine gauge copper wire in the high reliability automotive space. The molding compounds were studied and reformulated to accommodate high voltage up to 65V. This presentation will discuss key learnings in copper wire bonding process and molding compound formulation development, and present an exciting update on Freescale strategy on gold to copper wire conversion.
View full article
PN7160 - RF 設定 GUI PN7160 RF 設定の基本的な GUI が利用可能です。添付ファイルをご覧ください。 この GUI は、PN7160 RF 設定のほとんどに対してNCIコマンドを生成できます。これは、ユーザーが適切な NCI コマンドを構築するのに役立つかもしれません。 現在、GUI は NXP ウェブページで利用可能です。 PN7160 RF 設定の基本的な GUI が利用可能です。 NFCフロントエンド・ソリューション
View full article