HS101 STM32の自作お手軽オシロスコープ

 オシロスコープの作製

https://www.martinloren.com/hs10x-diy-oscilloscopes/



①準備:ハードオフに行って安いスマホか、タブレットを購入してくる(画面として使いたい。1200円でNEXUS7を購入してきた。手元のスマホを使うでもむろんよい。

②電子部品

物をそろえる。基本手元にある部材でほとんど揃えられたがUSB OTG Cable だけはアマゾンで調達。100均のケーブルを加工する方法が検索すると出てくるが、さすがに面倒なので購入。martinlorenの解説では、TTLケーブルを調達して書き込むと書いてあるが、まあおれはST-LINKをもっているのでこれを使う。

③ハード部分の組み立て
http://hscope.martinloren.com/HS101-oscilloscope.html
に記載の通りに回路を構成。
部品数が少ないので10分程で半田は終了。基板を切断する。

bulePillがすでにブレッドボードにさしてつかっていたものなのでジョイントが裏側に。特段高さ問題なく、bulepillの基板に接触する事はない。

これにプローブとなる線を半田してハードは終わり。

④ソフト側

アンドロイドに、HScopeをインストール。これはgoogleアプリからサクッとDLするだけ。

ファームの書き込み
公式ページでは、USB-TTL Connectorを購入してきて、スマホのSTM32への書き込みアプリをDLしてきてスマホから焼き付けるという事だが、そんなケーブルわざわざ用意しないので、ST-LINK(中華)を使う。

ファームをgithubからDL
2022年12月時点で最新は、V10.2。

STM32 ST-LINK utilityを落としてくる。
DL時に、名前とメアドが聞かれて、メールに届いたリンクを押すとDLできる。

自作の部分は一旦はずして、bulepillだけを、ST-LINKv2を介してPCのUSBポートに繋いぐ(ジャンパーピンも書き込み状態にして)
STM32 ST-LINK utilityを立ち上げる。
コンセントのような形のボタンを押して、接続を行う。ここで接続エラーが出るのは大抵は、ジャンパーを設定し忘れていたとか・・・。


ノートとペンの形のボタンを押すと、書き込むbinファイルを指定するダイアログが開くのでDLしてきたものを選択する。
Programing and Verifying
にチェックを入れてスタート。ものの数秒すると終わる。

ファームのテスト
自作の部分ははずし、ファームだけを焼き付けたbluePillをUSB OTG Cableを介してアンドロイドタブレットと接続、HScopeを立ち上げて、オシロスコープとしてHS101と認識されているか確認する。

ファームとHScopeのバージョンの相性が存在するようで、ファームV10.1ではアプリが起動うるが画面が消えてしまい、V10.2だと動作していた。最新の組み合わせがベターかと。

⑤動作確認
ファンクションジェネレータとか洒落たものはないので、動作確認にArduinoNanoを一つもってきて以下の簡単なアナログライトのスケッチを記入。
5ピン、6ピンはPWMでも約980Hz、電圧5VのPWM信号を生成する。

const int PIN_PWM = 5;
const float V_OUT = 2;

void setup() {
  int i = (int) V_OUT * 51;
  analogWrite( PIN_PWM, i ); 
}
void loop() {
}


画面に、PWMの出力が確認できた。

⑥感想
・なぜかマイナス表示された。
作った回路は簡単なものでGNDと間違いようがないが、マイナス側に表示されしまった。。probeの補正倍率を-1.02とか負の値を入れてプラス側にして対応。
問題は何もないので、現状はこれで運用。

・まあ、どんな波形が出ていてと確認ができるというレベル。
ノイズを除くと8bit程度なので、本物のスペアナを使った経験のある人はがっくりする。

・縦軸はまあ補正すればよいのでなんとか・・・横軸があっていなかった・・・


 


コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

ILI9341 240X320 Arduino

Attiny85 FuseRest