[新]なんでも日記[新]なんでも日記ジャンル不定の日記です。中華AVRプログラマがニセUSBaspだったんで、ATmega644pでUSBaspを作ろうと考えているのだが、情報まとめ。0xEF=0b11101111となっている。0b11100001となっているらしい。0001→1111に変えているぽい。CKOPTの意味はクロック種別により変わる。元の設定は0001で内蔵RC発振の範囲だが、内蔵RCで1MHzの設定らしい。内蔵RCの場合はCKOPTは常に1。1111は外部発振子の範囲だが、CKOPTとCKSEL3-1の組み合わせにより周波数範囲が変わり、CKOPTが0でCKSEL3-1が111の組み合わせは1.0MHzから上限なしの設定らしい。外部発振子の際のCKSEL0は、SUT1,0との組み合わせで起動時間遅延設定となるらしい。0b01100010CKOPTは無く、CKSEL3-0はATmega8と同じく下位バイトの下位4bit。ATmega8と同じでCKSEL3-0の値でクロック元が決まるが、範囲がちょっと違う。初期値は内蔵RCで、内蔵RCの範囲が一つしか無く最大の8MHzになるようなのだが、ヒューズ下位バイト最上位ビットのCKDIV8が初期値の0だとCLKPR(クロック前置分周レジスタ)を設定することで分周することが出来るらしい。CKDIV8が0にされるとCLKPRは0011の8分にリセットされ、初期値もそうで出荷時のクロックは8MHzが8分されて1MHzらしい。CKDIV8が1にされるとCLKPRは0000になるとのこと。この機能使うと最高周波数以上の発振子を使うことも出来るぽいようなことが書かれてる。外部発振子は低電力モードと全振幅モードがあるが、低電力だとノイズの影響を受けやすいらしい。モードのCKSEL3-1は011固定で0.1-20MHzとのこと。0b01100010→0b01100010にすれば良さ気かな?USBaspの配布ファイル内にはバイナリが入ってるが、ATmega8用とATmega88用で別のバイナリが用意されてるので、コンパイルもしないとダメぽい。コード内にもターゲットデバイスを設定するような箇所があるのを確認したが、ターゲットデバイスの設定以外は変更しないで良さ気かな?USBaspの回路はUSBtinyと同じ感じになっているが、V-USBみたいにツェナーダイオードじゃなくて2連順方向ダイオードで平気かな?マイコン自体は5V動作させたほうが良いのかな?ってな感じ。V-USB派生のAVR-CDCは内部発振8MHzのATtiny45でクリスタル無しで動作するらしいが、クリスタルなし化は難しいだろうしクリスタル届いてから試す。中華USBaspがパチもんだった・・・[AD]rentafree.net。