AVRマイコンのSUT、BODヒューズ
Arduino-UNOのようにIPLがプログラムされた出来合いの
マイコンを使う時はなにも考えなくて済むのですが、
「UART←→IrDA」変換IC、MCP2122のクロック供給 #2
でのATtiny13AやATtiny25~85のようにAVRマイコンを
「裸」のままプログラムする時に忘れてはならないのが
ヒューズビットの書き換えです。
※これをしないままだと・・・
「動いたけど、なんか遅いぞ」
「なにやら、音が低い」
なんてことが生じます。
これはCKDIV8ヒューズが
デフォルトである1/8になったまま
だから。 よくある話です。
今回、ATtiny13Aをゴソゴソしたので、
「BODレベル」と「SUT:Start up time」の様子を調べて
おきました。
BODが電圧低下検出回路の電圧設定。
SUTではBOD有効、Fast rising powerか
Slowly rising powerかを切り替えます。
この表を見て・・・疑問が生じませんか?
「SUT 0,0」だと「BOD enabel」。
ところが「0,1」や「1,0」になるとrising powerのことが
書かれていますが、BODがどうなるか記されていません。
この表の読み方として、
・BODを使いたい時は「SUT 0,0」に。
これはこう読めます。
・SUT 0,1や1,0だとBODはオフになるのか、
それともオンにしてくれるのか?
表からの情報はありません。
SUT 0,1 1,0でどうなるのかを実際に確かめてみました。
上側の波形はタイマーコンペアマッチ出力(153.6kHz出力)。
初期設定でパルスを出しています。
下側が電源電圧。 ゆっくり5Vまで上昇させてからオフ。
BODのヒューズは4.3Vに設定。
まず、SUT 0,0で「BOD enable」に設定。
電源電圧がBODに到達後、リセットが解除されて
すぐにプログラムが走り始め、出力パルスが出ています。
次にSUT 1,0にしてSlowly rising powerに。
電源電圧がBODに到達後、少し遅れてから
リセットが解除されて走り始めている様子が見えます。
つまり、SUT 0,1 1,0でも設定したBODが有効になる
ということで、BODは無視されるのかという心配は無用と
なりました。
| 固定リンク
「重箱の隅」カテゴリの記事
- 月の夜部に★を描く:太田忠司さんの本でも(2022.08.03)
- 月の夜部に★を描く・・・新たな可能性(2022.08.01)
- 「月」の話、あれこれいちゃもんを(2022.07.27)
- 割り込みと絡むクリチカルな制御 変数にはVolatileを!(2022.07.26)
- Atmega328P タイマー/カウンタ1の高速PWM動作(2022.07.25)
「AVRマイコン」カテゴリの記事
- パルスジェネレータを作ってみた:16MHzクロックを追加(2022.08.07)
- Arduino-UNOでパルスジェネレータを作ってみた(2022.08.05)
- 割り込みと絡むクリチカルな制御 変数にはVolatileを!(2022.07.26)
- Atmega328P タイマー/カウンタ1の高速PWM動作(2022.07.25)
- シリアル通信ボーレートとクロック周波数(2022.07.07)
コメント