うさちゃんと一緒(18) Rabbit4000のCPUレジスタを一覧にしてみた

RegistersEC
Joseph Halfmoon

うさちゃんRabbit4000のDynamic Cのライブラリを読んでいるとインライン・アセンブラ・コードに迷いこみます。RabbitシリーズはZ80愛に溢れているCPU、Z80上位互換です。Z80のつもりで大体読めますが、時々「知らない」レジスタなどに遭遇します。今回はCPUレジスタを図にまとめてみました。

“うさちゃんと一緒(18) Rabbit4000のCPUレジスタを一覧にしてみた” の続きを読む

帰らざるMOS回路(28) Icarus Verilog、ライブラリのパラメータ化

gtkwave
Joseph Halfmoon

前回、モジュールファイルの置き場所を決めたりして、作成済の部品を呼び出して使うのが便利になりました。すると即座に不満な点が出てきました。部品が「8ビット用」とかキメウチで応用が効かないことです。今回はシフトレジスタを題材にパラメタライズ、呼び出し時にビット幅を決められるようにしてみます。 “帰らざるMOS回路(28) Icarus Verilog、ライブラリのパラメータ化” の続きを読む

ぐだぐだ低レベルプログラミング(77)ARM64(AArch64)、EXTR、RORでもある

EXTR
Joseph Halfmoon

前回までのビットフィールド転送命令群と比べて今回のレジスタ抽出命令EXTRの動作は分かり易いです。エイリアスもシンプル、たった1個。ROR(右ローテイト)命令だけです。ただ、左にシフトして取り出すような操作のEXTRに対して、詰まっているデータから見ると右ローテイトに見えると。左右が時々混乱するのは私だけ? “ぐだぐだ低レベルプログラミング(77)ARM64(AArch64)、EXTR、RORでもある” の続きを読む

やっつけな日常(32) Rustに入ればRustに従え、文字列操作、おっかなびっくり その1

train_string
Joseph Halfmoon

テキトーに書いても走る(走ったように見える)言語もあれば、走る前に阻止される言語もあります。どうもRustは後者であるようです。Rustでの文字列のとり扱いを始めましたが、Cの文字列に慣れた頭でいると、いろいろ転換せねばなりませぬ。文字列を配列とみて添え字でアクセスするような方法は禁止じゃと。 “やっつけな日常(32) Rustに入ればRustに従え、文字列操作、おっかなびっくり その1” の続きを読む

忘却の微分方程式(57) 反復練習20、ジョルダン標準形への変換その1

Jordan Normal Form
Joseph Halfmoon

前回まで、「対角化」などを「それなりに手順」を踏んで行ってきました。今回のジョルダン標準形への変換はどうしようか迷いました。そのものズバリのJordan行列を扱うパッケージ diag をloadすれば、ほぼ1撃で変換できてしまう。まあ、出来ることをわざわざ刻むことも無し、お楽が一番。手順のみ確認させていただきます。 “忘却の微分方程式(57) 反復練習20、ジョルダン標準形への変換その1” の続きを読む

手習ひデジタル信号処理(49) SDRで高校野球、甲子園中継(NHK第1)受信OKよ

SDR_DUT
Joseph Halfmoon

前回までに、Arm Cortex-M4コアのSTM32F446マイコンでの「ダイレクト・サンプリングSDR実験」用フロントエンド回路が出来上がりました。これからSDRのお勉強に入りますが、初回は早速AMラジオを受信してみます。なんたって三上先生のサンプルプログラムのバイナリがあるので、書き込めば動く筈。

“手習ひデジタル信号処理(49) SDRで高校野球、甲子園中継(NHK第1)受信OKよ” の続きを読む

データのお砂場(43) R言語、attenu、カリフォルニアの23個の地震のピーク加速度とな

Joseph Halfmoon

前回は演習用の人工データでしたが、今回は自然現象の観測データです。米国カリフォルニア州内で発生した23個の地震のピーク加速度データです。古いデータのようですが比較的デカイ地震ばかり。震源までの距離とピーク加速度の間に関係性を見出すための練習データに見えます。しかし多くの日本人は知っています。地震は一筋縄ではいかねーと。

“データのお砂場(43) R言語、attenu、カリフォルニアの23個の地震のピーク加速度とな” の続きを読む

