オーディオの自作の話題を中心に盛り上げてください
新しいHPのURL http://www.easyaudiokit.com

お気楽オーディオキット資料館

3474725

RasPiにI/Oを増設しよう! - 福島の球使い

2020/07/17 (Fri) 16:48:51

ヒロさん

ちょっと古いですが(4年前で古いとは...),CQ
出版の"ラズベリーパイ解体新書"の6章で,Raspberry
pi2のGPIOを直接たたいて50MHzまで出力するという
記事があります.出力以外の処理をはさまず50MHzな
ので,処理をはさむと落ちてしまうと思いますが.

また,ジッタを低くなるようにプログラムも書かな
いといけなくなると思います.
Raspbeery pi3や4用のこの手の本が,あるかも
しれません..

あとは,OS無しのBareMetalでプログラムするかで
す.

Re: RasPiにI/Oを増設しよう! - ヒロ

2020/07/18 (Sat) 21:19:18

RasPiをワンボードマイコンのようにプログラムできたら面白いでしょうね。50MHzだとパルス幅10nsですから、周辺素子がついてこれない場合が多そうですが。

Re: RasPiにI/Oを増設しよう! - nlp

2020/07/19 (Sun) 21:13:39

こんにちわ。

RPi 3Bをお使いとのことですが、脳筋的ソリューションでPi 4Bにするとどうでしょう?
コンピューティング能力向上にばかり目が行きがちですが、CPUが速くなった分GPIOもかなり速くなっています。
https://magpi.raspberrypi.org/articles/raspberry-pi-4-specs-benchmarks
CPU割り当て時間が増えるという事はイケるんじゃないか?と思いました。

あとは、優先度を上げてみる(脳筋)とか・・・
http://wiringpi.com/reference/priority-interrupts-and-threads/

リアルタイムLinux + RPi の記事が海外にありますが、ちょっと面倒くさすぎですね。

個人的に、WindowsのVoiceMeeter Bananaというソフトで音声をVBANプロトコルにのせてIPネットワークでRPiに送るとLAN DACが組めるんじゃないかと妄想中で、RPi+DACの試行錯誤に興味津々です。

Re: RasPiにI/Oを増設しよう! - ヒロ

2020/07/20 (Mon) 16:47:36

GPIOの速度がこれ以上早くなっても、周辺ICのI2CやSPIが追い付かないため、3B+でも十分なのですが、
WEB見だしたりオフィスソフトをうごかしたりすると、やっぱりもたつくので4Bに変えたい欲求は高いです。ただ、すでにいろいろとソフトもインストールしているので、入れ直しが成功するかもふくめて、そこが一番のネックです。
 SDカードをいれかえるだけで動けばすぐにでも飛びつきますが、どうなんだろう?

Re: RasPiにI/Oを増設しよう! - ヒロ

2020/07/21 (Tue) 22:51:59

自己レスです。
一番新しいRaspiのOSをDLして、RasPi B+で起動したのち、3B+にSDカードを入れても問題なく動きました。バイナリーレベルで互換性があるようです。考えれば同じDLデータで全RasPが動くわけですから当たり前ですね。この調子だと3B+のSDカードをそのまま4Bに入れられるかもです。
 気づいたのは、最新のOSは7GBもあります。一体何がはいっているのだろう?GTKとかGRUTなんかもはいっているかも。
 それとB+だと起動そのものにかなり時間がかかります。3B+だと早いです。4Bだったらもっと早いかも。
 こりゃ、4Bポチっといくかな~。

Re: RasPiにI/Oを増設しよう! - 福島の球使い

2020/07/22 (Wed) 08:46:08

ヒロさん

Raspberry piを起動して,ターミナルをあげて
ls /boot
で表示されるファイルのなかにkernelで始まる4つの
ファイルがあるとおもいます.raspberry piは起動時
に,4つのうちのどれかのkernel(OS)にて起動しま
す.このRaspberry piしか使わないと決めたら,不要
なkernelは削除しても構いません.というわけで,
SDカードのイメージはどんどん大きくなります.

どういうパッケージがインストールされているかを確
認するのは
dpkg -l
です.インストールされているパッケージの一覧が表示
されます.

Re: RasPiにI/Oを増設しよう! - ヒロ

2020/07/22 (Wed) 19:13:19

なるほど、すべてのraspi用の起動ソフトを抱えているということですね。となると、バイナリーも互換性は薄いかもしれません。
 4連休あるので、4B(2G)を注文しました。明日到着予定なので、のんびりセットアップしていきたいと思います。

Re: RasPiにI/Oを増設しよう! - 福島の球使い

2020/07/27 (Mon) 14:52:25

ヒロさん

GPIOでは限界ではないでしょうか?
こういう↓マイクでは,6本のマイクを3つのI2Sにして
Raspberry piに入力できるようです.

http://akizukidenshi.com/catalog/g/gM-13641/

