« FRISKケースでArduinoクローンを作りました | トップページ | BOOX Poke3が出ています(2021/03/07追記) »

2020/10/31

FRISKケース入りArduinoへのISPプログラマ機能追加

先日ArduinoクローンをFRISKケースで作ったとき、使ったことの無いICSP端子をノリで付けていました。
その後、どうして使ったことが無いのかを考えていたところ、この端子はターゲットとして付いていること、すなわち別途用意したISPプログラマ(AVRライタ)によってプログラムされるために付いているもので、その機会が私に無かったからだと思い至りました(ISPはIn-System Programmingの略)。
そんなことを考えながら、ジャンパー線をD10〜D13に繋いでATtiny85へ書き込もうとしたところ、エラーの嵐。ATtiny85のデバイスID(シグネチャ)が違う!などと言われてしまいました。
Friskisp1
なんでかな、たぶん配線ミスだろうけれどもしかしてコンセプトミス? と思ってソフトハード両面で調べていたところ、ATTinyCoreのprogrammers.txtでavrdudeに-Fを付けて強引に書けば動くことが分かったものの気持ち悪く、さらに調べるとICSP端子の横で隣り合っているMISO(=D12)とD13用LEDのアノードの間にはんだカスが見つかり、これを掻き出したら治りました(お恥ずかしい)。

他にも気になるところがあったので手直ししようとしたところで、ふと、ICSP端子は、ターゲットになる場合とISPプログラマにする場合とで、リセットだけが違うことに気が付きました。つまり、ターゲットになる場合はRSTピンをATmega328Pの1番ピン(=RESET)に接続し、ISPにする場合はATmega328Pの16番ピン(=D10)に接続すれば良いわけです。そしてラッキーなことに、ちょうどその辺にジャンパーピンを立てるスペースがありました(スイッチは入らなかった)。

またミスしそうに思ったので、まずは回路図です。前回漏れていたICSP端子を書き足し、ジャンパーを追加します。さらに、忘れていたAREFのパスコンとAVCCのLCフィルタを書き足しました。但し、まだインダクタを買っていないのでLCフィルタは未実装です。あと、D13とLEDの間を2.2kΩで受けているところへバッファを入れたいのですが、スペースが足りないので今回は見送りました。
Arduinofrisksch2

ピンと配線を追加して、蓋を削ってラベルを作り直したものがこちらです(ショートしていた所も書いています)。ここでは緑色のジャンパーピンでISPモードにしています:
Friskisp2

ISPプログラマは書き込むときに挿し、動かす時は(使うピンが被れば)抜かないといけませんが、いちいちジャンパー線で1本ずつ繋ぐのも面倒だったので、まとめて繋ぐケーブルも作りました:
Friskisp3

ブレッドボード側はATtiny85に覆い被さる形です:
Friskisp4

ケーブル単体も記念に撮影しておきました。すぐバラけるのでマスキングテープで緩くまとめています:
Friskisp5

これでArduino側にArduinoISPのスケッチを書き込めばISPプログラマのできあがりです。既に何日か使っていますが、コンパクトに収まって満足しています。

ただ、元々ついでに付けた端子で周囲にまったく余裕がないので、ふつうのISPケーブルはコネクタが入りそうにありません。安いSOPIC用クリップにも付いてくるようなので、上記のバッファなどを追加するときにでも検討しようと思います。

何かの参考になれば幸いです。

パドラッパ from MacBook Air (2017)

| |

« FRISKケースでArduinoクローンを作りました | トップページ | BOOX Poke3が出ています(2021/03/07追記) »

コメント

コメントを書く



(ウェブ上には掲載しません)




« FRISKケースでArduinoクローンを作りました | トップページ | BOOX Poke3が出ています(2021/03/07追記) »