STM32MINIShield基板仕様

最終更新日:2021年8月4日

【TOPICS】

ここではSTM32MINIShield基板1.1の仕様を示します。

  1. 概要
  2. 外観
  3. 回路図
  4. 実装想定部品一覧
  5. 実装イメージ
  6. Pinマップ
  7. 開発環境整備
  8. 動作確認プログラム
    1. コラム:I2Cの信号デバッグ
    2. コラム:BME280とBMP280
    3. コラム:BluePillのRTCについて
    4. コラム:ポートアクセスの効率
    5. コラム:850io以外のNIC接続のNIC接続
    6. コラム:MHコネクタの接続
    7. コラム:M5Stickセンサモジュールの接続
    8. コラム:ADCサンプリング速度
  9. 応用例
    1. WebBrowserで利用するケース
    2. Modbusで利用するケース
    3. CANbusで利用するケース(未結)
    4. 気象観測で使用できないか?
    5. USBHIDデバイスを作成する
    6. GPSタイムサーバー
    7. MP3Player
    8. 環境センサによる自動制御
    9. 赤外線コントローラ
  10. 給電方法
  11. FAQ

概要】

この基板は一般にBluePillと呼ばれている、マイコン:STM32F103C8が搭載された40pinDIP-IC型モジュールに外部モジュールを接続するための基板です。
BluePill用のEtherNetShieldは見当たらないのでNeedsがあるかなと思っています。

直接半田付けしても良いのですが、ソケットを半田付けしておいて差替が出来るように使用する事を想定しています。

この基板に直接接続するモジュールとして想定しているのは以下の通りです。

外観】

外観: 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流せるとありお勧めです。

実装イメージ】

    MHコネクタの接続】

    スイッチサイエンス殿にて取り扱って戴いている『基板+部品セット』では、各モジュールとの接続にて日圧(JST)社のXHコネクタにて接続することを想定しています。XHコネクタはピッチが2.5mmとなっており、milピッチと微妙にズレがありますが、ピン数が小さければ無視できると解釈しています。
    ArduinoではQIと云われるデュポン社のコネクタが想定されているかと思います。複数pinをセットで扱う場合、極性が気になりますがQIではなかなか対策困難です。そのため比較的流通しているXHコネクタにしました。

    JSTのセカンドソースであれば、安価にセット販売されています。

    問題があるとすれば、圧着工具をどうするかです。日圧の正規品は数万円します。手が出ません。ただ、XHコネクタは流通していることもあり、安価な工具も容易に入手出来ます。でも何を買うかは気になるところです。自分も何種類か購入しています。と云うのも汎用品はなかなかうまく圧着出来ないからです。汎用品の殆どは2回に分けて圧着するのですが、この考えがそもそも良くないです。
    XH用の圧着工具ですが、IZOKEE製端子圧着ペンチによる圧着がきれいに出来ました。\3000程度で購入できると思います。


      或いは、敢えてXHのハウジングを使わないで、QIコネクタケーブルを纏めて使うのも在処と思います。
      1本1本接続するのは問題があると思っています。しかし、QIハウジングもpin数に応じたハウジングが用意されています。デュポンラインのオスメスタイプを確認し、一本一本割いて、1pin用のハウジングを外し、必要なピン数のハウジングに付け直します。この方法で有れば圧着工具を使わなくても実現出来ます。

    M5Stackセンサモジュールと接続する】

    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
2.4cm7cm6cm

一個$3.5です。
レビューを見る限りSleep機能は無いと思われます。

H NTONPOWER

5V 3A
168*55*29mm

US $13.59

3PのタップでUSB付きです。
安全性は不透明ですが興味深い商品です。


I2Cの信号デバッグ】
I2Cのモジュールに接続してうまく信号が受信できない場合、電気的な遣り取りが出来ているのか確認する必要があります。自分は Digilent Inc. 社が販売しているAnalogDiscovery2を愛用しています。国内でも販売されているお店があり、容易に入手出来ます。特にLabVIEWから制御出来るため、独自のアプリケーションも作成可能です。

