디오의 메모리 구조에 대한 설명
메모리 구조
DIO32 디바이스 메모리는 내부 데이터 메모리와 외장 프로그램 메모리로 되어 있습니다.
1.1 외장 프로그램 메모리 구조
DIO32 디바이스는 16비트 프로그램 카운터(PC)를 가지고 있습니다. 기본적으로 256×8비트부터 64K×8비트 외장 프로그램 메모리 공간을 어드레스 지정할 수 있습니다.
프로그램의 시작 어드레스(RESET)는 처음 위치인 0h 입니다.
DIO32 디바이스는 개발자가 프로그램 코드 작성시 함수를 중첩하여 4레벨까지 호출할 수 있습니다.
그림 1.1: 프로그램 메모리 맵과 스텍(STACK)
|
|
PC<15:0> |
|
|
|
|
|
|
|
|
|
|
|
내장 스텍 1 |
|
|
|
내장 스텍 2 |
|
|
|
내장 스텍 3 |
|
|
|
내장 스텍 4 |
|
|
|
내장 임시변수 |
|
|
|
내장 임시변수 |
|
|
|
내장 임시변수 |
|
|
|
내장 임시변수 |
|
|
|
|
|
|
FFFFh |
|
|
|
|
|
|
|
|
|
|
|
: |
|
|
|
: |
|
|
|
|
|
|
|
|
|
|
|
000h |
리셋백터 |
|
|
|
|
|
|
|
DIO32 디바이스 |
|
테이블 1.2.2: DIO32 디바이스의 변수 파일 맵(RAM)
|
어드레스 |
이 름 |
비트7 |
비트6 |
비트5 |
비트 4 |
비트 3 |
비트 2 |
비트 1 |
비트 0 |
|
|
|
|
20h (32) |
CntKIN0 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
PWM0 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
21h (33) |
CntKIN1 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
PWM1 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
22h (34) |
CntKIN2 |
KOn |
KHold |
KSetup(0~3)) |
X |
X |
X |
X |
||
|
|
|
PWM2 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
23h (35) |
CntKIN3 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
PWM3 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
24h (36) |
CntKIN4 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
PWM4 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
25h (37) |
CntKIN5 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
PWM5 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
26h (38) |
CntKIN6 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
PWM6 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
27h (39) |
PWM7 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
28h (40) |
CntKIN8 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
ComTX |
TxDone |
TxStart |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
29h (41) |
CntKIN9 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
CntTone |
X |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
2Ah (42) |
CntKIN10 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
PWM10 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
2Bh (43) |
CntKIN11 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
PWM11 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
2Ch (44) |
IR |
IrDone |
IrStart |
X |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
|
PWM12 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
2Dh (45) |
CntKIN13 |
KOn |
KHold |
KSetup(0~3) |
X |
X |
X |
X |
||
|
|
|
PWM13 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
2Eh (46) |
ComRX |
RxDone |
RxStart |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
|
PWM14 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
2Fh (47) |
PWM15 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
30h (48) |
0 RxD |
D7 |
D6 |
D5 |
Cnt0 |
D3 |
D2 |
D1 |
D0 |
|
|
|
31h (49) |
1 RxD |
D7 |
D6 |
D5 |
Cnt1 |
D3 |
D2 |
D1 |
D0 |
|
|
|
32h (50) |
2 RxD |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
33h (51) |
3 RxD |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
34h (52) |
4 RxD |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
35h (53) |
5 RxD |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
36h (54) |
6 RxD |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
37h (55) |
7 RxD |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
38h (56) |
IrData0 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
39h (57) |
IrData1 |
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
|
|
|
3Ah (58) |
IrData2 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
|
|
|
3Bh (59) |
IrData3 |
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
|
|
|
3Ch (60) |
Cnt0 |
X |
X |
X |
X |
X |
X |
X |
X |
|
|
|
3Dh (61) |
Cnt1 |
X |
X |
X |
X |
X |
X |
X |
X |
|
|
|
3Eh (62) |
MotorScaleA |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
|
|
3Fh (63) |
MotorScaleB |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|