うさちゃんと一緒(3) Rabbitとの通信をラズパイWiresharkで観察

Eth0EC
Joseph Halfmoon

前々回、うさちゃんへPingしてお返事をもらいました。今回はうさちゃんからPingしてみます。通信相手はRaspberry Pi 3 model B+です。うさちゃんからのPingにラズパイからお返事をしながら、その様子を「みんな大好き」Wiresharkで観察してみたいと思います。うさちゃんに書き込むコードはサンプルコードほぼそのままです。

“うさちゃんと一緒(3) Rabbitとの通信をラズパイWiresharkで観察” の続きを読む

モダンOSのお砂場(39) Mbed OS6、ConditionalVariableヤバイ?

NucleoF401RE
Joseph Halfmoon

カッコイイ機能があるな、ということで使ってみました。ConditionalVariableであります。確かにカッコイイのですが、ターゲットのSTM32F401REにとっては結構ヤバイ奴でした。シンプルなサンプルコードなのにRAMがいっぱいいっぱいな感じ。何かコードを書けるような余地があるような気がしません。気のせい?

※2022/03/17追記:「気のせい」でした。すみません。OS6はZI Dataとして扱われる部分が多いためにヤバイなどと書いてしまいました。全然ヤバくありません。ヤバイのは自分。

“モダンOSのお砂場(39) Mbed OS6、ConditionalVariableヤバイ?” の続きを読む

ぐだぐだ低レベルプログラミング(54) RISC-V、単精度平方根で2次元normを計算

norm
Joseph Halfmoon

加減乗除に最大/最小、比較とやってきましたが、まだ残っている「演算系の浮動小数点命令」がありました。平方根です、Square Root。平方根を計算するだけでは芸が無いので、2次元のnormも計算してみました。x86(というかx87)系のFPU命令であると「超越関数」までありますが、RISC-Vには超越関数不在です。加減乗除とアルゴリズムで後はよしなに、と。

“ぐだぐだ低レベルプログラミング(54) RISC-V、単精度平方根で2次元normを計算” の続きを読む

手習ひデジタル信号処理(26) ヒルベルト変換器による周波数シフタその2 DCカットフィルタ

BlockDiag
Joseph Halfmoon

前回は周波数シフタの全貌を実機で観察。今回はその構成要素初段のDCカット・フィルタについて調べてみたいです。フィルタのコードはIIRフィルタを「手習ひ」したときに既に使っていたのですが、忘却の彼方。今回はScilab使ってその特性を調べた後、実機でDCカットフィルタを「外したら」どうなるのか観察してみたいと思います。

“手習ひデジタル信号処理(26) ヒルベルト変換器による周波数シフタその2 DCカットフィルタ” の続きを読む

Pico三昧(13) Pico C/C++SDKで4.096MHzクロック生成その2PIO

PIO_FFT
Joseph Halfmoon

前回PWMで生成したクロックで十分かな~と思ってしまったので、もう一度似たようなことをやるのはカッタるいです。でも自分でPIO(プログラマブルIO)でもクロック作ってみると書いてしまったのでやらないと。大分ラズパイPicoのPIOにも慣れたんですが、PIOアセンブラでたった2行。けれどヘッダ部分書くのがメンドイのよね。

“Pico三昧(13) Pico C/C++SDKで4.096MHzクロック生成その2PIO” の続きを読む

うさちゃんと一緒(2) Cooperative Multitaskingで吉例Lチカ

protoBoardLedsEC
Joseph Halfmoon

懐かしいZ80的命令を持つ、うさちゃん印のRabbit4000を使用中です。前回「売り」のEthernetから始めてしまい、新マイコン入手時の吉例を飛ばしてしまいました。今回は、Rabbit用の言語処理系 Dynamic Cの特長の一つ、Cooperative Multitaskingを使って「Lチカ」してみます。

“うさちゃんと一緒(2) Cooperative Multitaskingで吉例Lチカ” の続きを読む

ぐだぐだ低レベルプログラミング(53) RISC-V、単精度浮動小数点数の比較

feq_flt_fle_EC
Joseph Halfmoon

前回は浮動小数点数の最大最小を求める命令でした。今回は、浮動小数点数の比較命令です。比較した結果として条件分岐することが多いと思います。RISC-Vには分岐フラグが存在せず、条件分岐は整数レジスタの中の値を分岐命令で判定します。このため浮動小数の比較命令の結果は整数レジスタに書き込みとなります。

