| ・にっき板 |
[ 1月 ] |
不定期日記。事実上のメインコンテンツ。
|
|
| ・about |
[ かなり前 ] |
このページと、その作者について。 |
| ・お絵かき |
[ かなり前 ] |
のんびり落描き中心。 |
| ・電子工作 |
[ かなり前 ] |
たまに変な器械をつくります。 |
| ・PC関連 |
[ かなり前 ] |
自作PCとか。あまり動きはないかも。 |
| ・写真 |
[ かなり前 ] |
デジタル写真をぼちぼち。 |
| ・自作ソフト |
|
ゲームとか作ってます。別サイトへ。 |
|
| ・かきおき板 |
|
掲示板。なんでもご自由にどうぞ。 |
| ・リンク |
[ かなり前 ] |
他の方々のページへ。 |
|
|
|
最近のにっきから
|
▼ 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
|
カテゴリ: 設定なし
|
|
やったー
|
|
|
|
|
|
| -- じゃんぷ -- |
☆ 最近の10件
|
| 2010年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 |
* |
* |
|
|
|
|
|
|
|
 |
|
ここは私masa-uの私的活動で生じたデータを記録していくページです。
基本的になんでもありなのでご覚悟を。ただし、18禁ものとかは入れないのでお子様にも安心です。
ご意見等は掲示板で歓迎いたします。
掲示板等スクリプトを含め、ページの全部をPHPで書いてます。
もじらで動作確認してますが、作者のHTML知識がとっても古いので、今やどんなブラウザでも見れるんじゃないかと思います。
画面の解像度とか文字の大きさも特に拘らなくて構いませんよ?
|
|