前回は、論理演算 and命令を使って、オペランドによって生成される命令がRV32Iだったり、RV32Cになったりするのを目にしました。今回は算術演算 add と sub です。RISC-Vに「直交的な」エンコーディングを想像してはなりませぬ。今回は2つの命令の「割り切った」関係を観察したいと思います。割り算じゃないけど。
鳥なき里のマイコン屋(139) ラズパイPico、内蔵ADCから外付けDACへ「スルー」
前回は、ラズパイPicoにI2C接続の外付けのDAC、MCP4725を接続してノコギリ波など出力させてみました。今回はラズパイPicoの内蔵ADCで得たアナログ値をそのまま外付けDACに「転送」してアナログ波形を「再現」してみます。ぶっちゃけSTM32で昨日やった件のまねっこ。タイミングの取り方が異なるし、外付けDACは転送ネックだし、どうなることか。
手習ひデジタル信号処理(2) ADからDA、割り込み方式、STM32のハードの裏とり?
前回はADからDAへの「垂れ流し」ポーリング方式を勉強させていただきました。今回は割り込み方式です。そんな悠長に刻んでいたら死ぬまでに読み終わらない、とも思ったのですが、ちょっと立ち止まってSTM32F446REのハードを確認しておくことにいたしました。ロウレベルなところが気になると夜も眠れませぬ。
AIの片隅で(25) ESP-EYE、ESP32+カメラとマイク、とりあえず写真を一枚
Espressif製の「AIoT」開発ボード、ESP-EYEを入手いたしました。ぶっちゃけESP32のDevkitに、カメラとマイクを搭載した小型ボードという感じです。売りは “Voice Wake-up” と “Face Recognition” です。今回は出荷時状態のまま、電源入れて、一声かけて?カメラを起動、写真を1枚キャプチャしてみました。私の中国語通じちゃう?
MicroPython的午睡(44) MQTTでJSON-OBJ送信、M5ATOMLite
前回 MQTT Subscribe ができたので、MicroPythonで動いているM5ATOM LiteとNode-REDを動かしているRaspberry Pi 3機で上り下りの通信がOKとなりました。今回は、通信内容をJSON化して後で拡張しやすいようにしてみたいと思います。まずはPublish側から。使用するMicroPythonモジュールはujsonです。
ぐだぐだ低レベルプログラミング(30) RISC-V、AND命令に隠された?凸凹
前回、RISC-Vにmv(move)命令は実は無いのだ、という衝撃?の事実をおさらいしました。今回は、and(論理積)命令です。andみたいなプリミティブな操作の命令に何か細工をする余地などあるのか?ま、当然「工夫」があるわけですが。でもね、andとorとxorは一緒、流石に。1回で3命令進捗!
トホホな疑問(40) ATSAMD51、Port Event制御1個しか動かないんですけど
ATSAMD51マイコンのEVSYS、CPUのお手を煩わせずいろいろできて良いものです。その実験をしていて問題が一つ。イベントでPORTを操作してみたところ、1ポートグループあたり4端子まで制御出来る筈が1端子しか反応しませぬ。なにがいけない? Microchip社のエラッタも念のため見たけど、書いてないです。
鳥なき里のマイコン屋(138) ラズパイPico、外付けDAC、MCP4725接続
別シリーズにてSTM32マイコンのAD、DAを動かしているので、ラズパイPicoでもやってみるか、と思い立ちました。しかし、ラズパイPicoにはADの搭載はあるものの、DAはありません(PWMはあり。)また別件にてラズパイPico用の1ビットDACボードも頂いたのですが、今回は外付け12bit DAを接続してみます。
手習ひデジタル信号処理(1) ADからDA、ポーリング方式をなぞってみる
デジタル信号処理を学び直すべし、ということで三上直樹先生著のご本を購入、部品も購入し回路を作成、そして関連の雑誌記事発見、と準備に3回もかけてしまいました。いよいよネタバレにならない程度に本文を学んでいきたいと思います。まずはプログラムがビルドできるところからかな。インポートできるみたいだし、何もすることがない?
MicroPython的午睡(43) MQTTでSubscribe、M5ATOM Lite
前回別件に行ってしまいましたが、今回は前々回の流れに戻ってMQTTのSubscribeを行ってみたいと思います。使用するMicroPythonは ESP32用の”generic” portです。M5ATOM Lite上での運用ですが、”generic”なので他のESP32デバイスでも動くと思います。
ぐだぐだ低レベルプログラミング(29) RISC-VでMV(MOVE)命令、本当は無い
前回、RISC-Vのアセンブラを再開できたので、今回からは1命令づつ命令を動かしていきたいと思います。最初はMOVE(RISC-VのニーモニックではMV)命令です。単なるレジスタ間の転送。しかし、そこにある「仕掛け」をみるとRISC-Vのやり方というものが理解できる感じがします。単なるMOVE、されどMOVEか。クセが強いのう。
IoT何をいまさら(94) ATSAMD51、ArmのWFI命令使ってみた
前回『初回が0なのはプログラムの仕様<バグともいう>です。』など勝手なことを書いて「逃げて」しまいました、すみません。今回はバグ修正版? ArmのWFI(Wait for Interrupt)命令を使って、割り込みが発生するまで「低消費電力で」待ちを入れたいと思います。まあこれとても根本的な対策ではないのでありますが。
鳥なき里のマイコン屋(137) ラズパイPico、C/C++SDKでPIO、サイド出力
前回は、ラズパイPicoのユニークなPIO(Programable IO)でパラレル入出力をやってみました。ただし、出力タイミングはCPUからの書き込み次第でした。今回は、CPUタイミングを排除し、ハード側の一定のタイミングで出力するとともに、パラレル出力には必須のストローブ信号を付加してみたいと思います。
Literature watch returns(29) トラ技2021.10月号、あれ?
久しぶりのCQ出版さんの「トランジスタ技術」誌です。2021年10月号。特集も「お役立ち」ですが、ちょっと気になる新連載が始まりました。三上直樹先生、『STM32マイコンではじまるPC計測』です。あれ、何か見覚えあるような。そうです前回のデジタル信号処理のご本の著者による連載。ちょうど準備済なんですわよ。