ATP3010F4 / ATP3011F4-PU がうまく動作しない場合の傾向と対策について。

暫定的最新情報:
(MTM07 会場で買いそびれてしまった人のために)2011/12/16 夜に、約200個限定で AquesTalk Pico LSI ATP3010F4 がネット販売開始されました。
 → こちら。
たぶんすぐ完売となると思われます。【2011/12/18 記】
→ 1月頭頃、売り切れてました。【2012/01/14 記】

追加情報:
ファーム更新されて外部クロックが不要となった ATP3011F4-PU が発売されました。電源電圧も幅広く対応できるようになっているようです。価格は同一。
 → こちら。
データ通信部分に若干の制約がつきますが、発音等のスペックは旧タイプと同様とのこと。

さらに追加情報! ktkr !
ATP3011F4-PU が秋月で扱い開始されました!!!

しかもアクエストの中の人もびっくり*1のお値打ち価格で御提供! 秋月さんありがとうございます!  【2012/03/26】


こちらではお久しぶりです。(心の底から。)
というわけで、その後かなりグダグダとサボっていたりしているわけですが、そうこうしているうちに季節は巡り、待ちに待った祭典「Make: Tokyo Meeting 07」が開催されていました。さきの震災などの影響により「いっかいやすみ」となったため、前回から約 1年ぶりの開催。


今回も話題豊富な中、私が個人的に特に注目していたのが「AquesTalk pico LSI」。これのおもしろいところは、Arduino 標準機と同じチップをベースとして使用しているため、Arduino ボードを BreakOut Board として利用でき、手軽に音声合成実験ができるという点。*2
詳しい説明や参照リンク等は、非常によくまとめてくださっているこちらなどを御覧いただくとして


…私もゲットしてきました。

超激戦でした…。MTM07 初日はもたもたしていたら売り切れ(それでも開始 1時間後ぐらいには駆けつけたのに…30分で完売したそうです)、2日目も開始10分ぐらい前にフライング気味に会場に侵入?してゲットしたらもうその時点で予定販売数の半分が捌けていたそうで…
すごい人気です。皆さんおもしろそうなものには超高感度です。
で、折角なので、その場で鳴らしたい…というか、喋ってもらいたいわけで、私も仕込んでいったわけですが、結論から先に言うと、…現場では、…喋ってくれませんでした。


しかし、完全沈黙ではないようなのと、ホワイトノイズはしっかり出ているので、チップの不具合ではなさげ。ひとまず展示ブースに戻って (株)アクエストの「中の人」(※お世話になりました。ありがとうございます)に現状報告めいたものをしてみたところ、そうした現象は既知とのこと。具体的には、クロック(クリスタル or セラロック)への配線が長かったり、これと音声出力への配線が干渉したりするとうまく鳴らn…じゃなくて、喋ってくれないらしい(※…と、説明書 PDF にも既に書いてありました。)

帰宅後 実験してみたところ、現象再現したので、実際どういうことになるのか、というサンプルの意味で UP 。

現象としては

  • デモモードではノンストップループ再生になるはずなのに、途中で止まる(勝手にリセット状態)
  • 再生開始後すぐ、若しくはしばらくしてホワイトノイズだけになる
  • 雑音のみ

などがランダムに発生。

参考までに

Arduino ボードに挿した ATP3010F4 をデモモードで起動する(フラッシュ ROM 内 15種類のプリセットパターンを繰り返す)には、Digital 8 ピンと 9 ピンを GND に接続して電源 ON (リセット)、
15種類のプリセットパターンのうちどれかを喋らせるには Digital 9 ピン を GND に落とした上で Analog 0 〜 3 のうちどれか(若しくは全て)を GND へ。
なお、これらの信号線は内部プルアップされているので普段(通常モード使用の際)はプルアップ不要です。

(↑図は武蔵野電波さんの「Arduinoはやみ表 Ver.1.1」からお借りしました。)


傾向と対策

たぶんなんか凝ったこと考えずに「最も一般的な Arduino 」を準備しとけば成功したっぽい。


私の使用した Arduino 互換機ボードは「eJackino mini」というもので、

アーデュイーノ互換マイコン・ボードを作る (プリント基板付き電子工作解説書シリーズ)

アーデュイーノ互換マイコン・ボードを作る (プリント基板付き電子工作解説書シリーズ)

この書籍に付属する「eJackino」の更におまけのようなミニサイズ Arduino 互換ボード( Duemilanove 相当)。実はこのボード、省スペース化のため、CPU からクロック(セラロック)までの配線が少々長い。

※ 因みに、同じく上掲書籍に付属する「eJackino pico」のほうはセラロックの引き回しが短い。(こちらでテストすればよかったのかもしれないが、残念ながら他の装置(GM計)に組み込み済み。)
その点、標準的な Arduino は、クロック(水晶)までの距離は最小限に抑えられている。

