2025年1月2日木曜日

Arduino Writerの製作

製作の目的

素のATMega328PをArduinoとして使うために、Arduino Unoを使ってBootloaderを書き込めます。簡単な回路なのでブレッドボードでも出来ますが、毎回ブレッドボードで回路を組むのが面倒なので専用の基板を製作しました。また、Bootloaderを書き込んだ後、USB-Serial(TTL)モジュールを使って、Arduinoのスケッチも書き込めるようにしました。


大きく2つに分けて使用方法を示します。

  1. ArduinoのBootloaderを書き込む
  2. Arduinoのスケッチを書き込む

Arduino IDEはVer.2.3.2を使って説明しますが他のバージョンでも大きく違うことはないと思います。Arduino UnoはATMega16U2の代わりにCH340を使った互換ボードでも動作確認しています。

1.ArduinoのBootloaderを書き込む


基本的な概念はArduinoの公式ページを参照してください。

Arduino UnoにProgramer用スケッチを書き込む


まずArduino UnoをBootloaderのProgrammerとして使うためのスケッチを書き込みます。

手順
  1. Arduino UnoとPCをUSB接続する
    Arudino Writer(この基板)とは接続しないでおきます
  2. PCでArduino IDEを起動し、File→Examples→11.ArduinoISP→ArduinoISPを開く
  3. Tools→Board→Arduino AVR Boards→Arduino Uno を選択
  4. Tools→Port→<Arduinoを接続しているPort> を選択
  5. Sketch→Upload、またはメニューバーの(→)アイコンでスケッチを書き込む
  6. IDEの右下にDone Uploading.とポップアップされるのを確認

これでArduino UnoをBootloader書き込み器として使う準備完了です。


Arudino Unoを使ってATMega328PにBootloaderを書き込む


配線図

ハーネスの作例

接続のようす

手順
  1. Arduino Writer(この基板)のZIFソケットにATMega328Pを挿入してレバーを倒す
    レバー側が1ピンです
  2. Arduino UnoとPCのUSB接続を外す
  3. Arduino UnoとArduino Writer(この基板)を接続する
  4. Arduino UnoとPCをUSB接続する
    Arduino Writer上のLEDチェックが走り、HTBT LEDがじんわりと点滅します
  5. PCでArduino IDEを起動
  6. Tools→Port→<Arduinoを接続しているPort> を選択
  7. Tools→Programmer→Arduino as ISP を選択
  8. Tools→BurnBootloader を選択
  9. IDEの右下にDone burning bootloaderとポップアップされるのを確認

これでATMega328PにArudinoのスケッチを書き込むためのBootloaderが書き込まれました。

2.Arduinoのスケッチを書き込む


スケッチの書き込みにはUSB Serial(TTL)モジュールを使用します。FT232RLとCH340のモジュールで動作確認しています。

テスト用にATMega328PにLチカのスケッチを書き込んでみます。

配線図

配線表

※TXDとRXDは互い違いになるように配線します
※CTSは配線しないでおきます
※VCCはUSB Serialモジュールで5Vに設定

配線用ハーネス

接続のようす

手順
  1. Arduino UnoとPCのUSB接続を外す
  2. Arduino UnoとArduino Writerの配線を外す
  3. USB SerialモジュールとArduino Writer(この基板)を接続する
  4. USB SerialモジュールをPCにUSB接続する
  5. PCでArduino IDEを起動
  6. File→Examples→01.Basics→Blinkを選択
  7. Tools→Board→AVR Arduino Board→Arduino Unoを選択
  8. Tools→Port→<USB SerialモジュールのPort> を選択
    Arduinoを接続していたPortと異なるで注意
  9. Sketch→Upload、またはメニューバーの(→)アイコンでスケッチを書き込む
  10. Done Uploading.とIDEの右下にポップアップされるのを確認

Arduino Writer(この基板)の緑のLEDが点滅したら成功です。

回路について


回路図

Bootloaderの書き込みはSPIを使います(D13~D10)。L_PROG、L_ERR、L_HTBTはProgramerとしてつかうArduino Unoからの出力を受けてLEDを点滅させます(D9~D7)。LEDの電流制限抵抗(R2、R3、R4)は実際に使うLEDの明るさで調整してください。私の使っているLEDは緑色だけ暗いのでR4は330Ωに変更しています。

U2のLM358はD13に接続するLEDをドライブしているだけです。D13はSPIのSCKとしても使うのでバッファリングして干渉を避けます。Arduino Unoでも同様の回路になっています。前述の理由でR5は330Ωに変更しています。

Sketchの書き込みにはSerial(D0、D1)とRESETを使います。DTRから0.1uFのコンデンサ(C5)介し、10kΩ(R1)でVCCにプルアップ必要があります。C5がハイパスフィルターとして働き、RESETピンに+5Vを超える電圧がかかります。このため、SBD(D4)でクランプして+5Vを超えないようにしています。


2024年12月31日火曜日

シンセ3VCOの解説をYoutubeにあげました

3340VCOとAnVCOの音出し動画を撮ってみました。

意外とディスクリートのAnVCOもいいものだと思いました。


2024年10月28日月曜日

MIDI - ステレオミニプラグ変換ケーブルの作成

シーケンサーのKORG SQ-64とドラムマシンのKORG drumlogueをMIDIケーブルで接続する場合、SQ-64側にMIDI-ステレオミニプラグ変換ケーブルが必要となります。Rolandから発売されていますが結構お値段がはり、何本か必要になりそうなので自作することにしました。

自作したMIDI - ステレオミニプラグ変換ケーブル

配線


Type-AとType-Bがあります。ステレオミニプラグのTipとRingへの接続が逆になります。


※コネクタのはんだ端子側から見た図

SQ-64の説明書にはType-Aを使うように書かれています。

普通のDIN 5PINのジャックで試験



DINコネクター5P中継ジャックで製作


使用したMIDI側の中継ジャックは マル信 MJ-52です。これも1個400円強と安いものではありませんが、信頼のマル信製です。

DINプラグの分解も分かりにくいものですが、このジャックもプラグと同じようにぐりぐりしてカバーを外す必要があります。


樹脂製のカバーと1つ内側のメタル製のパーツの1か所くぼんでいる部分に、精密ドライバー(-1.5程度)を差し込みぐりぐりしながらカバーを外していきます。カバーは柔らかいのである程度外れたら内部のパーツを引き抜きます。

メタル製のパーツは2分割で外せますが、外す時に位置関係をしっかり確認しておきます。

普通のDINジャックより端子の間隔が狭いので、はんだ付けの難易度はステレオミニプラグのはんだ付けと同程度かやや難しい程度です。


※導線がはみ出していたり良いはんだ付けとは言えません。この後ニッパーで整えましたが端子間が狭く本体が樹脂製なのではんだ付けには注意が必要です。

SQ-64とdrumlogueのMIDI接続


デフォルトのMIDI設定で、SQ-64のMIDI OUTからdrumlogueのMIDI INにつなぐと、SQ-64がマスターとなりテンポが同期します。SQ-64のDトラックで打ち込んだシーケンスでdrumlogueを鳴らすこともできます。