在庫復活記念!!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容量の)イッパイ使用できて非常に満足しております…!
今回の記事で紹介した作例のソースコードはまだ公開用に整備中なので
もうしばらくお待ちいただければ幸いです。

20231201追:
ATTINY202の無理やりすぎるプロジェクトを上げました。
ついてこれる人だけついてきてください…!!!

20231201追:




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

Go to top of page