PR

【ワレコの電子工作】PIC32マイコン用の汎用実験基板を自作【KiCad設計編】

この記事は約28分で読めます。
スポンサーリンク
ワレコ
ワレコ

ワテもいよいよPICマイコンを使ってみる事にした。

ワテがマイコンプログラミングに初挑戦したのが数年前だ⤵️

この時にはArduinoでLEDを点滅させる通称Lチカの実験に成功した。

今回、ワテもいよいよPICマイコンに挑戦することにしたのだ。

とは言ってもPICでLチカだけだと芸が無い。

と言う事で、PIC32シリーズマイコン用の汎用実験ボードを設計してみた。

そのガーバーデータを使ってPCBWayさんにプリント基板を発注するまでの作業過程を紹介したい。

では本題に入ろう。

スポンサーリンク
スポンサーリンク

PICマイコンとは

実はワテはPICに関して殆ど知らない。

PICは「ピーアイシー」と呼ぶよりも「ピック」と呼ぶのが一般的のようだ。

Wikipediaによると、PICは「Peripheral Interface Controller」の略で、マイクロチップ・テクノロジー社 (Microchip Technology Inc.) が製造しているマイクロコントローラ(制御用IC)製品群の総称であるとの事だ。

まあ要するにCPU、メモリ(RAM/ROM)、I/Oポートなどが1つのICに集積されたオールインワンなマイコンデバイスと言う事だと思う。

PICマイコンは色んな種類があるが、ワテの調査では大きく分けて3種類(8ビット、16ビット、32ビット)のシリーズがある。

値段的には安いやつだと秋月電子で本日ならPIC10F222-I/Pと言うDIP8ピンパッケージのやつが45円(税込)だ。

PICのプログラミングはC言語やアセンブラ言語でやるようだが、近年ではMPLAB X IDEと言うGUIが充実した無料開発環境をMicrocip社が提供してくれているので、ワテもそれを使ってC言語でプログラミングしている。

と言う事で、PICは色んな種類があるので電化製品、機械制御、自動車の電子制御、その他、色んな電子機器で使われている。

と言う事でワテもとりあえずLチカ実験をやってみた。

PICマイコンでLEDチカチカ成功

LEDチカチカ、通称Lチカ。

三宮の地下街は「さんちか」

梅田の地下街は「ウメチカ」

難波の地下街は「ナンチカ」ではなく「なんばウォーク」。

8bit PICマイコンでも超高性能

と言う事で、以前に秋月電子で買っていたPIC18F27J53-I/SPと言う8bit PICマイコンでLチカをやってみた。その型番で秋月で検索してみたが、ヒットしなかったので既に取り扱い中止のようだ。

で、似たような型番PIC18F27Q43-I/SPを見つけたので、ChatGPTさんに両者を比較してもらった(下表)。

項目 PIC18F27J53-I/SP PIC18F27Q43-I/SP
世代 旧世代 USB対応 PIC18J 系 新世代 PIC18-Q43 系
最大クロック 48 MHz 64 MHz
SRAM ~3.8 kB 8 kB
ADC 10ch 最大24ch 12bit (ADC2)
DMA ✖️ ✔️(6チャネル)
その他 USB/基本Peripherals DAC, DMA, CLC, ZCD, 高度割込み

表 PIC18F27J53とPIC18F27Q43の主な特徴

表を見ると、後者(新型PIC18F27Q43)はワテ所有(PIC18F27J53)のやつより新しいバージョンのようだ。

クロックは64MHzなので、最新のIntelやAMDのGHzオーダーのクロックと比べれば遅いが、ワテの感覚なら64MHzってのは、かなりの高速だ。こんな高速高性能マイコンをLEDの点滅だけに使うのってのは勿体ないが。

なお、後者はADC, DAC, DMAなどの機能を持っている。なのでこの新型PICを使えばそれらのピンはデジタル信号用の入出力ピン(I/Oピン)として使えるだけでなく、ADCやDACなどのアナログ信号も扱えるのだ。ただし使う前にどれか1つの機能に設定する必要があるようだが。

一方、DMAと言うのは何なのか?

DMA(Direct Memory Access)ってのは、確かCPUを介さずに周辺機器(I/O)とメインメモリ(RAM)間で直接データを高速転送する技術だったと思うが、昔のマイコンでDRAMを使う場合にDMAコントリーラー専用ICなんてのが有ったように思う(詳しくは知らないが)。

PICマイコンのDMAはどんな用途に使うのかChatGPTさんに質問したところ、「DMAがあると、外部イベントに応じたデータ移動や処理を、CPUを介さず自動で行える。6チャンネルあれば、6つの異なるイベントを同時に(CPU介入なしで)処理できるため、リアルタイム性能が大幅に向上する。」との事だ。そう言うことか。

