|
▼ 308 : 2009年9月5日(土) 20:33:43
|
カテゴリ: 設定なし
|
|
>>>307 のその後。使っているチップは同じだけどコードを見直して機能的に大きく発展。
ATMega88にはATTiny2313が担当していたオーディオデータの処理を移行して、その隙間にレベルメータやチャンネル選択の処理を割り込ませる感じで実装。>>>307に書いた通り、けっこうnopが多かったのでそこに実装できたわけです。 DAIからのクロックでDAIと同調して動くので、32kHz〜48kHzのサンプリングレートだと、クロックは8.192MHz〜12.288MHzの可変。96kHzだとクロックが24.576MHzになってATMega88の許容範囲を超えるので、どうなるか不明。
ATTiny2313のほうはそのデータを受け取って液晶に表示したり、WM8805と通信して状態を液晶に表示したり、ユーザのボタン入力に応じて入力やチャンネルを切り替える機能を実装。液晶は毎秒16回更新してるのでけっこうぐりぐり動きます。クロックは4.19MHz。
DAIをユーザがコントロールしてオーディオデータをDACに送るまでの処理がすべて実装できたわけで、旧DACでは同じことをするのにチップが6個あったのが、これで一気に2個に。
すごいのはやはりAVRの処理能力で、レジスタが32個もあるので複数の処理を同時並行的に書いても問題ないのですな。PICはワーキングレジスタ1個だけなのでとても無理。加えて、内蔵されている周辺回路が多いので通信が多重化できる。
今回の実装だと、オーディオデータの処理には3つの通信系統が必要で、それぞれ (1)DAIからのデータ入力、(2)DACへのデータ出力、(3)レベルメータとユーザコントロールのデータの入出力。 これをそれぞれソフトウエアでパタパタやっているととても間に合わないので、シリアル通信モジュールが都合2個使えるATMega88はとても好都合。上記のうち(2)と(3)はそれぞれUSARTとSPIに任せてしまったので少ないコードで間に合った。
ちなみに、ATMega88に入っているプログラムコードはたったの640バイト程度。これならATTiny2313で済ませたいなと思ったのだけど、ATTiny2313のシリアル通信モジュールはATMega88のモジュールに比べて機能が少ないので、ATMega88を使わざるを得ないのでした。ATMega48とか売ってないしな。
一方液晶をぐりぐり動かしているATTiny2313はプログラムコードが2000バイトくらいになっていて、とてもギリギリ。とはいえ必要な機能はさしあたり実装したので、むしろぴったりといったほうがいいかもしれない。
あとはこれを基板に実装すれば完成。さしあたり今のDACのDAI基板とユーザコントロール基板を入れ替える予定。 |
|
|
|
|
|
▼ 307 : 2009年8月2日(日) 24:52:28
|
カテゴリ: 設定なし
|
|
Wolfson Microelectronics のWM8805 という S/PDIF トランシーバを入手して、ようやく音が出たので顛末を記録。
以前組んだ ■ 抵抗DAC の機能にはいまいち満足していなくて、たとえばレベルメーターとかチャンネル選択機能とか欲しいのだけれど、そのためには処理能力の低いPICを捨てなければならず、つまりDAI基板とLCD表示基板を全部取り換えることになる。ならばいっそ全部新しいのを組んでみようか、と思ってとりあえずDAIチップだけを購入。左の写真は抵抗DACを開腹して抵抗アレイ以降の基板に接続して音を鳴らしているところ。
PICに比べてAVRは4倍速、余裕だろうと思っていたらそうでもなかった、というのも前作で使ったTC9245は音声1フレームあたり32ビットの音声信号を出力するのに対して、WM8805は64ビット。しかもこれが最少。よってやはりシリアル入力を愚直に読むわけにはいかない。
ならばと思い最初は入力にSPIを使ってみたのだけれども全くうまくいかず。入力も出力もうまくいっていないようでダメダメ。入力は読み始めのトリガのタイミングがうまくいっていないようで、出力は単純に間に合っていないらしい。さらにノイズがひどい。WM8805は3.3Vで動いているので5VのAVRとは信号レベルが合わないのかもと思い、AVRのVccを4.5Vくらいにしてみたり、レベル変換回路などを組んでみたけれどやっぱりだめ。
ここで音声1フレームあたりにAVRのクロックをいくつ使えるかを計算し、avr-gccの吐き出したアセンブリコードを見て全く足りていないことを認識する。うーん。前作ではPICの処理を軽減するために74ロジックでシリアル→パラレル変換を組んでいたので、今回もとりあえずその線でいくことにする。がしかし74ロジックでまた組むのもばからしいので、ATTiny2313をWM8805のクロックと同調させて動かして変換させることに。
WM8805からは1フレームあたり256クロックのマスタークロックが出ている。これでAVRを動かすと、1フレームあたり64クロックのビット信号を読むには、まずフレーム開始のトリガを待って、それから4クロックあたり1ビットのサンプルを行えばよい。クロック数を制御するのはアセンブラを使えば自ずとそうなるので、別に用意されているビットクロックを監視する必要もない。いままでCでAVRをプログラムしていたのもあって、至極簡単なのになかなか思いつかなかった。くやしい。
この方法でシリアル→パラレル変換はあっさりと解決。あとはATMega168の外部割り込みを使ってパラレル信号を読ませて、USARTをSPIとして使って抵抗アレイのシフトレジスタへ送信。細かいバグとりやタイミング調整をしたら、めでたく音出し成功。ノイズは電源ラインやGNDを配置しなおして解消。
というところで現在。
写真のブレッドボードにのっかっている3つのチップは、右から、今回のS/PDIFトランシーバであるWM8805、音声信号のシリアル→パラレル変換を行っているATTiny2313、パラレル信号から抵抗アレイのシフトレジスタへ再度シリアル変換し送信しているATMega168。 ATMega168はもともとATMega88だったのがなにかの拍子に応答しなくなったので代替しているだけで、そんなに大きなメモリが必要なわけではない。
レベルメータやチャンネル選択と、それに付随するユーザインタフェースとの通信は、それなりにパワーが要りそうだと思ってMega168を中心に据えているのだけど、パラレル変換担当のTiny2313のプログラムを組んでみたら意外とnopが多かったので、うまいことやればTiny2313は取り払って、Mega168も元に戻して、Mega88ひとつだけでいけるかもしれない。これは要検討。うまくいくと前作でTC9245以外に5つもチップがあったのを1つにできるかもしれない。
ところでWM8805から出てきたデジタルオーディオの音質について、ジッタ除去回路がWM8805に内蔵されているだけあって、なかなかしっかりしている印象。もともとジッタの少ない同軸信号を入力するとTC9245との違いは特に感じないけど、光信号を入力すると差がわかる。いままでちゃんと聴きたいときには同軸につなぎかえたりしていたので、光でしっかりした音が出るのはうれしい。これが10年分の技術の進歩か。 |
|
|
|
|
|
▼ 306 : 2008年7月2日(水) 7:37:58
|
カテゴリ: 設定なし
|
|
近頃の1TBなHDDの妙な安さの誘惑に負けて買ってきました。
普段日立のHDDばかり買っているのでWDの筐体はちょっと新鮮。
使う前の儀式、メディアチェック。
さすがに時間がかかるなぁ。
4時間弱くらいかかって無事終了。
USB外付けHDDにすることにします。 今まで入っていた500GBのディスクを取り外し。
交換完了
というわけで1TBの外付け倉庫ができました。バックアップとかに使いますよ。
ちなみに今回HDD交換したこの外付けケースは1年くらい前につくった自作品。ベースはタカチのアルミシャーシで、上の写真にも写ってるように電源内蔵。信頼できる電源内蔵ケースが欲しかったわけですよ。 移動のときACアダプタを持ち運ばなくてよいのと、電源が市販の外付けケースみたいなアレゲなものではないので、すこぶる便利かつ安心です。そのかわり製作コストは10k円くらい。
さて外付けHDDに余裕ができたところで、こんどはファイル鯖の容量が逼迫しているのをなんとかしたいところです。 |
|
|
1: [2008/11/30] 内山幹男 >>
|
LED時計のところから入りました。元初歩のラジオ筆者です。感光基板を懐かしく拝見しました。高い能力をお持ちでいらっしゃるようで、もし時間に余裕があれば協力していただけるとありがたいと思いコメントしました。福祉システム研究会、JASCで活動している者です。 ■ |
|
|
|
|
|
▼ 305 : 2008年4月28日(月) 19:36:00
|
カテゴリ: 設定なし
|
|
モネラマグネット。
写真のほかにオリゼーがまだ4つ。 7回(2100円分)やってみたら4回もオリゼーが…
あまりにオリゼーばっかりなので研究室に置いてきたけど、集めてかもしまくりにするのが正しいのかもしれない。
ヨグルティとセレビシエが欲しいよ!
|
|
|
|
|
|
▼ 304 : 2008年4月19日(土) 19:49:24
|
カテゴリ: 設定なし
|
|
やったー
|
|
|
|
|
|
▼ 303 : 2008年4月13日(日) 25:58:31
|
カテゴリ: 設定なし
|
|
ねんどろいど初音ミク入手。
かわいい、というよりこれはめんこいなぁ。
発売日に秋葉原へ行けば手に入るだろうから一目見てから買おう、と思っていたのが結果的に甘かったわけで秋葉原はどこにも見当たらなかったのだけど、結局今週になってからamazonで定価でget。
フィギュア的なものを買ったのはもやしもんおまけ菌フィギュアに次いで2例目だけど、よくできてるなぁ。すばらしい。
身体ボディ目当てについでに買ってみた鶴屋さん。
ウエイトレスミクが普通にかわいいのだがミク鶴屋さんも妙に似合っていて面白い。
とりあえずミクの両手にネギを持たせたいなぁ・・・もう1体か。うーむ、なんだかはまりそう。 |
|
|
|
|
|
▼ 302 : 2008年3月26日(水) 26:55:06
|
カテゴリ: 設定なし
|
|
サーバ更新でwebサーバがリバースプロキシの内側になったので、このblogとかのcgiを小変更中。
具体的には、相手のIPアドレスを知るのに REMOTE_ADDR を使っていたところを X_FORWARDED_FOR に変更したりとか。そうしないと全部プロキシからアクセスされてるように見えて大変なことになるのです。apache のログもちゃんと相手のIPアドレスが見れるように httpd.conf をいじってあります。
リバースプロキシを導入したのはwebサーバが複数欲しかったからで、apache標準のバーチャルホストよりももっと明確に分離したいなぁ、と思ってのことなのだけど、cgiの変更までは頭が回ってなかった。それに加えてページのロードがなんだか重い感じがする。これはVMのせいなのかリバースプロキシのせいなのか。今のところマイナス面しか出てないけど、そのうち重宝するときが来るでしょう。そう信じよう。 |
|
|
|
1: [2008/3/26] masa-u >>
|
ローカルマシンのDNSネームが出るのがちょっといやだけどテストテスト ■ |
|
2: [2008/4/15] とおりすがり >>
|
X_FORWARDED_FORからREMOTE_ADDRに橋渡しするパッチかモジュールが有った気がします。 ■ |
|
3: [2008/4/16] masa-u ##
|
たぶんあるんだろうなぁとおぼろげに思ってましたがやはりありますか。でもできる限り標準状態で動くようにしておきたいので、このまま行こうと思ってます。情報ありがとうございます ■ |
|
|
|
|
|
▼ 301 : 2008年3月25日(火) 27:05:09
|
カテゴリ: 設定なし
|
|
このwebページを運用しているサーバですが、uptime がすごいことになってきたので更新しました。
これが更新前のサーバ。スイッチの下敷きになっている ThinkPad であります(赤矢印)。ノートPCなので 2.5インチHDD 単発で冗長性も全くないのでいろいろとまずい。
HDDのSMARTを見たところ、パワーオン17000時間でヘッドロード回数が170万回とかいうことに。前者はまだしも後者がすごい。ちなみにパワーオン回数は13。
いろいろと検討した結果、近頃大人気らしい、HPのエントリーサーバ ProLiant ML115 を購入。写真右側のがそれ (左側はファイルサーバ)。これで VMWare Server を動かしてサーバを仮想化しようという計画。
サーバを仮想化するのには、用途別に複数のサーバを運用したいというのの他に、データの冗長化を楽にやってやろうという意図もあります。素のハードウエアにサーバOSをインストールするとRAIDの管理とかデバイスをいじらないといけないので面倒なのだけど、仮想マシンならそのイメージがRAID上にあればゲストOSはRAIDを意識しなくても自動的に冗長化されてくれます。
ML115:16k円、ECCメモリ2GB:13k円、250GBHDD:6.5k円、余ってた250GBHDD:0円、トルクスドライバ:500円、で合計36k円くらいの出費。ECCメモリ高ぇ。
安いサーバはHPの他にNECやDELLからも出てるけど、ML115のみマイクロタワーで他のメーカのより筐体が小さいので選択。小さいことは良いことだ。
しかしML115は猛烈にうるさかったので背面ファンを交換。
PWM対応品でちゃんとしたのを選んだら3k円弱。高いなぁ。でもこれでずいぶん静かに。だが夏はどのみちうるさそうだ。
ざっと (とはいえ3〜4日かかって) 仮想サーバを構築して最低限の機能は移行できたので、旧サーバはめでたく退役。バックアップをとって、最後くらいはリモートでなく実際にキーボードを叩いて停止させてやりました。
uptime は最終的に 701日21時間25分52秒。
よくもったもんです。お疲れ様。
|
|
|
|
|
|
▼ 300 : 2008年2月25日(月) 27:44:10
|
カテゴリ: 設定なし
|
|
デジカメのメモリカードを増量して2GBのSDカードが余ったので、mp3プレイヤーなぞを探索。
SDHC対応のプレイヤーを探していて発見、◆ mpioのMG200。
内蔵メモリ1GBのものがamazonでアウトレット品とかで5589円と安かったので購入してみました。
アウトレット品というのは要は箱がダメージを受けた品ということらしく、どんなひどいのが届くのかワクワクしていたのだけど、結局角がちょいとひしゃげてるだけ。
これくらいならそのへんの電器屋の棚に並んでいてもおかしくないんじゃないだろか。
音質はこの価格にしてはなかなか良く、素直に鳴らしてくれるよう。若干高音がきついのでイコライザで下げてみてます。
動画はおまけ、か。ELディスプレイなので画素そのものはきれいなのだけど、圧縮ノイズがひどすぎ。独自フォーマットなので手も足も出ません。左の画像は参考まで。
ほかにもボタンの操作系に若干癖があったり、内蔵メモリとSDカードの切り替えが面倒だったりするけど、mp3の再生はきれいにやってくれるので、5600円でこれなら満足。来月はちょこちょこ旅行の予定があったりするので、活用してみましょうか。 |
|
|
|
|
|
▼ 299 : 2008年1月30日(水) 26:16:57
|
カテゴリ: 設定なし
|
|
またしてもずいぶんと放置してしまいました。 1月の出来事でもまとめてみましょうか。
いつもの神社で初詣。
御神籤は大吉。
今年は珍しくスキーに行ってみたり。
少なくとも15年以上ぶりだったので初日はさんざんでしたが、2日目以降は楽しんできました。写真はたまたま天気の良かったときのもので、概ね雪で悪天候だったのが残念。
で、ゲレンデで携帯電話のバッテリーカバーを紛失。
若干古い携帯なので在庫があるか心配だったけれど、ちゃんとあったのでよかった。430円。バッテリーカバーの部分だけ質感が変わりました。
小湊鉄道に乗ってみたり。
なかなか雰囲気の良い鉄道でした。最後の一駅の区間がものすごい。
かなりしばらくぶりにデジタルアンプに手を入れてみたり。変更箇所は音量ボリューム。アルプスのミニデテントに。それにしてもなんでこんなにシャフトが長いんだろ。
ヘッドホンアンプ用に買ってみたけれど CP601 のほうがよかったので、デジタルアンプへ。あまりスピーカーを使わない私。
というわけで今年もマイペースで更新していきます。 |
|
|
|
|
|
 |
 |
 |
| -- じゃんぷ -- |
☆ 最近の10件
|
| 2009年9月 |
| 日 |
月 |
火 |
水 |
木 |
金 |
土 |
| * |
* |
1 |
2 |
3 |
4 |
5 |
| 6 |
7 |
8 |
9 |
10 |
11 |
12 |
| 13 |
14 |
15 |
16 |
17 |
18 |
19 |
| 20 |
21 |
22 |
23 |
24 |
25 |
26 |
| 27 |
28 |
29 |
30 |
* |
* |
* |
| << 8月 |
|
|
|
|