自分へのメモ。
Arduino NANO経由での書き込みには失敗。jtag2updi自身がもうやーめた、みたいな感じですし。
続いてシリアルでの書き込み。
先人曰くCH340が良いらしいけども、手元に皆無だったので、昔ハミックベア用に作ったCP2102の基板を使います。懐かしい型番ですわね。
接続方法としては、
- USBシリアルのTXとRXの間にショットキーバリヤーダイオードを入れる。TXがカソード / RXがアノード
- RXから470Ω(4.7KΩという記述もある)でATTINY1616のUPDIピンにつなぐ。
- あとはATTINYのGNDとVCCを接続
Arduino IDEにATTINY1616などのビルド&書き込みツール「megaTinyCore」を入れます。入れ方はここを参考にしました。
Arduinoで動く20PinのAVRマイコンATtiny1616を試してみた
で、ツールメニューはこんな感じ。
PortはUSBシリアルのポート、BoardはMegaTinyCoreの下にATTiny1616が2つでてくるのですが、w/Optibootのない方を選びます(何が違うのか不明)。
あとはProgrammerのところがミソで、USBシリアルをつなぐ場合にはUPDI Serialを選ぶのですが速度などいろいろあります。私は「SerialUPDI 230400 .... Mac / Linux」というのが目に留まったので、それで試しました。
Toolメニューから「Burn Bootloader」を選びます。これで、USBシリアル経由でATTiny1616に対してArduinoブートローダーが書き込まれます。
で、おなじみのBlinkの書き込みですが、ここはもうcmd+Uでイケます。さてピン番号の指定はどうすれば?と思ってLED_BUILTINにマウスオーバーしたら「PIN_PA7」と表示されました。で、PA7に抵抗入りLEDをつないでみたら無事点滅しました。
jtag2updiで半日ぐらいツブしたあとなので、あっけなく動いたなぁという感じです(枯木
その後、SerialのスピードをTurbo 921600にしても書き込みできましたが、Blinkぐらいのサイズ(744 bytes)だと違いがわかりませんw
あと、Serial.printはPB2に信号が出てました。ピンアサイン通りですね(RXはPB3)。公式サイトにピンアサインをソフトで切り換える方法が出てました。が……
Hardware Serial reference (AKA UART or USART)
Serial.pinsで送受信ピンのアサインを変更したり、Serial.beginで各種モードを指定できるようなのですが、うまく行ってません。pinsで他のピンを指定してもPB2から出てきてしまうので、まだ何か他にあるんでしょうか……まぁ全部読めって話なんすけどw
とりあえず最低限の動作確認できたので、今日はこの辺で。
