在庫復活記念!!ATTINY202を限界まで使い倒す!

●ATTINY202復ッ活ッ!
プーチンが突然けぉって顔真っ赤にしてウクライナに侵攻してから半導体の納期が
さらに悪化する兆しを見せやがっておりますが、その中でATTINY202の在庫
秋月電子通商さんに復活しました!!

なんか20円値上がりしてる気がしますがたぶん気のせいでしょう…そんな
細密なこと気にするより在庫が復活するのが超重要事項なのです!!!!

扱いが非常に簡単かつ非常に安価に使いまわせるので様々なシーンで
活躍していくことでしょう!!


●ていうわけでねむいさんも本腰入れて使ってみました
昨年になってATTINY202のポテンシャルに気付いた方々が爆買いに走り気づいた
時にはすっからかんとなっておりました。ねむいさんもちょっと動かして満足して
ほっぽっていましたが
他の方の使用例に刺激されてATTINY202のROM容量
限界まで使ってみました!!!


なお,ATTINY202はメモリリソースが非常に少ないです…。
ROM:2048Byte
RAM:128Byte


ねむいさんいつもSTM32H7等の大容量メモリを扱ってたのでパワーゲーム
慣れきってしまったせいか逆に少ないリソースのマイコンは新鮮に感じます。

私のモットーとしては
1.スタックを考慮してRAMはなるべく使用しない。
2.ROMもメモリ容量圧縮しつつギッチギチに使う


で攻めてみます!

●作例1:1-Wire温湿度計
過去にSTM32G0を使用したときのAosong製AM2322Bを今回も採用して出力をUART
から吐くようなプログラムを作ってみました!


ROM容量は2037Byte....2048バイトまで10バイト弱…これはギリギリ


-fno-split-wide-typesをコメントアウトしてみました…
2バイト削減…もはや数バイトの戦い!


関数突入時のプロローグ/エピローグルーチンをあらかじめ作ってROM容量を削減
する効果がある-mcall-prologuesをあえてコメントアウト!
使用する関数がごく少ない場合は逆にコメントアウトしたほうがROM容量が減って
お得です☆これで2027バイト…まぁこれでよいでしょう…!

なお、XMEGAとかでこのオプションちゃんと付けてないと確実に容量が膨れ上がって
爆死します☠



動いたところはこんな感じです。
内蔵クロックが20MHzもあるので230400bpsでも余裕です☆


●作例2:2-Wireで定番LCD(IC:HD44780)を動かす
すでにI2Cでキャラクタ液晶動かすネタはほかの人がやってしまっているので
ひねくれ者のねむいさんは11年前の無理やりすぎるやつをやってみました!
SUNLIKE製の安く購入できるものに代表される2行16文字で内臓コントローラICが
HD44780互換なキャラクタ液晶モジュールを受動部品を追加してたったの2線で
動かしちゃう実用性皆無の超力技
です!中国だもんなア…
↑のリンク先で牛という単語が散見しますが中国では牛を肯定的な意味で使用
 されることがあるとのことです。この力業は文字通り強い牛を見るようだ。



ソースコードは上リンクの中国の人のATMega16のものをベースに汎用で幅広く使えるように
一般公開向けに現在整備中です!間に合わなかったわけじゃないよ!


しかし…


そこに立ちふさがるROM容量の壁!orz
ああっつ!「作例1:1-Wire温湿度計の計測」結果をUART出力の代わりにかっこよく
表示して今回の記事を〆たかったのに容量ぜんぜん足らない…!
あと500Byteあれば…


・・・


15分ほど頑張りましたが挫けてしまい文字列表示ルーチンだけ走らせて敗戦の弁を
述べさせていただきます…orz







というわけでSTM32に慣れ切った私の体には負担が強すぎたのはわかりましたが
ATTINY202の(ROM容量の)イッパイ使用できて非常に満足しております…!
今回の記事で紹介した作例のソースコードはまだ公開用に整備中なのでもうしばらく
お待ちいただければ幸いです。


ところでねむいさん今回はUPDIプログラマ使ってなくてなんかUSBシリアル変換
だけで開発してない?ですって!?それの詳細は次回以降でみっっっちりと解説
させていただきますよぅ♥
ATTIY202売り切れしたのってこれ絡みが原因だったかもれませんがこうご期待!

Comments

Post a Comment








Go to top of page