ずっと前からうまく動かなくて放置していたのだが、久々に思い立って試してみた。
シリアルポートに0xff=>0x55=>0x00を、それぞれボーレート/10*2回ずつ送信する。
テスターで電圧を計ればHigh=>Mid=>Lowと2秒ごとに電圧が変化するはず。
んで、試したら切り替わりに10秒以上もかかるので、ボーレートクロックの設定誤りと判定。
LowヒューズのCKDIV8で8分周されているためだった。
なぜだか、CPUは1MHzでも、シリアルポートやタイマーは8MHzで動くものと思い込んでしまっていた。
データシートを見てもはっきりした説明が見当たらないのだが、ぬかったなぁ〜。
ちなみにhidspxで以下の操作をした。
Lowヒューズへ0xe4を書き込み
% hidspx -phu -fl0xe4
確認する
% hidspx -phu -rf
Detected device is ATtiny2313.
Low: 11100100
||||++++-- CKSEL[3:0] システムクロック選択
||++-- SUT[1:0] 起動時間
|+-- CKOUT (0:PD2にシステムクロックを出力)
+-- CKDIV8 クロック分周初期値 (1:1/1, 0:1/8)
High:11-11111
|||||||+-- RSTDISBL (RESETピン 1:有効, 0:無効(PA2))
||||+++-- BODLEVEL[2:0] (111:Off, 110:1.8, 101:2.7, 100:4.3)
|||+-- WDTON (WDT 0:常時ON, 1:通常)
||+-- SPIEN (1:ISP禁止, 0:ISP許可) ※Parallel時のみ
|+-- EESAVE (消去でEEPROMを 1:消去, 0:保持)
+-- DWEN (On-Chipデバッグ 1:無効, 0:有効)
Ext: -------1
+-- SPMEN (SPM命令 1:無効, 0:有効)
Cal: 89 87
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