HT36M4
Wavetable ROM
The ST15~ST0 are used to defined the start address of
each sample on the wavetable and read the waveform
data from the location. HT36M4 provides 17 output ad-
dress lines from WA16~WA0, the ST15~ST0 are used
to locate the major 12 bits i.e. WA16~WA5 and the un-
defined data from WA4~WA0 are always set to 00000b.
So the start address of each sample have to be located
at a multiple of 32 bytes. Otherwise, the sample will not
be read out correctly because it has a wrong starting
code.
Stack Register
-
Stack
This is a special part of the memory which is used to
save the contents of the program counter only. The
stack is organized into 8 levels and is neither part of the
data nor part of the program space, and is neither read-
able nor writeable. The activated level is indexed by the
stack pointer (SP) and is neither readable nor writeable.
At a subroutine call or interrupt acknowledgment, the
contents of the program counter are pushed onto the
stack. At the end of a subroutine or an interrupt routine,
signaled by a return instruction (RET or RETI), the pro-
gram counter is restored to its previous value from the
stack. After a chip reset, the SP will point to the top of the
stack.
If the stack is full and a non-masked interrupt takes
place, the interrupt request flag will be recorded but the
acknowledgment will be inhibited. When the stack
pointer is decremented (by RET or RETI), the interrupt
will be serviced. This feature prevents stack overflow al-
lowing the programmer to use the structure more easily.
In a similar case, if the stack is full and a CALL is subse-
quently executed, a stack overflow occurs and the first
entry will be lost (only the most recent eight return ad-
dress are stored).
Data Memory
-
RAM
The data memory is designed with 2´256´8 bits. The
data memory is divided into three functional groups:
special function registers, wavetable function register,
and general purpose data memory (2´192´8). Most of
them are read/write, but some are read only.
The special function registers include the Indirect Ad-
dressing register 0 (00H), the Memory Pointer register 0
(MP0;01H), the Indirect Addressing register 1 (02H), the
Memory Pointer register 1 (MP1;03H), the Accumulator
(ACC;05H), the Program Counter Lower-byte register
(PCL;06H), the Table Pointer (TBLP;07H), the Table
Higher-order byte register (TBLH;08H), the Watchdog
Timer option Setting register (WDTS;09H), the Status
register (STATUS;0AH), the Interrupt Control register
(INTC;0BH), the Timer/Event Counter 0 higher-order
byte register (TMR0H;0CH), the Timer/Event Counter 0
l o w e r -o r der by t e r e g is te r ( T M R 0 L ;0 D H ) , th e
Timer/Event Counter 0 control register (TMR0C;0EH),
Rev. 1.00
7
0 0 H
0 1 H
0 2 H
0 3 H
0 4 H
0 5 H
0 6 H
0 7 H
0 8 H
0 9 H
0 A H
0 B H
0 C H
0 D H
0 E H
0 F H
1 0 H
1 1 H
1 2 H
1 3 H
1 4 H
1 5 H
1 6 H
1 7 H
1 8 H
1 9 H
1 A H
1 B H
1 C H
1 D H
1 E H
1 F H
2 0 H
2 1 H
2 2 H
2 3 H
2 4 H
2 5 H
2 6 H
2 7 H
2 8 H
2 9 H
2 A H
2 B H
R ig h t v o lu m
c o n tro l
P F
D A H
D A L
D A C
C h a n n e l n u m b e r s e le c t
F r e q u e n c y n u m b e r h ig h b y te
F r e q u e n c y n u m b e r lo w b y te
S ta r t a d d r e s s h ig h b y te
S ta r t a d d r e s s lo w
R e p e a t n u m b e r lo w
C o n tr o l r e g is te r
b y te
b y te
R e p e a t n u m b e r h ig h b y te
W a v e ta b le F u n c tio n
R e g is te r
A C C
P C L
T B L P
T B L H
W D T S
S T A T U S
IN T C
T M R 0 H
T M R 0 L
T M R 0 C
T M R 1 H
T M R 1 L
T M R 1 C
P A
P A C
P B
P B C
S p e c ia l P u r p o s e
D A T A M E M O R Y
In d ir e c t A d d r e s s in g R e g is te r 0
M P 0
In d ir e c t A d d r e s s in g R e g is te r 1
M P 1
2 F H
3 0 H
G e n e ra l P u rp o s e
D A T A M E M O R Y
(2 0 8 B y te s )
: U n u s e d .
R e a d a s "0 0 "
F F H
RAM Mapping
the Timer/Event Counter 1 higher-order byte register
(TMR1H;0FH), the Timer/Event Counter 1 Lower-order
byte register (TMR1L;10H), the Timer/Event Counter 1
Control register (TMR1C;11H), the I/O registers
(PA;12H, PB;14H), the program ROM bank select
(PF;1CH) and the I/O Control registers (PAC;13H,
August 15, 2005