Raspberry pi3のBCM2837はSPIが3つあるので,それを
使っているのだと思います.

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwje0JDm3ezqAhUEM94KHVXYDGIQFjAAegQIBRAB&url=https%3A%2F%2Fcs140e.sergio.bz%2Fdocs%2FBCM2837-ARM-Peripherals.pdf&usg=AOvVaw0ujRgTqIAwAxaY9a03v-on

Re: RasPiにI/Oを増設しよう! - ヒロ

2020/07/27 (Mon) 21:34:34

そうなんですよね。
ソフトでSPIのパルスを生成するとどうしても割り込みの影響をうけてしまいます。H/WでのSPIにデータを載せたほうがいいようですね。でも、だんだんソフトのハードルがあがっていきそう・・・・

ちなみに、マイク多数の基板をみて、ここを思い出しました。
https://www.hark.jp/
以前に色々とソフトをインストールしましたが、途中で挫折しました。

Re: RasPiにI/Oを増設しよう! - 福島の球使い

2020/07/27 (Mon) 22:17:35

ヒロさん

 だとすると一番手っ取り早そうなのは
Raspberry piの拡張ボードで,DACとADCが乗っ
ているボードとピンを同じにした拡張ボードを
作り,ドライバは使われているものを拝借する
ことだと思います.
私のしっているのでは(持っていますが..)
Wolfson Audio Card for Raspberry Piがあります
が,これは入手がむずかしいと思います.

Re: RasPiにI/Oを増設しよう! - ヒロ

2020/07/27 (Mon) 22:57:36

情報ありがとうございます。

ちょうど、RasPiから(も)制御できる、ADCとDACの別ボードをつくろうかと検討している最中です。データのインターフェイスにSPI制御のSRAMを使えば、大量のデータの受け渡しも、配線少なくできるかな~と思っています。ソフトの負荷も軽いし・・・。
 せっかくなので16Bit分解能を狙って必要な素子はDIGIKEYで注文しました。が、酔っぱらいながら適当に選んだので型番忘れてしまいました(笑。

Re: RasPiにI/Oを増設しよう! - 福島の球使い

2020/07/28 (Tue) 09:53:10

ヒロさん

データのインターフェースですが,最初にI2Sが可能か
検討してみてください.

https://www.raspberrypi.org/documentation/usage/gpio/

にピンの配置があります.通常I2Sの出力は40番ピン
を利用しますが,38番ピンが入力として使えるので,
設定やドライバを調べてみてください.
同じクロックを使う場合は,DACとADCは同時に使え
るとおもいます.

Re: RasPiにI/Oを増設しよう! - こじはや

2020/07/28 (Tue) 21:39:26

PCMファイルを作成したり読み込めると面白いですね。
PCMのライブラリーをCで書いてくれてます。
書き込みが一気なので、追加書き込みできるように変更しないと使えないですね、バッファリングと書き込みを別スレッドで動かせば遅延なく書けるか解りませんが。

https://qiita.com/Y_F_Acoustics/items/7eac2849ab531e27e5fb

Re: RasPiにI/Oを増設しよう! - ヒロ

2020/07/28 (Tue) 21:44:03

むむむ・・・だんだん高度になっていきそう・・・・。

SPI制御でDACとADCのCLKは共通にできると思いますが、CS信号まで共通にできるかな〜。あとDACはLOAD信号も必要になるので、さらに難しくないそうです。

Re: RasPiにI/Oを増設しよう! - 福島の球使い

2020/07/29 (Wed) 10:32:07

こじはやさん

Raspberry piだと,コマンド形式でarecord, GUIの
アプリではaudacityというのもがありあすので,
キャプチャのためのソフトを作る必要はないと
思います.audacityより高度なアプリを作るのは,
相当気合(とお金)が必要かと...

Re: RasPiにI/Oを増設しよう! - こじはや

2020/07/29 (Wed) 12:21:30

福島の球使いさん どうもです。
はい、そうですね。高度なアプリは気合がないと無理ですね。(笑)
C言語の遊びを兼ねて単純にADCなどのI2S信号をそのままPCMファイルに作れたら、面白いかなと思ったのです。
出来上がった後はソフトを使って加工すれば良いのでね。
老後の勉強で遊んでみます。

Re: RasPiにI/Oを増設しよう! - こじはや

2020/07/29 (Wed) 18:52:37

測定間隔のばらつきは、プロセス、スレッドの優先度を上げて動作させてもバラつきは緩和されないですかね。
http://www.sidewarehouse.net/sched_fifo/index.html

Re: RasPiにI/Oを増設しよう! - ヒロ

2020/07/29 (Wed) 21:27:10

おもしろい実験ですね。
うまくするとソフトだけで正確な時が刻めるのかもしれません。

いろいろ弄っているのですが、無駄時間を得るために無駄ループを回すのですが、なぜかループの回数と時間が比例しません。ひょっとしてキャッシュとかにはいると、急に早くなったりするかな~と思ったりです。レガシーなマイコンをつかっていると、このあたりの感覚がどうもつかめません。

名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Copyright © 1999- FC2, inc All Rights Reserved.