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



今日は、M2だったんだけど、ポン子あったんだよな。

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

台風9号は過ぎちゃったし、夜は気温そこそこ下がっていた
から、10号警戒でM2だったのかな。




スイッチサイエンスから届いたArduino Nano Everyを動かして
みることに。

箱。Unoと同じかちょっと小さい箱かな?(計ってないので
正確なサイズは判らないけど、まぁスイッチサイエンスなら
送料200円で届いた)





中身。説明書みたいのついてたけど、まだ読んでない。

ちょっと困るのは、ピンヘッダがはんだ付け済みなんだけど、
このピンの太さがレギュラーなこと。ちょっと太いので、
秋月細ピンヘッダと違って、ブレッドボードではちょっと
使いにくい。(挿さらなくはない)





とりあえずPCに繋いでみる。LEDが光る。(左下手前側の
橙色のLED)



さっそくBLINKのスケッチを書き込んでみる。
…うん。普通にLED点滅するな。まぁ当然なんだけども、
中華製Mega4808の互換ボードと違って、ピンアサインは
Unoなんかと同じだな。そりゃそうだ。じゃなければ困る。


続いて、Mega4808を数枚、スケッチ書き換え不能に
陥れた、ASCIIテーブルをシリアルモニタに表示する
やつをやってみる。

…出た。出たけど、この後ちゃんと他のスケッチをアップ
出来るのかな?と思ってやってみた…。大丈夫。普通に
アップできる。まぁ、当然といえば当然なんだよな。



さてここからが本題。

6kBのメモリ空間を使いたい理由は、何と言ってもOLED、
G-LCD用の2kBの仮想VRAMを確保すること。
なので、以前作ったライブラリを動かしてみるという
わけ。

問題なのは、CPUコアは旧来のMega328系とは異なり、
xmegaが入っているMega4809なので、SFR周りが全く
異なるはず。

ただし、IDEの環境に「レジスタエミュレーション」が
組み込まれているので、それがどのくらい使えるもの
なのか?っていうのが、このOLED、G-LCDライブラリを
使う上での課題。

まぁ、GPIO周りをエミュレーションするロジックは、
それなりに頭の中で想像できるので、技術的にはそれほど
難しくなさそうではある。けど、速度が問題になる。
直接ポートをアクセスするってなると、GPIO端子の並び
と各ポートの区切り方が、UnoなどとEveryではだいぶ
異なっているはずなので、エミュレーションするなら
当然ながら1ビット単位に切り離してそれぞれ処理するはず。
1ビットだけアクセスしたい時にも、8ビット全部について
内部では処理しているんじゃないかなと。
(もっと賢い処理してたりするのかなぁ?そのへんは
よくわからん)

で、以前作ったテストプログラムを動かしてみようと。
こないだは、SSD1306のI2C版をコンパイルだけしてみたん
だけど、コンパイルは通ってた。

今日は、ST7565互換のUC1701チップ搭載のG-LCDをテスト
に持ち出した。っていうのも、Nano Everyは5V出力なので、
5VトレラントのG-LCDじゃないと直結できなくて、で、
ちょっと考えてみて、こないだ5V Arduino用に自作した
UC1701用シールドがあるじゃん…と。

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

これ、HC4050で電源変換を行う回路が載ってるので、電源線
と最小限の信号線を配線してやれば、5V版のNano Everyでも
動くはずだよなと。



まずとりあえず何も考えずに動かしてみる。

あぁ、エラー出た。どうやら、ADC周りのレジスタをいじって
いたところでエラー出た。
どうやら、ADC関係のレジスタについては、エミュレーション
してくれないみたいだな。まぁ、普通に考えれば、GPIOなんか
とは違って、簡単にエミュレーションできないだろうから
あたりまえといえばあたりまえだろう。仕方ない。

そもそもなんでこのスケッチ中でADC関係のSFRいじってたん
だっけな?と思って思い出してみる…
あれだ。Arduinoオシロを作るためのスケッチを元に作った
テストプログラムなんだけど、UnoのADCは、デフォルトでは
ちょっと遅いので、サンプリングタイムを短くするために、
その辺の設定してたんだったな。

このテストプログラムでは、ADCのサンプル速度は特に関係
ないので、この設定処理部分をコメント化しておく。
(ADC自体はanalogReadを使っている)





