2167421_ja-JP

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

2167421_ja-JP

2167421_ja-JP

MCX N947:Ethernetとカメラ機能の同時実装

概要

NXPのFRDM-MCXN947ボードは、MCXN947デバイスをベースとした低コストの評価用ボードです。NXPはMCXN947デバイス向けに、ハードウェア評価ボード、ソフトウェア開発IDE、サンプルアプリケーション、ドライバなどのツールとソフトウェアサポートを提供しています。本ボードはEthernet PHYを搭載し、カメラモジュールおよびNXPの低コストLCDモジュールPAR-LCD-S035にも対応しています。

Harry_Zhang_0-1757560073724.png


この記事では、MCXN947ボード上のカメラを使用して、イーサネット接続伝送と画像取得を同時に実装する方法を探ります。


ハードウェア環境

  • 開発ボード: FRDM-MCXN947
  • ディスプレイ: 3.5インチTFT LCD (P/N PAR-LCD-S035)
  • カメラ:OV7670
  • ネットワークケーブル: RJ45

ソフトウェア環境

  • IDE: MCUXpresso IDE v11.9.0
  • SDK: MCUXpresso SDK Builder(nxp.com)

ピン構成および多重化

回路設計時には、ピン競合の回避、つまり同一ピンが異なるタイミングで競合する機能に設定されないよう注意する必要があります。ピン機能を設定する際には、電圧範囲、電流駆動能力といった電気的特性が周辺機器の要件を満たすかどうかも考慮する必要があります。ソフトウェア開発時には、MCUファームウェアやライブラリのバージョンごとのピン多重化サポートを確認し、ソフトウェアの互換性と安定性を確保する必要があります。

lwip_examples」→「lwip_ping_bm」プロジェクトをFDRM-MCXN947 SDKからインポートし、board -> pin_mux.cファイルを開くと、以下の表のとおりEthernet接続に使用されるピン設定を確認できます。

ピン名 Pinmux割り当て
P1_4 ALT9 - ENET0_TX_CLK
P1_5 ALT9 - ENET0_TXEN
P1_6 ALT9 - ENET0_TXD0
P1_7 ALT9 - ENET0_TXD1
P1_8 ALT9 - ENET0_TXD2
P1_9 ALT9 - ENET0_TXD3
P1_13 ALT9 - ENET0_RXDV
P1_14 ALT9 - ENET0_RXD0
P1_15 ALT9 - ENET0_RXD1
P1_20 ALT9 - ENET0_MDC
P1_21 ALT9 - ENET0_MDIO
 

NXP公式サイトからMCXN947ボードの回路図をダウンロードし、カメラおよびFlexIO LCDに対応するモジュールを確認すると、下図のようになります。

Harry_Zhang_1-1757560397299.png

Harry_Zhang_2-1757560410963.png


FlexIOはNXPが開発した柔軟な入出力(I/O)技術で、マイクロコントローラ(MCU)と外部デバイス間で高速かつプログラマブルな通信を実現します。FlexIOモジュールを設定することで、さまざまな通信プロトコルを模倣したり、カスタムプロトコルを実装したりできます。

注意:このLCDは3V I/O電圧にのみ対応しているため、このコネクタ上のすべてのピンを設定する際は、必ず3V3動作モードに設定する必要があります。

以下の図はSDKサンプルの動作原理を示したもので、カメラが画像を取得し、LCDに転送して表示します。

Harry_Zhang_3-1757562668813.png

LCDモジュールは、Ethernetやカメラ機能に必要なピンとの競合がない一方、カメラモジュールの設定に必要なピンはEthernetと重複していることが分かります。ピンの再利用状況は、NXP公式サイトで提供されているデータシート内の次の表に示されています。

ピン名

Pinmux割り当て

P0_4

ALT0 - P0_4

P0_5

ALT0 - P0_5

P1_4

ALT7 - SmartDMA_PIO0

P1_5

ALT7 - SmartDMA_PIO1

P1_6

ALT7 - SmartDMA_PIO2

P1_7

ALT7 - SmartDMA_PIO3

P1_10

ALT7 - SmartDMA_PIO6

P1_11

ALT7 - SmartDMA_PIO7

P1_18

デフォルト-PIO-ロー

P1_19

Default-PIO-High

P2_2

ALT1 - CLKOUT

P3_2

ALT2 - FC7_P0

P3_3

ALT2 - FC7_P1

P3_4

ALT7 - SmartDMA_PIO4

P3_5

ALT7 - SmartDMA_PIO5


上記のとおり、P1_4P1_5P1_6、およびP1_7Ethernetピンと直接競合します。EthernetピンはRJ45 PHYに固定されているため、カメラインターフェースは代替ピンへ再割り当てする必要があります。

データシートによると、P3_0P3_1P3_2、およびP3_3が代替ピンとして使用可能です。しかし、P3_2P3_3はすでにI²C用に使用されているため、これらはそれぞれP3_8およびP3_7へ再割り当てされています(kPORT_MuxAlt3を使用)。

更新後のピンマッピングは以下のとおりです。

前のピン

現在のピン

Pinmux割り当て

P1_4

P3_0

ALT7 - SmartDMA_PIO0

P1_5

P3_1

ALT7 - SmartDMA_PIO1

P1_6

P3_2

ALT7 - SmartDMA_PIO2

P1_7

P3_3

ALT7 - SmartDMA_PIO3

P3_2

P3_8

ALT3 - FC7_P0

P3_3

P3_7

ALT3 - FC7_P1

 

実装

再割り当てされたP3_0、P3_1、P3_7、P3_8はボードのヘッダには出ていませんが、回路図によるとテストパッドTP12、TP31、TP18、TP16に接続されています。カメラはこれらのパッドに直接配線することで接続できます。

Harry_Zhang_0-1757564251929.png

 
ピン名 はんだパッド
P3_0 TP12
P3_1 TP31
P3_7 TP18
P3_8 TP16
 

Harry_Zhang_2-1757564416860.png


display_examplessmartdma_camera_flexio_mculcdサンプルをlwip_ping_bmプロジェクトに統合します。boarddriverscomponentsourceフォルダにある.cおよび.hファイルをマージし、これらのフォルダをProject -> Properties -> C/C++ Build -> Settings -> Includes配下のインクルードパスに追加します。

Harry_Zhang_3-1757564453620.png


統合後、プロジェクトをコンパイルしてボードへ書き込みます。出力結果は以下の画像のとおりです。

Harry_Zhang_4-1757564465243.png

Harry_Zhang_5-1757564478135.png



まとめ

MCX N947ボードでは、EthernetとCamera機能を同時に実装できます。lwip_ping_bmデモは、lwIP TCP/IPスタックを使用したICMPベースのPing機能を示すもので、PCへICMP Echoリクエストを定期的に送信し、その応答を処理します。

smartdma_camera_flexio_mculcdデモでは、SmartDMAを使用してOV7670カメラからフレーム単位で画像データを取得し、FlexIO経由でST7796S LCDパネルへ表示する方法を紹介しています。

ピンの再設定とマルチプレクシングにより、MCX N947でEthernetとカメラを同時に使用することが可能になります。


Tags (1)
No ratings
Version history
Last update:
‎11-20-2025 07:32 AM
Updated by: