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 のモードと判断される電圧スレシホールドなどについての記述はありません。
そこで、次回に示すような測定を、ひとつのサンプルについて実際に行ってみました。
その結果、
- その電流は、Vcc への「プルダウン抵抗」を流れるだけと思われ、そのプルダウン抵抗の値は 25 kΩ 程度で、電流も最大値で 0.4 mA 程度。
- パワーオン・リセットで動きだすフラッシュ上のアプリケーション・プログラムで PB3 を出力に設定していると、PB3 へのシンク電流は最大で十数 mA となり、12 V 電源から、それ以上の電流を供給して電圧を引き上げると 12 V モードに移行することが可能。
ということが分かりました。
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
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 と判断しています。