MicroPython的午睡(87) STM32版、入力キャプチャ割り込み受けで出力コンペア

ICOCintDiff1000
Joseph Halfmoon

前回Timer1の入力キャプチャを割り込み受け。速度的な制約のあるMicroPythonでも割り込みを使えば、ハードの制御はかなりできるじゃないかと思います。今回は、前々回やった出力コンペアの設定を入力キャプチャ割り込みで制御してみたいと思います。割り込みハンドラでハードを制御できるのでメインは別な仕事をできると。
“MicroPython的午睡(87) STM32版、入力キャプチャ割り込み受けで出力コンペア” の続きを読む

MicroPython的午睡(86) STM32版、タイマ・チャネル、割り込み受け TIPS

IntrErrorEC
Joseph Halfmoon

前々回前回とTimer1のチャネル機能、入力キャプチャと出力コンペアを使ってみました。しかし、入力キャプチャのタイミングを割り込み受けしておらずポーリング。そこで今回はチャネルからの割り込みをハンドリングしてみたいと思います。ま、ね、MicroPythonの割り込みハンドラの書き方を調べとけ、ということだったですが。
“MicroPython的午睡(86) STM32版、タイマ・チャネル、割り込み受け TIPS” の続きを読む

MicroPython的午睡(85) STM32版、入力キャプチャから出力コンペア

OutputCompare
Joseph Halfmoon

前回はインプットキャプチャ機能を使用してみました。インプットキャプチャ機能と対にして使われるのがアウトプットコンペア機能です。STM32版のMicroPythonでは両機能が併用可能です。外部で発生するイベントを検出し、イベントから一定時間後に何かの制御を行うということをハードウエアの正確なタイミングで行えます。 “MicroPython的午睡(85) STM32版、入力キャプチャから出力コンペア” の続きを読む

MicroPython的午睡(84) STM32版、Timer1入力キャプチャで周波数測定

Timer1IC_DUT
Joseph Halfmoon

MicroPythonの場合、タイマのPWM出力機能をサポートしている処理系は多いですが、タイマの外部入力機能をサポートしている処理系は少ないように思います。しかしSTM32用の処理系の場合、入力機能もいくらかサポートされています。今回は入力キャプチャ機能を使って外部から与える信号の周波数を測ってみたいと思います。 “MicroPython的午睡(84) STM32版、Timer1入力キャプチャで周波数測定” の続きを読む

MicroPython的午睡(83) STM32F401RE版、Timer1、クロック周波数

84MHz
Joseph Halfmoon

前回タイマとPWM出力端子の関係を調べました。調べ忘れがひとつ。MicroPython的には freq=xxx という形で指定すればよきに計らってくれるので使い方によっては知る必要ないのです。しかし入力キャプチャ機能を使おうなどと考えるとTimerに与えられているソースクロックの周波数を知らずにはいられませぬ。
“MicroPython的午睡(83) STM32F401RE版、Timer1、クロック周波数” の続きを読む

MicroPython的午睡(82) STM32F401RE版、タイマとPWM出力端子の関係

PWMtestDUTb
Joseph Halfmoon

前回はタイマが使用中か否かを確認する方法を確認。今回はタイマを使用するMicroPython機能としてPWM出力を使ってみたいと思います。ほとんどのタイマはPWM出力が可能なチャネルを4つずつ持っています。しかしどのタイマのどのチャネルをどこのピンに出せるかはハードで決まっています。まずそこから表にしてみました。
“MicroPython的午睡(82) STM32F401RE版、タイマとPWM出力端子の関係” の続きを読む

MicroPython的午睡(81) STM32F401RE版、使われているタイマを調べる

STM32IOreadSRCEC
Joseph Halfmoon

前回ADCをサンプリングするのにタイマ4を使ってしまいましたが「誰もタイマ4を使っていないの?」という疑問を調べもせずの見切り発車でした。今回は、STM32マイコン専用のstmモジュールを使って、タイマが動いているか否かを判定できるようにしたいと思います。それにしてもSTM32、タイマ充実してます。