手元でのデバッグ環境を紹介しておきます。

I2CのバスPullUp抵抗値ですが、STM32MINIShieldではR8/R9が相当し、10KΩとしています。これは、Arduinoのデフォルトクロック値は100KHzで、この場合の推奨値が10KΩとなっているからです。
しかし、実際にはモジュール側にもPullUp抵抗が搭載されている場合が殆どで、10KΩが適正な抵抗値とは云えない場合があります。
実際に抵抗値を変更した信号モニタ画像を示しておきます。

AD2取得画像 CH1:SCL CH2:SDA コメント
@

SCLの数を数えると、1DIVに10個あり、
設定が100u/DIVで有ることから、100KHz
で有ることが確認出来ます。

そのときのSDAの立ち上がりが十分に
立ち上がっていない様に見えるモノが
あります。

A PullUp抵抗を3.3KΩにしてみました。
確かに立ち上がりが鋭くなりますが、
これでも十分とは云えないところもあります。
B PullUp抵抗を3.3KΩを拡大してみました。
3.3Vには立ち上がっておりこれなら十分の
様です。
C ちなみにPullUp抵抗を1KΩにしてみました。
明らかにきれいな矩形になりますが、
ちょっと仕様から外れるようで、一部の
モジュールでは認識されなくなりました。
後GND電位の変化が大きいことも判ります。
PullUp抵抗値が小さい過ぎるのも問題です。

矩形波形が鈍っている原因は配線材の容量が大きいからかもしれません。安価なケーブルはその傾向があります。うまく動作しないI2Cモジュールがあるかもしれません。この場合、PullUp抵抗値の変更も考慮してください。
PullUp抵抗値を低くしてやると確かに矩形波形改善の効果はあります。
ただ、VOL(Low-level Output Voltageの略)については注意した方がいいです。I2CではVOL<0.4Vという規格です。
信号でないところで0.4Vを超えるスパイクがあると誤作動するかと思います。PullUp抵抗値の変更で影響が出るかもしれません。VOLについては『LTC4313-1』のような対策chipも有るようです。
また、センサモジュールを引き延ばしたいという事もあるかと思います。その場合はラインバッファの挿入も検討しなくてはいけません。単なるバスリピータ基板は少ないのですが、5V<->3.3Vレベル変換基板がリピータ機能も持っているようですので代用できそうです。
※安価なモノだとトランジスタ1個で対応しているモノも有りますが、、、
マクニカサイトではLTC4315を挿入することを推奨したりしています。

BME280とBMP280】

BME280搭載のモジュールは殆どBME/BMP280と云うような記載がありBME280とBMP280、どちらでも使用できるような基板となっています。
BME280とBMP280の違いはBMEが湿度まで計測するのに、BMPは湿度を取得出来ず、温度と気圧が取得出来ます。
BME280とBMP280のチップ単価はそれなりにあるようで、BMP280は可成り安価です。

販売する側もこの違いを明確にせず、BME280と云う記載があるモジュールを購入したのに実際に届いたのはBMP280搭載モジュールだったという報告をよく見かけます。気をつけたいです。価格差が大きいのでなおさらです。

BME280とBMP280が手元にあれば外観上の違いは確認可能です。チップ外形がほぼ正方形がBME280、明らかに長方形がBMP280です。

Boschオリジナルだと1個768円(DigiKey) Boschオリジナルだと1個408円(DigiKey)

BluePillのRTCについて】

BluePillにはRTC回路が組み込まれています。RTC用の発振子も搭載されています。ところが、フォーラムの書込によると、BluePillに搭載されている発振子は不良品が多く、機能しないそうです。中身を割って確認された方も居り、ショートしていたという報告があります。
RobotDynのSTM32miniには金属筐体の発振子が搭載されており、こちらが不良という書込は見つかっていません。

