シンセ・アンプラグド RSSフィード

2012-02-07

ATtiny10 用プログラム (18)

ATtiny10 の 6 番ピン (PB3) の特性を測定するのに使った回路を下に示します。

外部から PB3 に電圧を与えて、PB3 側に流れ込む電流 (シンク電流) の向きを「正」とし、ソース電流の場合は「負」とします。

電流検出回路を構成して、電圧値として読み出すことも考えたのですが、正負両方向に対応する必要があるので、簡単のため、図のようにそれぞれ電流計と電圧計を使用する構成にしました。

続きを読む

2012-02-05

ATtiny10 用プログラム (17)

今回は、マイコン・チップ上のフラッシュ・メモリにオブジェクトプログラムを書き込むという意味の「プログラミング」の話題です。

ATtiny10 では、フューズ・ビットの設定により、通常はリセット端子として使われる 6 番ピンを PB3 の入出力ポートや、その他の内蔵モジュールの入出力として使える設定 (RSTDISBL) があります。

いったん、RSTDISBL 状態にすると、もう 6 番ピンはリセット端子としては機能しなくなります。

そのため、通常のリセット・シーケンスで TPI (Tiny Programming Interface) モードに入る方法のほかに、6 番ピンに +12 V を印加して TPI モードに持ち込むモードが用意されています。

データシートには、このモードでの詳しいハードウェアスペック、たとえば、供給する +12 V 電源に要求される電流容量や、12 V のモードと判断される電圧スレシホールドなどについての記述はありません。

そこで、次回に示すような測定を、ひとつのサンプルについて実際に行ってみました。

その結果、

  • 12 V は、「12 V モード」の識別の目的だけに使用され、プログラミングの電源は Vcc 5V から取られるので、TPI モードの期間、一定の値の小さな電流しか流れない。
  • その電流は、Vcc への「プルダウン抵抗」を流れるだけと思われ、そのプルダウン抵抗の値は 25 kΩ 程度で、電流も最大値で 0.4 mA 程度。
  • パワーオン・リセットで動きだすフラッシュ上のアプリケーションプログラムで PB3 を出力に設定していると、PB3 へのシンク電流は最大で十数 mA となり、12 V 電源から、それ以上の電流を供給して電圧を引き上げると 12 V モードに移行することが可能。

ということが分かりました。

続きを読む

2012-01-30

ATtiny10 用プログラム (16)

「scr_tn10.asm」プログラムについて、いくつか補足の説明をしたいと思います。

まず、「SYNC_MODE = 2」、つまり、外部 SYNC 入力モードの場合の波形写真を下に示します。

続きを読む

2012-01-28

ATtiny10 用プログラム (15)

VCO 回路の「コンパレータ + ワンショット」部分として機能する ATtiny10 のプログラム「scr_tn10.asm」のソースを下に示します。

AVR Studio 4.19 で「Atmel AVR Assembler」プロジェクトとして「scr_tn10」を新規作成し、デフォルトで自動作成される空の「scr_tn10.asm」に下の内容をコピー・アンド・ペーストします。

続きを読む

2012-01-26

ATtiny10 用プログラム (14)

VCO 回路の「コンパレータ + ワンショット」部分を ATtiny10 のプログラムとして実現しました。

(gcc の gas ではなく)AVR ネイティブアセンブラで書いてあり、そのソースリストは次回に掲載します。

タイマ IC 555 を使ったリセット型 VCO 回路なら 555 の部分、MS-20 などの SCR (サイリスタ) 相当の回路を使ったリセット型 VCO なら SCR 部分、LM331 を使ったリワインド型 VCO なら LM331 の部分に相当します。

ソース・プログラムの設定を変えて再アセンブルすれば、外部 SYNC 出力、あるいは外部 SYNC 入力 (Hard sync) にも対応しますが、それについては次回説明します。

すべてのタイミングは、内部 8 MHz クロックで離散化されますから、原理的にピーク・ツー・ピークで

1 / 8 [MHz] = 125 [ns]

のジッタが除去できずに、常に存在します。

また、当然、電源電圧の最大値は 5 V までとなります。

リセット型 VCO の SCR 回路と対比させたブロック図を下に示します。

続きを読む

2012-01-20

ATtiny10 用プログラム (13)

ATtiny10 版の MIDI to CV プログラム「m2c_tn10」のソースリストを下に示します。

FM 音源プログラムMIDI データ処理部を再利用しているので、機能を削った部分はコメント・アウトしたり、#if (0) 〜 #endif で無効にしており、プログラム・ソースとしては整理されていません。

SRAM 領域および CPU レジスタ使用量の削減のために、一部はアセンブラで記述しています。

2012-01-19

ATtiny10 用プログラム (12)

ATtiny10 版の MIDI to CV プログラムができました。

ソースリストは長くなるので次回に掲載します。

Arduino につないだままではなく、「応用回路」中に差し替えた場合の回路図を下に示します。

シリアル MIDI / レガシー MIDI インターフェース回路部分については省略してあります。

ひとつのプログラムシリアル MIDI (38.4 kbps) / レガシー MIDI (31.25 kbps) 両方に対応しており、通常は GATE 出力として使われる PB1 (3 番ピン) の状態をプログラムの起動時に読み取り、10 kΩ 程度でプルダウンされていればレガシー MIDI、オープンあるいはプルアップならシリアル MIDI と判断しています。

続きを読む