STM32三昧(4) Cube IDEでDMA転送、メモリからメモリ、Nucleo

DMAsetting
Joseph Halfmoon

Cube IDE使ってSTM32のHALを練習中です。前回DACをソフトウエアで制御し「ゆるゆる」な三角波を発生させてみました。もっと高速な波形を生成するのならDMA利用かね。ということで今回はDMA関係のHALを練習してみることに。まずはメモリ間です。DMAリクエスト元のペリフェラルの設定不要なのでお手軽。

“STM32三昧(4) Cube IDEでDMA転送、メモリからメモリ、Nucleo” の続きを読む

モダンOSのお砂場(78)UNO R4でFreeRTOS、Task発Queue経由OLED行

FreeRTOS_OLED_DUT
Joseph Halfmoon

別シリーズにてUNO R4にOLEDディスプレイを接続。これでprintfしなくても「出力」可能となりました。とは言え一つしかない虎の子のOLEDを複数Taskで奪い合うのは醜い。そこでOLED表示TASKを作製、他のTASKどもはそちらにQueue経由でお願いする形にいたしました。今回のはそのプロトタイプです。

“モダンOSのお砂場(78)UNO R4でFreeRTOS、Task発Queue経由OLED行” の続きを読む

MicroPython的午睡(130)M5Stack UIFlow2、microSDマウント

M5StackSDCardSlotEC
Joseph Halfmoon

前回はM5Stackの前面パネル下に3個あるボタンを押してみました。今回は側面(下側)に移ってmicroSDカードスロットにアクセスしてみたいと思います。SDカードアクセスはESP32用の標準的なMicroPythonと共通ではあるものの、M5Stackのハードウエア特有の設定をしないとなりません。

“MicroPython的午睡(130)M5Stack UIFlow2、microSDマウント” の続きを読む

PIC三昧(22) TIMER0、ワンショットでパルス幅を制御する。PIC16F18855

ResultsWaveForm
Joseph Halfmoon

前回に続きTIMER0を試用。今回はワンショットで出力パルス幅を制御するのに使ってみたいと思います。外部でボタンが押されたことをトリガにして、ボタンが押された直後から所定の幅のパルスを一発出力するもの。制御ではアリガチ?今回は16ビット利用なので最小4μsから最大約260msまでのパルスを自由自在だと。

“PIC三昧(22) TIMER0、ワンショットでパルス幅を制御する。PIC16F18855” の続きを読む

STM32三昧(3) Cube IDEでDAC出力、ソフトウエアトリガ、Nucleo

STM32_DAC_DUT
Joseph Halfmoon

STMicroelectronics社純正開発環境Cube IDEを使用し、STM32のHAL(hardware abstraction layer)を思いつくまま試用中。今回はアナログ出力を行ってみたいと思います。DAコンバータね。まずはソフトウエアループで出力タイミングを制御してゆっくりした三角波を出力してみます。
“STM32三昧(3) Cube IDEでDAC出力、ソフトウエアトリガ、Nucleo” の続きを読む

MicroPython的午睡(129)M5Stack UIFlow2、「Btn」を押してみる

BtnTest
Joseph Halfmoon

前回はUIFlow2版MicroPythonをつかってM5Stackの表示に触ってみました。今回はディスプレイ下部に並んでいる3個のボタンを使ってみます。前回同様M5モジュールの中のクラスや関数を使うので、ついでにM5モジュール内の「細々」したところにも触っていきたいと思います。API多すぎ。とても触り切れませぬ。

“MicroPython的午睡(129)M5Stack UIFlow2、「Btn」を押してみる” の続きを読む

PIC三昧(21) TIMER0、外部クロックをカウント、PIC16F18855

TIMER0_DUT
Joseph Halfmoon

前回は内部のクロックを外部出力するCLKREFモジュールを練習しました。今回は外部からクロックを入力して数えてみます。PIC16F18855はタイマ(カウンタ)が充実、0から6まで7本もあります。今回はそのうちのTIMER0を使って外部クロックをカウント、周期的にタイマ0割り込みを発生させてみます。