お手軽ツールで今更学ぶアナログ(108) CMOSインバータでアナログスイッチの実験 その1

CMOS_RON_Schematic
Joseph Halfmoon

「アナデバ社(ADI社)のWeb記事『StudentZone』を初回からすべて読む」ついに2022年に突入しました。ようやく周回遅れ状態を解消。とはいえ今は8月、読んでいるのは1月号です。前回はデジタルなCMOSインバータをつかってアナログな反転アンプでした。今回はさらにCMOSインバータをつかってアナログスイッチの実験です。

“お手軽ツールで今更学ぶアナログ(108) CMOSインバータでアナログスイッチの実験 その1” の続きを読む

ソフトな忘却力(23) time_t型、64bit OS上なら64bitになっていたのね

trainTime
Joseph Halfmoon

別件でdateコマンドを使って思い出したのが UNIX時間であります。Linuxでも使用の「伝統」です。そういえば昔は32ビットであったので2038年問題ってのが有った筈。手元のLinux機、ラズパイ4はようやく64ビットOSに切り替えましたが、ラズパイ3は32ビットOSのままです。time_t型の件、調べてみました。
“ソフトな忘却力(23) time_t型、64bit OS上なら64bitになっていたのね” の続きを読む

ブロックを積みながら(79) Node-RED、watchノードでファイルを監視

watchEC
Joseph Halfmoon

今回は watch ノードです。watchといっても腕時計ではありませんよ。指定したファイルを監視してくれるノードです。Node-REDの「外側で」起こった変更を捕捉するのには便利な機能じゃないかと思います。捕捉できたところで次にどうするのかはまた別の話ですが。

“ブロックを積みながら(79) Node-RED、watchノードでファイルを監視” の続きを読む

部品屋根性(78) LM61、アナログ出力温度センサをラズパイPythonで読み取る

LM61
Joseph Halfmoon

前回はI2C接続の温湿度センサAHT21Bをラズパイ上のPythonで読み取ってみました。今回は、アナログ信号出力の温度センサLM61をやはりラズパイPythonで読み取ってみます。アナログ入力を持たないラズパイのために外付けADCのMCP3421を取り付けてあるので「端子を接続するだけ」で読める筈なのですが。

“部品屋根性(78) LM61、アナログ出力温度センサをラズパイPythonで読み取る” の続きを読む

うさちゃんと一緒(17) Rabbit4000にAHT21B温湿度センサをI2C接続

Rabbit4000_AHT21B
Joseph Halfmoon

前回は、Rabbit4000(モジュールはRCM4010)のオープンドレインで使用可能なピンを見つけて、16文字x2行のキャラクタディスプレイAQM1602をソフトI2C接続いたしました。今回は同じ「I2C」バスにAHT21B温湿度センサを取り付けてみます。今回はライトオンリの前回とは違って読み書き双方向が必要です。

“うさちゃんと一緒(17) Rabbit4000にAHT21B温湿度センサをI2C接続” の続きを読む

帰らざるMOS回路(27) Icarus Verilog小ネタ、ライブラリ、実行時パラメータ

vvpB0
Joseph Halfmoon

前回は、ROMのビットパターンを外部ファイルから読み取ってシミュレーションに使用してみました。ファイルからデータを入力できるのであれば、コマンドラインからちょいとテスト値などを読み込ませて使用することもしたいです。ついでにモジュール・ファイルの置き場所も所定の場所にまとめたいです。今回はiverilog使うときの小ネタ
“帰らざるMOS回路(27) Icarus Verilog小ネタ、ライブラリ、実行時パラメータ” の続きを読む

ぐだぐだ低レベルプログラミング(76)ARM64(AArch64)、UBFM命令、伸縮自在

UBFM
Joseph Halfmoon

前回は符号付きのビットフィールドMOV命令、SBFMのエクササイズでした。今回は符号無のビットフィールドMOV命令、UBFMです。これまた多くのエイリアスの名のもとにいろいろな命令に化ける命令です。似た命令であるSBFMと「対称」と思って見に行くと期待を裏切られます。SBFMであったものが無いです。でも無くても大丈夫。 “ぐだぐだ低レベルプログラミング(76)ARM64(AArch64)、UBFM命令、伸縮自在” の続きを読む