2376546_ja-JP

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

2376546_ja-JP

2376546_ja-JP

MCUXpresso Config Tools : Pins Toolの使い方 (日本語ブログ)

目次

 

はじめに


 本記事では、MCUXpresso Config Toolsに含まれ、ピンの設定をおこなう「Pins Tool」について解説します。「Clocks Tool」の使い方については、以下の記事をご参考ください。

最近のMCUには多くのペリフェラル機能が集約・統合されており、それに伴いピンの数も200ピンを超えるようなMCUも出ています。MCUのピン設定は柔軟に使えるように設計されており、1つのピンで複数の機能(信号)を切り替えて使うことができます。また、同じ機能でも複数のピン候補から選べるようになっています。柔軟性が高い分、設定は非常に複雑です。
そのため、どの機能をどのピンに割り当てるか(ピン・マルチプレックス設定)は、設計初期の重要かつ大変な作業の一つです。そこで活躍するのが、MCUXpresso Config Toolsの「Pins Tool」です。
Pins Toolを使うことで、ピン割り当てや電気的設定をGUI上で直感的に行い、その結果をコードとして自動生成することができ、手作業による設定ミスや競合(コンフリクト)を避けることができます。

VS Code環境からConfig Tools内のPins Toolを開き、はじめにツールの使い方を解説します。その後、ピン設定を変更し、LED点滅色を変更するデモンストレーションを紹介いたします。

 

Pins Toolはどのような場面で活用するのか?


  • 既存のピン設定を確認したいとき
  • ピンの競合(コンフリクト)を避けて設計したいとき
    (*誤って競合した設定をすると視覚的に分かりやすくエラー箇所が表示されます)
  • プルアップ/プルダウンやドライブ強度などの電気的設定をGUIで調整したいとき
  • ピン設定コードを自動生成したいとき
 

Config Toolsのインストール


VS Code環境におけるConfig Toolsのインストール方法について解説します。
※MCUXpresso for VS Codeのインストールがお済みでない方はこちらのブログをご参照ください。


VS Codeを起動後、左側のパネルからMCUXpressoを選択し、Quick Start PanelよりOpen MCUXpresso Installerをクリックしてください。

Kogiso_0-1780554901225.png


Installerが立ち上がりますので、MCUXpresso Configuration Toolsを選択し、右上のInstallをクリックしてください。
(今回のブログではMCUXpresso Config Tools v26.03 をInstallしています)

Kogiso_1-1780554932958.png

インストールの開始と同時にMyNXPへのログインを求められます。

Kogiso_2-1780554952803.png


ログインの後、License Agreementが表示されますので内容をご確認のうえ同意してください。

※インストール後は、VS Codeを再起動してください。


Q. もしインストールに失敗した場合は?
A. 以下ウェブサイトからのご自身のPC OS環境に応じたインストーラーをダウンロードして、お試しください。
MCUXpresso Config Tools | NXPマイクロコントローラ (MCU) 向けソフトウェア開発 | NXP Semiconductors

インストールを進めると初期画面で以下のような画面が表示されますが、該当がなければ閉じて問題ありません。

Kogiso_3-1780554991836.png

VS CodeからConfig Toolsを呼び出すにはSDKをインストールし、サンプルをインポート後、プロジェクトを右クリックすると Open with MCUXpresso Config Toolsが現れますので、こちらをクリックしてください。
※この一連のプロセスは最後のデモンストレーションで詳細に説明するので、ここでは割愛します。
 しばらくするとConfig Toolsが起動します。

Kogiso_4-1780555023748.png
なおMCUXpresso IDEを使用している場合、Config Toolsは標準で統合されており、上部タブから直接起動できます。

Kogiso_5-1780555059845.png


 

Pins Toolの画面構成


Config Tools起動後、画面右側のパネルでツールの切り替えが可能です。

今回は「Pins」を選択します。

Kogiso_6-1780555122082.png

