HOME
Arduino-IDEでUSBaspを使う
1.USBaspってなに?

 Kimio_Kosaka先生「Arduino IDEで ATtiny/ATmega 開発環境を作る」を使わせてもらって小さなATTinyから大容量のATMEGA1284PまでブレッドボードArduinoで遊んでいます。

 ある時、Arduino-IDEを使っていていて気が付いたことがあります。

 

 USBaspってなに?

 それでさっそくググってみるとUSBaspの作者と思われるホームページがありました。

 なんか簡単だしこんなんでAVRマイコンを焼けるのかと感嘆することしきり・・・




2.プロトタイプを作る⇒基板化へ

 じゃあってんで、自分なりにカスタマイズした回路図がこんな感じ(ほとんどパクリです(Special Thanks Thomas Fischl))

 オリジナルの回路ではATMEGA88を5Vで動かしているところを、3.3Vで動かしています。データーシートをみるとぎりぎりクロック12MHzで動きます。そのおかげでツェナーダイオードが省略できました。

 ただ、ターゲットを5Vで動かしている場合はターゲットから送られてくる信号(MISO)が5Vですので、74HC4050APで3.3Vにレベルシフトしています。

 

 ↓配線図 (とりあえず3.3V回路用のみです)

 

 んで、こんな感じでスケッチをアップロードしています。これでAVRISP-mkIIをAtmelStudio専用に使うことができ、このUSBaspをArduino-IDE専用にすることができます。

 

  ☆やったこと

   ・「Arduino IDEで ATtiny/ATmega 開発環境を作る」を参照して「hardware」ファイルをセット。
    (ただし、AVRISP-mkIIじゃなくてUSBaspを使うのでこの段階ではlibusb-win32のインストールは不要です)
   ・Thomas Fischl氏のUSBaspホームページからATMEGA88用のブートローダーもThomas Fischl氏のサイトにあるので、ダウンロードしてきてavrdude-GUIやAVRISP-mkIIをもっている方はAtmelStudioで焼く。
   ・ドライバ(2013/12/8現在「usbasp-windriver.2011-05-28.zip」を展開したバージョン「libusb_1.2.4.0」を適用
   ・Thomas Fischl氏の個人のサイトであるため、ドライバに署名が付いていないのでWindows8の方は こちら などを参照してドライバをインストールして下さい。
    Windows10の方は スタートボタンクリック 電源アイコンクリック キーボードの「Shiftキー」を押しながら画面の「再起動」をクリック トラブルシューティングクリック 詳細オプションクリック スタートアップ設定 で再起動時にドライバー署名の強制を無効にします。
   ・Linuxは苦手なんですが、Lubuntuでは下記の設定でOKでした。
    ・$ sudo nano /etc/udev/rules.d/60-usbasp.rules
     // ↓の行を追加して保存
     ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="USBasp", ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", MODE="0666", GROUP="avruser"
    ・「avruser」グループを作成後、使用するユーザーを「avruser」グループに登録する
    ・再起動
 

 ん? まてよ、こーゆーこともできるなぁ。ISPケーブルから電源も供給できるので、別途5VスイッチングACアダプタも不要

 

 これって、一つにしたら便利じゃない? こんなんどーよ

 

 んで、今日基板ができあがってきました。

 

 ハンダ付けを始めるのですが、5Vから3.3Vへ降圧させる定電圧レギュレーターの足つきの値段が高いので、代わりに表面実装のレギュレーターを立ててハンダ付けすることにしました。

 

 まず「O」と書いてあるところにハンダを盛って、レギュレーターの右側(OUTPUT側)をハンダ付けします。

 

 続いてレギュレーターの左側(INPUT側)もハンダ付けします。

 

 次に基板を立てて、真ん中のアースの部分にリード部品を切って余ったリードをハンダ付けします。

 

 最後に、そのリードとレギュレーターの背面の放熱板(アース)をハンダ付けして出来上がりです。

 

 
 あとはひたすら部品をハンダ付けして完成です。例によって部品の値はシルク印刷されています。シルク印刷のないコンデンサは0.1uF積層セラミックコンデンサです。

 

 


3.部品表

部品実装済み基板もあります

部品を同梱したキットもあります

部品名型番数量購入元備考
基板USBasp0011枚ThinkAboutPCB
カーボン抵抗(炭素皮膜抵抗) 1/4W2.2kΩRD25S 2K2一袋秋月電子通商RD25S 2K2
カーボン抵抗(炭素皮膜抵抗) 1/4W1kΩ)68Ω一袋千石電商
カーボン抵抗(炭素皮膜抵抗) 1/4W1kΩ)1kΩRD25S 1K一袋秋月電子通商R-25102
カーボン抵抗(炭素皮膜抵抗) 1/4W10kΩRD25S 10K一袋秋月電子通商R-25103
ポリスイッチ(リセッタブルヒューズ)500mA(1Aで遮断) 耐圧:60VRXEF050一個秋月電子通商P-01355
ロジックIC TC74HC4050APTC74HC4050AP1個マルツ
クリスタル(水晶発振子) 12MHz12MHz1個秋月電子通商P-00543
ICソケット (28P) スリム300milタイプ2227-28-03一袋秋月電子通商P-00013
超小型スライドスイッチ 2回路2接点 IS−2235IS-2235一袋秋月電子通商P-02627
3mm赤色LED LT3U31P 250mcdLT3U31P一袋秋月電子通商I-03033
3mm緑色LED EBG3402SEBG3402S一袋秋月電子通商I-03459
絶縁型ラジアルリード型積層セラミックコンデンサー0.1μF50V10個入2.54mmRPEF11H104Z2P1A01B一袋秋月電子通商P-00090
絶縁型ラジアルリード型積層セラミックコンデンサー22pF
50V±5%5mmピッチ 20個入
RD15N220J1HH5L一袋秋月電子通商I-00941
ピンソケット (メス) 2×7 (14P)1個秋月電子通商C-00169
ピンソケット (メス) 2×20 (40P)1個秋月電子通商C-00085
ピンヘッダ 2×20 (40P)1個秋月電子通商C-00080
ジャンパーピン青(2.54mmピッチ)(25個入)MJ-254-6BU一袋秋月電子通商P-03690
低損失三端子レギュレーター 3.3V800mA NJM2845DL1−33 4個入NJM2845DL1-33一袋秋月電子通商I-02247
電解コンデンサー47μF35V85℃(ルビコンPK)RO-25CKF22012個秋月電子通商R-03383
AVRマイコンATMEGA88-20PU1個秋月電子通商I-05737
ゼロプレッシャーICソケット (40P)40-6554-10一個秋月電子通商P-00026
基板取付用USBコネクタ(Bタイプ メス)USB-4BF-103BS一個秋月電子通商C-07675


 別途USBケーブルとソケット間を配線するブレッドボード用のジャンプワイヤが6本〜8本必要です。

 USBのD+とD-に直列に接続されている68Ω抵抗はオリジナルの回路の抵抗値をそのまま使っていますが、秋月電子通商で取り扱いがなかったので千石電商から買いました。試していないですが、多分秋月の75Ωでも問題ないと思います。




