2012年11月05日

音声合成LSI解析用ボード

  音声合成のLSIの解析のため、データ転送用のボードを作りました。

  ...というか、RS-232C ボードの作成のきっかけも、音声合成のLSIの解析をしようと思っていたからでした。

  というわけで、解析用のボードを作りました。


  音声合成LSIは、CPUインタフェースからパラメータを設定すると、音声データを出力します。この出力は2種類あって、1つはアナログデータで、そのまま音声データとして使えます。

  もう一つは、アナログデータをD/Aする前のデジタルデータが出力されています。今回はこれを取り込んで解析に使用します。

  デジタルデータはシリアルで出力されます。タイミングは下図の通りです。

音声合成LSIタイミング

  パルス幅などが書かれていないのは手抜きです。VCK の立下りの間隔は、3.6MHz クロックで6クロック分です(1.67μS)。


  他の人が使う事がないと思いますが、参考のために回路図とAVRのプログラムを載せておきます。
  今回は AVR を使用しました。AVR のテスト用に購入した AT90USB162 が搭載されているデータを使用しました。

音声合成ボード(回路図)

  音声合成ボード(AVRプログラム)


  ちなみにボードの詳細はここ。

http://strawberry-linux.com/products/at90usb162/spec.php


  USB からプログラムを書き換えられるので便利かなーと思ったので、これにしました。
  ヒューズビットの読み書きをした場合には、ISPライタが必要になります。このボードを使っている分には必要ないかとは思います。
  私は、LPTから接続できるISPライタを自作しました。


  プログラムの構成自体は簡単で、VCK の立下りで DVO を取り込み1ビットシフト、VSTB の立ち上がりでデータを確定させてデータを送信するだけです。

  これだけなんですが、VCK の立下りがくる間隔が 1.67μs 毎です。
  これは、16MHz で数えると26クロックぐらいなので、 AVR では結構厳しいものがあります。

  ですので、AVR のプログラムは、割り込みルーチンをアセンブラで書いています。さらに、SREG 待避とデータ取り込み専用のレジスタを設けています(メインプログラムからは使われない)。


  取り込んだデータは USART を通して、RS-232C経由でパソコンに送信します。計算上は、ボーレートが250Kbps もあれば十分なはずなんですが、なぜか安定しませんでした。500Kbps にすれば安定的に送信できましたので、今の値になっています。





posted by えすび at 19:12| Comment(0) | P6解析:音声合成 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。