Pin Tool内の主要なビューについて説明します。

  • Pins : ピン単位でペリフェラルの割り当てを行う
  • Peripheral Signals:ペリフェラル単位でピンの割り当てを行う
  • Package:チップのピン配置を可視化
  • Routing Details:各ピンとペリフェラルの接続関係や入力/出力設定を行う
  • Problems:設定内容に関するエラーや警告が表示される


Kogiso_7-1780555327080.png


続いて、設定において最も重要となるRouting Detailsについて深堀りして見ていきます。

  • # : MCUパッケージ上の実際のピン番号(位置)を示す。
  • Peripheral : ピンに割り当てられているペリフェラルを示す。
  • Signal : ペリフェラルの信号を示す。UARTであればTX/RX、SPIであればSCKやMOSIが表示される。
  • Arrow: 接続方向を示す。 <->:双方向 <- :ペリフェラルへの入力 -> :ペリフェラルからの出力
  • Routed pin/signal:ペリフェラルの信号が接続されるピンもしくは内部信号を示す。
  • Label : 任意に設定可能なラベル。
  • Identifier:コード生成時に使用される識別名。この識別名が #define マクロとして自動生成され、アプリケーションコードから参照される。
  • Direction:ピンをGPIOとして使用する場合の入出力方向(Input or Output)を指定。UARTやSPIなどの信号は、あらかじめ入出力方向が決まっているため、Directionは参考表示となる場合がある。Kogiso_8-1780555440199.png

ピン設定に誤りがあり、エラーが発生するとProblemsビューにはエラーの発生箇所と原因が表示されます。またその他の箇所にも赤色でハイライト表示されるため、問題箇所を視覚的に特定できます。

下記図では、B12ピンに対して複数のペリフェラルが設定された状態、つまり競合(コンフリクト)が起きています。

Kogiso_9-1780555489529.png


 

Pins Toolの基本 ~信号はどこからどこへ流れるのか?~


実際にツールを操作する前に、Pins Toolが何を設定しているツールなのかを整理しておきましょう。

Pins Toolでは
「信号がどこから来て、どこへ流れるか」
という観点でピン設定を行います。
この“流れ”には、大きく3つのパターンがあります。


① 外部の信号をMCUに取り込む(ピン⇀ペリフェラル)

まずは入力です。外部のセンサやスイッチ、他のICからの信号をピン経由でMCU内のペリフェラルに取り込むケースです。

 Routing Details上の”+”をクリックすると行を追加し、直接入力できます。

 下記図の例では、「リセットボタンSW1からの入力された信号をF3ピン(RESET_B)経由でMCUに取り込むこと」を示しています。

Kogiso_0-1780902810271.png

Kogiso_0-1781753425379.png



② MCU内部の信号を外部に出す(ペリフェラル⇀ピン)

続いて出力です。MCU内部のペリフェラルからピンを介して外部に信号を出すケースです。

下記図の例では、「内部ペリフェラル(FlexSPI)の信号(FLEXSPI_B_DATA0)をK3ピンに割り当て、その信号を外部へ出力すること」を示しています。

Kogiso_11-1780555643049.png


Kogiso_1-1781753450620.png



③ 内部で完結する接続 (ペリフェラル⇀ペリフェラル)

最後に内部ペリフェラルの出力を別の内部ペリフェラルの入力に接続するケースです。

下記図の例では、「PWMのトリガ信号(PWM0_A0_TRIG0)を、内部ルーディングによりADC0のトリガ入力(TRG CH0)として使う」ことを示しています。
この場合は外部ピンを経由しないため、左端のピン割り当てを示す”# “はn/aとなっています。

Kogiso_12-1780555739542.png

Kogiso_4-1780993159237.png


実際の多くの設計では、外部との入出力となる①・②のケースが大半を占めます。 ③の内部接続は、より高度な制御や最適化を行う際に使用されます。
 

デモンストレーション:ピン設定を変更し、LEDの点滅色を変更する


ここからは実際にPins Tool上でピン設定を変更し、評価ボード上のLEDの点滅色が変更されるかを見ていきます。

ハードウェアの準備
本稿で使用する評価ボード
FRDM-MCXN947


SDKのインストール
VS Code内の左側のパネルからMCUXpressoを選択した状態で「Import Repository」をクリックしてください。

