「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



久々に、ワンパンマン来てた。オリジナルの方。

http://galaxyheavyblow.web.fc2.com/fc2-imageviewer/?aid=1&iid=130

オリジナルの方はなかなか更新されないのはともかく、
「となりのヤングジャンプ」の方のワンパンマンも、
7月末からまだ来てないんだよな。期待して待つ。





Arduino Nano Everyの、GPIO関係のレジスタエミュレーション
が、実態としてどのくらいの速度なのかについて、Mega328と
Mega4809使って、SPI接続G-LCD(ST7565互換)の表示速度を
見比べてみた。

ちなみに、以前の

https://brown.ap.teacup.com/nekosan0/2248.html

この時の計測で使ってた、SPI接続でOLED表示したときのこの
三角形は、4秒って書いてあるけど、これは3.3Vで動かすために
16MHzじゃなく、8MHz版のArduino Pro互換ボードでの値。
実際は、16MHzだとこの半分で表示できる計算。


いざ、やってみる。

まず、Mega328(16MHz)とG-LCD(ST7565互換)だと、この
三角形を4方向分(4回)表示させると、やっぱり2秒ほどで
描画が終わる。

で、懸案のMega4809(16MHz)と同じG-LCDで表示させてみると、
3~4秒くらい。倍までいかないけど、7割くらいは時間が長く
なる感じ。

描画処理自体は、SPI通信(というかGPIOアクセス)以外の
時間もあるので、単純にこの時間比で遅くなってるってわけ
ではないので、GPIOアクセス処理自体はこれ以上にかなり
遅いんだろうと思うんだけど、ソフトウェアSPI通信みたいに
頻繁にGPIOアクセスするような処理で、この程度の遅れだと
すれば、実用上あまり問題にはならなさそうな気がするなぁ。

なにしろ、3.3V版(8MHz版)Arduinoと、表示速度だけで
考えれば差がない、というか、ちょっと速いくらいだからな。
(少なくとも、I2C通信使ったり、素のdigitalWrite使ったり
するのとは、桁が1個以上違う)

というわけで、何気に、Mega4809の「レジスタエミュレーション」
を使ってソフトウェアSPI通信するのは、速度の点では特に問題
はなさそうな気がしてるところ。実用的にはだいじょうぶそう。




次。
コアがMega328系じゃなくなった(xmegaになった)ので、SFR
関係は思いっきり変わったんだろうなと思って、とりあえず
Mega4809のデータシートのタイマ関係とADC関係をちょっと
だけ眺めてみた。


まず、タイマ関係について。

データシート眺めてみる限りにおいては、あまり大きな差は
無いみたいな気がするんだけど、当然ながら、SFRのレジスタ名
なんかは思いっきり変わっているので、Mega328とかとは全然
互換性ないと思わないといけないな。

あと、Mega4809用に、MsTimer2みたいな便利なライブラリが
公開されているかなぁ?とか思って物色してみたんだけど、
どうやら見つからなかった。ひとまず見つけたのは、
SFRを直接いじったり、タイマ割込みで割り込みベクタに
処理が移った時に呼び出される関数を指定するための
もろもろを、実験的にコード書いてみた的な感じのことが
書かれていた。

https://forum.arduino.cc/index.php?topic=630695.0

とりあえず、このあたりが判れば、あとはデータシートと
にらめっこで、タイマ割込みでの関数呼び出しはなんとか
なりそうな感じがする。

あと、ちょっと気になった点として、Mega4809のデータ
シート読んでたら、Nano EveryでPWM出力可能な端子は
旧来Arduinoの6本から、1本減って5本っぽいって話。
(あとでもうちょっと調べなおしてまとめたい)


次。ADCについて。

ADC関係も、データシート読む限りは、Mega328とかとは
あまり大きな変化はないみたいだったんだけど、SFR関係
は大きく変わってしまっているので、直接的な互換性は
無いものと考えないとダメだな。

一つ朗報としては、(データシート読んでみる限りに
おいては)最大精度(10ビット)でADCを行うのに、
1回のサンプリング時間がだいぶ短くなっているっぽい
なぁ。

ADCのベースクロック(ディバイダで分割された後にADC
に供給されるクロック)は、旧来のArduinoでは最大でも
200kHzまでだったのに対して、



Mega4809では、最大で1.5MHzになっている。
(おぉ!スバラシイ!)



なので、ざっくり8倍弱の速度でサンプリングが可能に
なっているってことが判る。(あと、プリスケーラが7ビット
から8ビットになってるんだけど、周期が長くなる方向に
拡張されていて、あまりこの効果はうれしくなさそう)

この、高速にサンプリングができる要因として、多分、
ADCの入力回路(サンプル&ホールド回路)の手前に現れる、
内部抵抗の値が変わったんだろうな。
データシートによると、旧来のMega328では、シリーズ抵抗
の値が、1~100kΩってことになっている。



