読み方はSPゼロ256です。海外サイトではSPオー256と言っているところもあるようですが、0が細いのでゼロで正解だと思います。
製造メーカーはAY-3-8910を作ったあのGI製で、Microchip Technologyの前身です。
事実SP0256Bというデータシート(DS50018A)がMicrochip Technologyから発行されています。
このICはSpeak & Spellのような英語の音声を出すためのスピーチシンセサイザーで、いわゆるボーカロイドのIC版という感じです。
(wikipediaより)
このICでは母音・子音など細かなフレーズが収録されていて、それらを組み合わせて言葉の「ような」音を作り出すことができます。 SP0256シリーズには-AL2という英語の基本的な発音が収録されているものや、-012・-017・-019という枝番号でゲーム機、喋る時計などに使用されていました。
今回使用するAL2は、英和辞書に載っている「発音記号」ごとに音が用意されていると思えばわかりやすいと思います。
なので、日本語を話そうとすると英語圏の人が日本語を喋ったような感じになり、とても面白いことになります。
また、AL2はそのまま使うと英語は話せるものの音の高さを変えることができません。
Speak & Spell のように自然な喋り方をさせるために専用の外部ROMを付けられるようですが、すでに流通していませんし、
単なるPCMのデータが入っているわけでもないので使いこなすのは難しいのではないでしょうか。
右側のHANDSHAKE CONTROLでSP0256の状態をチェックしてデータを送ります。 たとえば、SP0256がLoad Request(/LRQ・ロード可能)している場合にアドレスラインにフレーズ番号をセットして、/ALD(Address Load)を有効にすると音が出て/LRQとSBYが変化します。 その時、内部に1フレーズ分のFIFOを持っているので/LRQはすぐに復帰するのですが、SBY(Standby・Notビジーの意味)が実際に発音を終えた時に元に戻ります。 ただしその間隔が非常に長く、「アウト」の「あぅ」を喋るのと同じ時間待たされます。そのため次々来るMIDIメッセージを如何に処理するのかが肝になってきます。 まぁ、FIFOを実装するだけなんですけど。
このICのクロックはデータシートによると3.12MHzを使えと書いてあるのですが、共立で聞いたところ「そんな周波数見たことない」とのことで、
EXO3の12.8MHzを4分周して3.20MHzとして供給することにしました。実際鳴らしてみると、うまく音は出るものの音の高さが変わらないためなんだか物足りません。
そこで、19.66MHzのEXO3を8分周した2.458MHzや4MHzのクロックを加えてみたところ、普通に音程が変わって動いてしまいました。
さらに、3.20MHzではA(445Hzあたり)、4MHzではC#ととほぼ同じ音程で発音することが分かりました。しめしめ、あとはクロックを切り替えるだけ…
★ 予備に買ったチップでは4MHzで駆動させると暴走しました。オーバークロックのギリギリのラインだと思うので、うまく動かない場合は少し低い3.805463MHzにするとCの音で鳴らすことができます。