“ぐだぐだ低レベルプログラミング(53) RISC-V、単精度浮動小数点数の比較” の続きを読む

手習ひデジタル信号処理(25)ヒルベルト変換器による位相シフタ利用の周波数シフタ その1

Result2FFT
Joseph Halfmoon

今回から周波数シフタです。周波数をシフトするのに加法定理を使う。それにはcosとsinの両方が要る。cosをπ/2だけ位相シフトすればsinになる、ということで、位相をシフトするために使うのがヒルベルト変換器であります。分かったような分からぬような。今回は先に実機上で動作確認してから個々の部品を調べていきたいと思います。

“手習ひデジタル信号処理(25)ヒルベルト変換器による位相シフタ利用の周波数シフタ その1” の続きを読む

Pico三昧(12) Pico C/C++SDKで4.096MHzクロック生成その1PWM

PWM4096_EC
Joseph Halfmoon

あるデバイスを動かそうとしたら4.096MHzのクロックが必要と書いてありました。手元には4MHzピタリの水晶振動子の在庫はあったと思ったですが、4.096MHzありません。ラズパイPicoで制御するつもりなのだし、ラズパイPicoでクロックから作ってしまえ、という目論見。「普通のマイコン」ならタイマをいじるところですが、ラズパイPicoでは違う、と。

“Pico三昧(12) Pico C/C++SDKで4.096MHzクロック生成その1PWM” の続きを読む

モダンOSのお砂場(38) Mbed OS6、Timerでインターバル測定。STM32

MbedSRC
Joseph Halfmoon

前回がPWM出力だったので、今回は逆に入力インターバルをタイマAPIで測定してみました。入力は割り込み受け、人間がボタンを押す想定なので精度的にはいい加減な方法です。まあ、とりあえずボタンを押す時間間隔は測れたと。また、前回と異なり今回はオブジェクトコードの作成にWebベースのMbed Compilerを使ってみます。

“モダンOSのお砂場(38) Mbed OS6、Timerでインターバル測定。STM32” の続きを読む

うさちゃんと一緒(1) Rabbit4000にPingしてお返事をしてもらう

RabbitBoard
Joseph Halfmoon

うさちゃん印のRabbit4000、Z80に似た8ビットの命令セットを持つちょっと古いけれども強力なマイコン、を手に入れてインストールをし動作確認をいたしました。今回から、少しづつ「うさちゃん印」を動かしていきたいとおもいます。まずは「売り」の機能Ethernet I/Fの動作確認から。外からPingしてお返事を確認してみます。

“うさちゃんと一緒(1) Rabbit4000にPingしてお返事をしてもらう” の続きを読む

ぐだぐだ低レベルプログラミング(52) RISC-V、浮動小数のmin/max

VNCtransfer
Joseph Halfmoon

RISC-Vは、RISCの中でもシンプルで「絞り込んだ」命令セットでありますが、浮動小数点数を扱う命令結構多いんじゃないかい。まあ面倒くさいものを扱うので、いたしかたないか。RISC-Vのせいではないですな。前回は積和演算命令でしたが今回は最大、最小求める命令です。

“ぐだぐだ低レベルプログラミング(52) RISC-V、浮動小数のmin/max” の続きを読む

Pico三昧(11) Pico C/C++SDKでinterp#5、補間ついでに配列舐める

Debug000
Joseph Halfmoon

今回は前々回のBlendモード再びです。その上、Datasheetのサンプルプログラムほぼほぼそのままです。何といっても中の人の書いたサンプルプログラム流石すぎます。Blendモードで補間をするついでにデータ配列を舐めるためのポインタアドレスまで作ってました。私のような凡人には考えつかないテクであります。

“Pico三昧(11) Pico C/C++SDKでinterp#5、補間ついでに配列舐める” の続きを読む

手習ひデジタル信号処理(24)残響生成器その3、マイクとスピーカつけて残響音を聞いてみる

Reverb_DUT
Joseph Halfmoon

前回アナログ・マイクロフォンを追加、ようやく残響生成器を実際に動かしてみることができるようになりました。スピーカは100円ショップのものを第20回でもつかったスピーカアンプで駆動してみました。確かに残響しています。マイクを叩くと長い地下道でコツコツ歩いているような効果音?つくれました(末尾に音声添付。)

“手習ひデジタル信号処理(24)残響生成器その3、マイクとスピーカつけて残響音を聞いてみる” の続きを読む