最終更新日:2021年8月4日
【TOPICS】
- [2021/08/04]FAQにGYモジュール接続についてコメント追加しました。
- [2021/06/17]コラム『ADCサンプリング速度』を追加しました
- [2021/06/05]動作確認プログラムにSleep動作の確認を追加しました
- [2021/06/04]WeActStudioブランドのBluePillは接続しないでください
- [2021/05/28]基本動作確認を別ページに分割しました。
- [2021/03/02]ArduinoIDE2x環境への対応について
- [2021/01/25]M5Staick Sensorモジュールの接続について
- [2021/01/07]BluePillでウオッチドックタイマ(WDT)に掛かる動作確認プログラムを追加しました。
- [2020/04/14]STM32F103の互換CPUの話題を取り上げました。
- [2020/04/06]TOPICS欄を設けました。
更新履歴を追えるような表示を検討し、このような形態にしました。- [2019/12/25]STM32MINIShield1.0の基板が仕上がった時点でサポートページの開設をしました。
ここではSTM32MINIShield基板1.1の仕様を示します。
【概要】
この基板は一般にBluePillと呼ばれている、マイコン:STM32F103C8が搭載された40pinDIP-IC型モジュールに外部モジュールを接続するための基板です。
BluePill用のEtherNetShieldは見当たらないのでNeedsがあるかなと思っています。直接半田付けしても良いのですが、ソケットを半田付けしておいて差替が出来るように使用する事を想定しています。
この基板に直接接続するモジュールとして想定しているのは以下の通りです。
- BluePillマイコンモジュール(RobotDyn社のSTM32mini推奨)
- WIZ850ioEtherNetモジュール(SPI1及びPA8を占有します。)
- LED&KEY(TM1638)モジュール(PA15,PB3,PB4を占有します。)
- GYシリーズのI2Cモジュールの一部(pin配置が合致するもので、VCCが3.3V可の物)
- シリアル接続のGPSモジュール
- アナログ出力のモジュールの場合、電源確保のため“ALM_IN”のコネクタが利用できます。
【外観】
外観: 50×80[mm] マスク色: 黒 取付穴: φ3.5、40×70[mm] 厚み 1.6[mm] 基板材質 FR-4 TG130 基板表面処理 鉛フリー半田レベラー 【回路図】 PDF
【実装想定部品一覧】
記号 名称 カテゴリ 数量 メーカ 備考 M1 STM32Mini MPU 1 RobotDyn BluePill相当品で代用可能 M2 Wiz850io NIC 1 Wiznet USR-ES1で代替可能 U1 23LC1024 SRAM 1 Microchip 必要ならば P1 FH-2x20SG PinSocket 1 Useconn Electronics 必要ならば P2 FH-2x20SG PinSocket 1 Useconn Electronics 必要ならば P3 FH-1x6SG/RH PinSocket 1 Useconn Electronics 必要ならば P4 FH-1x6SG/RH PinSocket 1 Useconn Electronics 必要ならば CN1 B4B-XH-A(LF)(SN) コネクタ 1 JST XH以外のコネクタでも構わない CN2 B4B-XH-A(LF)(SN) コネクタ 1 JST XH以外のコネクタでも構わない CN3 B4B-XH-A(LF)(SN) コネクタ 1 JST XH以外のコネクタでも構わない CN4 B6B-XH-A(LF)(SN) コネクタ 1 JST XH以外のコネクタでも構わない CN5 B4B-XH-A(LF)(SN) コネクタ 1 JST XH以外のコネクタでも構わない CN6 B4B-XH-A(LF)(SN) コネクタ 1 JST XH以外のコネクタでも構わない CN7 B5B-XH-A(LF)(SN) コネクタ 1 JST XH以外のコネクタでも構わない
LED&KEY(TM1638)の接続想定R1 MF1/4CC1501F 抵抗1.5KΩ 1 KOA 互換品 R2 MF1/4CC1501F 抵抗1.5KΩ 1 KOA 互換品 R3 MF1/4CC1002F 抵抗10KΩ 1 KOA 互換品 R4 MF1/4CC1002F 抵抗10KΩ 1 KOA 互換品 R5 MF1/4CC1002F 抵抗10KΩ 1 KOA 互換品 R6 MF1/4CC1002F 抵抗10KΩ 1 KOA 互換品 R7 MF1/4CC1002F 抵抗10KΩ 1 KOA 互換品 R8 MF1/4CC1002F 抵抗10KΩ 1 KOA 互換品I2CPullUp 400KHzなら2.2k R9 MF1/4CC1002F 抵抗10KΩ 1 KOA 互換品I2CPullUp 400KHzなら2.2k R10 MF1/4CC1003F 抵抗100KΩ 1
KOA 互換品10K〜100KΩをメーカ推奨 C1 RDER72E104K2K1H03B コンデンサ0.1uF 1 muRata 互換品 SW SKHHPPA010 タクトスイッチ 1 アルパイン 互換品 LED1 OS5RKA3131A LED(白) 1 オプトサプライ φ3mm LED2 OS5RKA3131A LED(青) 1 オプトサプライ φ3mm LEDスペーサ 2 φ3mmt2mm 基板スペーサ 4 φ3.5mmH5mm ※基板のスペーサですが、サンハヤト・MPS-08が利用できるはずです。オリジナルは北川工業MPS-08-0のはずです。
※USBケーブルですがマイクロBタイプのケーブルが必要です。2A程度は流せるモノをご検討ください。
TOPK Hi-Tensile Micro USB Cableは安価ですが2.4A流せるとありお勧めです。
【実装イメージ】
- 組立に際しては半田付けなどでやけどをしないようにしてください。
- Pin圧着等で皮膚を挟み込まないように注意してください。
- 部品は背の低い順に作業を進めることをお勧めします。
- Wiz850ioをソケットを介して接続する場合、外れやすいので、ホットメルト等で接続部を補強してください。
M5Stack社のセンサモジュールは接続コネクタがGrove仕様に統一され、ケーシングされていて とても興味深いです。
Seeed社のモジュールはI2C接続のものは元々Grove仕様に統一されていました。ピッチが2mmと云うのを嫌って購入を避けていたのですが、M5Stack社のセンサモジュールは多種のモジュールを接続ケーブル付きで安価に提供しています。そこでこのケーブルをレタッチしてSTM32MINIShieldに使用する事を検討します。接続出来るモジュールは電源仕様が3.3V可でI2C、UARTです。無理してADC/DIOも可能ですが。
紹介します。GROVEケーブルの配色ですが、M5StackのモノとSEEEDのモノでは配色が一寸異なります。ここでは、SEEED社の配色を基本としています。
【M5Stack製GROVE】
HY2.0-4P ケーブル HY2.0-4P 1 白色 1 2 黄色 2 3 赤色 3 4 黒色 4 【SEEED製GROVE】
HY2.0-4P ケーブル HY2.0-4P 1 黄色 1 2 白色 2 3 赤色 3 4 黒色 4 【I2C接続】
M5Stack社のセンサモジュールの多くはI2C接続です。センサモジュールに付属のGroveケーブルを使うか、別売りのGroveケーブルを半分に切って、一方をバラ線とし、日圧のXHコネクタpinを圧着して、ハウジングを嵌めることでSTM32MINIShieldに接続可能となります。
※別売りケーブルにはSEEED-110990028というものがあり、この場合はそのまま使えます。
HY2.0-4P ケーブル XHP-4 1 SCL 黄色 3 SCL(PB6) 2 SDA 白色 4 SDA(PB7) 3 3.3V 赤色 1 3.3V 4 GND 黒色 2 GND 【UART接続】
STM32MINIShieldのUART接続先はRST/GOポートです。
GPSモジュール(U032)等クロス接続する場合の配線です。
HY2.0-4P ケーブル XHP-4 1 RXD 黄色 2 TxD(PA9) 2 TXD 白色 3 RxD(PA10) 3 3.3V 赤色 1 3.3V 4 GND 黒色 4 GND 【ADC接続】
STM32MINIShieldのアナログ入力接続先はPLSポートを考えていますが、電源を含める場合は、ALM_INに配置した6pinのコネクタにアサインする必要があります。
HY2.0-4P ケーブル XHP-6 1 A0 黄色 4 A(PB1) 2 A1 白色 5 A(PB0) 3 3.3V 赤色 1 3.3V 4 GND 黒色 6 GND 2 NC 3 NC 【DIO接続】
STM32MINIShieldのデジタル入力接続先はALM_INに配置した6pinのコネクタにアサインできます。
HY2.0-4P ケーブル XHP-4 1 D0 黄色 2 D27(PB11) 2 D1 白色 3 D26(PB10) 3 3.3V 赤色 1 3.3V 4 GND 黒色 6 GND 4 NC 5 NC 【Pinマップ】
ここではArduinoIDE環境で使用することを想定しています。PINマップもその条件に準じています。
【環境整備】
※2021年3月1日ArduinoIDE2xβ3がリリースされました。環境移植を検討したのですが確立できておりません。
ArduinoIDE環境でBluePillが使える様にArduinoIDE環境も変更構成する必要があります。
この点ですが、Roger Clark 氏のサイトから情報を得ることが出来ます。
念のため自分が構築したWindowsOS下のArduinoIDE環境について紹介しておきます。
RobotDyn社のSTM32MINIにはArduinoIDE用のブートローダーが既に書き込まれている商品があります。
このモデルを利用するのが無難です。※パッケージで確認出来ます。『withArduino bootloader 』と云う記載があるはずです。
ArduinoIDEのボード設定を間違ったまま書込を実行しますとブートローダを簡単に壊します。ご注意ください。
※壊れたらブートローダを書込直すだけですが。
BluePillと云われる商品はArduinoIDE用のブートローダーを自分で書き込む必要があります。
このタイプのBluePillにはブートローダが書込済みの商品はないと思います。
自身でブートローダを書き込む作業が必要です。Roger Clark氏のサイトにある情報に従って実現出来ます。
念のため、自分が実行しているWindows環境からBluePillに対してブートローダを書き込む方法を別ページで紹介しておきます。
【動作確認】
動作確認には以下の機能確認コードをご利用戴ければと思います。ArduinoIDEにて新規ファイルを作成しコードをコピペしてください。
【応用例】
この基板はもともとパルスモータ制御用に作成したモノです。しかし、組み立ててみると汎用のBluePill用EtherNetShield基板だといえるなと思いました。
応用例を示しておきます。尚、NICを使用したサンプルスケッチに記述するMacアドレスやIPアドレスはダブらないようにして置きたいので管理表を示しておきます。
※掲載したMACアドレスは手元に保有しているモノではありません。あくまでソースコード内初期値として設定しているに過ぎません。購入されたNICに付加されたMACアドレスに読み替えてください。
Example | MACアドレス | IPアドレス | PortNumber | EID |
WebServer | 00:08:DC:54:4D:D0 | 192.168.0.200 | TCP80 | 0x93 |
ModbusTCP | 00:08:DC:54:4D:D2 | 192.168.0.202 | TCP502,80 | 0x92 |
NTPServer(TM1638) | 00:08:DC:54:4D:D1 | 192.168.0.197 | UDP123,TCP80 | 0x91 |
NTPServer(TM1637) | 00:08:DC:54:4D:D6 | 192.168.0.206 | UDP123,TCP80 | 0x96 |
DFPlayerControl | 00:08:DC:54:4D:D3 | 192.168.0.201 | TCP50001,80 | 0x94 |
IrController | 00:08:DC:54:4D:D5 | 192.168.0.205 | TCP50005,80 | 0x95 |
【給電方法】
PCからの書き込み時はPCからUSB経由で電源供給します。
単体で動かす場合もUSBから5V電源供給することとします。現状USBモバイルバッテリが安価で販売されていることからこの考えがリーズナブルかと考えております。
※φ5.5の電源プラグからの供給を検討した場合、この評価ボードにはレギュレータもないので困難です。
BluePillの5V端子に入力する場合、USB接続しないことを前提としてください。電源がバッティングします。BluePillの回路図を見る限り保護用ダイオードや、切替回路は搭載されていません。※RobotDynのSTM32miniはUSBのVbusと5Vpinの間にダイオードが挿入されていました。
上記構成で0.1Ah消費しております。LEDは電力消費が大きいのでLCDにした方がよいかもしれません。ただ、OLCD(SSD1331)に置き換えたところ0.24Ah消費しました。バックライトのないキャラクタディスプレイタイプのLCDが良さそうです。
ということで、秋月のキャラクタLCD『AQM1602XA-RN-GBW』で確認してみました。結果として0.03Aです。確かに省エネですが、バッテリが自動的に停止してしまいました。これはこれで問題です。
〔USBアダプタ調査〕
USB端子を持つACアダプタはモバイルバッテリー向けに多種多様存在します。しかし、モバイルバッテリ向けは数mA負荷の場合Sleepモードに陥る物が多々あることを確認しています。そこで一般的なUSB端子付きアダプタを調査しリストアップして置きます。
取扱業者 | 外観 | コメント | |
@ | スイッチサイエンス |
価格1100 5V2A 45×35×22mm |
|
A | 秋月電子通商 |
[M-08312] 価格480 5V1A 51x30x24(mm) [M-13658] 価格580 5V2A 52.0mm×32.0mm×25.0mm |
|
B | 秋月電子通商 |
[M-10507] 価格1100 5V2.5A |
|
C | UNIFIVE |
UB305 UB 5V1A 42.1*34.7*22 |
|
D | UNIFIVE |
UWB305 UWB ACピン折り畳み式 5V/1.0A 52.6*38.8*17.5 |
|
E | UNIFIVE |
UYZ305 UY 5V/1.0A 59*28*37.6 |
|
F | UNIFIVE |
UWB324-USB4 5V/4.2A 91.3*48.9*27.8 ¥3,135共立エレショップ価格 |
|
G | HMUNII travel life Store |
5V3.1A 一個$3.5です。 |
|
H | NTONPOWER |
5V 3A US $13.59 3PのタップでUSB付きです。 |
【I2Cの信号デバッグ】 手元でのデバッグ環境を紹介しておきます。 I2CのバスPullUp抵抗値ですが、STM32MINIShieldではR8/R9が相当し、10KΩとしています。これは、Arduinoのデフォルトクロック値は100KHzで、この場合の推奨値が10KΩとなっているからです。
矩形波形が鈍っている原因は配線材の容量が大きいからかもしれません。安価なケーブルはその傾向があります。うまく動作しないI2Cモジュールがあるかもしれません。この場合、PullUp抵抗値の変更も考慮してください。 |
BME280搭載のモジュールは殆どBME/BMP280と云うような記載がありBME280とBMP280、どちらでも使用できるような基板となっています。 販売する側もこの違いを明確にせず、BME280と云う記載があるモジュールを購入したのに実際に届いたのはBMP280搭載モジュールだったという報告をよく見かけます。気をつけたいです。価格差が大きいのでなおさらです。 BME280とBMP280が手元にあれば外観上の違いは確認可能です。チップ外形がほぼ正方形がBME280、明らかに長方形がBMP280です。
|
|
|
|
|
問い合わせ戴いた内容を元に纏めてゆきます。
- Q:STM32mini/BluePillがPCとUSB接続しても認識されなくなりました。どうしてですか?
A:原因は特定できませんが、STM32mini/BluePillのブートローダと呼ばれる領域を壊してしまった
可能性が高いです。この場合はブートローダを書き直すことで解決するかと思います。
このリンク先を参照してブートローダの書き直しを実施してください。
尚、ブートローダを壊してしまう原因はMPUにプログラムを書き込むときの設定間違いのケースが多いです。見直してください。
- Q:外部電源を使用して動かす場合はどうしますか?
A:STM32MINIShield基板に電源入力の端子は設けておりません。
STM32mini/BluePillのUSBポートから5Vの電源供給を受けることのみサポートします。
モータ駆動用の電源等大きな電流が必要な場合はフォトカプラ等のアイソレーションを介して接続し、
ドライブ側で電流を調達できる仕組みを用意してください。
- Q:適当なエンクロージャを紹介してください。
既製のエンクロージャを調査してから基板製作に入れば良かったと後悔しています。
現状お勧めできる既製エンクロージャが見いだせておりません。取付穴ピッチ40×70、M3というのは
なさそうです。
タカチ電機工業は追加工を依頼できるため、OP-125を加工して収めると云うのも有りかと思います。
- Q:GYシリーズのセンサモジュール接続について
GYセンサモジュールのピン配置はSTM32miniShieldに合致しています。そのため、STM32miniShield側コネクタをXH-4に換えてピンソケット(4pin×1列)を使って戴ければ接続可能です。
或いは、基板側はXH-4のままで、GYセンサモジュール側のコネクタをピンソケット(4pin×1列)に変更することで直接基板に接続する事が可能になります。※極性に注意してください。
一部のオブジェクトはベクター殿のストレージをお借りしています。
https://www.vector.co.jp/vpack/browse/person/an051501.html
本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。
Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。