AVR ATtiny2313
データシートなどからその概要
メモリ | 2kバイトフラッシュメモリ 128バイトEEPROM 128バイトSRAM |
|
タイマ | 同様機能のタイマー0(8ビット)と タイマー1(16ビット) が1つずつ 4つのPWM出力可能 タイマー1にはインプットキャプチャがある |
|
IO | 18本 | |
アナログコンパレータ | あり | |
A/D変換 | ナシ | |
ウオッチドッグ | 専用発信器つきWDTあり | |
通信 | USI と USRT(全二重) |
|
RC発信器内蔵 | 校正付き 8M、4MHz | |
動作電圧 | 1.8-5.5V(2313V) 2.7-5.5V(2313) |
●ヒューズビット
上位バイト
下位バイト
内部発振器の校正
工場出荷時の内部発振の誤差を調整するためのレジスタ
名称 | ビット | 意味 | 規定値(出荷時) |
DWNEN | 7 | デバッグWIRE機能許可(0:有効、1:無効) | 1(デバッグWIRE不可) |
EESAVE | 6 | チップ消去からEEPROM内容保護(0:保護、1:未保護) | 1(未保護) |
SPIEN | 5 | シリアルプログラミング許可(0:ISP許可、1:ISP禁止) | 0(許可) |
WDTON | 4 | ウオッチドッグ有効(0使用する、1:使用しない) | 1(WDTはWDTCSR レジスタで設定) |
BODLEVEL3 | 3 | 3 2 1 1 1 1 :リセット禁止 1 1 0 :1.8Vリセット 1 0 1 :2.7Vリセット 1 0 0 :4.3Vリセット |
1(未設定) |
BODLEVEL2 | 2 | 1(未設定) | |
BODLEVEL1 | 1 | 1(未設定) | |
RSTDISBL | 0 | PA2がIOピンか(0)、RESET設定か(1) | 1(RESET設定) |
下位バイト
名称 | ビット | 意味 | 規定値 |
CKDIV8 | 7 | システムクロック8分周選択(0 : 1/8、 1: 1) | 0 |
CKOUT | 6 | システムクロック出力許可(0:出力する、1:しない) | 1 |
SUT1 | 5 | 1 0 (詳細は日データシートP15,16) 0 0 : BODリセット許可 0 1 : 高速立ち上がり電源 1 0 : 低速立ち上がり電源 1 1 : --- |
1(低速立ち上がり) |
SUT0 | 4 | 0 | |
CKSEL3 | 3 | 3 2 1 0 1 × × × : 外部発振 0 1 1 0 : 128k内部WDT発振 0 1 0 0 : 8M内部発振 0 0 1 0 : 4M内部発振 0 0 0 0 : 外部クロック信号 (詳細は日データシートP14,15,16) |
0(8M内部発振) |
CKSEL2 | 2 | 1 | |
CKSEL1 | 1 | 0 | |
CKSEL0 | 0 | 0 |
内部発振器の校正
工場出荷時の内部発振の誤差を調整するためのレジスタ
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
- | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | |
初期値(デフォルト) 0 このビットに1つでも1を書くと周波数が増加する 調整値 下表 |
OSCCAL値 | 公称周波数に対する割合 | |
MIN | MAX | |
$00(b:00000000) | 50% | 100% |
| | | | | |
$3F(b:00111111) | 75% | 150% |
$7F(b:1111111) | 100% | 200% |
●IOピン
PA(ポートA)、PB(ポートB)、PD(ポートD) と18本まで可能。
すべてのポートに内部プルアップ設定が可能
IOポート設定は少しPICなどと違うところがあり
データレジスタが出力用と読み取り(入力)用に分かれていて、別レジスタでする
- ポートB出力レジスタ PORTB (ポートAならPORTA)
- ポートB読み取り(入力)レジスタ PINB (ポートAならPINA)
そして変則的 ポート設定方法になっているところもある
- 方向設定レジスタ(DRR×) を入力設定にして
データレジスタ(PORT×)で1にすると 内部プルアップ設定になる。 - 方向設定レジスタ(DRR×)を出力設定にして
入力用データレジスタ(PIN×)で1にすると 出力データが反転になる。
ISP書き込みピンは
SCL、MOSI、MISO、RST(RESET)
●メモリ配置
フラッシュメモリ
1万回の書き換え可能
1k×16ビットで構成
32バイトの汎用レジスタ
でも全部同様に使えるわけでなく、制限がいろいろあります
汎用レジスタの項目参照
SRAMが$0060から。
直接アドレッシングでどこでも指定可能
(全体を網羅)
汎用レジスタ 32コ
でもいろんな制限あり (*更に下 参照 )
下のX,Y,Zレジスタに分類されるものは
2バイトくっつけて、インデックススレジスタとしても使用
32コもある汎用レジスタですが、いっぱいある! と喜んでもいられない制限があります。
汎用レジスタも区分により、いろんな制限があってなかなか複雑です。
アルゴ算法堂 では使用命令の制限がきれいに表になっていたので、そのまま使わせてもらいました。
これはまた なかなかハマり込みそうな制限たちです・・
reg | 命令の制限 | 乗算関係の制限 | ワード演算 | 機能 |
0 | LDI、ANDI、CPI、ORI SBCI、SUBI、CBR、 SBR、SER 不可 |
MULS、MULSU、 FMUL、FMULS、 FMULSU 不可 |
ADIW、SBIW 不可 |
乗算結果を格納 プログラムアクセス |
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
6 | ||||
7 | ||||
8 | ||||
9 | ||||
10 | ||||
11 | ||||
12 | ||||
13 | ||||
14 | ||||
15 | ||||
16 | ||||
17 | ||||
18 | ||||
19 | ||||
20 | ||||
21 | ||||
22 | ||||
23 | ||||
24 | MULSU、FMUL、 FMULS、FMULSU 不可 |
|||
25 | ||||
26 | インデックスX | |||
27 | ||||
28 | インデックスY | |||
29 | ||||
30 | インデックスZ | |||
31 |
参考資料
アルゴ算法堂 H8講座
電子工作-AVR goes on
スポンサーリンク
- twtter
- google+
- hatena