“PIC三昧(21) TIMER0、外部クロックをカウント、PIC16F18855” の続きを読む

GoにいればGoに従え(41) ラズパイPico、ArmのSystick使えるの?

Systick100kHz
Joseph Halfmoon

前回は周辺装置の割り込みの「元締め」NVICの動作状況を見てみました。しかしNVICを経由しないArmコア固有の例外、システム割り込みの中にSysTickというものも含まれているのです。プロセッサクロックで動作している高速なタイマです。今回はこいつが使えるのか否かを確かめてみます。 “GoにいればGoに従え(41) ラズパイPico、ArmのSystick使えるの?” の続きを読む

STM32三昧(2) Cube IDEでGPIOから割り込み、Nucleo

GPIO_CONFIG
Joseph Halfmoon

STMicroelectronics社純正開発環境Cube IDEを使用し、STM32のHAL(hardware abstraction layer)を思いつくまま試用中です。前回はGPIO入力とprintf出力を使えるようになりました。今回はソフトウエアでのGPIOポーリングを割り込み入力に変更してみます。 “STM32三昧(2) Cube IDEでGPIOから割り込み、Nucleo” の続きを読む

レトロな(6) 8080, Z80, 8086を比べる、レジスタ編

8080_Z80_8086_REGS
Joseph Halfmoon

前回はピン配置のみから8080、8085、Z80のハードウエアの違いというか、設計思想?について勝手なことを書きました。今回はレジスタ一覧から8080、Z80そして8086について語りたいと思います。8085が居なくなった?レジスタ的には8080と8085はクリソツだからっす。代わりに16ビット8086を比較すると。

“レトロな(6) 8080, Z80, 8086を比べる、レジスタ編” の続きを読む

MicroPython的午睡(128)M5Stack UIFlow2、Displayを探る?

UIFlow2_Display_Trial
Joseph Halfmoon

前回、UIFlow2版のMicroPython、ThonnyIDEからも普通に使えることを確かめました。ビジュアルプログラミングは別シリーズなのでこちらではあくまでテキストベースでソースを書いていきたいと思います。素のESP32版MicroPythonと比べると独自拡張強力。今回はディスプレイ周りを探っていきたいと思います。

“MicroPython的午睡(128)M5Stack UIFlow2、Displayを探る?” の続きを読む

PIC三昧(20) CLKREF、参照クロックの外部出力、PIC16F18855

PIC16F18855_PackageView
Joseph Halfmoon

PIC16マイコン搭載の周辺回路を脈絡もなく思いつくまま気の向くままの順番で練習してきました。ここで「なんの一番基本的なモジュール」を練習してないことに気づきました。内部のクロック信号を外部にお知らせできるCLKREFモジュールです。クロックを出力するだけ、地味だあ~。でも単純だけれどもよく考えられてる?

“PIC三昧(20) CLKREF、参照クロックの外部出力、PIC16F18855” の続きを読む

GoにいればGoに従え(40) ラズパイPicoの割り込み、その1、イネーブルなのは誰?

RPICO_INT_ENABLE
Joseph Halfmoon

前回はラズパイPicoのハードウエアの「もそっと下」のところをTinyGoから制御するためにハード固有のレジスタに直接アクセスしてみました。クロックとか電源とか最初に見ておきたい部分はいろいろあるのですが、今回は割り込みをみてみます。TinyGoのランタイムがデフォルトで割り込みイネーブルにしている周辺はあるのかしら。
“GoにいればGoに従え(40) ラズパイPicoの割り込み、その1、イネーブルなのは誰?” の続きを読む

STM32三昧(1) Cube IDEでHello World+GPIO入力、Nucleo

NucleoF072RB
Joseph Halfmoon

STMicroelectronics社純正開発環境Cube IDEを別件にて再インストール。Cube IDEとSTM32マイコンのHALを練習するためにシリーズ「STM32三昧」始めることにいたしました。それにしてもHAL充実、つまりはAPI多すぎ。まず今回はGPIO入力とprintfを使えるようにするところから。

“STM32三昧(1) Cube IDEでHello World+GPIO入力、Nucleo” の続きを読む