ikkei blog

電子工作やパズルのブログです。主にLEDを使った電子工作をやっています。

USB to UPDI

2021年08月03日 12時28分50秒 | AVR
kosakalab では、Arduino UNO に jtag2updi を使って UPDI の書込装置としていますが、@kimio_kosaka さんからもらった情報
https://github.com/SpenceKonde/AVR-Guidance/blob/master/UPDI/jtag2updi.md
には、
1.UPDI に直列に入れる抵抗は 4.7kΩではなく470Ω。
2.jtag2updi より USB-Serial を使う方が良い。それも CH340G が良い。
とのこと。

Arduinoを使った jtag2updi では高速のUPDIには対応出来ないそうです。
UPDI にArduinoを使用せずにUSB-Serialでいけるならそっちの方が良いので、さっそくやってみます。

回路図はこれです。Arduino使うよりメッチャ簡単です。


UPDI の3ピンコネクタをつける場合はこの図のように470Ωをターゲット側に、3ピンの順は逆接しても壊れないように UPDI, GND, 5Vが良いそうです。

こんなに簡単に書込装置ができるならATtiny202はバカ売れ。
と思ったら秋月には在庫が無いようです。あらら。

これをブレッドボードに組んだのがこれです。

動画はこちら。

私が使ったUSB-SerialはFDTI社製のものでしたが、うまく動作しました。
Arduino IDE で書込装置として選ぶのはこれです。

他にもSerial-UPDIがありますがATtiny202は低速のUPDIのようです。

また、COMポートのレイテンシーを上げた方が良いそうです。
デフォルトでは16msになっていますが、これを1msにした方が良いとのこと。

と言ってもこれは高速UPDIには重要ですが低速では16msのままでも大丈夫です。

また、ブートローダの話がありましたが、ブートローダだけで512バイトあるので、高々2KバイトしかないATtiny202では無い方が良いです。


全ての謎が解けた

2021年08月03日 10時59分26秒 | 電子工作
ここ1週間ハマっていた顛末を。
物事には必ず原因が有ると言うことです。

ちょっと前までATtiny202のプログラムを作っていました。
参照したのはここ。
kosakalab
少し他の仕事で手を取られていたので間が空きましたが、プログラムの続きをしようとしたところ、全く書き込めなくなりました。

この間までちゃんと出来ていたのになぜ?
と思いつつ操作の見直しをしたり、同じような症状がないかググってみたりしても一向に書き込めない。
「ブートローダの書き込み」は成功するのに「マイコンボードに書き込む」ができません。
Arduino IDEのバージョンを下げてみたり、インストールし直したりと、いろいろやってみるも全てダメ。

数日経って困り果て @kimio_kosaka さんに助けを求め、色々アドバイスをもらいました。
しかしどれもうまくいきません。

と言うことは、きっと根本的な間違いをしているに違いないと思い、もっと範囲を広げてググってみたところ、「書込装置を使って書き込む」を見つけました。
メニューにこんなのがあったんだ!

やってみるとすんなり書き込めました。


そうです。
私はずっと「マイコンボードに書き込む」ボタンばかりやっていたのが問題でした。


でも、以前はこのボタンでうまくいっていました。なんで?


さらにググってみました。
そしたら、違うマイコンですが「ブートローダ無し」を選ぶと言うのを見つけました。
そうです。ずっと私は ATtiny412/402/212/202 w/Optiboot を選んでいました。
ATtiny412/402/212/202 に替えたら「マイコンボードに書き込む」ボタンでアッサリ書き込めるじゃないですか。



そうかーー。
この時はずっとボード選択で私の目には下のように見えていて、他に選択肢が無いものと思い込んでいました。なんでだろう?
人は目に映っていても見ようとしなければ見えなくなってしまうんですね。


なので、見直しの際にもここは間違い無いと思ってスキップしていました。
もちろん kosakalab には正しくこの図がありました。


しかも、ツールメニューに「ブートローダを書き込む」とあるので疑問を持ちませんでした。
もちろんブートローダ無しを選んだ場合はブートローダは書き込まずヒューズの設定のみになります。

さらに、ブートローダ無しの場合は「マイコンボードに書き込む」ボタンで自動的に書込装置を経由して書き込んでくれ、ブートローダ有りの場合は書込装置を経由しないで直接デバイスのブートローダに対して書き込むのです。だから書き込めなかったのです。

これで全ての謎が解けました。
それぞれの機能は正しいのですが、ちょっと変な選択をしてしまうと訳が分からなくなってしまったと言う訳です。

ここで教訓。
見直しの際にはここは間違っていないと思うところも入念にチェックすべき。


てづバ神戸

2021年08月01日 06時33分44秒 | てづバ
アート&てづくりバザール神戸に行って来ました。





まずは奥の方から、と行ってみるとカミカラさんが居ました。
そうです、3月のてづバ大阪で会った巴紋パズルのカミカラさんです。

Maker Faire Tokyo に出たかったそうです。
気が付いた時には募集が終わっていたとのこと。
オンラインの Maker Faire Shenzhen があることを伝えました。
富山在住と聞いたのでNT富山を紹介しましたがもう枠が埋まっていたようです。