SSブログ

PWM+ローパスで擬似D/A [Pi Pico]

Pi PicoのPWM信号をローパスに通して擬似的なD/A変換に使っている。ところがローパスの半田付けが面倒なので次数の低いローパス、つまり1次のローパスにしていると、結構な分量の基本波成分の漏れがある。1次ではローパスのカットオフをPWMの基本波の一桁下にすると基本波成分は1/10だけ漏れることになる。

これが気になってきた。つまり単純なPWMではなくて、なにかビットパターンを考えて基本波成分を減らす工夫はないか、と考えてみた...

続きを読む


nice!(0)  コメント(7) 

macOSからPi Picoを使う - その34 [Pi Pico]

とりあえずいまのところPi Pico側は2コアでも休み休み動かす、macOS側はlibusbの同期転送を専用threadで回すか、非同期転送をNSTimerで頻繁に呼ぶか、というなんとも中途半端なworkaroundだけど、なんとか使えるようになった。

いずれはPi Picoは2コアをぶん回せるようにして、macOS側はlibusbからIOUSBHostに移行したい。とはいうもののいつになることやら。

ということで集中的にPi Picoの話を続けてきたけど今日でひと段落。最後はuniversal binary版のlibusbが欲しい、という話...

続きを読む


nice!(0)  コメント(0) 

M1Pro/Max MacBook ProのHDMI [日常のあれやこれや]

こんな記事を読んだ。macBook Proに返り咲いたHDMIポートが最新の2.1ではなくて2.0だ、という話。Appleが最新規格より古いのを使うっていうの、すごく珍しい気がする。というか初めてじゃない?なんかあったっけ?

でも、「だからがっかり」というのはそれはそれですごいな。MacBook Proを何に使うつもりなんだろう。

結局そういうのは単なるスペックフェチという気もする。でもまあ、そういう人たちがたくさんいるのは知っている。何でも「大トロ」を要求する人たち。仕事でもよく悩まされている。そういう人に限って赤身を「大トロです」と言って出しても区別つかないことがよくある。鱈の切り身でもわからなかったりする。

いや、電気製品の話ですよ。
nice!(1)  コメント(0) 

M1ProとM1Maxだって [日常のあれやこれや]

新しいMacbookProの発表があった。CPUとGPUのコアがちょっと増えて、バスの帯域も増えて、M1でちょっと弱いな、と思っていたthunderboltチャンネルが増えた。がんじがらめの拡張性ゼロで最適化する、という方針に変わりはないらしい。

僕はCPUコアが16を超えないと買う気にはならないなあ、なんて思ってたけど、今使ってる買ったばかりのMacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)にはUSB-Cしかなくて、会議でプロジェクタに繋ぐためにUSB-C→HDMIドングルを買ったりしないといけなかったけど、これだとそれがいらないのがいいなあ。それにやっぱりMagSafeのほうがいいなあ。ケーブルを引っ掛けたときにUSB-Cだと本体のメス側が心配になる。

でも高っけえなあ。最小構成で24万かよ。僕だったらこの14インチがこのまま16コアのCPUで10万円台前半になったら買うんだけど。ってそりゃそうか。でも2年後ぐらいにはそうなってほしいなあ。
nice!(0)  コメント(2) 

macOSからPi Picoを使う - その33 [Pi Pico]

僕の場合、とりあえずmacOS側はlibusbの同期転送でPi Picoとのやりとりはできている。core1がcore0とほとんど独立に動いているにもかかわらず、core0で動いているTinyUSBがデータを取りこぼす現象は治ってないけど、適度にお休みを入れるというworkaroundでやり過ごしている。大きな声で人に言えないけど。

libusbもだいたいわかってきた。動作が軽くてよくできている。非同期転送の標準的な使い方のサンプルコードでも用意してくれるとありがたいけど。

というわけでそのlibusbでの非同期転送のやりかた。前回つぎのlibusb_handle_events()呼び出しまでの時間を知ることがなぜか僕の環境でできなかったので、その代わりをどうするか考える....

続きを読む


nice!(0)  コメント(0) 

macOSからPi Picoを使う - その32 [Pi Pico]

まだこれを引きずってる。core0とcore1はちょっと大きめのqueueふたつをpipeとして共有しているだけで他の接点はないのに、core1が忙しくなるとcore0がUSBのデータを取りこぼす。queueにロックがあるのでそこでストールするのかと思ってデバガで見てもそんな様子はない。不思議だ。よくわからん。ってどっか間違ってるんだろうけど。

それはいいとして、前回の続きでlibusbの非同期転送について。前回は別threadで呼ぶなら非同期転送でなくてもいいんじゃね?だったけど、今回はmain threadでlibusbに非同期転送のための作業時間をどうやって割り当てるか....

続きを読む


nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。