RTC回路はありますが、電源消失してしまうと基準日にリセットされてしまいます。となるとバッテリバックアップが必要になります。
ボードには“3VB”というバックアップ電源用の端子がありますが、回路図を確認すると単独でSTM32F103C8のVbatビンに接続されているようです。
STマイクロの資料によると未使用ならVDDに接続しろとあります。
実際に使用する場合はどうでしょうか?VDDが落ちたらマイコン内部でVbatに切り替えるような回路になっているのかどうかが気になっています。メーカサイトにあるデータシートには明確な記載は無いと読み取りました。また、推奨回路も提供されていません。

ならばどうしたら良いのか?
自分は外付けのRTCを利用した方がいいように思います。バックアップ電源付きの。この場合充電式は難しそうですが。
STM32miniの場合もRTC用の発振子に接続されたコンデンサ値が22pFとなっており、データシートの記載値であるCin(LSE)=5pFよりも可成り大きいです。もっと適正に製作されたモジュールの方が良さそうだと思っています。

850io以外のNIC接続】

このShieldはWIZ850ioを接続することを前提で作りました。SwitchScience殿がMACアドレスを付加して提供していることに重要な意味があります。
MACアドレスを別途容易に入手出来るのであれば他のChipModuleも接続対象となります。
※USBデバイスのID然りMACアドレスも独自に入手するのは大変だと思っています。

  • ENC28J60も使えるのですが、10Mbpsだけですし、プロトコルスタックをソフトウエアで賄わなければならないこともあり、使いづらいです。UNOだとコンパイルさえ通らないこともあり、敢えて使う必要はないのかと思っています。
  • PinIOが共通のWIZ820IOも使えますが、ライブラリ及びスケッチは弄る必要があります。後、消費電流に注意が要ります。WIZ850ioよりも電流を喰います。価格的にも敢えて使う必要はないのかと思います。
  • WIZ850ioとほぼ同じ仕様のUSR-ES1についてはそのまま使えることを確認しています。
    偶にAmzonJapanでも並行輸入品が出ています。基本的に安価です。メーカが曖昧で資料も曖昧です。
  • ROBOTDYNのethernet-module-w5500-3-3v-5vはソケット位置を変更して接続可能ですし、スケッチもそのまま使用可能です。
    安価なのですが入手性に難有りです。しっかりしたメーカ製ですので安心感はあるのですが。
  • “W5500”+“module”で検索すると真っ先に出てくる『W5500模擬』のシルク印刷されたモジュールは、安価でAmzonJapanでも並行輸入品が容易に見つかります。
    コネクタが2×5のpinヘッダです。一応pinアサインさえ間違えずに接続すれば同じスケッチで使えることを確認しています。

ポートアクセスの効率】

Arduino環境でも話題になっていますが、digitalWrite()でデジタルpinをアクセスすると可成りオーバヘッドがあることが判っています。効率よくアクセスするためにはレジスタに直接アクセスすることです。同時にPIN操作する場合もポートアクセスする必要があります。
AVRですとレジスタアクセスで10倍くらい高速処理が出来るそうです。

STM32duinoでも同じです。Arduinoライクのコードが使える様に書かれているため、多少冗長なコードになっていると思われます。レジスタアクセスだとわかりやすいコード記述が困難になるかと思いますが、処理速度とのトレードオフとなります。一応検証結果を添えておきます。やはり10倍ぐらいの高速化は実現出来るようです。

※bitシフトの記述は(1<<8)がいいのか_BV(8)がいいのか

/*
 * 20200325 T.Wanibe デジタルPinアクセス方法の処理時間を比較検証します。
 * Arduinoでも判っていたことですが digitalWrite()の記述はわかりやすいのですが
 * オーバヘッドが大きく問題がありました。レジスタによるアクセスで16倍ほど速くなると云う
 * 経験をしていましたがBluePillではもっと顕著だという事が判ります。
 * 結果ですが
 * ARDUINO_0 の場合 1375usec
 * ARDUINO_1 の場合 295usec
 * ARDUINO_2 の場合 295usec
 * ARDUINO_3 の場合 127usec
 * でした。10倍強早くなります。重要な情報です。
 * 最大131072バイトのフラッシュメモリのうち、スケッチが14860バイト(11%)を使っています。
 * 最大20480バイトのRAMのうち、グローバル変数が3128バイト(15%)を使っていて、ローカル変数で17352バイト使うことができます。
 */