対して、Mega4809の場合は、その辺が明示されたなかった
んだけど、多分抵抗値が小さくなってる。この入力回路周り
にあるシリーズ抵抗が、10kΩかそれ以下くらいになって
いるんじゃないかな。
入力インピーダンス自体は10kΩ以下ってことで変わりないん
だけど、内部の抵抗が多分小さくなっていて、サンプル時間が
大幅に小さくなっているんじゃないかな。これはうれしい変更
点って言えそう。



つまり、ADC内部のサンプル&ホールド用のコンデンサにチャージ
する経路のシリーズ抵抗が、一桁ほど小さくなっていて、その
おかげで、最大精度でADCを行う際にも、旧来の一桁短い時間で
ADCが行えるよ、と。
従来は、可聴域を最大精度でサンプリングするのは、ギリギリ
アウトっぽい感じだったんだけど、Mega4809なら10ビット精度
最大でも大丈夫っぽいなと。

これはうれしい変更点だなぁ。ただ、色々ネットを彷徨って
いた範囲では、Arduino-IDEのデフォルト設定(というか、
Board情報での設定)で、Nano Everyのデフォルト設定の
サンプリング速度がどのくらいに設定されているのかが
判らなかった。
これは多分、またCoreのソースを読まないといけないパターン
なんじゃないかな…。

なんだかんだで、Coreのソース読むのは好きじゃないし、
そもそも、C言語のプリプロセッサ向けのコードが埋まった
ソースを読むのが、ものすごい好きじゃないんだよな。
プリプロセッサに処理させるコード自体は、それこそ
プリプロセッサにさせておけばいい話で、人間様がいちいち
読み解くのは何か違う気がしてる。

Mega4809用のコンパイルで、プリプロセッサを通した後の、
実際のCコンパイラに読み込まれるソースだけを簡単に
眺められるのであれば、それを眺めたいんだよな。
そしたら比較的簡単に、あれこれ調べがつくような気が
するんだけどな。


とりあえず、目下水面下であれこれもがいているところ。
Mega4809の6kBのSRAMを使って、ブルジョアコーディング
するのは、なかなか魅力的な感じがぬぐえないんだけど、
問題は、GPIO以外のSFRの互換性かなぁ。





https://twitter.com/UTiCd/status/1301760021286367232

これは…もしかして「日本版タピオカ」なのでは?
(わらびもちは飲み物)





https://twitter.com/hayakawa2600/status/1301497096051159040

>長い時間をかけて為政者に育成されきた〈自己責任
>マッチョ〉はほんと迷惑

自己責任マッチョっていう単語を覚えた。ほほう。





https://twitter.com/kenfawcjp/status/1301540466341474304

>決められた「秩序」に服従するだけの「品のある」記者
>など必要ありません。

https://twitter.com/reishiva/status/1301539180271468545

>「品位のない記者」

…これを見てふと思い出したのは…

https://twitter.com/hally_sen/status/1280365849937731584

>昔、先輩に言われた事
>「声のでかい客の『お前の態度が気に入らない』は
>『貴方の実務は完璧で何もケチをつける要素が見つかり
>ませんでした。せめて負け惜しみを言わせて下さい。
>ボクの負けです』と言う意味だから実質勝利」
>ヨシ!

ほほう。ってことは、某記者の価値ってことか。

https://twitter.com/GoodBye_Nuclear/status/1301434502238015488

「コミュ障」じゃぁ首相務まらないよな。
”よくくれんされた某国民”相手ならともかく、海外の
海千山千の政治家相手に、コミュ障が外交やったら、
どう考えても「負け戦」にしかならないもんな。


そもそも、持病が悪化したとかで、国政を放り投げた
某氏のその後、入院もせず何してるのかなぁ?とか思って
居たんだけど、なんか台風10号にかんしてあれこれやって
いるっぽいなぁ。なんで?入院しろよとおもってたんだ
けど、

https://twitter.com/tkatsumi06j/status/1300616380467744768

>「潰瘍性大腸炎は再発しておらず」
どうやら、単に仮病だった。最後の最後まで嘘つきだったな。





https://news.yahoo.co.jp/byline/hashimotojunji/20200904-00196701/

>ダムの事前放流がはじまっている。見に行ってはいけない

ほほう。

それにしても、台風の目が…

https://www.youtube.com/watch?v=M0AGTYL6pi4

ものすごいくっきり写ってるなぁ。台風の目がくっきりな
ときは、台風の回転する力(=風力)がものすごいから、
被害も甚大になりがちっていうような話を聞いたな。
しかも、台風の雲の大きさが、日本の半分くらいを覆って
しまうサイズだもんな。

本当に、シャレにならない台風なんだよなって感じが
ひしひしと伝わってくるよな。



コメント ( 0 )