昨日の、Arduino Nano Every互換機(mega4808)でSerial2
を使うスケッチを書き込んだあとに、スケッチの書き換えが
出来なくなってしまった件。
githubのMegaCoreXのIssueに書き込んだ内容に、レスを付けて
もらえた。
どうやら、例のAliexで売ってるボードは、AVR Freakでも少し
話題になっていたらしく、品質的にアレなところがあって…
っていうことだったみたい。
で、改めてAVR Freakサイトの書き込みを探してみると、
以前見たページだったりするんだけど、頭からよーく
読み直してみると、どうやら、この互換ボードでは、
DTR信号で強制リセットが掛かる仕様が悪さをしている
っぽいことが見えてきた。
Unoとか普通のArduinoだと、DTR信号でリセットが掛かる
のは当たり前なんだけど、それは、bootloaderを起こして、
シリアル経由でバイナリを送って、セルフ書き換えを
するためのモノなので、bootloader無しでUPDI書き換え
をしているような、このMega4808ボードみたいなものだと、
DTR信号でリセット掛けちゃうこと自体が良くないっぽい
感じが見えてくる。
ただ、通常ならUPDIの1本だけでプログラム(バイナリ)の
書き換えをしたり、デバッグ通信を行ったりしているはず
なのに、なんでUart2が関係してくるのかは、まだよく解って
いないところ。
まぁ、Uart2が配線されている最大の理由は、シリアルモニタ
を使う際の通信の口なんだろうけど、それならそれで、
UPDIでの通信モードが起動した時点で、Uart機能自体が
一時停止(?)になってもいいんじゃないかなぁという
気もする… その辺がやっぱよくわからないなぁ。
でもまぁ、スケッチ書き込み時に、DTR信号をトリガに
リセットが掛かることで、Mega4808に書かれたバイナリが
起動しちゃって、ASCIIテーブルを出力する処理が起きて
いるわけなので、オンボードのCH340経由で通信しようと
すれば、これは多分回避できないはず。
(回路図が公開されていないっぽいので、正確な配線を
追うことができてないんだけど、事象から推測するに、
多分そういうことだと思う)
ってことで、別途、オンボードのCH340やUDPI周りを回避
して、UDPIでまっさらな(何もしない)バイナリをMega4808
に書き込むことができれば、問題は解決できるような気が
しているところ。
問題は、UDPI周りの回路がどうなっているのか。
CH340とMega4808の間に4.7kΩとかの抵抗が挟まっているの
であれば、もっと小さい(300Ωとか)を通してUDPI端子
を繋いで、ハックできればいいわけなんだけど。
ボードには、UDPI端子自体は出てきているんだけど、これが
Mega4808にダイレクトに繋がっているのかとか、オンボード
のUDPI用チップとは4.7kとかの抵抗で繋げられているのか
を挟んでとか、その辺が見えないと、下手したらぶっ壊す
可能性が極めて高い。
まぁ、どうせ今のままではほぼ文鎮だし、書き換えが
できないとそのままごみ箱行きは避けられないので、
「やってみて、うまくいったら儲けもの」
くらいのものなんだけどな。試してみる価値はあるし、
失敗しても、今以上に悪化する可能性は低そう。
で、UPDI経由でMega4808をまっさらにするために3つほど
必要なブツがある。
・何も行わない、もしくはLEDチカチカ程度のバイナリ
・UPDI書き込み装置(デバッグ機能までは要らない)
・avrdude
avrdude自体は、確かArduinoをインストールするときに
一緒にインストールされていると思うので、それを使えば
いいだろうな。
あとは、UDPI書き込み機、もしくはそれと同じ動作をする
ものとして、
https://github.com/ElTangas/jtag2updi
jtag2updiを書き込んだAVRマイコン(mega328とかでいいの
かな?)でよさそう。まぁ、Arduino用の「 jtag2updi.ino 」
を書き込めば、なんとなく動きそうな気がする。
(あとでもうちょっとちゃんと読み直す予定)
Mega4808をMegaCoreXで扱うっていう流れ自体は、何気に
悪くないところだったんだけど、問題は、Aliexで売って
いる例のボードの、リセット周りの動作がいまいちちゃんと
出来てなかったってことみたいなので、
・いざという時に、Mega4808をまっさらにできる
・そういう方法を取らなくても、シリアルモニタを
使える方法を探る
という、2方向を同時に考えておく必要がありそうだな。
まぁ、ボード自体は安いので、その回避ルートさえ見つけて
しまえば、オリジナルのNano Everyの代わりにちょっと使う
ってことには、便利(SRAMが6KB!!)な安価ボードな気は
するんだよな。
課題は、リセット直後にUart2にアクセスしに行くとうまく
動かなそうってあたり。リセット後、一定時間Uart2に
アクセスしないようなスケッチにするのか、もしくは、
なにか外部からのスイッチ入力とかを待ってからUart2に
アクセスしに行くようにするか、もしくは、外部入力
(スイッチ入力)がある場合にはUartにアクセスしに
行かないような、強制的な仕組みを作るってあたりかな。
この互換ボードには、D22、D23、D24のピンが生えている
ので、スケッチの先頭でそれらの端子からスイッチ入力
がある場合には、UART2にアクセスしないとかって処理を
挟み込んでおけば、なんとなく行けそうな気がするんだ
けどな…
そうそう。さらにこの互換ボードを3つほど追加注文して
いたんだけど、昨日発送状況について書いてた流れから、
どうやら今日届いてたみたい。
(まだいじってない)
とりあえず、現在文鎮化しているボードを生き返らせる
フランケン実験をしてからあらためて動かしてみたいと
思っているところ。
(生き返らせる方法がわかってないと、3つあってもすぐに
全部を失ってしまう可能性があるので)
シリアル関係以外にも、色々「どこが違うのか」の実験・
調査をしてみたいと思っているところなんだよな。
https://www.jiji.com/jc/article?k=2020082001057&g=soc
最後の「こうのとり」、大気圏再突入。お疲れ様だなぁ。
全9機、成功。スバラシイ。
それとシンクロして、なのか、
https://www.jiji.com/jc/article?k=20200820040464a&g=afp
SUVくらいのサイズ小惑星が、地球から3000km弱の近距離を
通過したらしい。
こうのとりは、確か小さいバス1台分くらいの大きさだったと
思うので、この”SUV”サイズの小惑星が、岩でみっちりだと
しても、こうのとりと質量的に同じくらいだと思うので、
まぁ、地上に落っこちてきて大災害になったりするほどでは
無いと思う(途中でほぼ燃え尽きる)んだよな。
それにしても、3000kmっていう距離は、今まで聞いたことが
ない近距離だな。日本列島が3000kmくらいだったよな。
https://www.youtube.com/watch?v=W79Npv99zig
これ、何気に大事件な気がするんだけど。
>ザリガニが特定外来生物に!?知らずに飼育すると
>大変なことに…
もしかして、アメリカザリガニまでそうなっちゃってるの?
と思ったら、諸般の事情(というか、アレな理由)で
アメリカザリガニは入ってなかったみたい。
ペットショップ行くと、アメリカザリガニの1~2cmくらいの
やつって「餌用」として売ってるんだよな…。
あれも販売したりできなくなると、肉食魚買ってる人に
とっては、けっこう大変な事態になる気がしてる。
https://www.yomiuri.co.jp/economy/20200821-OYT1T50273/
>日本EEZでコバルトやニッケル採掘に成功…リチウム電池
>に不可欠なレアメタル
コスト的に採算取れるのかは別として、選択肢として
輸入に頼らずになんとかできるっていうのは、まぁ
いいお話にちがいないだろうな。
https://news.yahoo.co.jp/articles/2c53361e37a17fe4ce335ece6b93fc2d30cac00b
>西之島の火口が2倍に 熱い火山灰が覆い生物死滅か
とりさんが西ノ島で営巣してたとおもうんだけど、
あれらは飛んで逃げたのか、それとも…っていうのが
気になるところだなぁ。
見間違えだったかもしれないけど、ちょうど日付が変わる
ころ(0時ちょうどころ)に、真南の低い空に、大きな
流星っぽいものが見えた気がしたんだけど、もしかして…
と思って、調べてみたら、
https://twitter.com/dfuji1/status/1296823163876040706
さっき火球が流れたっぽい。
…でも、時間が1時間半ほどずれてる。どうやら違うもの
だったみたいだな。SonotaCo見ても、オイラが思ってた
ものは報告されてなかった…。残念。
|