Kogiso_13-1780556224474.png


その後、左から2番目の「REMOTE ARCHIVE」をクリックし、Packageにて「FRDM-MCXN947」を検索してください。「947」と打ち込むとすぐに出てきます。

Kogiso_14-1780556250581.png

Name名、Location名、Create Gitへのチェックは任意に設定して下さい。

※NameおよびLocation名については、「小文字の英数字」「アンダースコア(_)またはハイフン(-)」のみを使用し、(\, /, :, *, ?, ", <, >, |)などの記号やスペース(プログラムの動作不良の原因になりうる)を避けるのが無難です。

最後に「I agree」にチェックを入れた後、「Import」をクリックするとSDKのインストールが開始しますので、しばらくお待ちください。画面右下に"Repository successfully imported"が表示されたら完了です。

Kogiso_15-1780556320281.png


サンプルコードのインポート

SDKのインストールが完了したら、サンプルコードのインポートへと進みます。
左側のパネルから「Import Example From Repository」をクリックしてください。

Kogiso_16-1780556391584.png


右側に表示された各タブ内で、「Repository」では先ほどインポートしたSDKを選択、
Board」はFRDM-MCXN947を選択してください。
Template」では、今回はLEDの点滅色を変えるデモンストレーションですので、
led」と打ち込んで表示される「driver_examples/gpio/gpio_led_output_cm33_core0」で試してみます。

Kogiso_17-1780556445876.png


その後、Toolchainを選択して「Import」をクリックしてください。

Kogiso_18-1780556477536.png


ConfigToolsを開く

インポートしたサンプル上で右クリックして、「Open with MCUXpresso Config Tools」を選択してください。少し待つとConfig Toolsが立ち上がります。

Kogiso_19-1780556524007.png


Config Toolsが開いたらまずは右側のパネルにあるOverviewを確認します。このサンプルにおいては、ClocksPins2つが緑色(ONの状態)になっており、2つのツールが有効であることを示しています。


Kogiso_21-1780556565520.png


Pins
を選択し、現在のピン設定の状況を見てみます。

Routing Details」を見ると3つのピン(A1,B1,B12)が有効になっています。
しかしながら、LEDに対して設定されているB12ピンDirectionを見ると“Not Specified”となっており、つまりPins Tool上ではLEDに対してOutput(出力)設定がされていない状態となっています。

Kogiso_23-1780556630970.png

では、なぜ設定がされていないのにLEDが点滅するのかというと、VS Codeに戻りCソースファイル(gpio_led_output.c)を見てみます。

Kogiso_24-1780556672951.png


C
ソースファイルを見ると、BOARD_InitHardware()によってピンの機能は反映されますが、先ほど確認したように、この時点ではPins Tool上でB12ピンはGPIO出力として設定はされていません。
したがって、このサンプルの初期状態では、GPIOの入出力方向はPins Toolではなく、ソースコード側に依存しています。
具体的には、GPIO_PinInit()関数によってB12ピンが「GPIO出力」として初期化され、LEDを制御できる状態になっています

今回の目的はPins Tool上でピン設定を変更し、その結果をコードとして反映させることですので、ソースコード側からGPIOの初期化および制御に関する部分(下記赤枠)を削除します。
削除するとGPIOの出力設定がどこにも存在しなくなるため、ビルド・デバッグを行うとLEDは点滅しなくなります。

Kogiso_25-1780556727764.png


続いて、Pins Toolsでピン設定を行います。Pins Toolより#B12ピンのGPIO0_10のDirectionOutputに変更します。

これは先ほどの②MCU内部の信号を外部に出す(ペリフェラル⇀ピン)のケースです。
これにより「B12ピン(PIO0_10)をGPIO出力として設定し、MCU内部のGPIO制御(ソフトウェア制御)による信号をピン経由で外部(LED_RED)へ出力する状態」へと変わりました。

Kogiso_26-1780556782627.png

Kogiso_0-1780992952475.png



コードの変更点は右側のパネルのCode Previewより確認できます。
Not SpecifiedからOutputに変更することでpin_mux.cの最下部にGPIOの初期化コードが追加されます。

Kogiso_27-1780556823305.png


この状態でサンプルコードを書き換えます。まずはConfig Toolsの画面左上にあるUpdate Codeをクリックしてください。Kogiso_29-1780556862972.png

その後Windowが表示されます。ここでもCode Previewと同様にコードの変更を確認することができます。

Kogiso_0-1781755356712.png


VS Codeに戻ると、画面上部にチェックボックスが3つ並んで表示されますので、チェックが入った状態でOKをクリックしてください。少し時間が経つと、Clocks Toolでの変更がVS Code上のサンプルコードに適応されます。
※SDKのバージョンが異なる場合は表示されない場合もあります。

Kogiso_30-1780556951613.png

完了したら、ビルドの前にボード(FRDM-MCXN947)PCを接続します。

Kogiso_31-1780556974535.png


接続が完了したらインポートしたサンプルをデバッグ(ビルド&書き込み&アプリケーションの実行)します。

Kogiso_32-1780557011825.png

デバッグのプロセスが完了したら、プログラムがブレイクポイントで止まっているので、画面上部のアイコン内の"|▶"をクリックします。

Kogiso_33-1780557034309.png

動画のように赤色のLEDが点滅を開始します。

(マイビデオを表示)


プログラムの終了は、アイコンの□をクリックします(PCと接続している限りLEDは点滅を続けますが一旦無視してください)

Kogiso_34-1780557121251.png


なぜ赤色LEDが点滅したのか?
ここで、なぜ赤色LEDが点滅したのかについて補足します。
今回の赤色LEDの点滅は、大きく次の2つの設定によって決まっています。

  • app.h:どのLED(ピン)を操作するかを定義
  • pin_mux.c:そのピンをどのように使うかを定義

この2つによりLEDの点滅が実現されています


どのLEDを操作しているか?(app.h)
Cソースファイル「gpio_led_output.c」の最下部には、GPIO_PortToggle :指定したGPIOピンの出力を反転するための関数が存在します。

この関数では、

  • BOARD_LED_GPIO (GPIOポート)
  • BOARD_LED_GPIO_PIN(ピン番号)

で指定されたGPIOの出力を反転し、LEDを点滅させています。

ただしこの時点では、このGPIOポートとピンがどの色のLEDに対応しているかはわかりません。
そこで、BOARD_LED_GPIO で右クリックし「Go to Definition(もしくは"fn + F12")」を選択すると、「app.h」が開きます

Kogiso_35-1780557314641.png


app.hDefinitionsの部分を確認すると、これらの定義は赤色LED用のGPIOに割り当てられていることがわかります。つまり、この時点で操作対象が赤色LEDであることが確定します。しかし、app.hで赤色LEDが割り当てられていてもピン設定がGPIO出力になっていなければ、LEDは光りません。

Kogiso_36-1780557354117.png


ピンをどのように使うか(pin_mux.c)

続いて、ピン設定を確認するためにpin_mux.cの中身を見ていきます。「gpio_led_output.c」内にPin、Clock、Debug consolのそれぞれ初期化を実行するためのBOARD_InitHardware(); があるので、ここで右クリックし「Go to Definition(もしくは"fn + F12")」を選択し、さらに詳細を見てみます。

遷移先にBOARD_InitPins();があり、ここにピン設定が記述されています。BOARD_InitPins(); 上でもう一度右クリックし、「Go to Definition(もしくは"fn + F12")」を選択すると「pin_mux.c」が開きます。

Kogiso_37-1780557449769.png

pin_mux.c Pins Tool上で設定した内容が反映されたファイルで、先ほど赤色LEDOutputへ変更した際にCode Previewで確認したものと同じです。最下部に以下の記述があり、赤色LEDに接続されたB12ピンを、初期値0GPIO出力として初期化することを意味しています。

Kogiso_38-1780557510294.png

このように、app.hで「どのLEDを操作するか(赤色LED)」が決まり、pin_mux.cで「そのピンをGPIO出力として使えるようにする」ことで、GPIO_PortToggle()によって赤色LEDを制御できる状態になっています。


ピン設定を変更し、LEDの点滅を青色に変更する

次にピン設定を変更することでLEDの点滅色を赤色から青色に変更します。
Config Toolに戻り、Pinsから「LED」検索するとC4ピンが青色LED(LED_BLUE)に対応していることがわかります。

Kogiso_39-1780557596823.png


C4ピンにチェックを入れると下図のようなウィンドウが表示されるので、GPIO1:GPIO,2(PIO1_2)にチェックを入れてDoneをクリックします。

Kogiso_40-1780557619256.png


ここまで完了すると、Routing Detailsに追加したC4ピンが表示されます。
C4ピンをGPIO機能(PIO1_2)として設定し、このピンに青色LEDLED_BLUE)というラベルを割り当てています。これにより、ソフトウェアからこのピンを青色LEDとして扱うことができます。

