読者です 読者をやめる 読者になる 読者になる

キノコの自省録

テクノロジーとコンテンツの融合を目指して

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はプロセス切っちゃえばいいので、その辺は楽ですね。

動作映像

とりあえずやっつけでドレミファソラシド

youtu.be

f:id:kinokorori:20170331234554j:plain

回路図も書こうと思いましたが、要らなさそうだしGPIOピン書くの面倒なので省略。

ちなみに、スピーカーは直結ではなく、D級アンプを嚙ませています。SOはドレイン接地かなにかだと思うんですが、SO-GND間に抵抗を挟まないと、圧電スピーカーが鳴らないので注意してください。