Raspberry piでYMZ294を鳴らす
ArduinoでYMZ294を鳴らした記事はよく見ますが、Raspberry piで試した人は見当たらなかったので試してみました。
ちゃんと鳴ります。
3.3V問題
Raspberry piのGPIOは3.3Vです。YMZ294は基本5V動作っぽいので、3.3Vで大丈夫か、と思ったのですが、大丈夫でした。
データシート的には、こうなっています。
- 4/6, /IC, /TEST以外は最小2.2Vでラッチ
- 4/6, /IC, /TESTは最小3.5Vでラッチ
なので、ロジック電圧を印加するD0~D7, /WR, /CS, A0は2.2V以上でラッチします。/TESTは無接続、4/6はロジックで弄らない、ということで、/IC(リセット)が使えない程度です。
リセット使えなくても特に問題ないですし、どうしても使いたい場合でも1ピンだけなら割と何とでもなるでしょう。
Arduinoとの違い
鳴るとはいえ、正直YMZ294を扱うなら、Arduinoの方が楽です。理由としてはこんな感じです。
- ピン配が面倒(ラズパイだとD0~D7がどうしても飛び飛びになる)
- YMZ294のデータ入力に、ArduinoだとPORTDがそのまま使える
- リセットがラズパイGPIO直だと動かない
ただし、Arduinoだと、PSG鳴らしながら何かするのは結構しんどいと思います。 Rasperry piはプロセス切っちゃえばいいので、その辺は楽ですね。
動作映像
とりあえずやっつけでドレミファソラシド
回路図も書こうと思いましたが、要らなさそうだしGPIOピン書くの面倒なので省略。
ちなみに、スピーカーは直結ではなく、D級アンプを嚙ませています。SOはドレイン接地かなにかだと思うんですが、SO-GND間に抵抗を挟まないと、スピーカーが鳴らないので注意してください。