“MicroPython的午睡(81) STM32F401RE版、使われているタイマを調べる” の続きを読む

MicroPython的午睡(80) STM32F401RE版、タイマ駆動でADサンプリング

STM32MicroPythonADC_DUT
Joseph Halfmoon

第77回でビルドしたNucleo-F401RE用MicroPython、Pyboard用のpybモジュールを搭載(第78回)。pybモジュールはいろいろ強力な機能を搭載。その一つがタイマ駆動のADサンプリング機能です。Pyboard上では2チャンネルを210kHzでサンプリングできると。結構速いんでないかい。
“MicroPython的午睡(80) STM32F401RE版、タイマ駆動でADサンプリング” の続きを読む

MicroPython的午睡(79) STM32F401RE版、dhtモジュールを試す

DHT11_NucleoF401REs
Joseph Halfmoon

前回はNucleo F401RE用にビルドしたMicroPythonが結構高機能で嬉しいという話でした。今回はfrozen_mpyとしてMicroPython処理系に取り込まれている dht モジュールを使ってみます。温湿度センサが多数あるなか、古くから定番の温湿度センサDHT11のインタフェース用のモジュールです。
“MicroPython的午睡(79) STM32F401RE版、dhtモジュールを試す” の続きを読む

MicroPython的午睡(78) 限りなくPyboardに近いNucleo

inlineASM
Joseph Halfmoon

前回MicroPythonをNucleo F401REボード用にソースからビルドして書き込んだところ動作OK。STM32マイコンの周辺回路への直接アクセス用のモジュールもあり。ハード使い放題じゃん、と喜びました。しかし調べてみると予想以上に機能が充実してます。STM32用のMicroPython最強。ホントか?

“MicroPython的午睡(78) 限りなくPyboardに近いNucleo” の続きを読む

MicroPython的午睡(77) STM32版MicroPython、WSL2でビルド

firmware
Joseph Halfmoon

MicroPython、ソースからのビルド・シリーズも4回目。ラズパイPico用、Raspberry Pi 4用、SAMD21用とやってきて、今回はST Microelectronics社 STM32マイコン用です。ターゲットボードはNucleo F401RE。ビルド簡単、書き込み簡単。調子乗ってんじゃねえよ、自分。
“MicroPython的午睡(77) STM32版MicroPython、WSL2でビルド” の続きを読む

MicroPython的午睡(76) SAMD21版MicroPython、WSL2でビルド

samd21micropython
Joseph Halfmoon

ラズパイPico用のMicroPythonをソースからビルドできる環境でき、調子に乗った前回はLinux版MicroPythonを作成。ビルド環境はRaspberry Pi OS上でした。今回はビルド環境をWindows11上のWSL2に変更、SAMD21マイコン用のMicroPythonをクロスコンパイルしてみます。

“MicroPython的午睡(76) SAMD21版MicroPython、WSL2でビルド” の続きを読む

MicroPython的午睡(75) Linux版MicroPythonビルド、SSH接続

MicroPythonSSHrunsOnThonny
Joseph Halfmoon

前回ラズパイPico用のMicroPythonをソースからビルド。環境できたのでラズパイPicoに限らず他のマイコン向けのMicroPythonもビルドできるハズ。今回はLinux用のMicroPythonをビルドしてみます。ビルド後、Windows上のThonnyIDEからSSH接続しバックエンドとしてみます。
“MicroPython的午睡(75) Linux版MicroPythonビルド、SSH接続” の続きを読む

MicroPython的午睡(74) MicroPythonソースから最新版ビルド

micropython_ports
Joseph Halfmoon

別シリーズでラズパイPicoのC/C++SDK環境を復活させたので、その余勢を駆ってラズパイ用のMicroPythonをソースからビルドしてみました。Picoのためというよりは、アイキャッチ画像に並んでいる他機種向けの最新版オブジェクトを得るためです。マイコン毎のフォルダの下にさらに多数のボード毎のポートありです。

“MicroPython的午睡(74) MicroPythonソースから最新版ビルド” の続きを読む