//test for arduino port execution speed
//test routines - only one can be defined at a given time to test individual routines
//#define ARDUINO_0                               //use arduino port routines
//#define ARDUINO_1                             //direct port access. use |/& operators
//#define ARDUINO_2                             //direct port access. use ^ operator
#define ARDUINO_3                             //direct port access. use BSRR/BRR registers
//#define DisableInterrupts                     //disable interrupts
//hardware configuration
#define LED     PB8                             //led output pin
void setup() {
        Serial.begin(115200);                   //シリアル通信を開ます。
        delay(1000);
        // put your setup code here, to run once:
        pinMode(LED, OUTPUT);
#if defined(DisableInterrupts)
        noInterrupts();                         //disable interrupts
#endif
}
void loop() {
        // put your main code here, to run repeatedly:
        //flip pins here - hard-wired iterations x 50
        int start = micros();
        for(int i = 0; i < 1000; i++){
#if defined(ARDUINO_0)
                digitalWrite(LED, HIGH); digitalWrite(LED, LOW);
#elif defined(ARDUINO_1)
                GPIOB->regs->ODR |= (1<<8); GPIOB->regs->ODR &=~(1<<8); //approach 1
#elif defined(ARDUINO_2)
                GPIOB->regs->ODR ^= (1<<8); GPIOB->regs->ODR ^= (1<<8); //approach 2
#elif defined(ARDUINO_3)
                GPIOB->regs->BSRR = (1<<8); GPIOB->regs->BRR = (1<<8);  //approach 3
#else
#warning "no approach defined!!!!"
#endif
        }
        Serial.print(micros() - start);Serial.println(F("[usec]"));
}

ADCサンプリング速度】

BluePillで実現可能なADC最大サンプリングレートがいくつなのか知りたくなり調べました。

結論からすると1MS/sだそうです。ただし、BluePill標準の内部クロック72MHzでは実現出来ないようです。

ADCの変換速度とfclkの関係 https://www.stmcu.jp/technical/hint/no-009/

これによると、ADCクロックを14MHzにする必要があり、動作周波数72MHzを分周して14MHzに出来るかどうかと云う問題が発生してしまいます。
分周後の周波数が14MHzになるようにするには、動作周波数を56MHzに設定するのがリーズナブルのようです。源クロック8MHzから7逓倍に変更設定すれば1MS/s化が可能のようです。
ただ、動作周波数の変更はSPI/I2C/UARTの周波数にも影響する可能性があります。注意が必要です。


    FAQ】

    問い合わせ戴いた内容を元に纏めてゆきます。


  1. Q:STM32mini/BluePillがPCとUSB接続しても認識されなくなりました。どうしてですか?


    A:原因は特定できませんが、STM32mini/BluePillのブートローダと呼ばれる領域を壊してしまった
    可能性が高いです。この場合はブートローダを書き直すことで解決するかと思います。
    このリンク先を参照してブートローダの書き直しを実施してください。
    尚、ブートローダを壊してしまう原因はMPUにプログラムを書き込むときの設定間違いのケースが多いです。見直してください。


  2. Q:外部電源を使用して動かす場合はどうしますか?


    A:STM32MINIShield基板に電源入力の端子は設けておりません。
    STM32mini/BluePillのUSBポートから5Vの電源供給を受けることのみサポートします。
    モータ駆動用の電源等大きな電流が必要な場合はフォトカプラ等のアイソレーションを介して接続し、
    ドライブ側で電流を調達できる仕組みを用意してください。


  3. Q:適当なエンクロージャを紹介してください。

    既製のエンクロージャを調査してから基板製作に入れば良かったと後悔しています。
    現状お勧めできる既製エンクロージャが見いだせておりません。取付穴ピッチ40×70、M3というのは
    なさそうです。
    タカチ電機工業は追加工を依頼できるため、OP-125を加工して収めると云うのも有りかと思います。


  4. 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社の登録商標です。
    その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
    すべての商標および登録商標は、それぞれの所有者に帰属します。