マイコン端子の割り付けには統合開発環境のコード生成が便利

コード生成画面回路

回路設計においてマイコンの端子割り付けは手間がかかるしミスをしやすい作業です。この作業は、統合開発環境のコード生成ツールを使うと便利です。その理由を実例をつけて説明します。

私は回路設計/基板アートワーク/ソフト設計を一貫して対応することも多いです。その中で、回路設計中に統合開発環境でコード生成の設定まで行ってしまう作業フローが自然と身に付きました。

こんな方におすすめの記事
  • マイコン端子の割り付けでミスした経験のある方
  • デジタル回路設計の効率化を検討している方
  • ソフト設計者との情報共有を効率化したい方

マイコン端子の割り付けは面倒でミスが多い

回路設計した基板が完成してソフト開発担当者に渡したら、GPIO出力で割り付けた端子が入力専用端子だったことが発覚。

マイコン周辺のパターン配線が交差しすぎてしてGNDが脆弱。どうもノイズ特性が良くない。

回路設計をしていて、このような経験ないでしょうか?

回路設計において、マイコン端子の割り付け作業は面倒でミスが発生しやすい工程です。

マイコンデータシートの端子機能表は複数のパッケージ/ピン数の型番がまとめて書かれていて見難いことが多いですし、細かな設定は網羅されていないことも多々あります。100ピン以上もある部品のデータシートで、あっち見てこっち見てなんて作業していたらミスするのも仕方が無いです。

こんな時には、統合開発環境に入っているコード生成を使うと便利です。

統合開発環境のコード生成とは?

統合開発環境 CS+
ルネサス 統合開発環境 CS+

統合開発環境とは、各マイコンメーカやサードパーティからリリースされているソフト開発ツールセットです。

コード生成はその中のツールで、マイコン機能のレジスタ設定や基本的な制御関数を自動で生成してくれます。マイコンの端子割り付けの他にも各種設定がGUIで行えます。

主要マイコンメーカの統合開発環境をいくつか紹介します。これらは全て、コード生成の機能を持っています。

  • ルネサス
    • CS+
    • e2studio
  • Microchip
    • MPLAB X IDE
  • STマイクロ
    • STM32CubeIDE

統合開発環境の費用は有償/無償どちらもあります。有償のものであっても、コード生成くらいなら無償評価版で試せることも多いです。

端子割り付けにコード生成を使う理由

統合開発環境ではコード生成作業画面
統合開発環境ではコード生成作業画面。GUIで作業しやすい

理由はGUIで端子配置図を見ながら作業できる。これにつきます。上のコード生成作業中の画面をみていただければ、その利便性は明らかです。

GPIOの設定は各ポートの入力/出力にチェックを入れるだけ、入力専用ポートには出力チェック欄は無いので間違えることも無いです。

物理的に並んだ端子配置図で割り付け状況を確認できます。基板上のレイアウトを想定しながら端子を割り付けると、配線の交差も減らせます。

型番の異なるマイコンの情報も混在しているデータシートの端子機能表と睨めっこして設計する気が無くなります。

資料としての優先順位はデータシート > コード生成 です。 コード生成にバグが潜んでいることもごく稀にありますので、最終的な設計確認は必ずデータシートで行ってください。

実例

ここではルネサスの統合開発環境であるCS+を使って、実際の作業例を紹介します。

まずはプロジェクトファイルを生成して使用するマイコンを指定します。

そうしたら次は端子割り当てレジスタを設定してピンマルチ設定を決めます。ルネサスのコード生成では、これを最初に行わないといけません。(この設定は一度行うと変更できない仕様がちょっと不満です。今後の改善に期待しています。)

これが終わったら、別タブの【クロック設定】や【オンチップ・デバッグ設定】も実施します。CLK端子やデバッグ端子に別機能を割り当てできなくなります。

端子割り当て設定画面
ルネサスの開発環境では、まず初めに端子割り当て設定でピンマルチ設定を行う

次は各ペリフェラルの設定を行います。今回はA/Dコンバータ入力10CHとタイマ(PWM出力)1CH、UART送受信を1CH設定しました。

注目は右上タイマ設定です。チャネル0にはPWMスレーブ機能(実際にPWM出力する端子機能)がありませんでした。こういう細かな仕様はデータシートを熟読しないと見つけられなくて見落としてしまいがちです。コード生成では無い機能は選択肢に上がってくることも無いので間違えようがありません。

各ペリフェラルの設定画面
各ペリフェラル(A/Dコンバータ、タイマ、UART)の設定画面

次に汎用ポートの設定をします。!マークのついているポートは既にペリフェラルで使用済というマークです。P121=P124は入力専用ポートで内蔵プルアップも無いことが一目瞭然です。
(一番右の【1】のチェックBOXは出力ポートの初期値になり、チェックを入れるとHighが出力されます。回路設計においては関係無いですね。)

汎用ポートの設定画面
汎用ポートの設定画面。入力専用ポートが一目瞭然

ルネサスのコード生成には、ポート出力がオープンドレインのみ(CMOS不可)という情報がありません。出力ポートがHighにならない、なんて事のないようデータシートもしっかり確認してください。

全ての端子割り付けが出来たら、【コード生成】【端子配列へ反映】と選択して端子配置図を確認します。基板のレイアウトを想像して、配線が交差しそうなところがあれば気の済むまで修正を行います。

割り付けが終わった端子配置図
割り付けが終わった端子配置図

まとめ

マイコン端子の割り付け作業には統合開発環境のコード生成を使うと便利です。

下のようなメリットが享受できます。

  • 入力専用端子に出力機能を割り付けるミスが無くなります
  • マイコン周辺パターンの交差を減らしてノイズ特性上げる
  • GUIで作業性向上

ハードもソフトも担当されている方にとっては当たり前の事だったかもしれませんが、大企業になるほどハード/ソフト分業が進んでいるため、知らなかったということも多いのではないでしょうか。

今回の記事が回路設計者のミス低減や作業性アップになればうれしいです。

メーカとしての正式資料はあくまでデータシートです。最終的な設計確認は必ずデータシートで行ってください。

その他のカン・コツ紹介記事

これ以外にもハード設計のカン・コツを紹介した記事があります。こちらも参考にしてみてください。

KiCAD (Pcbnew)の便利な使い方。作業効率アップのコツ

プリント基板での電気信号の伝搬速度は光速の半分

見やすい電子回路図の書き方とは?

回路図のポカミスを見抜く基板設計中に感じるべき違和感

トランジスタを使った定電流回路の例と注意すべきポイント

電源回路の設計を素早く簡単に。TIのオンライン設計支援ツール

KiCAD(Pcbnew)で多層板やビルドアップ基板を設計する方法

コメント