■プログラムの改造
プログラムを書き換える場合には、eZ430-F2013 などを用意する必要があります。eZ430 とボードの接続には、前述のようにeZ430側のコネクタが 1.27 mm ピッチのケーブルが必要です。筆者は、松下のモーション・センサ用のケーブルを流用しました(図10)。開発環境は eZ430 に付属する IAR Embedded Workbench IDE(*) を利用しています。最新版を web からダウンロードするとよいでしょう。
(*) 2008/5からTI Code Composer Essentials 無償評価版がダウンロードできるようになっています。
MSP430F2012 に実装したプログラムは大雑把に分けると I2C 関連と、入力切り替え関連になります。I2C 関連は、TAS5086_write1(), TAS5086_write4(), TAS5086_read1() 関数を用意しました。それぞれ TAS5086 のレジスタへの1バイトの書き込み、4バイトの書き込み、 TAS5086 のレジスタからの1バイトの読み込みに対応しています。入力切り替えには、input_ch() 関数を用意し、引数に応じて入力チャネルを切り替えています。
リセット後に TAS5086 のレジスタを以下の順に設定しています。
- TAS5086 PLL の初期化 (アドレス 0x1b, 1バイト書き込み)
- TAS5086 の PWM 出力開始 (アドレス 0x05, 1バイト書き込み)
- マスタ・ボリュームの設定 (アドレス 0x07, 1バイト書き込み)
- 入力マルチプレクサの設定 (アドレス 0x20, 4バイト書き込み)
- 出力マルチプレクサの設定 (アドレス 0x25, 4バイト書き込み)
以降は、ボリュームの位置にあわせてマスタ・ボリューム・レジスタを変更し、音量を変えます。本機をマルチアンプ・システムなどに流用するときには、入力/出力マルチプレクサのレジスタを変更するとよいでしょう。
マスタ・ボリュームは、0 が最大音量, 0xff が最小音量になることに注意してください。以下のように、プログラム中で引き算するとわかりやすいです。
TAS5086_write1(TAS5086_MASTER_VOL, 0xff - vol);
図11に、TAS5086 の内部ブロックと I2C レジスタのアドレスの割り当てを示します。チャネルごとに音量を設定する場合は、レジスタ 0x07 から 0x0d を設定します。入力マルチプレクサの設定は、
TAS5086_write4(TAS5086_INPUT_MUX, 0x00, 0xUV, 0xWX, 0xYZ);
とします。U, V, W, X, Y, Z は、TAS5086内部のチャンネル1,2,...,6の入力信号を決めます。0 が SDIN1 の左、1 が SDIN1 の右、2が SDIN2 の左、3がSDIN2 の右と、SDIN1 の左から SDIN3 の右までを 0 から 5 で指定します。6 はグラウンドへ固定、7は入力なし、0x8 から 0xf までは定義されていません。
図11 TAS5086内の信号の流れと設定用I2Cレジスタのアドレス([4] の 11ページ Figure 6 TAS5086 Data Flow Diagram With I2C Registers を引用, ピン番号は加筆した)
出力マルチプレクサの設定は、
TAS5086_write4(TAS5086_PWM_OUT_MUX, 0x00, 0xUV, 0xWX, 0xYZ);
とします。U, V, W, X, Y, Z は、TAS5086 PWM 出力のチャネル1,2,...,6に対して内部チャネルを割り当てます。0 が内部チャネル 1, 5 が内部チャネル 6 に相当します。6から 0xf までは定義されていません。
また、サブウーファ用のダウンミックスをする場合には、ダウンミックス・レジスタ (0x21) などを設定します。詳細は[4]の11ページ Figure 6 や、26ページ以降を参照してください。
スイッチ入力は LED とピンを兼用にしているため、ディジタル入力ではなくアナログ入力とし、電圧が一定以下になっているかを確認するプログラムとしています。改造する場合には注意してください。リモコン入力や液晶表示に対応するためには、I2Cを利用してマイコンを追加するのがよいのではないかと思います。
MSP430 のプログラムを書くに当たって、内蔵周辺デバイスのレジスタ設定について知りたい場合は、データシート SLAS491 [3]の APPLICATION INFORMATION の章をまず見るとよいでしょう。使用できる周辺デバイスと、ピンへの周辺デバイスの割り当てを設定するレジスタがわかります。それから、ユーザーズ・ガイド JAJU037 / SLAU144 [2] の該当する章を見るとよいと思います。
なお MSP430F2012 に内蔵されているシリアル・インターフェースは USI (Universal Serial Interface) で USCI (Universal Serial Communication Interface) ではないことに注意してください。
<光永 法明>
■参考文献
[1]本田 潤 編著. D級/ディジタル・アンプの設計と製作. CQ出版社, 2004.
[2]MSP430x2xx Family ユーザーズ・ガイド. JAJU037A (SLAU144B 翻訳版), 日本テキサス・インスツルメンツ.
[3]MSP430x20x1, MSP430x20x2, MSP430x20x3 Mixed Signal Microcontroller data sheet. SLAS491D, Texas Instruments.
[4]TAS5086 PurePath Digital PWM Processor data sheet. SLES131B, Texas Instruments.
[5]TAS5086 PurePath Digital PWM プロセッサ使用法. JAJA136, 日本テキサス・インスツルメンツ.
[6]TAS5142 Stereo digital amplifier power stage data sheet. SLES126B, Texas Instruments.
[7]TAS5142DDV6EVM2 User's Guide. SLLU095, Texas Instruments.