4.組み立て方

以下の順番で組み立てていきます。

 

 

 

 

 

ゼロプレッシャーソケットは必ずレバーを立てた状態でハンダ付けして下さい。



5.注意点

・ショートピン用ピンヘッダが3つありますが・・・
__Slow SCKATTiny等でスピードが速すぎてスケッチをアップロードできない場合は、ここをショートさせて下さい。
Suplay Targetゼロプレッシャーソケットでスケッチをアップロードする時、あるいはICPでターゲット基板に電源を供給する場合(最大500mA)、ここをショートさせて下さい。通常はショートです。
Self PROG.このジャンパは現在機能しません。ファームウェアバージョンアップ時はAtmelStudio+AVR-ISPmkU等でバージョンアップして下さい。(外部クロックに設定されていますのでセラロック等が必要です。
・ジャンプワイヤの誤配線などで書き込みに失敗した時は、以後の書き込みではUSBaspを認識しない場合があるので、その場合はUSBケーブルを抜き差しして下さい。
・パソコンとの接続ケーブルは市販のUSBケーブルが使えます。



6.実際の書き込み方法

 まずArduino-IDEを立ち上げます。

 

 Kimio_Kosaka先生の設定を行っていれば、マウスで「ツール」「マイコンボード」をポイントしていけば、ご覧のように書き込みできるデバイスが増えているはずです。今回はATMEGA328P内蔵クロック8MHzを選択しました。

 

 続いて「書き込み装置」で「USBasp」を選択します。

 

 ライタはデバイスに応じてジャンプワイヤで14ピンソケットと40ピンソケットを接続します。今回はATMEGA328Pなので下記のように接続します。
 ・GND⇔8番ピン
 ・GND⇔22番ピン
 ・VCC⇔7番ピン
 ・VCC⇔20番ピン
 ・MOSI⇔17番ピン
 ・MISO⇔18番ピン
 ・SCK⇔19番ピン
 ・RESET⇔1番ピン

 AVRマイコンは1番ピンをゼロプレッシャーソケット側のレバー側にセットします。

 購入直後のAVRマイコンはヒューズビットが書き込まれていないので、「ブートローダーを書き込む」で書き込みます。ブートローダーと書かれていますが、この場合ブートローダーはダミーで、ヒューズビットのみ書き込まれます。

 購入直後のマイコンは内蔵1MHzクロックを使っており、高速書き込みでは書き込めない場合がありますから、「3.注意点」のSlow SCKをショートさせて低速書き込みを行ってください。書き込みが成功した後は高速書き込みが可能ですのでSlow SCKのジャンパをはずし、USBケーブルをいっぺん抜き差しを行ってください。

 

 続いて、サンプルスケッチを描いてマイコンにアップロードします。(今回「01.BASICS」の「Blink」を選択しました)

 

 最後に、ライタからマイコンを取り外して、ブレッドボードに移し、LEDが点滅すれば成功です。

 

HOME


クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 - 非営利 - 継承 2.1 日本 ライセンスの下に提供されています。