減衰量テーブル - フルバランスアンプ (X_Under bar)

        
2012/02/07

減衰量テーブル

Aカーブボリュームの図を描いて、減衰量テーブルを作ってみました。
Aカーブを作るのが、案外と難しくこの様なカーブになりました。
 


減衰量テーブルは、こんな感じになりました。
 
const unsigned char VR_ATT[64] = {
  0x00, 0x06, 0x0B, 0x0F, 0x13, 0x16, 0x19, 0x1C,
  0x1F, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E,
    0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3E,
    0x40, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
    0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
    0x51, 0x52, 0x53, 0x54, 0x55, 0x56. 0x57, 0x58,
    0x58, 0x59, 0x59, 0x5A, 0x5A, 0x5B, 0x5B, 0x5C,
    0x5C, 0x5D, 0x5D, 0x5E, 0x5E, 0x5F, 0x5F, 0x7F};
 
次は、A/Dコンの使い方を、勉強しないと。

コメント

No title

こんばんは。

X軸とY軸を逆に考えないといけないと思います。

(VR_ATT[64] = {) の部分を ((VR_ATT[128] = {)

A/Dから読み込んだ0x00...0x7fの値のそれぞれに対して、電子VRに設定すべき値を対応させるでは?(A/Dの値とは7ビットに処理後のもの)

それと、後でビット反転処理をしなくて良いように、このテーブル内でその処理を含めた方が楽だと思います。⇒テーブル内のデータ並びを逆にする。
(A/Dの読み取りの値が小さい時に、テーブル内データの値が大とする:値が大で減衰量が大きいため)

No title

続きです。

それと、テーブル内のデータは上位から7ビットを使って、下位1ビットを0としておいた方が楽でしょうね。

電子VRへの16ビットデータは、減衰量が上位7ビットになっていますので。

No title

いよいよ、ですね。
私には未知の世界ですので、お祈りしかできません。
がんばってください。

No title

Chaosさん、 お早う御座います。

アドバイス、有難う御座います。
頭の中を整理いたしますので、もう少し時間を下さい。

No title

紺青の海さん、 お早う御座います。

有難う御座います。
私も未知の世界ですが、Chaosさんに親切に教えて戴いているので、大分助かっています。
ブログをやっていて良かったなと思います。私の自力では先ず無理ですね。

No title

Chaosさん、

>A/Dから読み込んだ0x00...0x7fの値のそれぞれに対して、電子VRに設定すべき値を対応させるでは?
この意味は、A/Dの7bit出力と電子VRの設定値7bitを対応させると言う事ですね?

>(VR_ATT[64] = {) の部分を ((VR_ATT[128] = {)
電子VRのステップ数としては64ステップです。128に変える理由は、何故ですか? ステップ数を増やした方が良いのですか?

>テーブル内のデータ並びを逆にする。
0x00...0x7f ⇒ 0x7f... 0x00ですね。

>7ビットを使って、下位1ビットを0として・・・電子VRへの16ビットデータは、減衰量が上位7ビットになっていますので。
これは、電子VRの8ビット(MSB D15~D8)の上位7ビットが減衰量値で、下位1ビット(D8)がDon’t Careとなっていますので、この部分(下位1ビット)を0を含めた8ビットでの減衰量データにした方が良いと言うことですか?

こんな感じだと、Chaosさんに授業料を払わないといけませんね。

No title

こんにちは。

>この意味は、A/Dの7bit出力と電子VRの設定値7bitを対応させると言う事ですね?

はい、そうです。

>電子VRのステップ数としては64ステップです。128に変える理由は、何故ですか? ステップ数を増やした方が良いのですか?

これは、ステップ数というよりも、配列の要素としてA/Dの値を使う訳ですから、必然的にA/Dの128個の値が要素数となります。
選んだ64個の減衰量はあくまでも結果ですので、要素とはなりえませんね。

>0x00...0x7f ⇒ 0x7f... 0x00ですね。

そうですね。A/D値が小さい時、減衰量を大きくしますね。

>この部分(下位1ビット)を0を含めた8ビットでの減衰量データにした方が良いと言うことですか?

はい、その方が操作しやすいのではないかと思います。

>こんな感じだと、Chaosさんに授業料を払わないといけませんね。

いえいえ、私の方こそ錆びた頭をリフレッシュさせていただいております。

No title

続き⇒

言葉の説明だけでは分かりにくいかも知れませんので、私のブログに表を載せておきます。
EXCELで作成したら、割と楽にいきますよ。

もし、良かったら参考にしてみて下さい。

No title

Chaosさん、

色々と有難う御座います。
少しずつ解ってきたような気がします。
Chaosさんのブログを参考にさせて戴きます。

No title

こんにちは。

A/Dの有効ビット数を6ビットで使うつもりだったのでしょうか?
私は7ビットのつもりで勝手に話を進めていましたが、もし6ビットであれば、要素64個のテーブルでOKですね。

却って、混乱させてしまって申し訳ありませんでした。

No title

Chaosさん、

気にしないで下さい。私の説明が足らなかったと思います。
かなり勉強に成りました。

常時、アナログボリュームの値と過去の値を比較しているので、分解能が高いと頻繁にデータを書き換えてしまうのではないかと、6ビットで考えていました。
この辺も良く分からないところなんですが、比較の回数やある条件で値の比較をするとか、良い方が有るとは思いますが、初心者は無理ですね。

No title

こんばんは。

A/Dの入力レンジを電源とGND間に設定しても、下位3ビットを捨てればほとんど問題は無いと思っています。
もちろん、配線はアナログ的な考慮をして、というのは前提ですが。下位3ビット目で分解能が20mVですから、それほど書き換えが頻繁に起こるとも考えにくいですね。

>分解能が高いと頻繁にデータを書き換えてしまうのではないかと、6ビットで考えていました。

もし、どうしても心配でしたら、前回データに対して変化した値が何回か連続したら新しい値に更新するという方法は、チャタリング防止などで使われる事があります。
しかし、これは単発ノイズに対しては有効ですが、常時データがばらついている場合は連続データが得られない危険性もありますね。

64段階くらいでも、問題になるほど粗くはないかも知れませんね。もし、必要でしたらA/Dの6ビットのテーブルも作りましょうか?

No title

Chaosさん、 こんばんは、

>A/Dの入力レンジを電源とGND間に設定しても、・・・それほど書き換えが頻繁に起こるとも考えにくいですね。
承知いたしました。気にしなくても大丈夫ですね。

>もし、必要でしたらA/Dの6ビットのテーブルも作りましょうか?
有難う御座います。7ビットで進めたいと思います。貴重な時間を済みませんでした。

頑張ります。
非公開コメント

    

プロフィール

X_Under bar

Author:X_Under bar
Full balance amplifier

カレンダー

06 | 2020/07 | 08
- - - 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 31 -

I welcome your visit.

最新記事

最新コメント

月別アーカイブ

カテゴリ

ブロとも申請フォーム

検索フォーム

QRコード

QR