なので、自動車の電子制御などに適しているのだろう。とは言っても自動車の場合なら6chでは足らないと思うが。

PICを使ったLEDチカチカの配線の様子

アクリル板にブレッドボードを貼り付けて自作した実験ボードにPICkit5や電源ボード(5V、3.3V)など取り付けた。

写真 ブレッドボードにPICマイコンなど取り付けてLEDチカチカ実行中

上写真で使っているパーツは以下の通り。

上写真左は黒いUSB Mini-Bケーブルをブレッドボード用ソケットに挿している。USBの5V電源を利用するためだ。赤ワイヤーが5V、緑がワイヤー GNDだ。白と黒のワイヤーはUSB通信用の信号線なのだが、現状ではこのPICマイコンはUSB通信用のプログラムを書き込んでいないので、USBデバイスとしてはパソコンからは認識されない。

このPICは電源電圧3.3Vだが、ブレッドボード右端に取り付けた電源基板にUSBの5V電源を入れてやれば3.3Vも生成してくれる便利な電源なので、それを使っている。

写真 PICマイコン周りの拡大写真

上写真のようにPIC18F27J53-I/SPはDIP28なので、かなり長い。こんな高性能マイコンが300円台なので、物凄く安いと思う。

PICを使ったLEDチカチカの回路図

さて、KiCad9で今回のLチカ実験の回路図を描いてみた。5V→3.3V生成部は実際に使ったやつとは違うが説明の為に三端子レギュレータで代用している。

画像  PIC18F27J53-I/SPでLEDチカチカ回路図

LEDはPICの21番ピン(RB0/AN12)に接続している。

この場合、21番ピンはRB0と言うデジタルI/Oピンとして使う。設定を変更すればAN12(Analog Channel 12)、つまり内蔵ADC12番の入力ピンとして使える(らしいが、まだ使ったことは無い)。

PICを使ったLEDチカチカのC言語プログラム

以下に示すCプログラムは確かネットで見つけたサンプルだったと思う。どこから持ってきたのか記憶にない。あるいはChatGPTさんに教えて貰ったのかもしれない。

ChatGPTやGemeniなどのAIさんに教えて貰うようになってから、ワテの記憶がどんどん薄れていく。覚えなくてもAIさんに聞けば解決するので。あかんがな。

#include 
#define _XTAL_FREQ 8000000UL   // __delay_ms を使うために定義(8MHz)

// コンフィグビットは MPLAB X の Configuration Bits で設定するか pragma で設定

void main(void) {
    // 1) 内部OSC を 8MHz に設定
    // IRCF = 0b111 -> 8MHz
    // SCS = 0b10  -> System clock select: Internal oscillator block
    OSCCONbits.IRCF = 0b111;   // 内部発振器の分周/倍率選択
    OSCCONbits.SCS = 0b10;     // 内部OSCをシステムクロックとして選択

    // 2) ピン設定
    TRISBbits.TRISB0 = 0;      // RB0 = output
    LATBbits.LATB0 = 0;

    while (1) {
        LATBbits.LATB0 = 1;    // ON (active-high 配線)
        __delay_ms(500);       // 0.5秒 ON
        LATBbits.LATB0 = 0;    // OFF
        __delay_ms(500);       // 0.5秒 OFF
    }
} 

C言語コード PICを使ったLEDチカチカのC言語プログラム

500ms点灯、500ms消灯を繰り返すので、LEDは1Hzで点滅する。

と言う事で、ワテも案外簡単にPICのLチカに成功したのだ。去年の秋頃の事だ。

PICマイコン用汎用実験基板の構想

さて、ワテとしては今後もPICマイコンのプログラミングを本格的にやってみたいと思っている。

その理由は、PICマイコンは安いし多機能なので、PICマイコンを使えばワテの電子工作の世界をどんどん広げられる可能性を持っている。

実は、ワテは以前にAVRマイコンを最初に覚えてAVRマイコンでも色んな機器を制御する実験や完成品を作った経験がある。どちらの基板もPCBWayさんに発注したものだ。

  • ATmega328P汎用実験ボード
【ワレコの電子工作】ATmega328P用の汎用I/OボードをKiCadで設計しPCBWayに発注【AVRマイコン】
ワレコArduino UNOやAVRマイコンを使った各種の実験をこの一ケ月くらいやっている。LEDチカチカから始めて、LCD文字表示、赤外線リモコンでステッピングモーターやサーボモーターを制御するところまでは出来た。当面の目標はオーディオア...
  • ラッチリレーを使ったリモコン式スピーカーセレクター
