マイコン工作実験日記

Microcontroller を用いての工作、実験記録

クリック音を付ける

2013-10-06 17:43:56 | LCD
先週の記事ではFT800のTAG機能を使ってキーパッド入力を拾ってみました。これに、もうひとつ手を加えてキーが押される度に効果音としてクリック音を生成してみます。

FT800にはLCD表示機能、タッチパネル制御機能に加えて、サウンド機能が用意されています。あらかじめ用意された効果音のテーブルを持っているので、レジスタを叩くだけで効果音の生成がおこなえます。手順は次のとおり。
  1. まずREG_GPIOレジスタの1ビット目を操作して、外付けのサウンド増幅用アンプをイネーブル。
  2. REG_VOL_SOUNDレジスタに音量を設定
  3. REG_SOUNDレジスタに効果音の種類、音程を設定
  4. REG_PLAYに1を書いて鳴動開始。
  5. REG_SOUNDに0を書いて、REG_PLAYに1を書くことで鳴動停止。

効果音には、ビープ音やDTMF音のように鳴動を開始すると鳴り続けるものと、クリック音のように一定の長さで再生を終えるものとがあります。鳴り続ける効果音に対しては、上記のように明示的に停止する操作が必要となります。また、ビープ音やピアノやオルガンのような楽器音にでは音程を指定することができます。クリック音は長さも音程も変えられないので、一度REG_SOUNDを設定しておけば、あとはキーが押される度にREG_PLAYに1を書くだけで音が出せることになります。

アプリの始まりと終わりではREG_GPIOのビット1を操作することでアンプのイネーブル/ディスエーブルをおこないます。音出しが必要ない期間はディスエーブルしておくことで、省電力化が計れます。データシートでは、GPIOのビット1をアンプをシャットダウンする目的で使用することを推奨すると明記されており、ConnectEVEもこれに従っています。しかし、データシートではその信号を正論理とするか負論理とするかまでを規定しているわけではありません。このようなゆるい規定も影響してか、ConnectEVEでは正論理でシャットダウンするアンプが使用されている一方で、FTDI純正の開発ボードであるVM800Cでは負論理でシャットダウンするアンプが使用されています。



スピーカとしては秋月で売られている表面実装用スピーカを使ってみました。音量が大きすぎると音が割れてしまうのでREG_VOL_SOUNDレジスタの設定値は0x90で使用中。