というわけで、クロックと音声出力の干渉が原因だとすれば、素直に Arduino 標準機(若しくはそれに近いパーツレイアウトのボード)を使用すればいいということになるが、実際には(動画の最後の方でもわかるように)電源とスピーカ出力を差し替えたら eJackino mini でもちゃんと喋ってくれました。 (´・ω・`) ←いや、がっかりする必要はない
実際に色々なパターンで試してみた感触としては、横着しないでスピーカ出力にちゃんと別個の電源を与えてやればうまくゆく確率が向上するのではないかと。
その他に原因として考えられるのは

  • クロックの相性(セラロックには個体差が結構あるようです)
  • クロックの配線(一般論としても、短いほどよい)
  • そもそもクロックは水晶のほうがいいのではないかと。
  • 電源の品質(百均USB電源では失敗率が高く、また再生できても雑音が結構入ったりしました)

といったようなことが考えられるわけですが、じゃあどれかがクリティカルなのかというとどうもそういう感じでもなく、スピーカ直結だと絶対ダメとかいうことでもなければ電源がへちょいと全然ダメとかそういうことでもなく。恐らく 2つぐらいの悪条件が重なるとまずい、みたいなところ。


とはいえ


いい声で喋って欲しかったら真面目に考えてよね
(アナログなめてんじゃないわよ! (*'▽'*))


というところはあるのかもわかりません。( ↑ pico談、らしい)


ひとまず「こんな状態になった場合にはこんなような原因が考えられるんで対策するといいかもね」という、先例として。 基板を自作する場合や、万能基板で組んだりする場合などに参考にして頂ければと。


ともかく
これものすごくおもしろいです。いろいろ喋ってもらって遊んでいます。
さて、では私はこの石を使って何をするのかというと、勿論、「これから考えます」ということで、甚だもっておあとがよろしいようで。


(あっこれ「つ」の無声化してない方のやつだ… orz → してあるのはこちら!


【少し追記】スピーカ直結について

2011/12/10 追記。
ATMEL ATMega328 … じゃなかったゲフンゲフン、 ATP3010F4 のデジタル出力の絶対定格は 40mA max だそうで、低インピーダンスのスピーカを出力に直結するのは、ノイズ回り込み問題の他にチップそのものにダメージを与える危険性もありますので、覚悟の上、実験してください。いまのところ私の環境ではArduino での音声出力実験を含めて、チップがいかれてしまったというような事態は確認されていませんが…
試しにテスターで電流値を計測してみたところ、スピーカの種類によらず 概ね 45mA 程度の数値が出ました(「a-------------」の持続音で表示が定常化したところの値を読取)。 スピーカに表示されているインピーダンス値と電流値にこれといった相関は見られませんでした。ひょっとすると、チップが吐き出せるだけの MAX を吐き出している状態なのかも…
主電源給電は USB 5V 500mA 。均された状態での値が 45mA 程度、ということです。ピーク値ではもっと流れている可能性が高いです。やはり、あまりオススメできる使用状態ではありません。音質の問題等諸々も含めて、簡単なアンプを噛ましてやるほうがよさそうですね。


たとえば

  • http://akizukidenshi.com/catalog/g/gK-03234/
    • コンパクトなので、組み込みにはよさそうです。ボリウムをツマミ付き半固定に換装してやれば…ええと、これから試します。
  • http://www.aitendo.co.jp/product/1716
    • 超定番 386 アンプ、回路も超定番です。端子はケーブル直結できるねじ式ターミナルブロックだし、ボリウムもついてて、バラック実験にはもってこい。ただしホワイトノイズ多めなので回路に少々手を入れたほうがいいらしい。
  • http://www.aitendo.co.jp/product/2309
    • ステレオなので片チャンネル要りませんが、ブレッドボードに挿せる基板レイアウトなのがヨサゲです。これもそのうち試します。(そのうち…)


(どうしてもアンプなど組みたくない(できうる限りシンプルにしたい)という場合には、音質は落ちますが圧電素子(圧電スピーカー/圧電サウンダ)などを使ってやるといいかもしれません。)


後日追記:ATP3011F4-PU に関する補足など

この動画によるインストラクションがすごいと話題に


…いや「話題に」というほど話題にはなっていない気もしますが、丁寧でわかりやすいのは間違いないです。 3010 → 3011 におけるシリアル通信速度自動選択のやり方(変更点)についても触れられてます。

*1:cf. https://twitter.com/#!/nyaqu/status/184285198039531520

*2:あと、「注目」とか言うてますが、実は(株)アクエストさんに対しては「母音化 VST プラグイン」などをタダで使わせていただいていることに若干の後ろめたさみたいなものがあったりなかったり…で、話題にちょっとでも貢献できれば、という思いがあったりなかったり……。