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では無い方が良いです。


最新の画像もっと見る

7 コメント

コメント日が  古い順  |   新しい順
Unknown (とーい)
2021-11-26 15:37:27
USB to UPDIとても興味があります。
質問なのですが、RXDとTXD間のダイオードは何を使っているのでしょうか? 
いきなりの質問で失礼します。
返信する
ダイオードは (ikkei)
2021-11-26 21:21:01
ショットキーバリアダイオードならどれでも大丈夫だと思います。
たぶん普通のダイオードでもいけると思いますので、お手持ちのダイオードで試してみてください。
返信する
Unknown (とーい)
2021-11-26 23:57:40
早速の返答ありがとうございます。
1n60のショットキーバリアダイオードで試してみようと思います。いちいちunoにライターを書き込まなくてよいなら、簡単にプログラムをテストできそうです。usbシリアルも、安いものなら数百円で購入できますし、専用のライターを作れそうです。
返信する
それで (ikkei)
2021-11-27 01:27:41
いけると思います。
本当に簡単にできますのでぜひやってみてください。
返信する
470Ωは (ikkei)
2022-02-28 08:26:43
4.7kΩでも問題ないことを確認しました。
返信する
むずかしい (kome)
2022-10-21 01:24:45
私の理解を超えているので、
笑ってください。
シリアルUSBのTX端子のダイオードの向きが、TXの信号がチップに行かないように思いました。
返信する
確かに (ikkei)
2022-10-21 06:54:37
ちょっとややこしい回路ですね。
RX端子は入力、TX端子は出力です。一方UPDI端子は入力になったり出力になったりします。
また、シリアル信号は信号がない時は"H"、信号のある時は"L"のパルスになります。
なので、TX端子の出力が"L"になるとダイオードを経由してUPDI端子を"L"にします。
一方、UPDI端子が出力のとき信号で"L"になると抵抗を経由してRX端子を"L"にします。
この時TX端子にダイオードが無いとTX端子の"H"の出力とUPDI端子の"L"がつながってしまいます。
これだと十分に"L"になりませんよね。
返信する

コメントを投稿