ぐだぐた低レベルプログラミング(28) RISC-Vでアセンブラ再開、環境のレストア

Joseph Halfmoon

昨年は結構RISC-Vマイコンを動かしていたのですが、RISC-V debuggerをボードから外してしまった後「疎遠」となっておりました。今回開発環境をレストア(といってデバッガ取り付けるだけですが)し、再び取り組んでみたいと思います。目標はRV32I全命令を動かしてみること。全命令というと大変そうですがRISC-Vだもんね。

“ぐだぐた低レベルプログラミング(28) RISC-Vでアセンブラ再開、環境のレストア” の続きを読む

MicroPython的午睡(42) array.array、意外に小さい使える領域

M5ATOMLite_RaspberryPiPico
Joseph Halfmoon

別件でラズパイPico上のMicroPythonを使用して、arrayモジュールを使ってみたところ、バイト要素が高々16000個以下でエラーで落ちました。他のプログラム要素の使用分もあるので一概には言えないですが、ラズパイPico搭載のSRAM量からしたらかなり小さくて予想外。どういう書き方したらどのくらいの容量が使えるのだか気になって調べてみました。対象はラズパイPicoとM5ATOM LiteのMicroPythonです。

“MicroPython的午睡(42) array.array、意外に小さい使える領域” の続きを読む

IoT何をいまさら(93) ATSAMD51、内蔵ペリフェラルの割り込み受け

TRNG Interrupt Handler
Joseph Halfmoon

前回に続き、Microchip社ATSAMD51マイコンをローレベル(ハードに近いレベル)でプログラムしていきたいと思います。今回は内蔵ペリフェラルの発生する割り込みの受けです。「割り込み源」としては前回使用してみたTRNG(真性乱数ジェネレータ)を使います。今回は単なる割り込み源としての登場です。

“IoT何をいまさら(93) ATSAMD51、内蔵ペリフェラルの割り込み受け” の続きを読む

鳥なき里のマイコン屋(136) ラズパイPico、C/C++SDKでPIO、今度は入力

PIO002DUT_Schematic
Joseph Halfmoon

ラズパイPicoのPIO(Programable IO)、前回は任意のデータの8ビットパラレル出力を行ってみました。今回は、前回の8ビット出力に加えて、4ビットのパラレル入力を追加してみたいと思います。実験用に外付け回路を追加。でもまだまだPIOアセンブラは数行、極めてシンプルであります。

“鳥なき里のマイコン屋(136) ラズパイPico、C/C++SDKでPIO、今度は入力” の続きを読む

鳥なき里のマイコン屋(135) ラズパイPico、C/C++SDKでPIO、多ビット出力

PIO 8bit output
Joseph Halfmoon

ラズパイPicoのPIOですが、MicroPythonから使う方が簡単かな~などと思う今日この頃です。でもこちらのシリーズでは気を取り押してC/C++SDKでやります。さて、前回は単純bit-bangingでしたが、今回は任意の多ビットの値をPIO使って出力してみたいと思います。こんな進捗では何時までかかることやら。まあ急ぐ理由もなし。

“鳥なき里のマイコン屋(135) ラズパイPico、C/C++SDKでPIO、多ビット出力” の続きを読む

MicroPython的午睡(41) MQTTでPublish、M5ATOM Lite

ATOMLiteDashboard
Joseph Halfmoon

超小型デバイスM5 ATOM Liteに、MicroPythonのESP32向けgenericポートを書き込んで動かしております。前回は nptサーバに接続してRTCに時刻を設定しました。今回はMQTTブローカにPublishして、Node-REDのダッシュボードにATOM LiteのRTCの時刻を表示させてみます。

“MicroPython的午睡(41) MQTTでPublish、M5ATOM Lite” の続きを読む

IoT何をいまさら(92) ATSAMD51、TRNG、「真性」乱数ジェネレータ

Joseph Halfmoon

近代的なマイコンの多くにはセキュリティ目的の周辺回路が含まれており、Microchip社ATSAMD51マイコンも例外ではありません。本日はその中からTRNG(True Random Number Generator)、真性乱数生成器を使ってみたいと思います。乱数素人なので乱数についてどうこうできるわけではないのですが。 “IoT何をいまさら(92) ATSAMD51、TRNG、「真性」乱数ジェネレータ” の続きを読む