【ワレコの電子工作】赤外線リモコン式 4入力スピーカーセレクター自作 ATmega328P ラッチリレー 表面実装部品採用【回路設計とPCBWay発注】
ワレコ人間、やる気があれば何でもできる!と言う事で、前から作りたいと思っていた電子工作を開始した。表題にある「赤外線リモコン式 4入力スピーカーセレクター」だ。特徴としては以下の通り。 4入力1出力 スピーカー信号の正負両方を切り替える(B...

で、世の中で有名なAVRとPICは現状ではどちらもMicrochip Technology社の製品だが、両方ともにワンチップマイコンなのでどっちを使っても同じような事が出来る。であるならば両方を並行してやるよりも、どちらかに注力するほうが理解も深まるし学習効率も良い。

AVRマイコンとPICマイコン

以下、ワテの理解なので、間違っている可能性もある。

AVRマイコン群は元々Atmel社が開発・製造していたワンチップマイコンだ。有名なAVRマイコン ATmega328Pは Arduino Unoに採用されているので、知っている人も多いだろう。

そのAtmel社は現在Microchip Technology社に買収されている。その結果、元々PICマイコンを開発・製造していたMicrochip Technology社にはAVRマイコンとPICマイコンの2つの製品群が存在する事になった。

一方、マイコン開発環境も二種類ある。

  • AVRマイコン用のMicrochip Studio
  • PICおよびAVRマイコン両対応のMPLAB X IDE

どちらもMicrochip Technology社から無料で入手できる。

Microchip Studioは元々はAtmel社でAtmel Studioと言う名前で開発されていたAVRマイコン専用の開発環境で、現状ではMicrochip Studioに名前が変わっている。Microchip Studioは 新規機能追加は終了し、現在はメンテナンスモードであるとMicrochip社から公表されている。

一方、MPLAB X IDEは元々がMicrochip社が PICマイコン用に公開していた開発環境 だが、最近ではAVRマイコン(限定的)にも対応している。これらのマイコン開発では、開発パソコンとマイコンチップとの接続にプログラマ/デバッガ が使われる。

具体的にはMicrochip Studioで使えるプログラマ/デバッガにはPICkit系列とAtmel‑ICEの2系統 がある。製品例:PICkit3、PICkit4、PICkit5 など。

元々PICkit系列はMicrochip社のPICマイコン向けの標準プログラマ/デバッガだった。現状では PICkit5を使えばMPLAB X IDE環境との組み合わせでPIC はもちろん、一部のAVRマイコンの書込みも可能である(ただしフルデバッグは不可)。

一方Atmel‑ICEは旧Atmel社のAVRやARM Cortex‑M(SAMシリーズ)向けのツールだったので、現状でも PIC はサポートされていない。

なので、PICをやるなら MPLAB X IDE + PICkit5 が便利、AVR をやるなら Microchip Studio + Atmel‑ICE となるが、前述の通りMicrochip Studioは今後の新機能追加はない。

これらの説明を図解すると以下の通り。ChatGPTさんが生成してくれた。漢字が文字化けしているのか、あるいは中華系フォントになっているのかは不明だ。

図 PICとAVRの開発環境のまとめ(by ChatGPT)

なお、AVRを開発するならMicrochip Studioではなく以下の組み合わせでも技術的には可能だ。

  • MPLAB X IDE + PICkit5
  • MPLAB X IDE + Atmel‑ICE

しかしながら、MPLAB X IDE自体が元々PICマイコン用に設計されているので、AVR 開発環境としては若干使いにくい部分がある(ワテの印象)。

とは言っても、現状ではワテの場合はAVRもPICも本格的な大規模プログラミングを行っているわけではないので、LEDチカチカや赤外線リモコン送受信程度であれば、どちらを使っても問題なくできる。

しかし、Microchip StudioとMPLAB X IDEの2つの開発環境を使い分けるのは面倒なので、ワテとしてはワンチップマイコンはPICを採用し、PIC をやるなら MPLAB X IDE + PICkit5 が最も使い勝手が良さそうだと判断し、その方針を採用した。

AVRマイコンの使いづらさ(ワテの印象)

ワテの場合、AVRマイコンプログラミングはまだ初心者レベルなので、AVR上級者であれば難なく解決できるかもしれないが、ワテが苦労した点がいくつかある。

特に AVRマイコンにはFuseビットという仕組みがある。これは、AVRマイコン内部の設定を行うためのフラグのようなもので、必要に応じて設定を行う。

ところが、このFuseビットは不可逆的な動作であることが多い。つまり、Microchip Studioや MPLAB X IDEを使って、よく分からないままFuseビットを操作したり、知らないうちに書き換わっていたりすると、元に戻せない場合があるのだ。

その場合には、AVRマイコンリセッターなどのハードウェアを自作または購入して、Arduino Uno などに取り付け、書き込み不能になったAVRマイコンを初期化する必要がある。しかし、確実にリセットできるとは限らない。ワテの経験でも、5個中1~2個はリセットできなかった記憶がある。それらのAVR マイコンは使い物にならないのだ。あかんがな。

Fuseビットの挙動を深く理解すればAVRマイコン全体の理解も深まるとは思うが、ワテの場合は その挙動がいまひとつ掴み切れないため、「なぜこんなややこしい仕組みを採用しているんだろう?」という疑問が解消できなかった。

そういう事情もあり、今回PICマイコンに関して色々と調査 した。その結果、AVRよりもPICを本格採用する方向に方針を転換したのだ。

PIC32MKを採用

結局 PIC32MKと言う32bit PICマイコンを使ってみることにした。

8bitでもなく16bitでもなく行き成り32bitだ。

具体的には

PIC32MK1024GPK064-I/PT

と言う型番だ。

ピン数は64ピンもある。同じシリーズで100ピンタイプも有ったのだが、さすがに100ピンは多すぎると思うので64ピンにした。

まあ、ピン数が多くても中身はマイコンだから基本的な構成はDIP8ピンのPICと同じだろう。ハンダ付けが難しいとは思うが、どうにかなるだろう。

ちなみにPIC32の中にも多数のシリーズがあるのだが、その中でも高性能なシリーズとして以下のように三種類のPICマイコンがある。かつ、それぞれ64ピンと100ピンがラインナップにある。

下表はChatGPTさんがまとめてくれた簡易比較表だ。

項目 PIC32MX PIC32MK PIC32MZ
CPU コア MIPS32 M4K® 📎 MIPS32 microAptiv™ 📎 MIPS32 M-Class / microAptiv™ 📎
最大クロック / 性能 ~120 MHz / ~150 DMIPS 📎 ~120 MHz / ~198 DMIPS 📎 ~200 MHz / ~330 DMIPS 📎
浮動小数点 (FPU) ✓(倍精度FPU) 📎 ✓(FPU・高速DSP) 📎
ADC 10‑bit, 最大 ~1 Msps, 最大 ~48ch 📎 12‑bit ADC、複数モジュール 📎 12‑bit 高速 ADC(最大 28 MSPS & 多 ch) 📎
DAC 12‑bit DAC **あり** 📎 一部機種で外部制御用のアナログ比較器など 📎
オペアンプ / コンパレータ アナログ比較器 ×2〜3 📎 高帯域オペアンプ 3〜4基、比較器複数 📎 高度な比較器・ADC トリガ & 温度センサー 📎
PWM / モーター制御向け PWM はタイマ系で実装可能 📎 高速 PWM + QEI 標準 📎 高精度タイマ・PWM 用途対応 📎
通信インタフェース USB, CAN 2.0B, UART, SPI, I²C 📎 USB, CAN FD, UART, SPI, I²C 📎 USB2.0 HS, 10/100 Ethernet MAC, CAN, SPI, I²C 📎
適した用途 汎用制御・低価格組込み 📎 モーター制御 / 産業制御 / 高精度アナログ計測 📎 高性能通信・ネットワーク・DSP系 / 大容量メモリ 📎

表 PIC32MX / PIC32MK / PIC32MZ の簡易比較表

上表のようにPIC32MKは内蔵ADC/DACが充実しているので採用してみた。さらに内蔵オペアンプさえもあるのだ。

PIC32MK用の汎用基板をKiCadで設計

PIC32MK1024GPK064-I/PTはTQFP64ピンなので、それをハンダ付けして各ピンに電源や入出力信号を接続できるように、汎用の実験基板を設計してみることにした。

いわゆる実験ボードとか開発ボードなどと呼ばれるやつだ。

その手の実験・開発ボードはわざわざ設計しなくても市販品でも売っている。

PIC32MK 開発ボード

PIC32MX 開発ボード

PIC32MZ 開発ボード

でGoogle検索すると多数ヒットする。

でもまあ、ここではワテのPICマイコン学習も兼ねて自分用に便利だと思う機能を搭載した開発ボードを設計し、PCBWayさんに発注するのだ。

PIC32MK1024GPK064-I/PTマイコンを使った汎用実験基板回路図

KiCad9を使って回路図を設計してみた。

図 PIC32MK1024GPK064-I/PTマイコンを使った汎用実験基板回路図 by Wareko

上図において大きな四角の部品がPIC32MK1024GPK064-I/PTで、64ピンTQFPパッケージだ。

あとは以下の部品を搭載している。

  • リセットスイッチ
  • 外部クロック
  • 信号取り出し用ピンソケット(数個)
  • 電源入力端子(±15V)、+5Vと+3.3Vを基板上で生成
  • PICkit5などの外部プログラマ/デバッガとの接続用のICSP6コネクタ
  • 320×240 3.2インチカラーLCD接続用コネクタ。SPI (Serial Peripheral Interface)制御
  • BNC端子2個(内蔵のADCやDACとの接続用)
  • プッシュボタン5個(汎用)
  • 赤外線リモコン受信機
  • USB 2.0 Type-C ソケット
  • オペアンプ数個(アナログ信号のレベル変換用)

などだ。

PICやAVRなどのマイコンに馴染みがない人が見ると、上図の回路図は物凄く複雑に見えるとは思うが、実際はマイコンの周りにそれらの部品を配置しているだけだ。あとはデータシートやネットの情報を参考にして適当に配線している。

例えば今回採用したLCDパネルの制御はSPIと言う方式で行うので、TQFP64ピンのうちLCDパネルに近い位置にある数本のピンをLCD制御に割り当てた。

あと、赤外線リモコンの受信信号も空いているデジタルI/Oピンに適当に割り当てた。

USB接続に関しては、専用のピンがあるのでそこに接続している。

各種実験用として5つのプッシュボタンを配置してみた。

64ピンもあるので、全部使い切ることも無く余裕を持ってピンを各種の用途に割り当てることができた。もし100ピン版を採用していたら、さらに余裕があるが今回はそこまで必要無いし。

このPIC32MKマイコンは内蔵ADCやDACが充実しているので採用したのだが、マイコン自体が3.3V動作なのでADCやDACが扱える電圧範囲も0~3.3Vくらいの範囲だ(絶対最大定格では -0.3V~3.6V)。

でもこれだと使いづらいので、オペアンプを数個外付けして以下の機能を追加した。

  • 外部アナログ信号入力(最大±15V)を0~3.3Vにレベルとゲイン変換して内蔵ADCへ入力
  • 内部DAC出力0~3.3Vをレベルとゲイン変換(最大±15V)して外部へ出力

それらの信号用に付けたのが2個のBNC端子だ。

この基板には外部電源から (-15V)-GND-(+15V) を供給する。基板上ではDCDCコンバーターや三端子レギュレータを使って5Vと3.3Vを生成している。

PIC32MK1024GPK064-I/PTマイコンを使った汎用実験基板レイアウト

この回路図に基づいて下図のように基板レイアウトを作成してみた。

図 PIC32MK1024GPK064-I/PTマイコンを使った汎用実験基板レイアウト by Wareko

上図において基板サイズは100x100mm2 にした。

本当はもう少し大きいほうが余裕を持って部品を配置できたのだが、殆どのプリント基板製造業者さん(今回はPCBWayさんに発注予定)では、100x100mm2 以下なら10枚5ドル程の安い価格で発注が出来るからだ。

下図が完成予定3DCG画像だ。

図 PIC32MK1024GPK064-I/PTマイコン汎用実験基板の完成予定3DCG by Wareko

上図において、15ピンのD-SUBオスソケットは、そこにワテ自作の外部電源から±15VdcをD-SUB15ピンメスで供給する。

320×240カラー液晶は秋月電子で売っているやつで、その基板にあるピンヘッダーを差し込めるように、ワテ設計基板左端にピンソケットを配置した。

2個のBNC端子隣にある28ピンのゼロプレッシャーICソケットには、以下の信号を取り出している。

  • ±15V, +5V, +3.3V, GND
  • 内蔵DAC出力ピン(±15Vへレベル変換したもの)
  • 外部アナログ信号入力用ピン(最大±15V)
  • 内蔵オペアンプ接続ピン

なので、これらの信号を使って実験を行いたい場合には、小型のユニバーサル基板などに自作の実験回路を作成して、ピンソケットを使ってDIP28ピンを付ければ、その実験基板をゼロプレッシャーソケットに取り付けて実験が出来る。

例えばトランジスタのhFE計測テスターを作るなどもやってみたい。その場合には小型ユニバーサル基板上にトランジスタを差し込むソケットを付けて、その基板をゼロプレッシャーソケットに取り付ける。内蔵DACで生成した電圧でIBを流してその時のICを抵抗両端電圧を内蔵ADCで測定するなどの手法で計測すれば hFE=IC/IBで求められるはずだ。

その前に、まずは第一ステップとして内蔵DACで波形を生成してBNCコネクタから外部へ出力、逆にBNCコネクタへ外部アナログ信号を入力して内蔵ADCで波形を読み取って液晶ディスプレイに表示などやってみたい。

その場合はBNC端子を利用すれば良いのでゼロプレッシャーソケットは使わなくても良いが。

要するにパルスジェネレータ機能やオシロスコープ機能的なもの作ってみる予定だ。

PIC32MK1024GPK064-I/PTマイコンTQFP-DIP変換基板_秋月サイズ

さて、今回は上記基板とは別にもう一種類の基板も設計した(下図)。

これは要するにマイコンチップの部分だけを取り出したものだ。

図  PIC32MK1024GPK064-I/PTマイコンTQFP-DIP変換基板_秋月サイズ by Wareko

今回採用したPIC32MK1024GPK064-I/PTマイコンチップはマルツパーツ経由でDigikeyから購入したのだが、1個1700円くらいの値段だった。結構高いのだ。

なので、最初に紹介した汎用実験基板にPICマイコンをハンダ付けしてしまうと、他の実験に利用するのが難しい。

そこで、最初に紹介した汎用実験基板にはPICマイコンはハンダ付けせずに、その周囲に2列ピンソケットのみを取り付けられるようにしてみたのだ。

一方、上図の小型基板にPICマイコンをハンダ付けして、その周囲には2列ピンヘッダーを取り付ける。基板裏側には外部クロック関連パーツを取り付けられるようにしているので必要ならハンダ付けすれば良い。あるいは内蔵クロックで動作させるならそれらの部品は不要だ。

このようにPICマイコンをハンダ付けした小型基板をピンヘッダとピンソケット採用の脱着式にすれば、PICマイコンを使い回す事が出来る。そう言うアイデアを採用してみたのだ。上手く行くかどうかはやってみないと分からないが。

ちなみに、秋月電子でもTQFP64ピンパッケージをDIPソケットに変換する基板を販売している。

ワテ設計の変換基板はサイズ的にはその秋月電子の変換基板と同じにしてみた。なので、必要なら秋月電子の変換基板を使うことも出来る。ただし秋月電子基板は裏面がGNDなのでワテ設計基板とは異なる。

と言う事で、設計作業は昨年(2025年)の秋頃から暇な時にボチボチとやっていたのだが、気がついたら2026年になっていたので年明け早々に馬力を掛けて設計を完了した。

基板発注用のGerberファイルを出力する

プリント基板を製造業者さんに発注する場合には、ガーバーデータが有れば良い。

今回はKiCad9で回路設計と基板設計をやったので、KiCad9の画面でガーバーデータを出力する手順を紹介する。

プリント基板設計画面で

ファイル → プロット

を実行すると下図が出る。

図 KiCad9の基板エディタのプロット画面

ここで「①含めるレイヤー」は自動でチェックが入っているので、気にしなくても良い。

でも基板設計をするならそれらのレイヤーの意味はある程度は理解しておくとよい。

今回は両面スルーホール基板だが、チェックされているレイヤーの意味は以下の通り。

  • F = Front(表面)
  • B = Back(裏面)

基板を上から見た面がFront、ひっくり返した面がBackだ。

各レイヤーの意味は以下の通り。

レイヤー名 用途 説明
Cu Copper(銅配線層)  実際の電気的な配線そのもの。
Adhesive 接着剤レイヤー(ほぼ使わない)

ウェーブはんだ時にSMD部品を接着剤で固定するための位置情報。主に古い量産工程向けなので手実装・リフロー主体の現代ではほぼ不要。

Paste Paste(はんだペースト層)

クリームはんだ印刷やメタルマスク(ステンシル)を作る元データ。 SMD部品をリフローするときに必須。

Silkscreen Silkscreen(シルク印刷)

部品番号、外形、ロゴなど基板に白文字で印刷される

Mask Solder Mask(レジスト層)

緑色などの絶縁塗料(レジスト)の開口部。マスク図形がある場所にはレジストが塗布されない。

Fab   製造図レイヤー

部品の実寸外形で実装業者向けの正確な情報

Edge.Cuts 基板の外形線

基板をどの形に切るか。この線は閉じたループで無くてはならない。

表 KiCadで出力されるガーバーデータの各レイヤーの説明

ちなみにこの表もChatGPTの協力で作成した。

「②出力ディレクトリ」部分には今から出力予定のガーバーファイルを保管する場所を設定する。ワテの場合はGerberフォルダを作成した。

あとは「③プロット」ボタンをクリックすれば、チェックしているレイヤーにある図形情報がそれぞれのファイルに出力される。これがガーバーデータだ。

次に「④ドリルファイルを生成」をクリックすると下図が出る。

ここでは「⑤生成」ボタンをクリックすれば良い。オプション設定は初期値のままで良い。実はワテはここのオプション設定の意味は全く理解できていない。それでも今まで全く問題なくプリント基板の発注に成功している。

図 KiCad9の基板エディタのプロット画面でドリルファイルを生成

生成ボタンをクリックすると、Gerberフォルダにドリル穴加工用のガーバーデータが追加される。

ここまでの作業に成功すると、Gerberフォルダには以下のガーバーファイルが出力されている(オレンジ枠)。 

図 KiCad9で出力したガーバーファイル群

あとは、オレンジ枠のガーバーファイルを全部選択して、1つのZIPファイルにまとめれば良い。

これで準備完了だ。

なお、この例ではガーバーファイル名やZIPファイル名には日本語フォントを使っているが、今回基板を発注予定のPCBWayさんの場合はWEBサイトが完全日本語対応になっているので、ワテの場合は今まで一度も日本語ファイル名が原因のトラブルはない。

でも、他の基板業者さんの中にはアップロード後に日本語ファイル名が文字化けするとか、アップロードでエラー失敗する場合もあるので要注意だ。

Gerber ZIPファイルをアップロードしてPCBWayさんに発注

PCBWayさんに両面スルーホール基板を発注する。

PCBWayさんのサイトで「PCBインスタント見積もり」をクリックすると下図が出る。

図 PCBWayの「PCBインスタント見積もり」画面

上図で「Upload Gerber files(beta)>>」をクリックすると下図が出るので、「+ガーバーファイルを追加」をクリックして先ほど準備しているzipファイルをアップロードすれば良い。

図 PCBWayの「PCBインスタント見積もり」画面で必要なパラメータを指定する

上図で無事にzipファイルのアップロードせに成功すると、基板の縦横寸法が自動で読み取られて、「寸法」の欄に自動入力される。

あとは上図のように多数のパラメータ指定が可能だが、必須なのは基板の枚数だ。5枚を指定した。

オプション選択可能なパラメータはオレンジ枠で囲ったものだ。もしオプション選択しなければ緑レジスト基板に白色シルク文字で銅箔厚みが1Cu(=35μm)の両面スルーホール基板で発注される。

ここでは、青色レジスト、白色シルク文字を指定した。

製造番号の場所指定の無料オプションを使う

さらに、上図末尾にある「Remove Product No」で「Specify a location」を選択した。

これは、基板製造業者さんは基板上に小さなフォントで十桁前後の製造番号を印字するが、その場所を指定出来る無料オプションなのだ。有料(1.5ドル)で除去する事も出来る。

場所指定方法はシルク文字で「WayWayWay」を自分で好きな場所に描いておけば良い。今回は基板裏面(B.Silkレイヤー)に下図のように「WayWayWay」を描いておいた。

図 「WayWayWay」文字をB.Silkscreenレイヤーに描いて製造番号印字場所を指定(無料オプション)

なお、注意事項としては、「WayWayWay」の前後左右に何らかの別のシルク文字があると「WayWayWay」で実際に描画される十数桁の英数字文字列と重なってしまう場合がある。

あるいは「WayWayWay」が基板の端に偏っていると、実際に描画される十数桁の英数字文字列が基板からはみ出してしまう問題がある。

そう言う場合にはPCBWayさんから「WayWayWayで指定された製造番号印字場所に問題があるので、別の場所に変更しても良いでしょうか?」と言う英文メールが来る。メール添付画像でその移動予定場所が示されている。同意するならそのメールには「はいOKです」と言う返信をすれば良い。

もしそう言うトラブルを避けたいなら、「WayWayWay」で場所指定する場合には前後左右に余裕のある場所を指定するのが良い。

下図に示すくらい「WayWayWay」の前後左右に余裕があれば問題はない。

図 PCBWayさんで「WayWayWay」を描いて製造番号の印字位置を指定する例

これで発注の準備完了だ。

「Product End-Use Declaration(製品最終用途申告書)」に署名・送付

あとはカートに入れて発注作業に進めばよいのだが、最近では基板発注時に以下の同意書の提出が必要になったようだ。

まず最初に以下の画面が出る。

図 PCBWayさんに基板発注時に表示される特記事項1(製品最終用途申告書への署名と送付)

Special Notes

Compliance Letter

For compliance, please download and sign the “Product End-Use Declaration” agreement, then send it to your sales representatives by email. After review and approval, you can proceed with the order.

[Cancel] [OK, I got it!]

いきなりこんな画面が出るとビビるワテであるが、翻訳すると以下の通り。

特記事項

コンプライアンスレター

コンプライアンスのため、「Product End-Use Declaration(製品最終用途申告書)」をダウンロードして署名し、営業担当者にメールで送付してください。
内容の確認と承認が完了した後、注文を進めることができます。

なので、その「Product End-Use Declaration(製品最終用途申告書)」をダウンロードして、[OK, I got it!]ボタンをクリックしてウインドウを閉じた後、ダウンロードしたPDFファイルに署名して営業担当者にメールで送付すれば良い。

このファイルはPDFファイルなので、署名するには有料のAcrobatが必要なのか!?と心配になったが、最近では無料のAcrobat ReaderでもPDFファイルに署名したり、チェックボックスに☑️を入れるなどの編集が可能だったのでそれを使えば数分の作業で署名入りPDFファイルを作成できた。

あとはPCBWayの営業担当者さんにメールの添付ファイルで送れば良い。

次に、以下の画面も出る。

図 PCBWayさんに基板発注時に表示される特記事項2(武器、違法、輸出規制関連)

Special Notes

Make sure Your flles don’t contain any of the following?

  • Parts subject to export control regulations such as ITAR, EAR beyond EAR99, or EU Dual Use
  • Content that is illegal, offensive, or violates intellectual property rights
  • Weapons or parts of weapons

(省略)

[Cancel]  [Agree]  

翻訳すると以下の通り。

特記事項

ファイルに以下の内容が含まれていないことを確認してください:

武器または武器の部品

違法な内容、攻撃的な内容、または知的財産権を侵害する内容

ITAR、EAR(EAR99を超えるもの)、またはEUデュアルユース規制などの輸出管理規制の対象となる部品

なので、この画面では[Agree]をクリックすれば良い。

と言う事で、発注時にこんな英文画面が出ると少々手こずったが、一回経験すれば次回は簡単だ。

署名入り申告書PDFファイルの送付は基板を発注する度に必要になる可能性もあるが、恐らく同じ文面だと思うので署名入り申告書PDFファイルを1つ作っておけば使い回せば良いだろう。

署名入り申告書PDFファイルを送付しても、それが受理されるまではカートに追加した基板に下図のようにオレンジ色の文字でメッセージが表示されている。

図 PCBWayさんに2種類の基板を発注したが署名入り申告書PDFファイル未送付状態

There are some certain issues to be confirmed before the review process.
Kindly reach out to your sales rep via email for further information.

レビュー(審査)を行う前に、いくつか確認すべき事項があります。
詳細については、メールにて営業担当者までお問い合わせください。

今回は署名入り申告書PDFファイルをメール送信して、確か1日か2日以内くらいでこのメッセージが消えて、無事に基板の製造が開始された。

 

今回発注した基板の総額は以下の通り。

商品金額 US $ 10.00 
運賃 US $ 22.98
割り引き -US $ 0.30 
合計金額 US $ 32.68
注文日 2026/1/27 10:16:14

その後、2026/01/31に発送したとの連絡がメールで届いた。

自宅には2026/2/2に届いた。

なので発注して一週間程で両面スルーホール基板が自宅に届いたのだ。物凄く速い。

いや~、電子工作を趣味とする人には信じられないくらい便利な世の中になったなあ。

それも32ドル程度で。今は円安だから日本円に換算すれば5000円弱の価格になるが、ワテの場合はPaypalなどにも一部はドルで保有しているので、海外業者さんに支払う場合にはPaypalを利用している。

なお、現状ではPCBWayさんは決済システムを改良中でしばらくはPaypalは使えないとの事だ。その代替としてPayoneerと言う類似のサービスを推奨している。

Payoneerは日本ではあまり馴染みがないが、Paypalと似たようなサービスを提供している業者さんのようなので、ワテもPayoneerにユーザー登録しようかなと検討中だ。

まとめ

ワレコ
ワレコ

久し振りの電子工作だ。

当記事ではPICマイコンプログラミングに初挑戦するワテが、まずは8ビットPICであるPIC18F27J53を使ってLEDチカチカに成功した手順を回路図やCプログラムのソースコードなどで紹介した。

次に、32bitな高性能PICマイコンPIC32MK1024GPK064を使って実験するための汎用実験基板の設計やそのプリント基板をPCBWayさんへ発注する過程を紹介した。

TQFP64ピンと言う高密度なパッケージに入っているのでハンダ付け作業が難しいかとは思うが、兎に角やってみる事に意義がある。

PCBWayさんに発注していたプリント基板は先日自宅に到着したので、早速ハンダ付け作業に取り掛かりたい。

(つづく)

スポンサーリンク
コメント募集

この記事に関して何か質問とか補足など有りましたら、このページ下部にあるコメント欄からお知らせ下さい。

PIC
スポンサーリンク
シェアする
warekoをフォローする
スポンサーリンク

コメント