Kogiso_41-1780557655257.png


続いて、ピンの入出力設定を行います。Directionの赤色LEDOutput⇀Not Specifiedに、青色LEDをNot Specified ⇀Outputに変更します。この設定により青色LEDをGPIO出力として設定できました。

Kogiso_42-1780557690076.png


Code Previewで、pin_mux.cの変更点は確認できます。

Kogiso_43-1780557712959.png


この状態でサンプルコードを書き換えます。先ほど実施したようにConfig Tools上でUpdate Codeを実行し、VS Code上でも変更を承認してください。変更したピン設定が反映されます。

ここまでで、まずはpin_mux.cが更新されました。
最後に、app.hを更新します。
先ほどの手順でapp.hを開き、LED_REDからLED_BLUEに変更します。
この定義を変更することで、GPIOの制御対象を赤色LEDから青色LEDへ切り替えることができます。

Kogiso_44-1780557756352.png

ここまで完了したら再度デバッグ(ビルド&書き込み&アプリケーションの実行)します。
デバッグのプロセスが完了したら、画面上部のアイコン内の"|▶"をクリックします。
動画のように青色のLEDが点滅を開始します。

(マイビデオを表示)


ちなみに、なぜ1つのLEDで異なる色の点滅ができたかについて、今回使用したボードFRDM-MCXN947にはRGB LEDが搭載されています。FRDM-MCXN947の回路図を見るとピンごとにR/G/Bが割り当てられていることがわかります。
このため、2色のピンを同時にPins Tool内で出力設定し、ソースコードを適切な形に整えれば様々な色を表現することも可能です (例 : + = )。

