[連載]FreeRTOS入門<第1回>のサポート・ページ(2021年5月号掲載)

■ブレッドボードで体験する方法

連載の第1回で紹介するグラフィカル・データ・ロガーは,本誌2021年4月号の特集 第2部 第2章で製作したトレーニング・ボードで試せますが,部品を集めればブレッドボードでも同様に試せます.

●用意する部品

マイコン・ボードと複合センサ,Wi-Fiモジュール以外は,同等品であれば流用可能です.ここでは編集部の実験で使った部品を参考に示します.★印が付いている部品以外は,第2部 第2章のサポート・ページで紹介した部品と同じです.

部品 型名 参考価格 個数
マイコン・ボード SAM E51 Curiosity Nano Evaluation Kit(マイクロチップ・テクノロジー) 1,800円(Digi-Key,Mouser,RSコンポーネンツ等から入手可能) 1
複合センサ AE-BME280(秋月電子通商) 1,080円 1
★Wi-Fiモジュール SSCI-023412(スイッチサイエンス) 926円 1
SPI接続の128×160ドットLCD(ST7735S搭載) M018C7735A(aitendo) 825円(ST7735S/ST7735B搭載の同等品なら流用可) 1
★microSDカード・ソケット DM3AT-2P(aitendo) 240円(2.54mmピッチ変換基板付きなら流用可) 1
USB-UART変換アダプタ TTL-232R-3V3(FTDI) 1,950円(TTL3.3Vタイプの同等品なら流用可) 1
半固定ボリューム(10kΩ) 3386K-EY5-103TR(SUNTAN TECHNOLOGY CO LTD) 50円(同等品なら流用可) 2
赤色LED OSR5JA3Z74A 10円(同等品なら流用可) 1
緑色LED OSG8HA3Z74A 10円(同等品なら流用可) 1
抵抗(470Ω) CF25J470RB(FAITHFUL LINK INDUSTRIAL CORP.) 100本入りで100円(同等品なら流用可) 1
抵抗(1kΩ) CF25J1KB(FAITHFUL LINK INDUSTRIAL CORP.) 100本入りで100円(同等品なら流用可) 1
★抵抗(10kΩ) CFS50J10KB(FAITHFUL LINK INDUSTRIAL CORP.) 100本入りで100円(同等品なら流用可) 6
★コンデンサ(1μF) RDER71H105K2K1H03B(村田製作所) 20円(同等品なら流用可能) 4
ブレッドボード SAD-12(サンハヤト) 4,840円(同等品なら流用可能) 1
コネクタ付きケーブル コネクタ付ケーブル 20cm 40P オスオス(SUNHOKEY Electronics Co.,Ltd.) 160円(同等品なら流用可) 1
ジャンパ・ワイヤ 165-011-000(E-CALL ENTERPRISE CO., LTD.) 300円(同等品なら流用可) 1
ピン・ヘッダ(LCD用) PHA-1x40SG(Useconn Electronics Ltd.) 35円(同等品なら流用可) 1

●回路

ブレッドボードで実験するときの回路は次の通りです.回路図の画像をクリックすると,PDFファイルが表示されます.

●組み立て

上記の回路図に従って,ブレッドボード上に回路を組み立てます.マイコン・ボードや複合センサ,Wi-Fiモジュール,LCDはあらかじめピン・ヘッダをはんだ付けしておいてください.組み立て後のようすを次に示します.

●トレーニング・ボードからの変更点

マイコン・ボードSAM E51 Curiosity Nano Evaluation Kitは,マイコンの一部端子が外部と接続されていません.そのため,グラフィカル・データ・ロガーを製作するときは,一部の端子配置を変更しておきます.端子配置の変更に伴う修正は次の通りです.これらの変更設定済みのプロジェクト・ファイルは,下記から入手できます.

・ブレッドボード用のサンプル・プログラム

▼端子配置

変更が必要な端子は次の通りです.★印が付いている部品以外は,第2部 第2章のサポート・ページで説明した変更内容と同じです.

信号名 トレーニング・ボードの端子 SAM E51 Curiosity Nano Evaluation Kitの端子
LCDのRST信号 PA14 PA21
LCDのRS信号 PA15 PB31
半固定ボリューム抵抗POT1のADC入力 PB2(ADC0 AIN14) PB4(ADC1 AIN6)
半固定ボリューム抵抗POT2のADC入力 PB3(ADC0 AIN15) PB5(ADC1 AIN7)
★Wi-FiモジュールのRxD信号 PB16(SERCOM5 PAD0) PA22(SERCOM5 PAD0)
★Wi-FiモジュールのTxD信号 PA21(SERCOM5 PAD3) PA23(SERCOM5 PAD1)
★USB-UART変換アダプタのRX信号 PA22(SERCOM3 PAD0) PA17(SERCOM3 PAD0)
★USB-UART変換アダプタのTX信号 PA23(SERCOM3 PAD1) PA16(SERCOM3 PAD1)
★スイッチS1の入力 PA0 PB6
★スイッチS2の入力 PA1 PB7

▼MHCの設定

周辺モジュールとしてA-Dコンバータを使う場合は,ADC0ではなくADC1を使用してください.
タイマTC4,TC5に使うクロックは,[MHC]-[Tools]-[Clock Configuration]で,[Peripheral Clock Configuration]をクリックして,「TC4,TC5」の行のクロック設定を[GCLK2]に設定してください.
Wi-Fiモジュールに接続するSERCOM5の設定では,「Receive Pinout」の設定をSERCOM PAD[0]に変更してください.
その他の設定内容は本誌と同じです.MHCでの端子設定は次の通りにします.

▼プログラムの追記
A-Dコンバータに関する記述は,周辺モジュール名(ADC0→ADC1),端子名を変更してください.

・A-Dコンバータの有効化
ADC0_Enable(); →  ADC1_Enable();

・POT1のA-D変換
ADC0_ChannelSelect(ADC_POSINPUT_AIN14, ADC_NEGINPUT_GND);
ADC0_ConversionStart();
while(!ADC0_ConversionStatusGet());
result = ADC0_ConversionResultGet();
Potent.mes.pot1 = (3.3 * result) / 4095;

ADC1_ChannelSelect(ADC_POSINPUT_AIN6, ADC_NEGINPUT_GND);
ADC1_ConversionStart();
while(!ADC1_ConversionStatusGet());
result = ADC1_ConversionResultGet();
Potent.mes.pot1 = (3.3 * result) / 4095;

・POT2のA-D変換
ADC0_ChannelSelect(ADC_POSINPUT_AIN15, ADC_NEGINPUT_GND);
ADC0_ConversionStart();
while(!ADC0_ConversionStatusGet());
result = ADC0_ConversionResultGet();
Potent.mes.pot2 = (3.3 * result) / 4095;
Potent.mes.kind = ‘V’;

ADC1_ChannelSelect(ADC_POSINPUT_AIN7, ADC_NEGINPUT_GND);
ADC1_ConversionStart();
while(!ADC1_ConversionStatusGet());
result = ADC1_ConversionResultGet();
Potent.mes.pot2 = (3.3 * result) / 4095;
Potent.mes.kind = ‘V’;

 

■関連リファレンス

本誌で参照している各種リファレンスへのリンクを次に示します.

▼main関数の追記部

main.cへの追記部
main.cに追加したサブ関数

▼task1の追記部

task1.cへの追記部

▼task2の追記部

task2.cへの追記部

▼task3の追記部

tasc3.cへの追記部

▼task4の追記部

task4.cへの追記部

▼task5の追記部

task5.h,task5.cへの追記部

▼task6の追記部

task6.cへの追記部