どうにかこうにか使えるようになったpcmドライバーのその後です。
flashが4Mだったのでmpg123を入れることができず、flashを8Mに張り替えました。ところが元のu-bootをコピーしたのですが書き込みができません。もともとeFONの4MだったのですがMXの8Mにしたのが原因のようです。あいにくeFONの8Mは手持ちがありませんし、u-boot_modを使う方法も考えたのですが、いろいろやってパターンをはがしたりして壊すともともこうもなくなるので結局元に戻して、二階建てflashのままで8Mにすることにしました。
GPIOは12をSPI_CS_1にしてResetボタンのGPIO17をSPDIF_OUTにすることにしました。
Resetボタン付近の回路は以下のようになっています。
チャタリング防止のC56をはがして、プルアップぽいR32もはがしました。これでGPIO17直結になるのですが、オシロスコープで見ても全く信号が出てません。
余談ですがR33にもGPIOが出ているような気がします。 R33の先はハードウエアリセットでした。
以前と同じようにSPDIF_OUTを12でSPI_CS_1を17だとだとSPDIFが出力されます。何かがおかしいです。
# SPI_CS_1
hint.gpio.0.func.17.gpiofunc=7
hint.gpio.0.func.17.gpiomode=1
# SPDIF_OUT
hint.gpio.0.func.12.gpiofunc=25
hint.gpio.0.func.12.gpiomode=1
おそらくシャープのトスリンクコネクタを付けて、UDA1355HをつかったSPDIFを受けられるDACにつないでみたのですが、音がでません。
ひょっとして属性ビットなどの相性の問題かと思ってMacにつないだRolandのAudio If(UA-1G)につないだところ音がでました。OnkyoのSE-U55でもちゃんと音が出ました。
ZRouterに入れたテストプログラム(sin)で音を出すと聞き覚えのあるノイズになります。ちょっと考えてみたところビッグエンディアンのオプションを付けたことを思い出して試したら、正しくサイン波が鳴るようになりました、
32Kの出力ですがノイズもなくmpg123でWBGOが聞けていい感じです。
秋月の掘り出し物処分特価品の74HC04のバッファを入れていたのですが、UDA1355Hはダメでした。
SPDIFからアナログ変換でSE-U55はスタンドアローンでは使えないので、USBがある他のモジュールにつないで、カーネルモジュールのsnd_uaudioをロードする必要があります。SE-U55は消費電力が大きいので、アダプタをつないで、セルフパワーにします。またmixerコマンドでvolやpcmを大きくしなと音が小さいです。
# mixer vol 100 pcm 100
Setting the mixer vol from 75:75 to 100:100.
Setting the mixer pcm from 75:75 to 100:100.
SE-U55は元祖USBオーディオの製品で、今となってみるとDACやOPアンプなどあまり良いチップは使ってないのですが、ストリーミングを再生するには十分です。
SE-U55のUSB Audioで鳴らせばいいと思われる方がいるかもしれませんが、これを接続しているモジュールはMIPS 24KなSOCでFreeBSDのsoundがまともに動きません。
USBオーディオの製品もいち早く出していたり、WolfsonのDACを採用していた、ONKYOさんがうまくいかなくなったのは至極残念です。
当初うまく動かなかった、48Kの再生も上記の74HC04のバッファやケーブリングのやり直しが効いたのか、再生できるようになりました。
トスリンクコネクタはネジ止めできる東芝の物に代えてフリスクのケースに入れてみました。
いつのまにかUDA1355Hでも鳴るようになってました。
ファンレスだし良いストリーミングプレーヤだと思います。このターゲットはたしかアダプタなしで108円だった思います。
IPはビッグエンディアンなのでストリーミングラジオはビッグエンディアンがいいですね。