鳥なき里のマイコン屋(134) ラズパイPico、C/C++SDKでプログラマブルIO

PIO000_DUT
Joseph Halfmoon

他のマイコンでPIOと言えばパラレルIOでしょうが、ラズパイPico(のRP2040マイコン)では違います。プログラマブルIO。CPUとは独立に動作するIO専用のステートマシン。「MicroPython的午睡」シリーズで何度か使ってみましたが、C/C++から使うときはお作法が違う、ということで今回はPIO使ったオブジェクトのビルドのサンプル、bit-bangingを。

“鳥なき里のマイコン屋(134) ラズパイPico、C/C++SDKでプログラマブルIO” の続きを読む

Literature watch returns(28) Armマイコンプログラムで学ぶデジタル信号処理

ArmDigitalSignalProcessing
Joseph Halfmoon

文字数の関係でタイトル端折ってしまいました。正確には「Armマイコン」と「」がつきます。三上直樹先生著、工学社刊2021年2月25日初版であります。デジタル信号処理、立派な教科書は数あれど最初からやり直すのはシンドイ。なにか「手っ取り早く」実験中心で楽しく体験できるもの、と思って購入させていただきました。

“Literature watch returns(28) Armマイコンプログラムで学ぶデジタル信号処理” の続きを読む

MicroPython的午睡(40) まずはネット接続してntp、M5ATOM Lite

MPgenericESP32modules
Joseph Halfmoon

超小型デバイスM5 ATOM Liteに、MicroPythonのESP32向けgenericポートを書き込んで動かしております。ESP32系のデバイスの売りといえば何といってもイージーなネット接続であります。まずはWiFiアクセスポイントに接続。最初はntpサーバにお願いしてRTCに時刻を設定してみます。

“MicroPython的午睡(40) まずはネット接続してntp、M5ATOM Lite” の続きを読む

ブロックを積みながら(34) MakeCode、Simulator、使える?使えない?

SIM3EC
Joseph Halfmoon

BBC micro:bitを「ビジュアル」プログラムするのにMakeCodeエディタを使っています。気になっていたものにSimulatorがあります。LEDを操作するようなブロックを積むと勝手にそれが光る様子を画面で再現してくれるアレです。意図的に止めなければ漏れなくいつも動作中。でも使い方、よくわかりません。どこまでシミュレートしてくれるの?

“ブロックを積みながら(34) MakeCode、Simulator、使える?使えない?” の続きを読む

IoT何をいまさら(91) ATSAMD51、CCL、極小のオンチップFPGA

CCL_EC
Joseph Halfmoon

最近のマイコンには従来のマイコンになかった周辺回路が搭載されているものがあります。Microchip社のATSAMD51マイコンに搭載されているCCL (Configurable Custom Logic)もそんな周辺の一つじゃないかと思います。これ、極小ながらオンチップのFPGAです。ただし、小さすぎるので用途は限られますが。 “IoT何をいまさら(91) ATSAMD51、CCL、極小のオンチップFPGA” の続きを読む

IoT何をいまさら(90) Wio Terminal、SAMD51、GCLK周波数リスト

EYC_GCLK2
Joseph Halfmoon

お手軽指向などといいつつ、基本面倒なことは後回し。以前に調べておけばよかったですが、今になってちょっと「速い」クロックが欲しい、ということで初期設定後のWio Terminal上で、どのようなクロック周波数が即使えるのか調べておくことにいたしました。前々回の周波数メータの応用であります。 “IoT何をいまさら(90) Wio Terminal、SAMD51、GCLK周波数リスト” の続きを読む

鳥なき里のマイコン屋(133) ラズパイPico、C/C++SDKでマルチコアもお手軽

multcoreDUT
Joseph Halfmoon

別シリーズのMicroPythonの方でマルチコアやっていたので、C/C++SDKでもやった気になっていました。仕切り直し。C/C++SDK環境(VS Codeでリモート接続)でマルチコアを動かして、デバッガを使ってみます。お手軽にデバッグできるんだが、腑に落ちない挙動が一つ。概ねOKだから、また今度ね。いい加減な。

“鳥なき里のマイコン屋(133) ラズパイPico、C/C++SDKでマルチコアもお手軽” の続きを読む