公開日:2023/05/16
Pmodは、Digilent社が策定したマイコンボードなどに機能拡張ボードを接続するためのインタフェース規格です。規格は公開されており、誰でも利用することができます。近年、普及が目覚ましいIoT機器には、さまざまなセンサが利用されていますが、Pmodを利用することで手軽にプロトタイプの製作や機能評価が可能です。
当社のボード製品でも、2023年にリリースされた「AP-RZT2-0A」や「AP-RZA3-0A」などから順次、Pmodインタフェースが採用されています。
今回は、Pmodの概要や使い方について簡単にご紹介します。
1.Pmodの概要
Pmodインタフェース規格は、2011年に1.0.0が公開され、現在は2020年に公開された1.3.1が最新となっています。基本的に後方互換が保たれていますが、インタフェースが追加され、名称なども微妙に変わっていますので、少し注意が必要です。
参考PDF:Pmod interface specification 1.3.1 (Digilent)
Pmodは「Peripheral module」の略で、名称のとおり、センサ、表示器、無線など、さまざまな周辺機能のモジュールがあります。
Digilent社からは、現在100種類前後のPmodデバイスが販売されていますが、その他に各デバイスメーカーなどからもさまざまなPmodデバイスがリリースされ、DigikeyやMouserなどのネット通販で手軽に購入することができます。
(1)Pmodインタフェースの規格概要
Pmodインタフェースのコネクタは、6pinまたは12pinの一般的な2.54mmピンヘッダ/レセプタクルを使用します。
基本的にBoard to Boardで直接接続しますが、ケーブルを使って延長することも可能です。また、12pinは6pinx2列を使用し、上の列に6pinのPmodデバイスを挿して利用することが可能です。
インタフェース信号は、非常にシンプルで、電源とGND、I/O信号で構成されます。I/O信号は、UART、SPI、I2Cなど一般的な通信規格が採用されており、下表のようにType1からType6に分類されています。
タイプ名 | インタフェース名 | コネクタピン数 |
---|---|---|
Type1 | GPIO | 6 |
Type1A | expanded GPIO | 12 |
Type2 | SPI | 6 |
Type2A | expanded SPI | 12 |
Type3 | UART | 6 |
Type3A | expanded UART | 12 |
Type4 | H-Bridge | 6 |
Type5 | Dual H-Bridge | 6 |
Type5A | expanded Dual H-Bridge | 12 |
Type6 | I2C | 6 |
Type6A | expanded I2C | 12 |
電源ピン(VCCとGND)は、どのタイプも共通で、VCCが6p、12pでGNDが5p、11pに割り当てられています。
12pinでは6pinx2列を使用し、上の列に6pinのPmodデバイスを挿して利用することが可能です。
例えば、Type2(SPI)とType2A(expanded SPI)の信号割り当ては、下表のようになります。
Pin# | I/O信号名 | 入出力 | Type2 | Type2A |
---|---|---|---|---|
1 | CS | 出力 | 〇 | 〇 |
2 | MOSI | 出力 | 〇 | 〇 |
3 | MISO | 入力 | 〇 | 〇 |
4 | SCK | 出力 | 〇 | 〇 |
5 | GND | - | 〇 | 〇 |
6 | VCC | - | 〇 | 〇 |
7 | GPIO | 入出力 | - | 〇 |
8 | GPIO | 入出力 | - | 〇 |
9 | GPIO | 入出力 | - | 〇 |
10 | GPIO | 入出力 | - | 〇 |
11 | GND | - | - | 〇 |
12 | VCC | - | - | 〇 |
電源(VCC)は3.3Vと5.0Vが規定されていますが、ほとんどのPmodデバイスは3.3Vで動作します。I/O信号の電気特性は厳密な規定はなく、一般的なLVCMOS3.3VまたはLVTTL3.3Vが想定されています。また、一部のPmodデバイスでは、LVCMOS1.8Vもサポートされています。
(2)Pmodのソフトウェア
Pmodデバイスのソフトウェアは、ほとんどの場合、Arduino用などのサンプルソフトウェアが配布されています。それらをベースに、使用するマイコンボードに合わせて移植します。
なお、GPIOやATコマンドで制御する、ごく簡単なPmodデバイスでは、サンプルソフトウェアが提供されていない場合もありますが、スクラッチでも容易に作成できると思います。
2. Pmodで簡易デジタル温湿度計を作ってみる
Pmodデバイスの「温湿度センサ」と「OLEDディスプレイ」を使って、簡易的なデジタル温湿度計を作ってみます。
CPUボードは、ルネサス エレクトロニクス社の最新MPU「RZ/A3UL」を搭載した「AP-RZA3-0A」を使用します。
「AP-RZA3-0A」は、基本OSにRTOSを採用したRZA3/UL 1GHzを搭載し、Pmodコネクタを2ポート搭載しています。
(1) ハードウェアの準備
AP-RZA3-0AのPmodインタフェースは、Type1/2/3/6、つまりGPIO/SPI/UART/I2Cに対応しています。
インタフェースのタイプはCPUボード裏面にあるハンダジャンパで設定変更することが可能です。
Type | JP1 | JP2 | JP3 | JP4 | JP5 | JP6 | JP7 | JP8 |
---|---|---|---|---|---|---|---|---|
Type1/1A(GPIO) | 〇 | 〇 | 〇 | - | - | - | - | - |
Type2/2A(SPI)※ | 〇 | 〇 | 〇 | - | - | - | - | - |
Type3/3A(UART) | - | - | - | 〇 | 〇 | 〇 | - | - |
Type6/6A(I2C) | 〇 | - | - | - | - | - | 〇 | 〇 |
Type | JP11 | JP12 | JP13 | JP14 | JP15 | JP9 | JP10 |
---|---|---|---|---|---|---|---|
Type1/1A(GPIO) | 〇 | 〇 | 〇 | - | - | - | - |
Type2/2A(SPI)※ | 〇 | 〇 | 〇 | - | - | - | - |
Type3/3A(UART) | - | - | 〇 | 〇 | 〇 | - | - |
Type6/6A(I2C) | 〇 | - | - | - | - | 〇 | 〇 |
※出荷時設定
今回はCN10にルネサス エレクトロニクス社製温湿度センサ「US082-HS3001EVZ」、CN11にDigilent社製OLEDディスプレイ「Pmod OLEDrgb」を接続することとします。
従って、下図のようなハンダジャンパを設定します。
(2)ソフトウェアの準備
AP-RZA3-0AにはPmodデバイスの動作確認用サンプルプログラムを幾つか用意しており、今回ご紹介する温湿度センサ「US082-HS3001EVZ」やOLEDディスプレイ「Pmod OLEDrgb」を対象としたサンプルプログラムも提供しています。
サンプルプログラムはPmodインタフェース制御ドライバ(GPIO・SPI・UART・I2C)をArduino標準ライブラリライクに用意しています。これまでにArduinoボードでPmodデバイスを動作させたことがある方ならば、比較的容易に弊社サンプルを動かせるのではないかと思います。
さらにサンプルプログラムはFreeRTOS™を使用して2種類のPmodをそれぞれスレッド(タスク)別に動作させるように作成しています。各Pmodの制御が独立した設計になっているので、他のPmodデバイスと組み合わせる場合でも、転用しやすいと思います。
CN10側動作はスレッド「pmod1_thread」に、CN11側動作はスレッド「pmod2_thread」に独立して設計されています。
各サンプルから必要なスレッドプログラムを移植することで、様々なPmodデバイスの同時実行も可能です。
(3)動作の確認
AP-RZA3-0Aでは作成したプログラムをCPUボード上のFlashROMに書き込む手順まで用意しております。プログラムを一旦FlashROMに書き込めば、以降は電源を入れるだけでどこでもプログラムを動作することができます。
3. まとめ
今回は、Pmodインタフェース規格の概要と、PmodデバイスとRZ/A3ULを使った簡易デジタル温湿度計のサンプルプログラムをご紹介しました。
IoT機器などを応用した新たなサービスが次々と生まれる昨今、センサや無線などを搭載したプロトタイプをサクッと作成できるPmodは、非常に便利なアイテムだと思います。
弊社ではPmodインタフェースを搭載したボードとして「AP-RZA3-0A」の他、「AP-RZFV-0A」、「AP-RZT2-0A」、「AP-RZT2-1A」もご用意しておりますので、是非ご活用ください。
製品のご案内
本コラム以外にも開発にお役立ていただける技術情報をアプリケーションノートとして公開しております。
ご興味のある方は、ぜひ製品をご利用ください。
- ※ArmおよびCortexは、米国および/またはその他の地域におけるArm Limited(またはその子会社)の登録商標です。
- ※記載されている会社名、製品名は、各社の登録商標または商標です。
- ※記載の内容は改良のため、予告なく変更する場合がございます。