Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
PTN3460 サポート チームの皆さん、こんにちは。 PTN3460Iのデータシートには「ファームウェアおよびEDIDアップデートのためのI2Cバスユーティリティおよびプログラミングガイド」という文書が記載されています。I2CバスユーティリティやEDID更新ツールに関するドキュメントは見つかりません。 さらに、DP Auxを使ってPTN3460Iの内部フラッシュをフラッシュできますか?もしそうなら、同じ用途のユーティリティはありますか?PTN3460(Flash-over-AUX)ユーティリティはファームウェアアップデート専用ですか?それともEDIDアップデート用ですか? Re: PTN3460 Support こんにちは、 PTN3460Iデータシートで「ファームウェアおよびEDID更新のためのI2Cバスユーティリティおよびプログラミングガイド」として参照されている文書は、AN11606 – PTN3460I PTN3460I向けプログラミングガイド(向け)および AN11128 – PTN3460 プログラミングガイド(商用PTN3460向け)に対応しています。両者とも NXP.com で一般公開されています: AN11606 – PTN3460Iプログラミングガイド(Rev. 1.4) — I²Cバス構成テーブル構造、EDIDプログラミング(最大7種類のEDIDデータ構造)、すべてのレジスタ定義、およびI²Cを介してPTN3460I内部フラッシュにEDIDおよび設定データを書き込む手順を段階的に扱っています。 AN11128 – PTN3460 プログラミング ガイド (Rev. 1.8) — 商用版 PTN3460BS に対応するドキュメント。 DP AUXインターフェースおよびFlash-over-AUX(FoA)ユーティリティに関するご質問について: DP AUXによる内部フラッシュのフラッシュ:はい、PTN3460I DP AUXチャネル経由で内部フラッシュのプログラミングをサポートしています。レジスタはI²CバスインターフェースまたはDP AUXのいずれかからアクセスできます。 Flash-over-AUX (FoA) ユーティリティスコープ: PTN3460/PTN3460I には、2 つの独立した FoA ツールがあります。 FoAファームウェアアップサ(PTN3460IBS F2用の別のツール)— DP AUXチャネルを通じたファームウェアのバージョンアップグレード専用。 FoA EDID Updater — DP AUXチャネルを経由したEDID更新専用のユーティリティです。 下記に添付しておりますのでご確認ください。 BRs、トーマス
View full article
i.MX93 电源时序 我正在设计一款基于 i.MX93 及其推荐的 PMIC (PCA9451) 的低功耗 PCB。 AN13917 功耗测量文档表明,在其最低功耗模式下(第 6.7.8 节),SoC+DRAM 的功耗应为 ~174mW。然而,文档中目前的测量数据是在电源管理集成电路(PMIC)之后采集的,因此并未包含任何效率损失。 在计算实际预期功耗时,vdd_ana_0p8 电源轨的能耗非常高。该电源轨上的 16.5mA 电流消耗会导致 PMIC 低压差线性稳压器 (LDO) 耗散 69mW(输入电压为 5V)。这相当于约 60% 的效率损失。 我希望使用单独的 SMPS 模块 (TI TPSM82821) 为该电源轨供电,以减少这些损耗,但是 i.MX93 数据手册在电源轨时序要求中没有对 Tstep 或 Toff_step 进行定义。是否存在时间上的要求,还是只需要对顺序有要求? 使用 VDD_SOC 作为外部开关电源的使能触发信号(通过比较器)是否合理?或者是否有更好的选择?我假设在掉电期间,由于 TPMS82821 具有输出主动放电功能,0V8 的放电速度会比 VDD_SOC 快。 Re: i.MX93 power sequencing 你好, 表 6 中有 Tstep 或 Toff_step 的时间。 PWRUP 模式: tSTEP(从前一个电源轨开启到下一个电源轨开启所需的时间):2 毫秒 tOFF_STEP(从前一个电源轨关闭到下一个电源轨关闭所需的时间):8 毫秒 此外,您还可以使用 VDD_SOC 作为参考,在上电/关电序列中触发外部稳压器。 顺祝商祺!
View full article
FRDM-IMX93 — LPSPI3/EXPI (P11) SPIピンは、外部デバイスとの間で有効なSPIトランザクションを生成しません。 件名:FRDM-IMX93 — LPSPI3/EXPI(P11)SPIピンは外部デバイスとの有効なSPIトランザクションを発生させません。オンボードトライラジオモジュール(MAYA-W27x)との競合が疑われています。 こんにちは、NXPチームの皆さん、 外部のSPIデバイス(Waveshare 2-CHのCAN HAT https://www.waveshare.com/wiki/2-CH_CAN_HAT)を起動しようとしています。FRDM-IMX93ボードのEXPI 40ピンヘッダー(P11)にデュアルMCP2515を搭載し、LPSPI3(GPIO_IO08–11、RPi互換ピン位置に一致)を使用しています。HAT自体が完全に機能することを確認しました(標準のdtoverlay=mcp2515構成の純正Raspberry Piでテストし、動作確認済みです)。 理事会 / BSP: FRDM-IMX93、モデルNXP FRDM-IMX93 NXP i.MX リリースディストリビューション 6.18-whinlatter、カーネル 6.18.2-1.0.0-gf49f45233f7b 私が設定した内容(デバイスツリーレベルで全て正しいことを確認済み): オーバーレイは &lpspi3 の下に mcp2515@0/mcp2515@1 を追加します。cs-gpios = <&gpio2 8 1>、<&gpio2 7 1>;(GPIO_IO08/GPIO_IO07)で、これは NXP 自身のアップストリームパッチで見つけた類似の FRDM-IMX93 SPI3 ペリフェラル(pixpaper display overlay)の GPIO ベースの CS パターンに対応しています。 以前は /sys/kernel/debug/pinctrl/ で (MUX UNCLAIMED) であったため、&pinctrl_lpspi3 を拡張して GPIO_IO07 (CS1) を GPIO として mux しました。 CS0と競合していた既存のspidev0ノードを無効化しました。 reg_vexp_3v3/reg_vexp_5v (レギュレータ常時オン) を有効にしました。これらはデフォルトでは無効になっており、これがないと EXPI ヘッダーに電源が供給されませんでした。 /dev/spidev2.0が作成され、pinmuxで4つのSPIピンすべてに正しい機能割り当て(lpspi3grp)が表示されていることを確認しました。 症状: MCP251Xドライバは常に失敗します:spi2.0:MCP2515を初期化できません。配線が間違っている?(err=19) および spi2.1:MCP251x はリセット後に設定モードに入りませんでした (err=110) — 上記のすべてのデバイスツリーのバリエーションでまったく変わりません。 /dev/spidev2.0 上で spidev_test (互換性のある lwn、bk4) を使用して SPI レベルの生テストを実行します。RXバッファは、MOSI/MISOが物理的に短絡(ループバック)、開放状態、またはシャントでブリッジされているかどうかに関わらず、バイト単位で同一のデータを返します。これは、P11ヘッダーピン19/21/23/24にあるSPI3信号がコントローラの実際のバス活動に反映されていないことを示唆しています。つまり、信号がヘッダーに届いていないか、他の何かが干渉している可能性があります。 疑われる根本原因: UM12181(FRDM-IMX93ボードユーザーマニュアル、セクション2.11「トライラジオモジュールインターフェース」)によると、SPI3信号(CLK、MOSI、MISO、CS0 — GPIO_IO08-11で多重化)は、オンボードのMAYA-W27xトライラジオモジュールとM.2コネクタ間で、双方向の1.8Vレベルトランスレーター(U729、抵抗選択)を介して共有されます。この文書では、SPI3代替機能がSoC側から駆動される場合に、EXPIヘッダー(P11)がこの共有パスから電気的に絶縁されるかどうか、またどのように絶縁されるかについては明確にされていません。 質問: P11のGPIO_IO08-11の露出はU729トランスレーター/トライラジオパスから電気的に独立しているのでしょうか?それともP11でSPI3を使う場合、信号を正しくヘッダーにルーティング・隔離するために、トライラジオモジュールの無効化、GPIOエキスパンダービットの無効化、抵抗の再作業などの追加設定が必要でしょうか? FRDM-IMX93ボード上でLPSPI3を外部で使用するための、検証済みのリファレンスデバイスツリー(EVK用のimx93-11x11-evk-lpspi.dtsのようなもの)はありますか? P11接続トポロジーを確認するために、SPI3/U729信号経路の回路図抜粋を共有できますか? ご協力に感謝いたします。 Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi はい、p11ヘッダーには3.3Vと5Vがあります。 なぜエラーが発生するのでしょうか? imx93-11x11-lpddr4x-frdm ログイン:ルート root@imx93-11x11-lpddr4x-frdm:~# dmesg |grep -iE 'mcp251|lpspi3' [ 8.989639] MCP251X:module_layoutのシンボルなしバージョン [ 10.032864 mcp251x spi2.1: リセット後、MCP251xがコンフットモードに入らなかった [ 10.033021] mcp251x spi2.1: プローブ失敗、err=110 [ 10.033034] MCP251x SPI2.1: ドライバー付きプローブ MCP251x エラー -110 で失敗 [ 10.074097] MCP251x spi2.0: 初期化できませんMCP2515。配線が間違っているのですか? [ 10.074256] mcp251x spi2.0: プローブ失敗、err=19 root@imx93-11x11-LPDDR4x-frdm:~# IP リンク 表示 1: lo: MTU 65536 qdisc noqueue state 不明モード デフォルトグループ default qlen 1000 リンク/ループバック 00:00:00:00:00:00 BRD 00:00:00:00:00:00:00 2: eth0: MTU 1500 QDISC MQ 状態 ダウンモード デフォルトグループ デフォルト QLEN 1000 リンク/エーテル 90:A9:f7:80:42:26 BRD FF:FF:FF:FF:FF:FF 3: eth1: MTU 1500 QDISC MQ STATE DOWN MODE デフォルトグループ デフォルト QLEN 1000 リンク/エーテル 90:A9:f7:80:42:27 BRD FF:FF:FF:FF:FF:FF 4: mlan0: MTU 1500 QDISC MQ STATE UP モード 休眠グループ デフォルト QLEN 1000 リンク/エーテル 80:A1:97:50:4E:0d BRD FF:FF:FF:FF:FF:FF 5: uap0: MTU 1500 qdisc noop state DOWN mode デフォルトグループ デフォルト qlen 1000 リンク/エーテル 82:A1:97:50:4f:0d brd ff:ff:ff:ff:ff 6: wfd0: MTU 1500 QDISC NOOP 状態 ダウンモード デフォルトグループ デフォルト QLEN 1000 リンク/エーテル 82:a1:97:50:4e:0d brd ff:ff:ff:ff:ff:ff:ff 7: can0: MTU 16 QDISC NOOP 状態 ダウンモード デフォルトグループ デフォルト qlen 10 リンク/CAN Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi FRDM-IMX93: LPSPI3 (P11 EXPIヘッダー) のSCKピンに信号が出力されません 問題 私はP11 EXPIヘッダー上のLPSPI3(GPIO_IO08-11、spi@42550000)を使って外部SPIデバイス(2× MCP2515 CAN)を操作しようとしています。ドライバーはアクティブで、ペリフェラルは「内部」で動作しているように見えますが、物理的なSCKピン(GPIO_IO11)には信号が出力されていません。 証拠 オーバーレイはエラーなく適用され、SPIコアにspi2.0/spi2.1が登録されました。 電源、pinctrl、pinctrl-assert-gpios、cs-gpios、およびクロックソースはすべて正しく、検証済みです。 CS0(同一バンク、GPIO代替機能、モード=0)は完璧に動作し、マルチメーターとロジックアナライザーの両方でパルスが確認できます。 SCK(モード=1、ネイティブLPSPI3_SCK)はロジックアナライナ上で完全にフラット/0Vで、HATが接続されているかどうかにかかわらず、連続トリガーループには影響しません。 それにもかかわらず、LPSPI3のIRQ(GIC 97)は実際には/proc/interrupts(220回の割り込みで生成される単一の転送試み)でトリガーされており、ペリフェラルの内部ロジック(ステータス/IERレジスタ)がアクティブです。 /dev/memでLPSPI3のベースアドレス(0x42550000)を読み取ると「バスエラー」が返されますが、同じバス上で動作しているflexcan2(0x425b0000)も同じエラーを返します。つまり、これはLPSPI3特有のものではなく、一般的な/dev/memの制限であり(コントロールグループで除外されています)。 DMA理論は検証され、無効とされました。無効なphandleでDMASを上書きすると、ドライバーは「dma setup error -19, use pio」というメッセージとともにPIOにフォールバックしましたが、SCK信号は依然として表示されませんでした。 `clk_ignore_unused` ブート引数も効果はありませんでした。 まとめ LPSPI3ペリフェラルの内部ロジックは動作しており(割り込みを発生)、SCK信号は外部ピン(GPIO_IO11)に到達しません。同じpinctrlグループのCS0(GPIOモード)は正しく出力しますが、SCK(LPSPI3のネイティブ代替機能)はそうではありません。これは、パッドドライバーやシリコンに関連する設定の詳細、あるいはNXPが認識すべき設定の詳細を示しているように見えますが、これはデバイスツリーやソフトウェアでは説明できません。 質問 FRDM-IMX93において、P11を介したLPSPI3_SCK(GPIO_IO11、ネイティブ代替機能)のために、デバイスツリーとは別にハードウェア/ファームウェアの有効化手順は追加されていますか? LPSPI3がi.MX93 EVK(community.nxp.com/t5/i-MX-Processors/iMX93AUTO-EVK-SPI-Configuration-for-QCA7006AQ)と同じピンで動作する例があります—可能かもしれませんFRDM特有の違いはあるのでしょうか? Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi こんにちは、 @irfanktm お元気でお過ごしのことと思います。 実際には、i.MX93 FRDM PADとP11 GPIO_IO08-IO11ピンの間には直接的な接続があります。 Manuel_Salas_0-1789421014211.pngManuel_Salas_0-1789421014211.pngManuel_Salas_0-1789421014211.pngManuel_Salas_0-1789421014211.pngManuel_Salas_0-1789421014211.pngManuel_Salas_0-1789421014211.pngManuel_Salas_0-1789421014211.pngManuel_Salas_0-1789421014211.pngManuel_Salas_0-1789421014211.png 私のそばで再現するための手順を教えていただけますか? よろしくお願いいたします。 サラス。 Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi ログを見る限り、あなたはspidev_test上でSPIデバイスにアクセスしようとしているようですが、デバイスはMCPドライバーによって処理されています。 私が知りたいのは、使用しているデバイスツリー(.dts)全体です。例えば、以下のようなものです。 imx93-11x11-frdm.dts また、もし変更を加えた場合は、変更内容をお知らせください。 また、MCP2515のCANモジュールを手に入れて統合を試してみようと思います。 よろしくお願いいたします。 サラス。 Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi お使いのデバイスツリー全体を共有していただけますでしょうか。 あるいは、lpspi3ノードとピンマルチプレクサに関連するものだけかもしれません。 よろしくお願いいたします。 サラス。 Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi こんにちは、 @irfanktm 私は自分の側でいくつかテストを行いました。 Manuel_Salas_0-1789495251012.pngManuel_Salas_0-1789495251012.pngManuel_Salas_0-1789495251012.pngManuel_Salas_0-1789495251012.pngManuel_Salas_0-1789495251012.pngManuel_Salas_0-1789495251012.png 私のi.MX93 FRDMではSPIは正常に動作しています。 Manuel_Salas_1-1789495295645.pngManuel_Salas_1-1789495295645.pngManuel_Salas_1-1789495295645.pngManuel_Salas_1-1789495295645.pngManuel_Salas_1-1789495295645.pngManuel_Salas_1-1789495295645.png 私もあなたと同じ環境にいます。 もう一つ質問があります。 i.MX93 FRDMボードの3V3ピンと5Vピンに電圧はかかっていますか? そうでない場合は、以下のリンクを参照して、委員会の規制当局に通知してください。 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Enable-3-3-V-and-5-V-Regulators-for-Expansion-Header-on-i-MX9/ta-p/2299415 よろしくお願いいたします。 サラス。 Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi いいえ、imx93-11x11-frdm.dtsファイルがオリジナルです。私はmcp2515-can-hat.dtboのオーバーレイファイルを編集しました、https://www.waveshare.com/wiki/2-CH_CAN_HATINT_1をデフォルトのGPIO_25からGPIO_24(物理ピン18)に変更しただけです。 Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi もし何か足りなければ、私が追加できます。 root@imx93-11x11-lpddr4x-frdm:/sys/firmware/devicetree/base# ls '#address-cells' クロック-OSC-24Mファームウェア mcp2515_clock PMU レギュレーター-HMISC-VDDIOレギュレーター-vEXC-3v3 soc@0 USBphynoP2 「#size-Cells」クロック-OSC-32K IMX93-LPM メモリ PSCI レギュレーター-USDHC2 レギュレーター-VEXP-5V サウンド-MQS usdhc3_pwrseq __symbols__ 互換割り込みcontroller@48000000モデル レギュレーター-ADC-VREF レギュレーター-usDHC3 リモートプロック-CM33 SW-キー 別名 CPUS 割り込み親 MQS1 レギュレーター-AVDD レギュレーター-VDD-12V リザーブドメモリ熱ゾーン 選択したディスプレイサブシステム LDB-ディスプレイ-コントローラ MQS2 レギュレーター-CAN2-STBYレギュレータ-VDD-5P0V セキュア・エンクレーブ タイマー クロック-ext1 エトス LDB-PHY名 レギュレーター-DVDD レギュレーター-VDDOシリアルナンバーUSBYyNOP1 Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi MCP2515 / i.MX93 LPSPI3 — 根本原因の更新 前回の報告の続報です。新たな隔離テストでは、MCP2515モジュールから離れ、i.MX93 LPSPI3 SPIコントローラ/ドライバに向けられています。 実施されたテスト: ユーザー空間のspidevツールを使用して、MISOラインの物理状態のみを変化させながら、LPSPI3(500kHz、モード0)に対してRESET + CANSTAT読み取りサイクルを繰り返し発行します。 MISOを実際のMCP2515チップに接続した場合:不安定で、期待される0x80に到達することはまれです。 MISOが物理的に切断された状態(フローティング状態、チップが接続されていない状態):それでも、約10~11ミリ秒の周期で、構造化された繰り返しバイトパターン(0x00 / 0xFF / 0xFB)が表示されます。 MISOを10kΩの抵抗器を介してGNDに接続した場合、同じ繰り返しパターンが依然として現れ、本質的に変化はありません。 MISOをGND(約0Ω)に直接短絡すると、パターンは完全に消え、読み取り値は平坦で一定の0x00になります。 主な調査結果: まったく同じバイトシーケンスが、ミリ秒ごとに同じタイミングで、独立した実行(異なるプロセスID、異なる時間)や異なる物理的なMISO条件(切断、10kΩプルダウン、または実際のチップに接続した場合)でも再表示されます。SPI ioctl() 呼び出し自体は毎回成功(エラーなし)を返します。これは転送の失敗が隠蔽されているわけではなく、実際のデータが呼び出しごとにクロックインされています。 解釈: 真にフローティング状態または抵抗負荷状態の入力ピンは、異なるプロセス呼び出し間で、ミリ秒単位まで同一のホスト非依存のビットパターンを再現してはならない。この決定性のレベルから、読み戻されるバイト値は実際のMCP2515 SO/MISOラインを代表するものではなく、LPSPI3周辺機器やそのLinuxドライバの固定的で再現可能な内部状態(例:古いRXのFIFOコンテンツや、入力ピンの実際の論理レベルに関係なく固定パターンの読み取り)から来ていることを示唆しています。これを上書きするのはGNDへのハードショートだけです。 NXPへの質問です:LPSPI3(またはそのLinuxドライバーであるspi-fsl-lpspi)は、ピンの実際のサンプリング値の代わりに固定または古びたRX FIFOコンテンツを返すことはあり得ますか?このようなデターミニスティックで配線に依存しないリードバックパターンを説明する既知のエラタムやドライバの挙動はありますか? Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi 技術サポートの要請 MCP2515 (Microchip) と i.MX93 (NXP) の SPI2/LPSPI3 との SPI 通信障害 1. 要約 2つのMCP2515 CANコントローラ(Waveshare 2-CHAN HAN、MCP2515-I/SO、16 MHzクリスタル)は、LPSPI3を介してi.MX93-11X11-LPDDR4X-FRDMボードにコネクテッドされています(SPI2、CS0/CS1)は、電源アップやSPIやハードウェアリセット後に構成モードに入ることはありません。すべてのレジスタ読み取りで、期待されるCANSTAT = 0x80ではなく、固定された不変の値が返されます。カーネルmcp251xドライバは常にプローブの失敗を報告します(err=-110「リセット後にconfモードに入らなかった」またはerr=-19「配線が間違っている?」)。 2. 環境 SoM/ボード: i.MX93-11X11-LPDDR4X-FRDM カーネル: 6.18.2-1.0.0-gf49f45233f7b (NXP ダウンストリーム)、CONFIG_SPI_FSL_LPSPI=y (組み込み)、ERR051608 プリスケール修正が既に適用済み SPIバス:LPSPI3(spi@42550000)、チップセレクト2系統、カスタムデバイスツリーオーバーレイ(16MHz固定クロック、IRQ GPIO3-23 / GPIO3-24) CANモジュール:Waveshare 2CHキャンハット、MCP2515-I/SO、「E3 2335BK5」(正規のマイクロチップマーキングフォーマット) ドライバ:mcp251x(メインライン)、カーネルドライバーおよびカスタムspidevベースのテストユーティリティでテスト済み 3. トラブルシューティングを実施 デバイスツリーのオーバーレイターゲット(&spi1/&lpspi3 対 誤り & spi2 ラベル)を修正しました — オーバーレイが正しく適用され、MCP2515の子ノードがライブDTに存在します LPSPI3のpinctrl、cs-gpios、割り込み親/GPIOマッピングを、実行中のデバイスツリーに対して検証しました。すべて正しいです。 ロジックアナライザを使用してマスター側のSPI信号の完全性を検証しました。複数のキャプチャにおいて、i.MX93によってMOSI、SCK、およびCSが正しく一貫して生成されていることが確認されました。 両CANモジュールでVDD = 3.3V、アイドルMISO = 3.3Vが確認(GNDへのショートなし) 両方のモジュールで、リセットピン(SOIC-18の17番ピン)が3.3V(非アクティブ)であることを確認しました。 SPIモード0,0とモード1,1(CPOL/CPHA)、100kHz~8MHzクロックでテストしましたが、動作に変化はありませんでした。 2つの並列MCP2515デバイス間のMISOバス競合を解消するため、CS0/CS1に10kΩのプルアップ抵抗を追加しました。これにより、読み出しデータは安定しましたが、修正はされませんでした。 カスタムspidevテストツール:リセット命令+リセット後の即時/連続CANSTATポーリング(1ms間隔、300msウィンドウ)—CANSTATは瞬時に固定値に落ち着き、0x80に達することはありません。 WRITEをCANCTRL(0x80)に強制し、その後READに続けます — 読み戻しは書き込みの影響を受けず、SPIトランザクションがCANコントローラロジックで処理されていないことを示します 4. 重要な観察事項 CS0 デバイス: CANSTAT/CANCTRL/すべてのレジスタは一貫して 0x00 を読み出します (数十回のリセット + 読み取りサイクルにわたって 100% 再現可能、レジスタ アドレス、SPI モード、または書き込み値に関係なく)。 CS1デバイス:CANSTAT/CANCTRL/すべてのレジスタは常に0xFFを読み出す(100%再現可能、トランザクション中にMISOが切り替わることはない)。 両デバイスともマスターからはクリーンで正しくタイミングされたMOSI/SCK/CSを表示しますが、命令、アドレス、CSプルの設定に関係なく固定値を返します。このパターンはホスト側のSPIモード/タイミング/配線では説明できず、MCP2515 CANコアがリセット後/発振器不安定な状態から決して離れないことと一致しています。 5. リクエスト ホスト側のSPIシグナリングがロジックアナライザーで正確であることが確認され、デバイスツリーやカーネルドライバの設定も正しいことが確認されたため、以下の点についてのガイダンスを望みます。 この障害シグネチャ(レジスタの読み取りが固定され、CANSTATが0x80にならない)が、既知のMCP2515水晶発振器の起動問題と一致するかどうか、およびOSC1/OSC2に対する推奨オシロスコープ/検証手順 MCP2515とi.MX93 LPSPIの間には、既知の互換性の問題が存在するか(既に解決済みのERR051608以外)? MCP2515モジュールにハードウェアの欠陥が疑われる場合の推奨される次の診断手順またはRMAプロセス 追加のロジックアナライザキャプチャ、デバイスツリーファイル、またはカーネルログが必要な場合はお知らせください。 Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi 技術サポートリクエスト — i.MX93 LPSPI3 MCP2515 複数のMCP2515 CANコントローラ(テスト済み3台、2つの異なるメーカー/ボード、8/16 MHzのクリスタル)がLPSPI3(SPI2)経由でi.MX93-11X11-LPDDR4X-FRDMボードに接続されていると、リセット後に断続的に構成モードに到達できません(CANSTATは0x80を認識すべきです)。 環境: カーネル 6.18.2 (NXP ダウンストリーム)、CONFIG_SPI_FSL_LPSPI 組み込み、ERR051608 プリスケール修正あり。デバイスツリー/pinctrlが正しいことを確認しました(LPSPI3のSIN/SOUT/SCKは適切に多重化され、CSはcs-gpios経由)。ロジックアナライザによるキャプチャ結果から、MOSI/SCK/CSがホストによって正しく一貫して生成されていることが確認されました。 重要な観察事項: 新しく開いたspidevハンドルでは、最初のRESET + CANSTAT読み取りが約50~60%の確率で成功し(~0x80)、タイミングは常に約2~6msです。 同じ、まだ開いているSPIファイルディスクリプタに対して追加のRESET+読み取りサイクルを発行すると、その後は一貫して失敗し、0x80に再び到達することのない、約10~11ミリ秒周期の固定値(0x00 / 0xFF / 0xFB)の繰り返しパターンに落ち着きます。 この同じ故障シグネチャは3つの物理MCP2515ユニットと2つの異なる基板デザインすべてで再現されており、単一の欠陥チップやモジュールを除外しています。 転送間隔遅延(delay_usecs)の追加、ダミーの「フラッシュ」SPI転送、およびサイクル間のギャップを100msに増やしても、結果は変わりませんでした(パターンが開始されると、10回中0回成功)。 VDD、GND、RESETピン、およびアイドル時のMISOレベルはすべて正常(3.3V)であることが確認されています。 メインラインのmcp251xカーネルドライバーのプローブ()も同じ不安定さを示しています。5回連続のバインド試行(アンバインド/クリアdriver_override/バインド)すべて失敗し、err=-19(「配線が間違っている??」)とerr=-110(リセット後にコンフィングモードに入らなかった)を交互に繰り返すパターンです。 このパターン(開いた後の最初の転送で良好、その後同じセッション内のその後の転送で固定された再現可能な失敗署名が現れる)は、MCP2515ユニット自体の欠陥というよりも、連続するLPSPI3転送やCSサイクル間で完全にクリアされていない状態を示唆しています。 NXP への質問: これは、既知の LPSPI3 (i.MX93) の動作と一致していますか?同じSPIファイルディスクリプタ上で連続転送間でFIFO/CSの状態がきれいにリセットされないことについて — そして推奨されるドライバーレベルの回避策はありますか(例:ERR051608を超える遅延、FIFOフラッシュ、またはCS処理が必要ですか? Re: FRDM-IMX93 — LPSPI3/EXPI (P11) SPI pins produce no valid SPI transactions with any external devi こんにちは、親愛なる@irfanktmさん あなたのCASEのために私が作成した投稿をご覧ください: https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/2-CH-CAN-HAT-with-FRDM-IMX93/ta-p/2415467 BSPとi.MX93 FRDMで2チャネルCAN HATを使う方法も説明されています。 よろしくお願いいたします。 サラス。
View full article
i.MX93 電源シーケンス 私はi.MX93とその推奨PMIC(PCA9451)をベースにした低消費電力PCBを設計しています。 AN13917の消費電力測定に関する文書によると、最低電力モード(セクション6.7.8)では、SoC+DRAMの消費電力は約174mWになるはずです。ただし、文書内の現在の測定値はPMICの後に行われているため、効率損失は含まれていません。 実際の予想消費電力を計算すると、vdd_ana_0p8レールが非常に高いエネルギー消費量を示すことが際立っています。このレールでの16.5mAの電流消費により、PMIC LDOで69mWの電力損失が発生します(5V入力時)。これは効率損失の約60%に相当する。 これらの損失を低減するために、この電源レールを別のSMPSモジュール(TI TPSM82821)から給電したいのですが、i.MX93のデータシートには、電源レールのシーケンス要件にTstepまたはToff_stepの定義がありません。実際にタイミングに関する要件はありますか?それとも順序付けに関する要件だけですか? 外部SMPSの有効トリガーとしてVDD_SOCを使うのは賢明でしょうか?それとももっと良い選択肢がありますか?TPMS82821には出力のアクティブ放電機能があるため、0V8は電源を切る際にVDD_SOCより速く放電すると思います。 Re: i.MX93 power sequencing こんにちは、 表6にTstepまたはToff_stepの時刻が記載されています。PWRUPモード: tSTEP(前の電源レールがオン状態から次の電源レールがオンになるまでの時間):2ms tOFF_STEP(前の電源レールがオフになってから次の電源レールがオフになるまでの時間):8 ms また、VDD_SOCを基準として外部レギュレーターを起動・電源オフのシーケンスで作動させることもできます。 よろしくお願いいたします。
View full article
PTN3460 Support Hi Team, Datasheet of PTN3460I mentions a "I2C-bus utility and programming guide for firmware and EDID update" document. I am not able to find the document related to I2C bus utility and EDID update tool.  Further, Can we flash the internal flash of PTN3460I using DP Aux. If so, is there a utility for the same.? PTN3460 (Flash-over-AUX) utility is only for firmware update or for EDID update also? Re: PTN3460 Support Hi, The document referenced in the PTN3460I datasheet as "I2C-bus utility and programming guide for firmware and EDID update" corresponds to AN11606 – PTN3460I Programming Guide (for the PTN3460I) and AN11128 – PTN3460 Programming Guide (for the commercial PTN3460). Both are publicly available on NXP.com: AN11606 – PTN3460I Programming Guide (Rev. 1.4) — covers I²C-bus configuration table structure, EDID programming (up to 7 EDID data structures), all register definitions, and step-by-step procedures for writing EDID and configuration data into the PTN3460I internal flash via I²C. AN11128 – PTN3460 Programming Guide (Rev. 1.8) — the equivalent document for the commercial PTN3460BS variant. Regarding your questions about the DP AUX interface and the Flash-over-AUX (FoA) utility: Flashing the internal flash via DP AUX: Yes, PTN3460I supports programming its internal flash through the DP AUX channel. The registers can be accessed either via the I²C-bus interface or via DP AUX. Flash-over-AUX (FoA) utility scope: There are two separate FoA tools for PTN3460/PTN3460I: FoA firmware updater (a separate tool for PTN3460IBS firmware F2) — used exclusively for firmware version upgrades via the DP AUX channel. FoA EDID Updater — a separate utility used specifically for EDID updates via the DP AUX channel. Please find them attached below. BRs, Tomas
View full article
使用 EB Tresos 生成的 RTD 驱动程序,并结合 FreeRTOS + MPU 你好, 我们使用 RTD 6.0.0 和 电池管理系统 0.9.1。使用 EB Tresos 中的 SDK 生成我们的驱动程序代码。它在不使用 MPU 的 FreeRTOS Cortex M7 移植版下运行良好。 现在,我们想切换到使用 MPU 的 FreeRTOS 移植版。我想分两步完成这件事: 1)将所有任务设为特权任务,但使用MPU,即每次上下文切换时都对MPU进行重新编程。 2)将所有任务设为非特权任务。这意味着我必须在非特权任务使用的驱动程序中启用“启用用户模式支持”。 目前,我在1点上遇到了困难。驱动程序功能不稳定。例如,SPI 只能间歇性地工作。MPU区域似乎无法正常工作。即使这个问题得到解决,第 2) 点又该如何实现呢?监控调用处理程序由 FreeRTOS 和 RTD 提供。我应该把它们合并吗? Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU 你好@Julián_AragónM , 我从他们的网站下载了 FreeRTOS,并使用了一个同时支持 Cortex M7 和 MPU 的移植版本。如果我理解正确的话,我需要使用 NXP 提供的 FreeRTOS。我只找到了 NXP 的 FreeRTOS 可以在 S32DS 中配置,而没有找到 EB Tresos 的 FreeRTOS。我的问题如下: 我可以使用提供正确 M7+MPU 端口的通用 FreeRTOS 吗? 如果没有,NXP 是否提供了可在 EB Tresos 中配置的 FreeRTOS? 我们迟早需要使用通过 ASIL-D 认证的操作系统。如果 NXP 提供的 FreeRTOS 没有获得 ASIL-D 认证,我们需要切换到其他方案。 Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU 你好@PhilippH , 首先,FreeRTOS 7.0.0 中添加了对 MPU 的初始支持。CD1,请确认这是你正在使用的软件包吗?(或最新版本 0.8.0 CD1)。 1)能否告知哪些MPU区域无法正常工作?如果可以,请分享配置信息和运行流程。 此外,请遵循 S32K3 FreeRTOS 用户手册中的建议: 启用“使用 MPU”和“使用 MPU 包装器 v1”选项。 将第一个可配置区域设置为 9 而不是 0,以避免与 RTD 中的 MPU 区域发生冲突。 注意:将 FreeRTOS 与 MPU 支持集成需要修改 RTD 链接器文件,以定义 FreeRTOS 使用的所需内存段。在对应用程序进行更改时,请参考示例文件。 2) 我认为不需要合并,因为 FreeRTOSConfig.h声明以下宏: /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS standard names. */ #define vPortSVCHandler SVC_Handler #define xPortPendSVHandler PendSV_Handler #define xPortSysTickHandler SysTick_Handler 这会将 FreeRTOS 的 SVC 调用重定向到 exceptions.c 中 RTD 提供的 SVC_Handler。 此致, 朱利安 Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU 你好@PhilippH , 我可以使用提供正确 M7+MPU 端口的通用 FreeRTOS 吗? 您可以使用通用的 FreeRTOS 移植版;但是,您需要为 S32K3 的特定配置实现自己的解决方案,而 NXP FreeRTOS 软件包中已经提供了大部分解决方案。请尝试使用此端口启动,看看是否能解决问题。 如果没有,NXP 是否提供了可在 EB Tresos 中配置的 FreeRTOS? 不,目前提供的 NXP 软件包仅兼容 S32DS。能否请您解释一下为什么您需要在 EB Tresos 中使用 FreeRTOS? 通常情况下,EB Tresos 用于符合 AUTOSAR 标准的应用,但是,我们提供的 FreeRTOS 软件包仅供客户评估,不建议在生产中使用,因为它不符合汽车认证 (ISO26262)。您可以看到它以代码发布(CD)质量发布,这是因为 FreeRTOS 是一个开源软件,NXP 将其作为参考软件提供,而没有任何功能安全认证。 如果您的应用需要经过功能安全认证的操作系统,您可以考虑其他选择,甚至可以考虑我们合作伙伴提供的操作系统: SafeRTOS(基于 FreeRTOS 功能模型,易于迁移): https://www.highintegritysystems.com/safertos/ AUTOSAR操作系统 µ速度 embOS-Safe NXP RTOS 客户可以自行选择适合其项目的第三方实时操作系统、协议栈、集成开发环境、编译器等。 此致, 朱利安 Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU 非常感谢您的解答。 我使用 NXP 提供的 SafeRTOS 和端口成功运行了它,因为 NXP 提供的端口已经解决了我在使用 SafeRTOS 提供的通用 Cortex M7 + MPU 端口时遇到的问题。 关于我们对 EB Tresos 的需求:我们最初使用的是 S32DS,但由于我们使用的 IC,我们需要最新版本的电池管理系统 SDK,而 S32DS 中没有提供该 SDK(至少当时没有)。我们希望尽可能少地使用 Autosar。目前可行的办法是生成驱动程序函数,然后从 FreeRTOS 调用它们。我们目前未使用,也不打算使用 Autosar RTE。 关于第三方操作系统:“易于迁移”是否意味着 SafeRTOS 也存在同样用户友好的移植版本?我们之前使用过 SafeRTOS,但不是使用 Autosar 驱动程序,而是完全手写的驱动程序。 Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU 你好@PhilippH , 很高兴听到它运行正常! 使用 FreeRTOS 时,迁移到 SafeRTOS 通常是最简单的途径,因为它们都基于相同的功能模型,并且都提供了一些专门的迁移工具。遗憾的是,NXP 没有为 S32K3 提供 SafeRTOS 移植版本。 从WHIS 的页面上,我可以看到S32Kxx 设备通过我们的 RTD 得到支持,为 AUTOSAR 和非 AUTOSAR 应用提供完整的 IP 和功能覆盖,这意味着您可以选择不使用 Autosar。 此致, 朱利安 Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU 供您参考,我需要编辑 system.c 文件。由 S32K3 RTD 6.0.0 提供: LOCAL_INLINE void Direct_GoToUser(void) { ASM_KEYWORD("push {r0}"); //ASM_KEYWORD("ldr r0, =0x1"); <---- Before: CONTROL.SPSEL changes stack when invoked from FreeRTOS Task. ASM_KEYWORD("ldr r0, =0x3"); // My edit: CONTROL.SPSEL does not change in my case (always invoked from FreeRTOS Task) ASM_KEYWORD("msr CONTROL, r0"); ASM_KEYWORD("pop {r0}"); } 需要进行此修改,因为在 r0 的 push 和 pop 操作之间,所使用的堆栈不能改变。 RTD 假定始终使用 MSP,但 FreeRTOS 任务使用 PSP。 NXP 提供的 FreeRTOS 端口的 SVC 处理程序在提升权限时能够正确清除 CONTROL.nPRIV,而不会更改 CONTROL.SPSEL。你应该修改 Direct_GoToUser() 函数,设置 CONTROL.nPRIV,同时保留其他位,而不是将 CONTROL 设置为常量值。就我而言,CONTROL=0x3 就足够了,因为我总是从 FreeRTOS 任务中调用 Direct_GoToUser(),但在一般情况下,它也可以从非特权 main() 中调用。 此外,我想知道在更改 CONTROL 之后是否应该添加 ISB 指令,就像 ARM 建议的那样。
View full article
Question regarding removal of W8997 firmware from imx-firmware Hello NXP team, I’m contacting you regarding the following commit in the imx-firmware repository: “Remove SD/PCIE W8997 support from BSP from 26Q1 onwards” Could you please clarify whether the W8997 firmware was only removed from the standard  imx-firmware package or wheter support for these devices has been discontinued entierly ?  We can retrieve the last W8997 firmware files from the Git history, so our main question is about the recommended way to maintain W8997 support while continuing to use the latest imx-firmware releases. Is it supported to install the latest imx-firmware package and add the W8997 firmware files from the last release that contained them? If so, is there any recommended procedure or packaging approach to do this cleanly and avoid conflicts with future imx-firmware updates? Our goal is to keep systems on the latest i.MX firmware package while preserving support for older deployed hardware based on the 88W8997. Best regards, Antoine Gennart Re: Question regarding removal of W8997 firmware from imx-firmware Hello @agennart, hope you are doing well. I'm checking this with the internal team. I will get back to you once I get a response. Re: Question regarding removal of W8997 firmware from imx-firmware Hi @agennart, Could you please provide more details on your project? As well as the W8997 module that you are using and the interface you have implemented (PCIe or SDIO). Re: Question regarding removal of W8997 firmware from imx-firmware I don't have a project using W8997. I am trying to bump the `imx-firmware` version in the Buildroot project. Buildroot aims to maintain compatibility with older hardware, while also supporting newer hardware, hence the update. The problem is that this update would break compatibility with older hardware, so I need a way to preserve that compatibility. I see two possible scenarios: 1. NXP has simply removed support for the older hardware. In that case, the Buildroot project needs a way to select the appropriate version of `imx-firmware` in order to maintain compatibility with older hardware. 2. NXP has moved support for the older hardware to another package/project. In that case, the Buildroot project needs to update or integrate that package/project to maintain compatibility. Re: Question regarding removal of W8997 firmware from imx-firmware Hi @agennart, Support for 88W8997 will be provided through dedicated hotfix branches on Github for both W8997 drivers and firmware based on the LF 6.12.49_2.2.0 release baseline. These branches will contain all future off-cycle releases targeting W8997. Hence, you may update your environemnt to reference the below hotfix branches: Driver branch - GitHub - https://github.com/nxp-imx/mwifiex/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 Firmware branch - GitHub -https://github.com/nxp-imx/imx-firmware/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 For compatibility with W8997, the suggested path is to point to the shared hotfix branches as the main branch will not receive further support for this device. Please let me know if this information fits your requirements.
View full article
烧断的熔丝 IMXRT1024是否有办法在不将电路板置于串行下载器模式的情况下(例如通过JTAG或UART)烧毁熔丝? Re: Burning fuse 你好@Abhay2080 , 您可以使用 OCOTP 模块通过软件烧断熔丝,如参考手册第 23.6.1.2.2 章“功能”中所述。请参考名为 ocotp_example 的 SDK(版本 26.06)示例,以了解其工作原理。您可以通过SDK Builder找到它。 另请参阅 23.3.1.2熔丝和影子寄存器读取和 23.3.1.3熔丝和阴影寄存器写入 RM 中的部分,以提供附加信息。 BR 哈比卜 Re: Burning fuse 根据我的研究,烧断熔丝是可行的。 1. SPT(最简单)- 但我们需要将启动模式更改为 ISP,并且需要 UART 或 USB 接口。 2. CST(制造工具) - 这里我们也需要将启动模式更改为 ISP,并且需要 USB 接口。 3. 如您所说,通过 OCOTP 模块——无需插入 ISP,只需刷入未签名镜像(包含 OCOTP 驱动程序和待烧录的熔丝),烧录熔丝后,电路板即可锁定。 我的理解是否正确?或者我是否遗漏了其他编程方式,例如通过 JTAG/SWD 等方式? Re: Burning fuse 你好@Abhay2080 , 您无需进入串口下载器模式即可使用 OCOTP 模块。例如,在这篇社区帖子中,Kerry 描述了这种用于对熔丝进行编程的替代方法。 请记住,熔丝只能烧一次,所以请小心操作。 安全配置工具可以根据您选择的配置帮助确定所需的值,您可以将其用作指导,以确保对正确的熔丝进行编程。另请参阅 RM 中的第 9.4.1 章“启动 eFuse 说明”,其中提供了熔丝及其用途的详细说明。 BR 哈比卜
View full article
EB Tresos生成のRTDドライバをFreeRTOS + MPUで使用する こんにちは、 当社ではRTD 6.0.0とBMS 0.9.1を使用しています。EB TresosのSDKを使ってドライバーコードを生成します。MPUを使わないCortex M7ポートのFreeRTOSでは問題なく動作します。 今度はMPUを使うFreeRTOSポートに切り替えたいです。これを2つのステップで行いたい。 1) すべてのタスクを特権的に設定しつつMPUを使用する、すなわち各コンテキストスイッチでMPUを再プログラムすること 2) すべてのタスクを非特権にする。つまり、非特権タスクで使われるドライバーで「ユーザーモードのサポートを有効にする」を有効にする必要があります 今のところ、私は1)で苦戦しています。ドライバ機能は安定して動作しません。例えば、SPIは断続的にしか動作しない。MPU領域が正しく動作していないようです。たとえこれが解決したとしても、2)どうやって実装できるのでしょうか?スーパーバイザコールハンドラは、FreeRTOSとRTDによって提供されます。それらを統合するべきでしょうか? Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU こんにちは、 @Julián_AragónM。 私はFreeRTOSを公式サイトからダウンロードし、Cortex M7とMPUの両方に対応しているポートを使っていました。私の理解が正しければ、NXPが提供するFreeRTOSを使用する必要があるということですね。私はS32DSで設定可能なNXPのFreeRTOSしか見つけられず、EB Tresosは見つかりませんでした。私の質問は以下の通りです: - 正しいM7+MPUポートが付いている汎用FreeRTOSを使えますか? - もしなければ、NXPが提供するFreeRTOSでEB Tresosで設定できるものはありますか? いずれはASIL-D認証済みのOSを使用する必要がある。NXPが提供するFreeRTOSがASIL-D認証を受けていないなら、別のものに切り替える必要があります。 Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU こんにちは、 @PhilippH さん、 まず、FreeRTOS 7.0.0でMPUの初期サポートが追加されましたCD1、これがあなたが使っているパッケージであることを確認できますか?(または最新リリースである0.8.0 CD1)。 1) どのMPUリージョンが正しく動作していないか教えてもらえますか?可能であれば、設定と手順を共有してください。 また、S32K3 FreeRTOSユーザーマニュアルに含まれる推奨事項に従ってください: 「Use mpu」および「Use mpu wrappers v1」オプションを有効にします。 RTDのMPU領域との競合を避けるため、最初の設定可能領域を0ではなく9に設定してください。 注記: FreeRTOSをMPUサポートと統合するには、FreeRTOSで使用される必要なメモリセクションを定義するためにRTDリンカーファイルを修正する必要があります。アプリケーションに変更を適用する際は、サンプルファイルを参考にしてください。 2) FreeRTOSConfig.h なのでマージは不要だと思います以下のマクロを宣言します。 /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS standard names. */ #define vPortSVCHandler SVC_Handler #define xPortPendSVHandler PendSV_Handler #define xPortSysTickHandler SysTick_Handler これにより、FreeRTOSのSVC呼び出しが、exceptions.cにあるRTD提供のSVC_Handlerにリダイレクトされます。 よろしくお願いします、 ジュリアン Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU こんにちは、 @PhilippH さん、 - 正しいM7+MPUポートが付いている汎用FreeRTOSを使えますか? 汎用版FreeRTOSポートを使うこともできますが、S32K3専用の設定については、NXP FreeRTOSパッケージにほとんど提供されている独自のソリューションを実装する必要があります。まずこのポートから始めてみて、問題が解決するかどうか確認してください。 - もしなければ、NXPが提供するFreeRTOSでEB Tresosで設定できるものはありますか? いいえ、提供されているNXPパッケージは現時点でS32DSのみに対応しています。なぜEB TresosでFreeRTOSが必要なのか教えていただけますか? 通常、EB TresosはAUTOSAR準拠のアプリケーションに使われますが、私たちが提供したFreeRTOSパッケージはお客様評価用であり、オートモーティブ認証(ISO26262)を満たしていないため、生産での使用は推奨されていません。FreeRTOSはオープンソースソフトウェアであり、NXPがセーフティ認証なしでリファレンスソフトとして提供しているため、コードドロップ(CD)品質としてリリースされているのがわかります。 もしセーフティ認証済みOSが必要な場合は、パートナーの方からも他の選択肢を検討できます。 SafeRTOS(FreeRTOS機能モデルに基づく、単純な移行付き):https://www.highintegritysystems.com/safertos/ AUTOSAR OS µ-velOSity embOS対応 NXP RTOS プロジェクトに適したサードパーティRTOS、スタック、IDE、コンパイラなどを選ぶのはお客様次第です。 よろしくお願いします、 ジュリアン Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU ご回答ありがとうございました。 NXPが提供するSafeRTOSとPortで動作させることができました。NXPが提供するポートは、SafeRTOSが提供する汎用Cortex M7 + MPUポートで抱えていた問題をすでに解決していました。 EB Tresosの必要性について:最初はS32DSから始めましたが、使用しているICの関係で、当時S32DSには使えなかった最新のBMS SDKが必要でした。Autosarはできるだけ控えめにしたいです。今のところうまくいっていたのは、ドライバ関数を生成し、FreeRTOSから呼び出すことでした。私たちはAutosar RTEを使用しておらず、今後も使う予定はありません。 サードパーティ製OSについて:「簡単な移行で」というのは、SafeRTOSにも同じくらい使いやすいポートが存在するという意味でしょうか?以前SafeRTOSを使っていましたが、AUTOSARドライバではなく、完全に手書きのドライバでした。 Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU こんにちは、 @PhilippH さん、 期待通りに動作していると聞いて安心しました! FreeRTOを使用する場合、SafeRTOSへの移行は一般的に最も簡単な方法です。なぜなら、両者は同じ機能モデル上で動作し、専用の移行ツールを提供しているからです。残念ながら、NXPはS32K3用のSafeRTOSポートを提供していません。 WHISのページを見ると、S32KxxデバイスはRTDでサポートされており、AUTOSARアプリケーションと非AUTOSARアプリケーションの両方で完全なIPと機能カバレッジを提供しているため、Autosarを使わない選択が可能です。 よろしくお願いします、 ジュリアン Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU 参考までに、system.cを編集する必要がありました。S32K3 RTD 6.0.0 によって提供されます: LOCAL_INLINE void Direct_GoToUser(void) { ASM_KEYWORD("push {r0}"); //ASM_KEYWORD("ldr r0, =0x1"); <---- Before: CONTROL.SPSEL changes stack when invoked from FreeRTOS Task. ASM_KEYWORD("ldr r0, =0x3"); // My edit: CONTROL.SPSEL does not change in my case (always invoked from FreeRTOS Task) ASM_KEYWORD("msr CONTROL, r0"); ASM_KEYWORD("pop {r0}"); } この編集が必要な理由は、r0のプッシュとポップの間で、使用されるスタックが変更されてはならないためです。 RTDは常にMSPが使用されることを前提としているが、FreeRTOSのタスクはPSPを使用する。 NXPが提供するFreeRTOSポートのSVCハンドラは、特権昇格時にCONTROL.SPSELを変更せずにCONTROL.nPRIVを正しくクリアします。Direct_GoToUser() 関数を変更して、CONTROL を定数値に設定する代わりに、CONTROL.nPRIV を設定し、他のビットは保持するようにしてください。私の場合、CONTROL=0x3で十分です。なぜなら、私はいつもFreeRTOSタスクからDirect_GoToUser()を呼び出すからですが、一般的には非特権のmain()からも呼び出すことができるからです。 さらに、ARMが推奨するように、CONTROLを変更した後にISB命令を追加すべきかどうかも気になります。
View full article
HB200x AUTOSAR R21-11 バージョン 0.8.0 S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_2025 がサポートしていません こんにちは、NXPさん。 HB200x AUTOSAR仕様SDKをS32 Design Studioに統合しようとしましたが、以下のエラーメッセージが表示されます。 問題点:Mc33hbはツールチェーン/IDEプロジェクトに存在しません。プロジェクトはコンパイルできません! レベル: エラー タイプ:検証 ツール:ツールチェーン/IDEプロジェクト 起源:ペリフェラル ターゲット:ツールチェーン/IDEプロジェクト:M7_0 リソース:platform.driver.mc33hb CDD_Mb33Hb.c ファイルでさえCDD_Mb33Hb.hなどは、SDKがS32 Design Studioアプリケーション(v3.6.4)にインストールされた際には追加されていませんでした。 Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ こんにちは、 どうやら間違ったRTDバージョンを使用しているようです。HB200x AUTOSAR R21-11 0.8.0リリースノートに基づき、このソフトウェアはSW32K3_RTD_4.4_R21-11_3.0.0_D2303_DS_updatesite.zip(S32 Design Studio IDE v3.5にインストールする必要があります)上で使用可能です。 PetrS_0-1789471295419.png BR、ペトル Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ 最新のAUTOSARライブラリを使いたい場合、RTD 6.0.0以上をサポートするHB200x SDKの他バージョンはありますか?
View full article
燃える導火線 IMXRT1024には、ボードをシリアルダウンローダーモードにすることなく(JTAGやUARTなどを介して)ヒューズを焼却する機能はありますか? Re: Burning fuse こんにちは、 @Abhay2080。 OCOTPモジュールを使えば、 リファレンスマニュアルの23.6.1.2.2章「機能」に記載されているように、ソフトウェアを通じてヒューズを焼くことができます。動作については、SDK(バージョン26.06)の例「ocotp_example」を参照してください。SDK Builderを通じて見つけることができます。 23.3.1.2も参照してください。ヒューズとシャドウレジスタの読み取りと23.3.1.3フューズレジスタとシャドウレジスタは、追加情報を提供するセクションをRMに書き込みます。 BR ハビブ Re: Burning fuse 私の調査によると、ヒューズを焼く方法について 1. SPT(最もシンプル) - ただし、起動モードをISPに変更し、UARTかUSBインターフェースが必要です。 2. CST(製造ツール) - ここでも起動モードをISPに変更し、USBインターフェースが必要です。 3. あなたが言及したOCOTPモジュールを経由します - ISPを入れる必要はなく、署名のないイメージ(OCOTPドライバとヒューズを焼き捨てる)をフラッシュしてヒューズを焼き、基板をロックします 私の理解は正しいでしょうか?それともJTAGやSWDのようなプログラム方法が他に見落としているのでしょうか Re: Burning fuse こんにちは、 @Abhay2080 さん。 OCOTPモジュールはシリアルダウンローダーモードに入らずに使用できます。例えば、この コミュニティ投稿 ではケリーがこの別のヒューズプログラミング方法について説明しています。 ヒューズの焼きは一度きりなので、慎重に燃やしてください。 Secure Provisioning Toolは、選択した構成に基づいて必要な値を決定し、正しいヒューズがプログラムされているかを確認するためのガイドとして利用できます。ヒューズとその目的の詳細な説明については、RMの9.4.1章「ブートeFuseの説明」もご参照ください。 BR ハビブ
View full article
Rom Bootloader WriteMemory Command CRC16 calculation I'm currently trying to program a KL17 microcontroller using another microcontroller and the KL17's built in UART ROM bootloader. I got pinging and erasing done, at least on the paper, but I'm struggling with writing data to the KL17. The example in the datasheet (page 43) says that for those bytes (framing packet,  excluding CRC16 bytes + memory write command packet):   0x5A, 0xA4, 0x0C, 0x00, 0x04, 0x00 , 0x00, 0x02, 0x00, 0x04, 0x00, 0x20, 0x64, 0x00, 0x00, 0x00  the CRC16 bytes would be 0x06 0x5A. However the CRC16 algorithm provided on page 27 outputs 0x2b 0x56 for me. I've also tried various CRC16 calculators online with many different variants of CRC16 calculation but none of them gave me 0x06 0x5A. Noay_0-1790003799652.png My assumption is that I'm either missing bytes that must be included into the caluclation (I wouldn't know which since the data packets following afterwards all got their own CRC16 bytes) or that someone just messed up the datasheet (which is also unlikely because this example is also exactly like that in the KL17 Sub-Family Reference Manual).  Re: Rom Bootloader WriteMemory Command CRC16 calculation Hello @Noay , Thanks for your post. I think the "0x06 0x5A" value in the Reference Manual is incorrect and most likely a documentation issue. Based on what you provided, your CRC calculation result of "0x2B 0x56" looks correct. You can still use blhost tool to debug Bootloader commands. The parameter "-d" will provide all communication process between Host and Target. I have tried this function on my KL27 board, and please see the screenshot below. We don't have a KL17 EVB board available, could you try the same approach on your KL17 device and see what result you get? Apologies for the documentation mistake. I'll share this with the internal team and recommend updating the documents accordingly. BR Celeste
View full article
关于从 imx-firmware 中移除 W8997 固件的问题 您好,NXP团队, 我联系您是关于imx-firmware仓库中的以下提交: “从 26 年第一季度开始,从电路板支持包中移除 SD/PCIE W8997 支持” 请问W8997固件只是从标准imx固件包中移除,还是已经完全停止对这些设备的支持? 我们可以从 Git 历史记录中检索到最新的 W8997 固件文件,因此我们的主要问题是,在继续使用最新的 imx-firmware 版本的同时,保持对 W8997 支持的推荐方法是什么。 是否支持安装最新的 imx-firmware 软件包,并添加包含这些文件的上一版本中的 W8997 固件文件? 如果是这样,是否有推荐的步骤或打包方法可以干净利落地完成此操作,并避免与未来的 imx 固件更新发生冲突? 我们的目标是在保持对基于 88W8997 的旧已部署硬件的支持的同时,使系统保持最新的 i.MX 固件包。 顺祝商祺! 安托万·热纳尔 Re: Question regarding removal of W8997 firmware from imx-firmware 你好@agennart ,希望你一切都好。 我正在和内部团队核实此事。我收到回复后会尽快回复你。 Re: Question regarding removal of W8997 firmware from imx-firmware 嗨@agennart , 您能否提供更多关于您项目的信息?除了您正在使用的 W8997 模块和您实现的接口(PCIe 或 SDIO)之外。 Re: Question regarding removal of W8997 firmware from imx-firmware 我没有使用 W8997 的项目。我正在尝试提升 Buildroot 项目中的 `imx-firmware` 版本。Buildroot 的目标是在保持与旧硬件兼容性的同时,也支持新硬件,因此进行了此次更新。 问题在于这次更新会破坏与旧硬件的兼容性,所以我需要一种方法来保持这种兼容性。 我认为有两种可能的情况: 1. NXP 已停止对旧硬件的支持。在这种情况下,Buildroot 项目需要一种方法来选择合适的 `imx-firmware` 版本,以保持与旧硬件的兼容性。 2. NXP 已将对旧硬件的支持转移到另一个代码包,软件包/项目中。在这种情况下,Buildroot 项目需要更新或集成该软件包/项目以保持兼容性。 Re: Question regarding removal of W8997 firmware from imx-firmware 嗨@agennart , 我们将通过 Github 上的专用热修复分支为 88W8997 提供支持,包括基于LF 6.12.49_2.2.0 版本基线的 W8997 驱动程序和固件。这些分支将包含所有面向 W8997 的未来非周期性版本。因此,您可以更新您的环境以引用以下热修复分支: 驱动程序分支 - GitHub - https://github.com/nxp-imx/mwifiex/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 固件分支 - GitHub - https://github.com/nxp-imx/imx-firmware/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 为了与 W8997 兼容,建议指向共享的热修复分支,因为主分支将不再获得对该设备的进一步支持。 请告诉我这些信息是否符合您的要求。
View full article
S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_2025 不支持 HB200x AUTOSAR R21-11 版本 0.8.0 您好,NXP, 我尝试将 HB200x AUTOSAR 规范 SDK 集成到 S32 Design Studio 中,但收到以下错误消息: 问题:在工具链/IDE 项目中找不到 Mc33hb。该项目无法编译! 级别:错误 类型:验证 工具:工具链/IDE 项目 来源:外围设备 目标:工具链/IDE 项目:M7_0 资源:platform.driver.mc33hb 甚至包括 CDD_Mb33Hb.c 文件在 S32 Design Studio 应用程序 (v3.6.4) 中安装 SDK 时,尚未添加 CDD_Mb33Hb.h 等文件。 Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ 你好, 您似乎使用了错误的RTD版本。根据 HB200x AUTOSAR R21-11 0.8.0 发行说明,该软件可以基于 SW32K3_RTD_4.4_R21-11_3.0.0_D2303_DS_updatesite.zip 使用(该软件需要安装在 S32 Design Studio IDE v3.5 中)。 PetrS_0-1789471295419.png BR,彼得 Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ 是否有其他版本的 HB200x SDK 支持 RTD 6.0.0 或更高版本?因为我们希望在我们的用例中使用最新的 AUTOSAR 库。
View full article
ROM引导加载程序写入内存命令CRC16计算 我目前正在尝试使用另一个微控制器和 KL17 内置的 UART ROM 引导加载程序对 KL17 微控制器进行编程。我已经完成了 ping 和擦除操作,至少在纸面上是这样,但是我在向 KL17 写入数据时遇到了困难。数据手册(第 43 页)中的示例指出,对于这些字节(帧数据包,不包括 CRC16 字节 + 内存写入命令数据包): 0x5A, 0xA4, 0x0C, 0x00, 0x04, 0x00 , 0x00, 0x02, 0x00, 0x04, 0x00, 0x20, 0x64, 0x00, 0x00, 0x00 CRC16 字节为 0x06 0x5A。但是,第 27 页提供的 CRC16 算法对我输出的是 0x2b 0x56。我也尝试过网上各种 CRC16 计算器,以及许多不同的 CRC16 计算方法,但它们都没有给出 0x06 0x5A 的结果。 Noay_0-1790003799652.png 我的假设是,要么是我漏掉了计算中必须包含的字节(我不知道是哪些,因为后面的数据包都有自己的 CRC16 字节),要么是有人把数据表搞砸了(这也不太可能,因为这个例子和 KL17 子系列参考手册中的例子一模一样)。 Re: Rom Bootloader WriteMemory Command CRC16 calculation 你好@Noay , 感谢你的帖子。我认为参考手册中的“0x06 0x5A”值不正确,很可能是文档错误。根据您提供的信息,您的 CRC 计算结果“0x2B 0x56”看起来是正确的。 您仍然可以使用 blhost 工具来调试引导加载程序命令。参数“-d”将提供主机和目标之间的所有通信过程。 我已在我的 KL27 板上尝试了这个功能,请参见下面的屏幕截图。 我们没有 KL17 EVB 板,您能否在您的 KL17 设备上尝试相同的方法,看看结果如何? 对于文档错误,我深表歉意。我会将此情况反馈给内部团队,并建议相应地更新文档。 BR 塞莱斯特
View full article
imx-firmwareからW8997ファームウェアを削除することに関する質問 NXPチームの皆様、こんにちは。 imx-firmwareリポジトリにおける以下のコミットに関してご連絡差し上げております。 「26Q1以降、BSPからSD/PCIE W8997サポートを解除」 W8997のファームウェアは標準のimx-firmwareパッケージからのみ削除されたのか、それともこれらのデバイスのサポートが完全に終了したのか、教えていただけますか? Git履歴から最後のW8997ファームウェアファイルは取得できるので、主な質問は最新のimxファームウェアを使い続けながらW8997のサポートを維持する推奨方法についてです。 最新のimx-firmwareパッケージをインストールして、それらを含む最後のリリースのW8997ファームウェアファイルを追加することはサポートされていますか? もしそうなら、これをきれいに処理し、将来のimxファームウェアアップデートとの競合を避けるための推奨される手順やパッケージング方法はありますか? 私たちの目標は、88W8997をベースにした古い展開ハードウェアのサポートを維持しつつ、システムを最新の i.MX ファームウェアパッケージに維持することです。 よろしくお願いいたします。 アントワーヌ・ジェナール Re: Question regarding removal of W8997 firmware from imx-firmware こんにちは、 @agennart さん。お元気でお過ごしでしょうか。 社内チームに確認中です。返信があり次第、ご連絡いたします。 Re: Question regarding removal of W8997 firmware from imx-firmware こんにちは、 @agennart さん。 プロジェクトの詳細を教えていただけますか?あなたが使っているW8997モジュールや、実装したインターフェース(PCIeまたはSDIO)も含めて。 Re: Question regarding removal of W8997 firmware from imx-firmware 私はW8997を使用するプロジェクトを持っていません。Buildrootプロジェクトで`imx-firmware`のバージョンを上げようとしています。Buildrootは、旧型のハードウェアとの互換性を維持しつつ、新型ハードウェアもサポートすることを目指しており、今回のアップデートはそのためのものです。 問題は、このアップデートが古いハードウェアとの互換性を壊してしまうため、その互換性を維持する方法が必要なことです。 私は二つの可能なシナリオを考えています。 1. NXPは単純に古いハードウェアのサポートを廃止しました。その場合、Buildrootプロジェクトは古いハードウェアとの互換性を維持するために適切なバージョンの「imx-firmware」を選択する方法が必要です。 2. NXPは旧ハードウェアのサポートを別のパッケージ/プロジェクトに移しました。その場合、Buildrootプロジェクトは互換性を維持するためにそのパッケージやプロジェクトを更新または統合する必要があります。 Re: Question regarding removal of W8997 firmware from imx-firmware こんにちは、 @agennart さん。 88W8997のサポートは、Github上の専用ホットフィックスブランチを通じて、W8997ドライバーとLF 6.12.49_2.2.0リリースベースラインに基づくファームウェアの両方で提供されます。これらのブランチには、今後のW8997を対象としたオフサイクルリリースがすべて含まれます。したがって、以下のホットフィックスブランチを参照するように環境を更新してください。 ドライバーブランチ - GitHub - https://github.com/nxp-imx/mwifiex/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 ファームウェアブランチ - GitHub - https://github.com/nxp-imx/imx-firmware/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 W8997との互換性を確保するために、メインブランチはこのデバイスへのさらなるサポートを受けないため、共有ホットフィックスブランチを指すのが推奨されています。 この情報がご要望に合致するかどうかお知らせください。
View full article
Burning fuse In IMXRT1024 is there any provision to burn fuses without putting the board into serial downloader mode through(may be through JTAG or UART) Re: Burning fuse Hello @Abhay2080, You can burn fuses through software using the OCOTP module, as mentioned in the chapter 23.6.1.2.2 "Function" of the Reference Manual.  Please refer to the SDK (version 26.06) example called ocotp_example in order to know how it works. You can find through SDK Builder. Please also refer to 23.3.1.2 Fuse and Shadow Register Read and 23.3.1.3 Fuse and Shadow Register Writes sections in the RM which provides additional information. BR Habib Re: Burning fuse As per my research to burn fuses 1. SPT(simplest) - But we need to change boot mode to ISP and need either UART or USB interface. 2. CST(Mfg tool) - Here also we need to change boot mode to ISP and need USB interface. 3. Through OCOTP module as you mentioned - No need to put in ISP just flash unsigned image (OCOTP drivers and fuses to burn) and burn fuses and then board is locked Is my understanding correct or i am missing some more ways like through JTAG/SWD we can program Re: Burning fuse Hello @Abhay2080, You can use the OCOTP module without entering Serial Downloader Mode. For example, in this community post Kerry describes this alternative method for programming fuses. Please keep in mind that burning fuses can only be done once, so please burn with caution. The Secure Provisioning Tool can help determine the required value based on the configuration you select, which you can use as guide for ensuring that the correct fuses are programmed. Please also refer to chapter 9.4.1 "Boot eFuse Descriptions" in the RM, which provides a detailed description of fuse and its purpose. BR Habib
View full article
HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_2025 Hello NXP, I tried to integrate the HB200x AUTOSAR spec SDK into the S32 Design Studio but I am getting the following error message: Issue: Mc33hb is not found in the toolchain/IDE project. The project will not compile! Level: Error Type: Validation Tool: Toolchain/IDE project Origin: Peripherals Target: Toolchain/IDE project: M7_0 Resource: platform.driver.mc33hb Even the files CDD_Mb33Hb.c CDD_Mb33Hb.h etc., have not been added when the SDK was installed in the S32 Design Studio application (v3.6.4) Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ Hi,  seems you are using wrong RTD version. Based on HB200x AUTOSAR R21-11 0.8.0 release note this software can be used on top of SW32K3_RTD_4.4_R21-11_3.0.0_D2303_DS_updatesite.zip (which needs to be installed in S32 Design Studio IDE v3.5). PetrS_0-1789471295419.png BR, Petr Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ Are there other versions of the HB200x SDK that support RTD 6.0.0 or greater, as we would like to use the newest AUTOSAR libraries for our use case?
View full article
Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello, we use the RTD 6.0.0 and BMS 0.9.1. SDK in EB Tresos to generate our driver code. It runs fine under FreeRTOS with Cortex M7 port that does not use the MPU. Now, we want to switch to a FreeRTOS port that does use the MPU. I want to do this in two steps: 1) Making all tasks privileged but using the MPU, i.e. the MPU is reprogrammed in each context switch 2) Making all tasks unprivileged. That means I have to enable "Enable user mode support" in the drivers that are used by unprivileged tasks Right now, I struggle at 1). Driver functions do not work reliably. For example, SPI only works intermittently. It seems as MPU regions are not working correctly. Even if this is resolved, how could 2) be implemented? The supervisor call handler is given by FreeRTOS and the RTD. Am I supposed to merge them? Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello @Julián_AragónM, I downloaded FreeRTOS from their website and used a port that supports both Cortex M7 and the MPU. If I understand you correctly, I need to use the NXP-provided FreeRTOS. I only found FreeRTOS by NXP that can be configured in S32DS, not EB Tresos. My questions are as follows: - Can I use the generic FreeRTOS, provided with correct M7+MPU Port? - If not, is there an NXP-provided FreeRTOS that can be configured in EB Tresos? We need to use an ASIL-D certified OS at some point. If the NXP-provided FreeRTOS is not ASIL-D certified, we need to switch to something else. Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello @PhilippH, Firstly, MPU initial support was added in FreeRTOS 7.0.0 CD1, can you confirm this is the package you are using? (or 0.8.0 CD1, which is the latest release).  1) Can you share which MPU regions are not working correctly? If possible, please share configuration and routine.  Also, please follow the recommendations included inside the S32K3 FreeRTOS User Manual: Enable Use mpu and Use mpu wrappers v1 options. Set first configurable region to 9 instead of 0 to avoid conflict with MPU region from RTD. Note: Integrating FreeRTOS with MPU support requires modifications in the RTD linker file to define the required memory sections used by FreeRTOS. Use the example files as reference when applying changes to your application. 2) I believe merging is not required, as FreeRTOSConfig.h declares the following macros: /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS standard names. */ #define vPortSVCHandler SVC_Handler #define xPortPendSVHandler PendSV_Handler #define xPortSysTickHandler SysTick_Handler This redirects FreeRTOS's SVC calls to the RTD-provided SVC_Handler in exceptions.c. Best regards, Julián Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello @PhilippH, - Can I use the generic FreeRTOS, provided with correct M7+MPU Port? You can use the generic FreeRTOS port; however, you will need to implement your own solution for S32K3-specific configuration, which is mostly provided in the NXP FreeRTOS package already. Please try to start with this port to see if it solves the problem. - If not, is there an NXP-provided FreeRTOS that can be configured in EB Tresos? No, the provided NXP package is compatible only with S32DS for now. Could you share why do you need FreeRTOS with EB Tresos? Usually, EB Tresos is used for AUTOSAR compliant applications, however, the FreeRTOS package we provided is just for customer evaluation, not recommended to be used in production since it does not meet automotive certifications (ISO26262). You can see it is released as Code Drop (CD) Quality, this is because FreeRTOS is an open-source software and NXP provides it as a reference software without any safety certification. If your application requires a safety-certified OS, you can explore other options, even from our partners: SafeRTOS (Based on the FreeRTOS functional model, with simple migration): https://www.highintegritysystems.com/safertos/ AUTOSAR OS µ-velOSity embOS-Safe NXP RTOS It is up to the customer to select the appropriate third-party RTOS, stacks, IDEs, compilers, etc. for their project. Best regards, Julián Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Thanks a lot for the answer. I got it working with the NXP-provided SafeRTOS and Port as the NXP-provided port already solved the problems I had with the generic Cortex M7 + MPU port provided by SafeRTOS. Regarding our need for EB Tresos: We started with S32DS, but due to the ICs we use, we needed a recent version of the BMS SDK, which was not available in S32DS (at least at the time). We want to do Autosar as little as possible. What worked for now was to generate the driver functions and calling them from FreeRTOS. We do not use and do not plan to use the Autosar RTE. Regarding the 3rd party OS's: Does "With simple migration" mean that an equally user-friendly port exist for SafeRTOS? We used SafeRTOS before, but not with Autosar drivers, but purely handwritten drivers. Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello @PhilippH, Good to hear it is working as expected! Migrating to SafeRTOS is generally the simplest path when using FreeRTOs, as they both work on the same functional model, and provide some dedicated migration tools. NXP does not provide a SafeRTOS port for S32K3, unfortunately. From WHIS' page, I can see S32Kxx devices are supported through our RTD's, which provide full IP and feature coverage for both AUTOSAR and non-AUTOSAR applications, meaning you can choose to not use Autosar. Best regards, Julián Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU FYI, I had to edit system.c supplied by S32K3 RTD 6.0.0: LOCAL_INLINE void Direct_GoToUser(void) { ASM_KEYWORD("push {r0}"); //ASM_KEYWORD("ldr r0, =0x1"); <---- Before: CONTROL.SPSEL changes stack when invoked from FreeRTOS Task. ASM_KEYWORD("ldr r0, =0x3"); // My edit: CONTROL.SPSEL does not change in my case (always invoked from FreeRTOS Task) ASM_KEYWORD("msr CONTROL, r0"); ASM_KEYWORD("pop {r0}"); } This edit is needed because the used stack must not be changed between push and pop of r0. The RTD assumes that MSP is always used, but FreeRTOS tasks use the PSP. The SVC Handler of the NXP-provided FreeRTOS port correctly clears CONTROL.nPRIV without changing CONTROL.SPSEL when raising privilege. You should change Direct_GoToUser() to set CONTROL.nPRIV, preserving the other bits, instead of setting CONTROL to a constant value. In my case, CONTROL=0x3 suffices because I always call Direct_GoToUser() from a FreeRTOS task, but in the general case it could also be invoked from unprivileged main(). Additionally, I wonder if an ISB instruction should be added after changing CONTROL, as ARM recommends.
View full article
ROMブートローダーのWriteMemoryコマンドのCRC16計算 現在、別のマイコンとKL17内蔵のUART ROMブートローダーを使ってKL17のマイクロコントローラをプログラムしようとしています。少なくとも紙の上では、pingと消去は完了しましたが、KL17へのデータ書き込みに苦戦しています。データシートの例(43ページ)には、これらのバイト(CRC16バイトとメモリ書き込みコマンドパケットを除くフレーミングパケット)について、次のように記載されています。 0x5A, 0xA4, 0x0C, 0x00, 0x04, 0x00 , 0x00, 0x02, 0x00, 0x04, 0x00, 0x20, 0x64, 0x00, 0x00, 0x00 CRC16バイトは0x06 0x5Aになります。しかし、27ページに記載されているCRC16アルゴリズムでは、私の環境では0x2b 0x56が出力されます。また、CRC16の計算方法のさまざまなバリエーションを含む様々なCRC16カリキュレータをオンラインで試しましたが、どれも出0x06 0x5Aはありませんでした。 Noay_0-1790003799652.png 私の推測では、計算に含めるべきバイトが欠けているのかもしれません(どのバイトかは分かりません。なぜなら、その後のデータパケットはすべてそれぞれCRC16バイトが割り当てられているからです)。あるいは誰かがデータシートを誤ったのかもしれません(これもまたKL17サブファミリ参照マニュアルにまさに同じ例なので可能性は低いです)。 Re: Rom Bootloader WriteMemory Command CRC16 calculation こんにちは、 @Noay さん。 投稿ありがとうございます。リファレンス・マニュアルの「0x06 0x5A」値は誤りで、おそらくドキュメントの問題だと思います。ご提供いただいた情報に基づくと、CRC計算結果の「0x2B 0x56」は正しいようです。 blhostツールを使ってブートローダーコマンドのデバッグは可能です。パラメータ「-d」を指定すると、ホストとターゲット間のすべての通信プロセスが提供されます。 KL27ボードでこの機能を試してみました。下のスクリーンショットをご覧ください。 KL17のEVBボードは入手できません。同じ方法をKL17デバイスで試してみて、どんな結果が得られるか試してみませんか? ドキュメントの誤りをお詫びします。この件を社内チームと共有し、それに応じて文書を更新するよう提案します。 BR セレステ
View full article