さて、改めてコンパイル。…

またエラーが出ちゃう。今度は…タイマー関係。タイマー1
の設定をしているレジスタ周りでエラー出ている。
これも、ADC同様に、単純にレジスタをエミュレーション
するのは難しいだろうからな。そんなもんだろう。

タイマー関係をテストしたいわけじゃないので、コメント
にしちゃえばいいんだけど、どんなところで使ってた
かなぁ?と思ってソース眺めてみると、どうやらこの
テストスケッチ中ではタイマー割込み使ってなかった。
(タイマー割込み使ってる処理はごっそりカットして
あった…なのに、初期設定だけは残ってたみたいだな)

初期設定もなにもないだろうと思って、これもコメント化。





あらためてコンパイル~書き込み。

出た。表示できた。(バックライトに輝度があってしまって
いるので、ちょっとくらい写真で判りにくいけど、シールド
上のG-LCDがちゃんと表示されている。





画面のアップ。文字、ドット描画、線描画、ビットマップ描画
とも、ちゃんと表示できてる。





速度的には、まぁI2Cよりは全然速いことは判るんだけど、
以前Unoで実験で動かしたときの速度データがパッと出て
こないので、にわかに比較できない。
だけど、まぁ、このくらいなら、オシロ表示としてはあまり
問題なさそうな速度が出ているなぁ。多分。
グラフィック表示ライブラリとしては、Unoなんかと共用
出来そうだし、それ以外のADCやタイマー割込みなんかは
このライブラリとは別件だから、切り分けて考えてもいい
わけだな。



実験してみてなんとなくわかったこととしては、GPIO関係
のレジスタは、普通にエミュレーションされるっぽい。
(出力は大丈夫っぽいけど、入力は今回実験してないのに
注意。あと、速度は実測できてないのでやはり注意)

けど、タイマーとかADCとかのレジスタまでは、単純な
エミュレーションでは動作できないはずなので、そこまでは
さすがにエミュレーションしていないってあたりかな。


ArduinoオシロのためにNano Everyを使うには、

・ADCのサンプル速度を調べて、デフォルトでUno同様に
 遅い場合には、早めるための設定を調べる
・タイマー割込みは何にしても必要。ライブラリを探すか、
 自作する必要がありそう

ってあたりが課題だろうな。



あと、実験をちょっと行うにしても、OLEDやG-LCDの場合、
3.3V変換が必要だったりとか、色々あるので、やっぱ
普通サイズのシールドにサクッと挿せるものが欲しい
と思ったりした。

以前作った、

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

こういうやつがあれば済むんだけども、確かaitendoで
以前買った

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

このI/O拡張シールドはNano用だったと思うので、そのまま
使えるんじゃないのかなぁ?高さがちょっと心配あるけど、
上手く使えばこれ組み合わせて、サクッと実験できるんじゃ
ないかなと。
あと、Nano Everyで困るのは、シルクが背面に書いてある
こと。一旦ブレッドボードに挿しちゃうと、公式サイト
とかに載ってる背面の写真を見ながらじゃないと配線が
できない。っていう意味でも、やっぱりI/O拡張シールド
必要な気がするよな。





https://weathernews.jp/s/topics/202009/030225/


台風10号、予想ではさらに風速増して、80m/sで奄美付近を
通過するらしい。80m/sって、すっごい数値だな。
(288km/h)


https://sippo.asahi.com/article/12824485

>台風19号で猫と同行避難 やっておいて&おけば
>よかったこと


https://twitter.com/KulasanM/status/1301335999490871297

各種報道機関より、NERVの方が格上。





https://twitter.com/rei15448346/status/1300714940957745153

おぉ。イチゴスペシャル、有能。
オイラ、イチゴスペシャル見かけても、あえて買って食べよう
とか思わなかったんだけど、まさかこういうことに使えるとは。





https://twitter.com/gigazine/status/1301146628418609153

ヒキガエル。へぇ。





https://twitter.com/nekoyamax/status/1301456085568479232
https://twitter.com/yukiho_dx/status/1301175716898156545
https://twitter.com/hinocchi/status/1301159821786324992

明治時代以前に戻したいってことなのかな。
公助だけで十分。




コメント ( 0 )