Kogiso_1-1781668629459.png


 

おまけ - ピン一覧をドキュメント(Excelファイル)で確認する


MCX Nのリファレンス・マニュアルを開くと、添付ファイルにMCXNP184M150F70_Pinout.xlsx というファイルがあります。ここにはピンの一覧と各ピンに対するペリフェラル機能の一覧が載っています。
最近では、Pins Toolの進化により、このような一覧表を参照しながら手作業でピン設定を行う機会は少なくなってきているかもしれません。

一方で、デバイス選定やパッケージ比較、利用可能なペリフェラルの確認など、システム設計の初期段階では今でも有用なリファレンス資料として活用できます。

MCX Nのリファレンス・マニュアルをダウンロードするには、MyNXPアカウントの登録が必要です。

Kogiso_0-1782189821835.png

※Acrobat Readerで開いています


今回はシンプルな例で説明しましたが、実際の設計ではピン設定はさらに複雑になります。そんなときこそPins Toolを活用することで、ミスを防ぎながら効率的に設定を進めることができます。是非ご活用ください。


=========================

本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。
お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。
(既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。)

MCUXpresso Config Toolsの中から「Pins Tool」にフォーカスし、ピン設定の基本および設定方法を解説します。
VS Code環境での導入方法から、ピン設定の変更によるLED点滅デモまで紹介します。

(作業時間:10分 *MCUXpresso for VSC (Visual Studio Code), SDKをインストールしている前提)

MCUXpressoMCXSW | Downloads日本語ブログ
Tags (1)
No ratings
Version history
Last update:
2 weeks ago
Updated by: