| The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers. |
single-chip CMOS microcontroller been designed highperformance using (
Top Searches for this datasheetsingle-chip CMOS microcontroller been designed highperformance using (Samsung Arrangeable Microcontrollers). Samsung's newest 4-bit core notable energy consumption operating voltage. select from three sizes: bytes. Except difference size, features functions KS57C5204 KS57C5208 identical KS57C5304, KS57C5308, KS57C5312 identical. With it's DTMF generator, watchdog timer function, versatile 8-bit timer/counters, KS57C5204/C5208 /C5304/C5308/C5312 offers excellent design solution wide variety telecommunication applications. pins available 42-pin SDIP 44-pin package KS57C5204/C5208, pins available 30-pin SDIP 32-pin package KS57C5304/C5308/C5312 assign I/O. vectored interrupts KS57C5204/C5208 four vectored interrupts KS57C5304/C5308/C5312 provide fast response internal external events. addition, advanced CMOS technology provides power consumption wide operating voltage range. KS57C5204/C5208 microcontroller also available (One Time Programmable) version, KS57P5208. KS57C5304/C5308/C5312 microcontroller also available (One Time Programmable) version, KS57P5308/P5312. KS57P5208/P5308/P5312 microcontroller on-chip 8K-byte (P5208/P5308) 12K-byte (P5312) one-time-programable EPROM instead masked ROM. KS57P5208 comparable KS57C5204/C5208, both function configuration. Also, KS57P5308/P5312 comparable KS57C5304/C5308/C5312, both function configuration. FEATURES Memory 4-bit 4,096 8-bit (KS57C5204/C5304) 8,192 8-bit (KS57C5208/C5308) 12,288 8-bit (KS57C5312) format Interrupts external interrupt vectors (KS57C5204/C5208) external interrupt vectors (KS57C5304/C5308/C5312) internal interrupt vectors quasi-interrupts Pins Input only: pins (KS57C5204/C5208) pins (KS57C5304/C5308/C5312) I/O: pins (KS57C5204/C5208) pins (KS57C5304/C5308/C5312) N-channel open-drain I/O: pins Power-Down Modes Idle: Only clock stops Stop: System clock stops Memory-Mapped Structure Data memory bank Oscillation Sources Crystal, ceramic main system clock Main system clock frequency: 0.4-6.0 (typical) clock divider circuit DTMF Generator dual-tone frequencies tone dialing 8-Bit Basic Timer Programmable interval timer Watchdog timer Instruction Execution Times 0.95, 1.91, 15.3 4.19 1.12, 2.23, 17.88 3.58 0.67, 1.33, 10.7 8-Bit Timer/Counters Programmable 8-bit timer External event counter function Arbitrary clock frequency output Operating Temperature Watch Timer Real-time time interval generation Four frequency outputs Operating Voltage Range Package Types SDIP, (KS57C5204/C5208) SDIP, (KS57C5304/C5308/C5312) Sequential Carrier Supports 16-bit serial data transfer arbitrary BLOCK DIAGRAM INT0, INT1, INT2, INT4 8-Bit Timer/ Counter 8-Bit Timer/ Counter P6.0-P6.3/ KS0-KS3 P7.0-P7.3/ KS4-KS7 P8.0 P8.3 P9.0 P9.2 Port Port RESET XOUT Watchdog Timer Interrupt Control Block Clock Stack Pointer Basic Timer Watch Timer Input Port P1.0/INT0 P1.1/INT1 P1.2/INT2 P1.3/INT4 P2.0/TCLO0 P2.1/TCLO1 P2.2/CLO P2.3/BUZ P3.0/TCL0 P3.1/TCL1 P3.2 P3.3 P4.0/BTCO P4.1-4.3 P5.0-P5.3 Internal Interrupts Instruction Decoder Arithmetic Logic Unit Program Counter Program Status Word Port Flags Port Port Port Port 768x4-Bit Data Memory Program Memory KS57C5204/C5304: 4KBytes KS57C5208/C5308: 8KBytes KS57C5312: 12KBytes Port DTMF Generator DTMF NOTE: KS57C5304/C5308/C5312 does P1.1/INT1, P1.2/INT2, P1.3/INT4, P3.2, P3.3, INT1, INT2, INT4, P8.0-P8.3, P9.0-P9.2. Figure 1-1. Simplified Block Diagram ASSIGNMENTS P1.0/INT0 P1.1/INT1 P1.2/INT2 P1.3/INT4 P2.0/TCLO0 P2.1/TCLO1 P2.2/CLO P2.3/BUZ P3.0/TCL0 P3.1/TCL1 XOUT TEST P4.0/BTCO P4.RESET P3.2 P3.3 P4.2 P9.2 P9.1 P9.0 DTMF P7.3/KS7 P7.2/KS6 P7.1/KS5 P7.0/KS4 P6.3/KS3 P6.2/KS2 P6.1/KS1 P6.0/KS0 P5.3 P5.2 P5.1 P5.0 P8.3 P8.2 P8.1 P8.0 P4.3 Figure 1-2. KS57C5204/C5208 Assignment Diagram (42-SDIP) KS57C5204/C5208 (42-SDIP-600) Figure 1-3. KS57C5204/C5208 Assignment Diagram (44-QFP) P2.2/CLO P2.3/BUZ P3.0/TCL0 P3.1/TCL1 XOUT TEST P4.0/BTCO DTMF P9.0 P9.1 P9.2 P1.0/INT0 P1.1/INT1 P1.2/INT2 P1.3/INT4 P2.0/TCLO0 P2.1/TCLO P7.3/KS7 P7.2/KS6 P7.1/KS5 P7.0/KS4 P6.3/KS3 P6.2/KS2 P6.1/KS1 P6.0/KS0 P5.3 P5.2 KS57C5204 /C5208 (44-QFP-1010B) P5.0 P8.3 P8.2 P8.1 P8.0 P4.3 P4.2 P3.3 P3.2 RESET KS57C5304/C5308/C5312 (30-SDIP-400) XOUT TEST P4.0/BTCO P4.RESET P4.2 P4.3 P5.0 P5.1 P5.2 P5.3 P6.0/KS0 P6.1/KS P3.1/TCL1 P3.0/TCL0 P2.3/BUZ P2.2/CLO P2.1/TCLO1 P2.0/TCLO0 P1.0/INT0 DTMF P7.3/KS7 P7.2/KS6 P7.1/KS5 P7.0/KS4 P6.3/KS3 P6.2/KS2 Figure 1-4. KS57C5304/C5308/C5312 Assignment Diagram (30-SDIP) XOUT TEST P4.0/BTCO P4.RESET P4.2 P4.3 P5.0 P5.1 P5.2 P5.3 P6.0/KS0 P6.1/KS P3.1/TCL1 P3.0/TCL0 P2.3/BUZ P2.2/CLO P2.1/TCLO1 P2.0/TCLO0 P1.0/INT0 DTMF P7.3/KS7 P7.2/KS6 P7.1/KS5 P7.0/KS4 P6.3/KS3 P6.2/KS2 Figure 1-5. KS57C5304/C5308/C5312 Assignment Diagram (32-SOP) KS57C5304/C5308/C5312 (32-SOP-450A) DESCRIPTIONS Table 1-1. KS57C5204/C5208 Descriptions Name P1.0 P1.1 P1.2 P1.3 P2.0 P2.1 P2.2 P2.3 P3.0 P3.1 P3.2 P3.3 P4.0 P4.1 P4.2 P4.3 P5.0-P5.3 Reset Type Value Description 4-bit input port. 1-bit 4-bit read test possible. Each pull-up resistors assignable software. 4-bit port. 1-bit 4-bit read/write test possible. Individual pins software configurable input output. 4-bit pull-up resistors software assignable input pins automatically disabled output pins. Ports paired enable 8-bit data transfer. 4-bit ports. 1-bit 4-bit read/write test possible. Individual pins software configurable input output. 4-bit pull-up resistors software assignable input pins automatically disabled output pins. N-channel open-drain push-pull output selected software (1-bit unit) Ports paired support 8-bit data transfer. 4-bit ports. 1-bit 4-bit read/write test possible. Individual pins software configurable input output. 4-bit pull-up resistors software assignable input pins automatically disabled output pins. Ports paired enable 8-bit data transfer. 4-bit port. 1-bit 4-bit read/write test possible. Individual pins software configurable input output. 4-bit pull-up resistors software assignable input pins automatically disabled output pins. Ports paired enable 8-bit data transfer. Number (39) (40) (41) (42) (43) (44) (13) (14) (10) (11) (15) (17) 27-30 (22-25) Share INT0 INT1 INT2 INT4 TCLO0 TCLO1 TCL0 TCL1 Circuit Type BTCO P6.0-P6.3 P7.0-P7.3 31-34 (26-29) 35-38 (30-33) KS0-KS3 KS4-KS7 P8.0-P8.3 P9.0-P9.2 23-26 (18-21) 40-42 (35-37) Table 1-1. KS57C5204/C5208 Descriptions (Continued) Name Reset Type Value DTMF output. Basic timer clock output External interrupts. triggering edge INT0 INT1 selectable. Quasi-interrupt with detection rising edges External interrupt with detection rising falling edges. Timer/counter clock output Timer/counter clock output Clock output kHz, kHz, kHz, frequency output watch timer clock frequency 4.19 buzzer sound External clock input timer/counter External clock input timer/counter Quasi-interrupt inputs with falling edge detection Description Number (34) (10) (39) (40) (41) (42) (43) (44) Share P4.0 P1.0 P1.1 P1.2 P1.3 P2.0 P2.1 P2.2 P2.3 Circu Type DTMF BTCO INT0 INT1 INT2 INT4 TCLO0 TCLO1 TCL0 TCL1 KS0-KS3 KS4-KS7 RESET 31-34 (26-29) 35-38 (30-33) (12) (16, P3.0 P3.1 P6.0-P6.3 P7.0-P7.3 Power supply Ground RESET signal XOUT TEST Crystal, ceramic oscillator signal main system clock. (For external clock input, input XIN's reverse phase XOUT) Chip test input pin, Hold when device operating. connection NOTE: Parentheses indicate number package. Table 1-2. KS57C5304/C5308/C5312 Descriptions Name P1.0 Type Description 1-bit input port. 1-bit 4-bit read test possible. Each pull-up resistors assignable. 4-bit port. 1-bit 4-bit read/write test possible. Each individual assignable input output. 4-bit pull-up resisters software assignable input pins automatically disabled output pins. Ports paired enable 8-bit data transfer. 4-bit ports. 1-bit 4-bit read/write test possible. Each individual assignable input output. 4-bit pull-up resisters software assignable input pins automatically disabled output pins. N-channel open-drain push-pull output selected software (1-bit unit). Ports paired enable 8-bit data transfer. 4-bit ports. 1-bit 4-bit read/write test possible. Each individual assignable input output. 4-bit pull-up resisters software assignable input pins automatically disabled output pins. Ports paired enable 8-bit data transfer. Number (25) Share INT0 Circuit Type P2.0 P2.1 P2.2 P2.3 (26) (27) (28) (29) TCLO0 TCLO1 P3.0 P3.1 P4.0 P4.1 P4.2 P4.3 P5.0-P5.3 (30) (31) (10) 10-13 (11-14) TCL0 TCL1 BTCO P6.0-P6.3 P7.0-P7.3 14-17 (15-18) 18-21 (19-22) KS0-KS3 KS4-KS7 Table 1-2. KS57C5304/C5308/C5312 Descriptions (Continued) Name DTMF INT0 TCLO0 TCLO1 Type DTMF output. External interrupt input. triggering edge INT0 selectable. Timer/counter clock output Timer/counter clock output Clock output kHz, kHz, kHz, frequency output watch timer clock frequency 4.19 buzzer sound External clock input timer/counter External clock input timer/counter Basic timer clock output Power supply Ground Crystal, ceramic oscillator signal main system clock. (For external clock input, input XIN's reverse phase XOUT) connection Chip test input pin, Hold when device operating. RESET Description Number (23) (25) (26) (27) (28) (29) Share P1.0 P2.0 P2.1 P2.2 P2.3 Circuit Type TCL0 TCL1 BTCO XOUT TEST RESET (30) (31) (32) 14-17 (15-18) 18-21 (19-22) P3.0 P3.1 P4.0 P6.0-P6.3 P7.0-P7.3 signal KS0-KS3 KS4-KS7 Quasi-interrupt inputs with falling edge detection NOTE: Parentheses indicate number 32-SOP package. 1-10 CIRCUIT DIAGRAMS P-Channel Pull-Up Resistor N-Channel Schmitt Trigger Figure 1-6. Circuit Type Figure 1-8. Circuit Type Pull-Up Resistor P-Channel Resistor Enable Data P-Channel Output DIsable Schmitt Trigger N-Channel Figure 1-7. Circuit Type Figure 1-9. Circuit Type Pull-up Resistor Pull-up Enable Data Output DIsable P-Channel Pull-up Resistor Pull-up Resistor Enable Circuit Type Data P-Channel Output Disable N-Channel Figure 1-10. Circuit Type Figure 1-12. Circuit Type Pull-up Resistor Pull-up Enable Data Output Disable P-Channel Circuit Type DTMF Output Disable Schmitt Trigger Figure 1-11. Circuit Type Figure 1-13. Circuit Type 1-12 SPACES ADDRESS SPACES PROGRAM MEMORY (ROM) maps mask programmable factory. standard configuration, device's 4,096 8-bit (KS57C5204/C5304) 8,192 8-bit (KS57C5208/C5308) 12,288 8-bit (KS57C5312) program memory have three areas that directly addressable program counter (PC): 16-byte area vector addresses 16-byte general-purpose area 96-byte instruction reference area 3,968-byte general-purpose area (KS57C5204/C5304) 8,064-byte general-purpose area (KS57C5208/C5308) 12,106-byte general-purpose area (KS57C5312) General-Purpose Program Memory program memory areas allocated general-purpose use: area bytes size other 3,968 bytes (KS57C5204/C5304), 8,064 bytes (KS57C5208/C5308), 12,106 bytes (KS57C5312). Vector Addresses 16-byte vector address area used store vector addresses required execute system resets interrupts. Start addresses interrupt service routines stored this area, along with values enable memory bank (EMB) enable register bank (ERB) flags that used initialize corresponding service routines. 16-byte area used alternately general-purpose ROM. Instructions Locations 0020H-007FH used reference area (look-up table) 1-byte instructions. instruction reduces byte size instruction operands. reference 2-byte instruction, 1-byte instructions, three-byte instructions which stored look-up table. Unused look-up table addresses used general-purpose ROM. ADDRESS SPACES Table 2-1. Program Memory Address Ranges Area Function Vector address area General-purpose program memory instruction look-up table area General-purpose program memory Address Ranges 0000H-000FH 0010H-001FH 0020H-007FH 0080H-0FFFH 0080H-1FFFH 0080H-2FFFH Area Size Bytes) 3,968 (KS57C5204/C5304) 8,064 (KS57C5208/C5308) 12,106 (KS57C5312) GENERAL-PURPOSE MEMORY AREAS 16-byte area locations 0010H-001FH 3,968-byte (KS57C5204/C5304) area locations 0080H-0FFFH, 8,064-byte (KS57C5208/C5308) area locations 0080H-1FFFH, 12,106-byte (KS57C5312) area locations 0080H-2FFFH used general-purpose program memory. Unused locations vector address area instruction look-up table areas used general-purpose program memory. However, care must taken overwrite live data when writing programs that specialpurpose areas ROM. VECTOR ADDRESS AREA 16-byte vector address area used store vector addresses executing interrupts. starting addresses interrupt service routines stored this area, along with enable memory bank (EMB) enable register bank (ERB) flag values that needed initialize service routines. 16-byte vector addresses organized follows: PC13 PC12 PC11 PC10 vector address area specific programs, instruction VENTn. programming tips next page explain this. NOTE: used KS57C5204/C5304 value always "0". used KS57C5208/C5308 value always "0". SPACES 0000H Vector Address Area Bytes) 000FH 0010H General- Purpose Area Bytes) 001FH 0020H Instruction Reference Area Bytes) 007FH 0080H KS57C5204/5304 (3,968 Byte) 0FFFH 1000H KS57C5208/5308 (8,064 Byte) 1FFFH KS57C5312 (12,106 Byte) 2FFFH General-Purpose Area NOTE: General-Purpose Area General-Purpose Area 0000H 0002H 0004H 0006H 0008H 000AH 000CH 000EH RESET INTB/INT4(note) INT0 INT1(note) implemonted (Reseved future use) INTT0 INTT1 implemented (Reseved future use) KS57C5304/5308/5312 does INT1 INT4 interrupts. Figure 2-1. Address Structure Figure 2-2. Vector Address ADDRESS SPACES PROGRAMMING Defining Vectored Interrupts following examples show several ways define vectored interrupt instruction reference areas program memory: When vector interrupts used: VENT0 VENT1 VENT2 VENT3 VENT5 VENT6 0000H 1,0,RESET 0,0,INTB 0,0,INT0 0,0,INT1 (note) Jump RESET address Jump INTB address Jump INT0 address Jump INT1 address 0,0,INTT0 0,0,INTT Jump INTT0 address Jump INTT1 address When specific vectored interrupt such INT0, INTT0 used, unused vector interrupt locations must skipped with assembly instruction that jumps will address correct locations: VENT0 VENT1 VENT3 VENT6 0000H 1,0,RESET 0,0,INTB 0006H 0,0,INT1 (note) 000CH 0,0,INTT1 0010H Jump RESET address Jump INTB address INT0 interrupt used Jump INT1 address INTT0 interrupt used Jump INTT1 address INT0 interrupt used corresponding vector interrupt area fully utilized, written instruction Example malfunction will occur: VENT0 VENT1 VENT3 VENT5 VENT6 0000H 1,0,RESET 0,0,INTB 0,0,INT1 (note) Jump RESET address Jump INTB address Jump INT1 address INT0 0,0,INTT0 0,0,INTT1 0010H used vector address Jump INTT1 address INTT0 this example, when INTT0 interrupt generated, corresponding vector area VENT5 INTT0, VENT6 INTT1. This causes INTT0 interrupt jump incorrectly INTT1 address causes malfunction occur. NOTE: KS57C5304/C5308/C5312 does INT1 interrupt. SPACES INSTRUCTION REFERENCE AREA Using 1-byte instructions, easily reference instructions with larger byte sizes that stored addresses 0020H-007FH program memory. This 96-byte area called instruction reference area, look-up table. Locations look-up table contain one-byte instructions, single two-byte instruction, three-byte instruction such (jump) CALL. starting address instruction referencing must always even number. reference CALL instruction, must written reference area two-byte format: this format TJP; CALL, TCALL. instructions execute instructions larger than byte. There three ways instruction: Using 1-byte instruction execute 2-byte 1-byte instructions, Branching location referencing branch instruction stored look-up table, Calling subroutines location referencing call instruction stored look-up table. PROGRAMMING Using Look-Up Table Here example instruction look-up table: JMAIN KEYCK WATCH INCHL BTSF TCALL INCS 0020H MAIN KEYFG CLOCK @HL,A MAIN KEYFG check call CLOCK (HL) EA,#00H 0080 #00H MAIN KEYCK JMAIN WATCH INCHL BTSF KEYFG (1-byte instruction) KEYFG jump MAIN (1-byte instruction) KEYFG call CLOCK (1-byte instruction) @HL,A INCS EA,#00H (1-byte instruction) ADDRESS SPACES DATA MEMORY (RAM) OVERVIEW standard configuration, 4-bit data memory five areas: 4-bit working register area 4-bit general-purpose area (also used stack area) 4-bit general-purpose area 4-bit area peripheral hardware make easier reference, data memory area four memory banks bank bank bank bank select memory bank instruction (SMB) used select bank want select working data memory. Data stored locations 8-bit addressable. Initialization values data memory area defined hardware must therefore initialized program software following RESET. However, when RESET signal generated power-down mode, data memory contents held. 000H 01FH 020H Working Registers Bits) General-purpose Registers Stack Area (224 Bits) Bank 0FFH 100H General-purpose Registers (256 Bits) 1FFH 200H General-purpose Registers (256 Bits) 2FFH F80H Bank Bank Memory-mapped Aeeress Registers (128 Bits) Bank FFFH Figure 2-3. Data Memory (RAM) SPACES Memory Banks Bank (000H-0FFH) lowest nibbles bank (000H-01FH) used working registers; next nibbles (020H-0FFH) used both stack area general-purpose data memory. stack area implementing subroutine calls returns, interrupt processing. nibbles bank (100H-1FFH) general-purpose use. nibbles bank (200H-2FFH) general-purpose microcontroller uses bank memory-mapped peripheral I/O. Fixed locations each peripheral hardware register: port latches, timers, peripherals controls, etc. mapped into this area. Bank Bank Bank (100H-1FFH) (200H-2FFH) (F80H-FFFH) Data Memory Addressing Modes enable memory bank (EMB) flag controls addressing mode data memory banks When flag logic zero, addressable area restricted specific locations, depending whether direct indirect addressing used. With direct addressing, access locations 000H-07FH bank bank With indirect addressing, only bank (000H-0FFH) accessed. When flag logic one, four data memory banks accessed according current value. 8-bit addressing, 4-bit registers addressed register pair. Also, when using 8-bit instructions address locations, remember even-numbered register address instruction operand. Working Registers working register area data memory bank further divided into four register banks (bank Each register bank eight 4-bit registers paired 4-bit registers 8-bit addressable. Register used 4-bit accumulator register pair 8-bit extended accumulator. carry flag also used 1-bit accumulator. Register pairs used address pointers indirect addressing. limit possibility data corruption incorrect register addressing, advisable register bank main program banks interrupt service routines. ADDRESS SPACES Table 2-2. Data Memory Organization Addressing Addresses 000H-01FH 020H-0FFH 100H-1FFH 200H-2FFH F80H-FFFH Register Areas Working registers Stack general-purpose registers General-purpose registers General-purpose registers Peripheral hardware registers Bank Value Value PROGRAMMING Clearing Data Memory Banks Clear banks data memory area: RAMCLR BITS INCS INCS HL,#00H A,#0H @HL,A RMCL1 HL,#10H @HL,A RMCL0 (100H-1FFH) clear RMCL (010H-0FFH) clear RMCL0 SPACES WORKING REGISTERS Working registers, mapped address 000H-01FH data memory bank used temporarily store intermediate results during program execution, well pointer values used indirect addressing. Unused registers used general-purpose memory. Working register data manipulated 1-bit units, 4-bit units using paired registers, 8-bit units. 000H 001H 002H 003H 004H 005H Data Memory Bank 006H 007H 008H 00FH 010H 017H 018H 01FH Register Bank Register Bank Register Bank Working Register Bank Figure 2-4. Working Register ADDRESS SPACES Working Register Banks addressing purposes, working register area divided into four register banks bank bank bank bank these banks selected working register bank register bank selection instruction (SRB setting status register bank enable flag (ERB). Generally, working register bank used main program, banks interrupt service routines. Following this convention helps prevent possible data corruption during program execution contention register bank addressing. Table 2-3. Working Register Organization Addressing Setting Settings NOTE: applicable. Selected Register Bank Always bank Bank Bank Bank Bank Paired Working Registers Each register banks subdivided into eight 4-bit registers. These registers, named either manipulated individually using 4-bit instructions, together register pairs 8-bit data manipulation. names 8-bit register pairs each register bank Registers always become lower nibble when registers addressed 8-bit pairs. This makes total eight 4-bit registers four 8-bit double registers each four working register banks. (MSB) (LSB) (MSB) (LSB) Figure 2-5. Register Pair Configuration 2-10 SPACES Special-Purpose Working Registers Register used 4-bit accumulator double register 8-bit accumulator. carry flag also used 1-bit accumulator. 8-bit double registers used data pointers indirect addressing. When register serves data pointer, instructions LDI, LDD, XCHI, XCHD make very efficient working registers program loop counters letting transfer value register increment decrement using single instruction. 1-Bit Accumulator 4-Bit Accumulator 8-Bit Accumulator Figure 2-6. 1-Bit, 4-Bit, 8-Bit Accumulator Recommendation Multiple Interrupt Processing more than four interrupts being processed time, avoid possible loss working register data using PUSH instruction save register contents stack before service routines executed same register bank. When routines have executed successfully, restore register contents from stack working memory using instruction. ADDRESS SPACES PROGRAMMING Selecting Working Register Area following examples show correct programming method selecting working register area: When "0": VENT2 INT0 1,0,INT0 PUSH PUSH PUSH PUSH PUSH INCS IRET EA,#00H 80H,EA HL,#40H WX,EA YZ,EA Jump INT0 address PUSH current SMB, Instruction does execute because PUSH register contents stack PUSH register contents stack PUSH register contents stack PUSH register contents stack register contents from stack register contents from stack register contents from stack register contents from stack current SMB, instructions execute alternately with PUSH instructions. instruction used interrupt service routine, PUSH instruction must used store restore current values, shown Example below. When "1": VENT2 INT0 1,1,INT0 PUSH INCS IRET EA,#00H 80H,EA HL,#40H WX,EA YZ,EA Jump INT0 address Store current SMB, Select register bank because Restore SMB, 2-12 SPACES STACK OPERATIONS STACK POINTER (SP) stack pointer (SP) 8-bit register that stores address used access stack, area data memory aside temporary storage stack addresses. read written 8-bit control instructions. When addressing must always remain cleared logic zero. F80H F81H There basic stack operations: writing stack (push), reading from stack (pop). push decrements increments that always points address last data written stack. program counter contents program status word stored stack area prior execution CALL PUSH instruction, during interrupt service routines. Stack operation LIFO (Last In-First Out) type. stack area located general-purpose data memory bank During interrupt subroutine, value saved stack area. When routine completed, stack pointer referenced restore PSW, next instruction executed. address stack registers bank (addresses 000H-0FFH) regardless current value enable memory bank (EMB) flag select memory bank (SMB) flag. Although general-purpose register areas used stack operations, careful avoid data loss simultaneous same register(s). Since reset value stack pointer defined firmware, recommend that initialize stack pointer program code location 00H. This sets first register stack area 0FFH. NOTE subroutine call occupies nibbles stack; interrupt requires six. When subroutine nesting interrupt routines used continuously, stack area should accordance with maximum number subroutine levels. this, estimate number nibbles that will used subroutines interrupts stack area correspondingly. PROGRAMMING Initializing Stack Pointer initialize stack pointer (SP): When "1": When "0": EA,#00H SP,EA Memory addressing area (00H-7FH, F80H-FFFH) EA,#00H SP,EA Select memory bank accumulator always cleared Stack area initial address (0FFH) (SP) 2-13 ADDRESS SPACES PUSH OPERATIONS Three kinds push operations reference stack pointer (SP) write data from source register stack: PUSH instructions, CALL instructions, interrupts. each case, decreased number determined type push operation then points next available stack location. PUSH Instructions PUSH instruction references write 4-bit data nibbles stack. 4-bit stack addresses referenced stack pointer: upper register value another lower register. After PUSH executed, decreased points next available stack location. CALL Instructions When subroutine call issued, CALL instruction references write PC's contents 4-bit stack locations. Current values enable memory bank (EMB) flag enable register bank (ERB) flag also pushed stack. Since 4-bit stack locations used CALL, nest subroutine calls number levels permitted stack. Interrupt Routines interrupt routine references push contents program status word (PSW) stack. 4-bit stack locations used store this data. After interrupt executed, decreased points next available stack location. During interrupt sequence, subroutines nested number levels which permitted stack area. PUSH (After PUSH, SP-2) SP-6 SP-5 SP-4 SP-3 CALL (After CALL PC11-PC8 (note) SP-6) SP-6 (note) INTERRUPT (When acknowledged, SP-6) PC11-PC8 (note) (note) PC13 PC12 SP-5 SP-4 SP-3 SP-2 SP-1 PC13 PC12 PC3-PC0 PC7-PC4 PC3-PC0 PC7-PC4 SP-2 SP-1 Lower Register Upper Register SP-2 SP-1 NOTE: KS57C5204/C5304 does PC12 PC13. KS57C5208/C5308 does PC13. Figure 2-7. Push-Type Stack Operations 2-14 SPACES OPERATIONS each push operation there corresponding operation write data from stack back source register registers: PUSH instruction instruction; CALL, instruction SRET; interrupts, instruction IRET. When operation occurs, incremented number determined type operation points next free stack location. Instructions instruction references write data stored 4-bit stack locations back register pairs register. value lower 4-bit register popped first, followed value upper 4-bit register. After executed, incremented points next free stack location. SRET Instructions subroutine call signaled return instruction, SRET. SRET uses reference 4-bit stack locations used CALL write this data back EMB, ERB. After SRET executed, incremented points next free stack location. IRET Instructions interrupt sequence signaled instruction IRET. IRET references locate 4bit stack addresses used interrupt write this data back PSW. After IRET executed, incremented points next free stack location. SP+1 SP+2 SP+2) SP+1 SP+2 SP+3 SP+4 SP+5 SP+6 SRET SP+6) PC11-PC8 (note) (note) SP+1 SP+2 SP+3 SP+4 SP+5 SP+6 IRET SP+6) Lower Register Upper Register PC11-PC8 (note) (note) PC13 PC12 PC13 PC12 PC3-PC0 PC7-PC4 PC3-PC0 PC7-PC4 NOTE: KS57C5204/C5304 does PC12 PC13. KS57C5208/C5308 does PC13. Figure 2-8. Pop-Type Stack Operations 2-15 ADDRESS SPACES SEQUENTIAL CARRIER (BSC) sequential carrier (BSC) 16-bit general register that manipulated using 8-bit control instructions. RESET clears values logic zero. Using BSC, specify sequential addresses locations using 1-bit indirect addressing (memb.@L). (Bit addressing independent current value.) This way, programs process 16-bit data moving location sequentially then incrementing decreasing value register. data also manipulated using direct addressing. 8-bit manipulations, 4-bit register, BSC0 BSC2, must specified upper lower 8-bits manipulated, separately. values register BSC2.@L, address location assignment FC2H.0. register content BSC2.@L, address location assignment FC3H.3. Table 2-4. Register Organization Name BSC0 BSC1 BSC2 BSC3 Address FC0H FC1H FC2H FC3H BSC0.3 BSC1.3 BSC2.3 BSC3.3 BSC0.2 BSC1.2 BSC2.2 BSC3.2 BSC0.1 BSC1.1 BSC2.1 BSC3.1 BSC0.0 BSC1.0 BSC2.0 BSC3.0 PROGRAMMING Using Register Output 8-Bit Data sequential carrier (BSC) register output 8-bit data (59H) P2.3 pin: BITS INCS EA,#59H BSC2,EA L,#8H C,BSC2.@L P2.3,C BSC2 BSC3 P2.3 2-16 SPACES PROGRAM COUNTER (PC) 13-bit program counter (PC) stores addresses instruction fetches during program execution. Whenever interrupt occurs, bits PC11 (KS57C5204/C5304) bits PC12 (KS57C5208/C5308) bits PC13 (KS57C5312) through vector address. Usually, incremented number bytes instruction being fetched. exception 1byte instruction which used reference instructions stored ROM. PROGRAM STATUS WORD (PSW) program status word (PSW) 8-bit word that defines system status program execution status which permits interrupted process resume operation after interrupt request been serviced. values mapped follows: FB0H FB1H manipulated 1-bit 4-bit read/write 8-bit read instructions, depending specific bits being addressed. addressed during program execution regardless current value enable memory bank (EMB) flag. Part saved stack prior execution subroutine call hardware interrupt. After interrupt been processed, values popped from stack back address. When RESET generated, values according RESET vector address, carry flag left undefined current value retained). bits IS0, IS1, SC0, SC1, cleared logical zero. Table 2-5. Program Status Word Descriptions Identifier IS1, SC2, SC1, Description Interrupt status flags Enable memory bank flag Enable register bank flag Carry flag Program skip flags Addressing Read/Write 2-17 ADDRESS SPACES INTERRUPT STATUS FLAGS (IS0, IS1) bits contain current interrupt execution status values. manipulate flags directly using 1-bit control instructions manipulating interrupt status flags conjunction with interrupt priority register (IPR), process multiple interrupts anticipating next interrupt execution sequence. interrupt priority control circuit determines settings order control multiple interrupt processing. When both interrupt status flags "0", interrupts allowed. priority with which interrupts processed then determined IPR. When interrupt occurs, pushed stack part automatically incremented next status. Then, when interrupt service routine ends with IRET instruction, values restored PSW. Table shows effects flag settings. Table 2-6. Interrupt Status Flag Settings Value Value Status Currently Executing Process Effect Settings Interrupt Request Control interrupt requests serviced Only high-priority interrupt determined interrupt priority register (IPR) serviced more interrupt requests serviced applicable; these settings undefined Since interrupt status flags addressed write instructions, programs exert direct control over interrupt processing status. Before interrupt status flags addressed, however, must first execute instruction inhibit additional interrupt routines. When manipulation been completed, execute instruction re-enable interrupt processing. PROGRAMMING Setting Flags Interrupt Processing following instruction sequence shows flags control interrupt processing: INTB BITR BITS Disable interrupt Allow interrupts according priority level Enable interrupt 2-18 SPACES FLAG (EMB) flag used enable whether memory bank selected register valid not. this way, controls addressing mode data memory banks When flag "0", data memory address space restricted bank addresses 000H-07FH memory bank regardless register contents. When flag "1", general-purpose areas bank accessed using appropriate value. PROGRAMMING Using Flag Select Memory Banks flag settings memory bank selection: When "0": When "1": A,#9H 90H,A 34H,A 90H,A 34H,A 20H,A 90H,A Select memory bank (190H) bank selected (134H) bank selected Select memory bank (090H) bank selected (034H) bank selected Select memory bank Program error, assembler does detect (F90H) bank selected A,#9H 90H,A 34H,A 90H,A 34H,A 20H,A 90H,A Non-essential instruction since (F90H) bank selected (034H) bank selected Non-essential instruction since (F90H) bank selected (034H) bank selected Non-essential instruction, since (020H) bank selected (F90H) bank selected 2-19 ADDRESS SPACES FLAG (ERB) 1-bit register bank enable flag (ERB) determines range addressable working register area. When flag "1", working register area from register banks selected according register bank selection register (SRB). When flag "0", register bank selected working register area, regardless current value register bank selection register (SRB). When internal RESET generated, program memory address 0000H written flag. This automatically initializes flag. When vectored interrupt generated, respective address table program memory written flag, setting correct flag status before interrupt service routine executed. During interrupt routine, value automatically pushed stack area along with other bits. Afterwards, popped back FB0H.0 location PSW. initial flag settings each vectored interrupt defined using VENTn instructions. PROGRAMMING Using Flag Select Register Banks flag settings register bank selection: When "0": When "1": EA,#34H HL,EA YZ,EA WX,EA Register bank selected Bank #34H Bank Bank Register bank selected Bank BANK2 Register bank selected Bank Bank EA,#34H HL,EA YZ,EA WX,EA Register bank selected (since "0", configured bank Bank #34H Bank Register bank selected Bank Register bank selected Bank 2-20 SPACES SKIP CONDITION FLAGS (SC2, SC1, SC0) skip condition flags SC2, SC1, indicate current program skip conditions reset automatically during program execution. Skip condition flags only addressed 8-bit read instructions. Direct manipulation SC2, SC1, bits allowed. CARRY FLAG carry flag used save result overflow borrow when executing arithmetic instructions involving carry (ADC, SBC). carry flag also used 1-bit accumulator performing Boolean operations involving bit-addressed data memory. overflow borrow condition occurs when executing arithmetic instructions with carry (ADC, SBC), carry flag "1". Otherwise, value "0". When RESET occurs, current value carry flag retained during power-down mode, when normal operating mode resumes, value undefined. carry flag directly manipulated predefined 1-bit read/write instructions, independent other bits PSW. Only instructions, instructions listed Table 2-7, affect carry flag. Table 2-7. Valid Carry Flag Manipulation Instructions Operation Type Direct manipulation BTST transfer (operand) (1),C Instructions Carry Flag Manipulation carry flag Clear carry flag (reset carry flag) Invert carry flag value (complement carry flag) Test carry skip Load carry flag value specified Load contents specified carry flag Rotate Right through carry flag C,(operand) Data transfer Boolean manipulation BAND C,(operand) specified with contents carry flag save result carry flag specified with contents carry flag save result carry flag specified with contents carry flag save result carry flag Save carry flag stack with other bits Restore carry flag from stack with other bits C,(operand) BXOR C,(operand) Interrupt routine Return from interrupt INTn IRET NOTES: operand three addressing formats: mema.a, memb.@L, DA.b. 'INTn' refers specific interrupt being executed instruction. ADDRESS SPACES PROGRAMMING Using Carry Flag 1-Bit Accumulator carry flag logic one: #0C3H #0AAH #0C3H #0AAH #1H, EA,#0C3H HL,#0AAH EA,HL Logical-AND address with P3.3 output result P5.0: BAND H,#3H C,@H+0FH.3 C,P3.3 P5.0,C upper four bits address register value P3.3 Output result from carry flag P5.0 2-22 MODES ADDRESSING MODES enable memory bank flag, EMB, controls addressing modes data memory. When flag logic one, address entire area; when flag cleared logic zero, addressable area restricted specific locations. flag works connection with select memory bank instruction, SMBn. will recall that SMBn instruction used select bank setting always contained upper four bits 12-bit address. this reason, both addressing modes (EMB "1") apply specifically memory bank indicated instruction, restrictions addressable area within banks Direct indirect 1-bit, 4-bit, 8-bit addressing methods used. Several locations addressable times, regardless current flag setting. Here guidelines keep mind regarding data memory addressing: When address peripheral hardware locations bank mnemonic memory-mapped hardware component used operand place actual address location. Always even-numbered address operand 8-bit direct indirect addressing. With direct addressing, address instruction operand; with indirect addressing, instruction specifies register which contains operand's address. ADDRESSING MODES Areas 000H 01FH 020H 07FH 080H Addressing Mode DA.b @H+DA.b mema.b memb.@L Working Registers Bank (General Registers Stack) 0FFH 100H Bank (General Registers) 1FFH 200H Bank (General Registers) 2FFH F80H Bank (Peripheral Hardware Registers) FB0H FBFH FC0H FF0H FFFH NOTES: means don't care. Blank columns indicate areas that addressable, given addressing method enable memory bank (EMB) flag setting shown column headers. Figure 3-1. Address Structure MODES INITIALIZATION VALUES flag bits automatically values RESET vector address interrupt vector address. When RESET generated internally, program memory address 0000H written flag, initializing automatically. When vectored interrupt generated, respective vector address table written EMB. This automatically sets flag status interrupt service routine. When interrupt serviced, value automatically saved stack then restored when interrupt routine completed. beginning program, initial flag values each vectored interrupt must using VENT instruction. reset manipulation instructions (BITS, BITR) despite current setting. PROGRAMMING Initializing Flags following assembly instructions show initialize flag settings: VENT0 VENT1 VENT2 VENT3 VENT5 VENT6 0000H 1,0,RESET 0,1,INTB 0,1,INT0 0,1,INT1(note) address assignment branch RESET branch INTB branch INT0 branch 0,1,INTT0 0,1,INTT branch INTT0 branch INTT RESET BITR NOTE: KS57C5304/C5308/C5312 does INT1 interrupt. ADDRESSING MODES ENABLE MEMORY BANK SETTINGS When enable memory bank flag logic one, address data memory bank specified select memory bank (SMB) value using 8-bit instructions. both direct indirect addressing modes. addressable areas when follows: When enable memory bank flag logic zero, addressable area defined independently value, restricted specific locations depending whether direct indirect address mode used. "0", addressable area restricted locations 000H-07FH bank locations F80H-FFFH bank direct addressing. indirect addressing, only locations 000H-0FFH bank addressable, regardless value. address peripheral hardware register (bank using indirect addressing, flag must first value "15". When RESET occurs, flag value contained address 0000H. EMB-Independent Addressing time, several areas data memory addressed independently current status flag. These exceptions described Table 3-1. 000H-0FFH 100H-1FFH 200H-2FFH F80H-FFFH Table 3-1. Addressing Affected Value Address 000H-0FFH Addressing Method 4-bit indirect addressing using register pairs; 8-bit indirect addressing using 1-bit direct addressing 1-bit indirect addressing using register Affected Hardware applicable PUSH PSW, IEx, IRQx, BITS BITR Program Examples A,@WX FB0H-FBFH FF0H-FFFH FC0H-FFFH BAND C,P3.@L MODES SELECT BANK REGISTER (SB) select bank register (SB) used assign memory bank register bank. 8-bit register consists 4-bit select register bank register (SRB) 4-bit select memory bank register (SMB), shown Figure 3-2. During interrupts subroutine calls, register contents saved stack 8-bit units PUSH instruction. later restore value using instruction. Register Figure 3-2. Values Register Select Register Bank (SRB) Instruction select register bank (SRB) value specifies which register bank used working register bank. value 'SRB instruction, where four register banks selected combination flag status value that using 'SRB instruction. current value retained until another register requested program software. PUSH instructions used save restore contents during interrupts subroutine calls. RESET clears 4-bit value logic zero. Select Memory Bank (SMB) Instruction select four available data memory banks, must execute instruction specifying number memory bank want 15). example, instruction 'SMB selects bank 'SMB selects bank (And remember enable selected memory bank making appropriate flag setting. upper four bits 12-bit data memory address stored register. value specified software RESET does occur) current value retained. RESET clears 4-bit value logic zero. PUSH instructions save restore contents register from stack area during interrupts subroutine calls. ADDRESSING MODES DIRECT INDIRECT ADDRESSING 1-bit, 4-bit, 8-bit data stored data memory locations addressed directly using specific register address instruction operand. Indirect addressing specifies memory location that contains required direct address. KS57 instruction supports 1-bit, 4-bit, 8-bit indirect addressing. 8-bit indirect addressing, even-numbered address must always used instruction operand. 1-BIT ADDRESSING Table 3-2. 1-Bit Direct Indirect Addressing Operand Notation DA.b Addressing Mode Description Direct: indicated address (DA), memory bank selection, specified number (b). Flag Setting Addressable Area 000H-07FH F80H-FFFH Memory Bank Bank Bank Hardware Mapping 1-bit addressable peripherals (SMB IS0, IS1, EMB, ERB, IEx, IRQx, Pn.m BSCn.x Pn.m mema.b Direct: indicated addressable area (mema) number (b). Indirect: lower bits register indicated upper bits area (memb) upper bits register Indirect: indicated lower four bits address (DA), memory bank selection, register identifier. NOTE: applicable. 000H-FFFH FB0H-FBFH FF0H-FFFH Bank memb.@L FC0H-FFFH Bank DA.b 000H-0FFH 000H-FFFH Bank 1-bit addressable peripherals (SMB MODES PROGRAMMING 1-Bit Addressing Modes 1-Bit Direct Addressing "0": AFLAG BFLAG CFLAG BITS BITS BTST BITS BITS 34H.3 85H.3 0BAH.0 AFLAG BFLAG CFLAG BFLAG P3.0 34H.3 F85H.3 (BMOD.3) FBAH.0 (IRQW) skip Else FBAH.0 (IRQW) F85H.3 (BMOD.3) FF3H.0 (P3.0) "1": AFLAG BFLAG CFLAG BITS BITS BTST BITS BITS 34H.3 85H.3 0BAH.0 AFLAG BFLAG CFLAG BFLAG P3.0 34H.3 85H.3 0BAH.0 skip Else 0BAH.0 085H.3 FF3H.0 (P3.0) 1-Bit Indirect Addressing "0": AFLAG BFLAG CFLAG BTSTZ BITS 34H.3 85H.3 0BAH.0 H,#0BH @H+CFLAG CFLAG #0BH 0BAH.0 0BAH.0 skip Else 0BAH.0 FBAH.0 (IRQW) "1": AFLAG BFLAG CFLAG BTSTZ BITS 34H.3 85H.3 0BAH.0 H,#0BH @H+CFLAG CFLAG #0BH 0BAH.0 0BAH.0 skip Else 0BAH.0 0BAH.0 ADDRESSING MODES 4-BIT ADDRESSING Table 3-3. 4-Bit Direct Indirect Addressing Operand Notation Addressing Mode Description Direct: 4-bit address indicated address (DA) memory bank selection Indirect: 4-bit address indicated memory bank selection register Flag Setting Addressable Area 000H-07FH F80H-FFFH Memory Bank Bank Bank Hardware Mapping 4-bit addressable peripherals (SMB 000H-FFFH 000H-0FFH Bank 000H-FFFH 4-bit addressable peripherals (SMB Indirect: 4-bit address indicated register Indirect: 4-bit address indicated register 000H-0FFH 000H-0FFH Bank Bank NOTE: applicable. PROGRAMMING 4-Bit Addressing Modes 4-Bit Direct Addressing "0": ADATA BDATA A,P3 ADATA,A BDATA,A Non-essential instruction, since (P3) Non-essential instruction, since (046H) (F8EH) "1": ADATA BDATA A,P3 ADATA,A BDATA,A (P3) (046H) (08EH) MODES PROGRAMMING 4-Bit Addressing Modes (Continued) 4-Bit Indirect Addressing (Example "0", compare bank locations 040H-046H with bank locations 060H-066H: ADATA BDATA CPSE SRET DECS HL,#BDATA WX,#ADATA A,@WL A,@HL COMP Non-essential instruction, since bank (040H-046H) bank (060H-066H) skip COMP "1", compare bank locations 040H-046H bank locations 160H-166H: ADATA BDATA CPSE SRET DECS HL,#BDATA WX,#ADATA A,@WL A,@HL COMP COMP bank (040H-046H) bank (160H-166H) skip ADDRESSING MODES PROGRAMMING 4-Bit Addressing Modes (Concluded) 4-Bit Indirect Addressing (Example "0", exchange bank locations 040H-046H with bank locations 060H-066H: ADATA BDATA XCHD HL,#BDATA WX,#ADATA A,@WL A,@HL TRANS Non-essential instruction, since bank (040H-046MH) Bank (060H-066H) TRANS "1", exchange bank locations 040H-046H bank locations 160H-166H: ADATA BDATA XCHD HL,#BDATA WX,#ADATA A,@WL A,@HL TRANS TRANS bank (040H-046H) Bank (160H-166H) 3-10 MODES 8-BIT ADDRESSING Table 3-4. 8-Bit Direct Indirect Addressing Instruction Notation Addressing Mode Description Direct: 8-bit address indicated address even number) memory bank selection Indirect: 8-bit address indicated memory bank selection register (the 4-bit register value must even number) Flag Setting Addressable Area 000H-07FH F80H-FFFH Memory Bank Bank Bank Hardware Mapping 8-bit addressable peripherals (SMB 000H-FFFH 000H-0FFH Bank 000H-FFFH 8-bit addressable peripherals (SMB ADDRESSING MODES PROGRAMMING 8-Bit Addressing Modes 8-Bit Direct Addressing "0": ADATA BDATA EA,P4 ADATA,EA BDATA,EA Non-essential instruction, since (P5), (P4) (046H) (047H) (F8EH) (F8FH) "1": ADATA BDATA EA,P4 ADATA,EA BDATA,EA (P5), (P4) (046H) (047H) (08EH) (08FH) 8-Bit Indirect Addressing "0": ADATA 146H HL,#ADATA EA,@HL Non-essential instruction, since (046H), (047H) "1": ADATA 146H HL,#ADATA EA,@HL (146H), (147H) 3-12 MEMORY support program control peripheral hardware, addresses peripherals memory-mapped bank RAM. Memory mapping lets mnemonic operand instruction place specific memory location. Access bank controlled select memory bank (SMB) instruction enable memory bank flag (EMB) setting. flag "0", bank addressed using direct addressing, regardless current value. 1-bit direct indirect addressing used specific locations bank regardless current value. HARDWARE REGISTERS Table contains detailed information about mapping peripheral hardware bank (register locations F80H-FFFH). quick-reference source when writing application programs. gives following information: Register address Register name (mnemonic program addressing) values (both addressable non-manipulable) Read-only, write-only, read write addressability 1-bit, 4-bit, 8-bit data manipulation characteristics MEMORY Table 4-1. Memory Bank Memory Bank Address F80H F81H F85H F86H F87H F88H F89H F90H F91H F92H F93H F94H F95H F96H F97H F98H F99H F9AH FA0H FA1H FA4H FA5H Locations FA6H-FA7H mapped. FA8H FA9H Locations FAAH-FAFH mapped. FB0H FB1H FB2H Addressing Mode 1-Bit 4-Bit 8-Bit Register Locations F82H-F84H mapped. BMOD BCNT WMOD TMOD0 TOE1 TCNT0 TREF0 WDMOD WDFLAG TMOD1 WDTCF TCNT1 TOE0 TOL1 TOL0 Locations F8AH-F8FH mapped. Locations F9BH-F9FH mapped. Locations FA2H-FA3H mapped. TREF Table 4-1. Memory Bank (Continued) FB3H FB4H FB5H FB6H FB8H FBAH FBBH FBCH FBEH FBFH FC0H FC1H FC2H FC3H FD0H FD2H FD3H FDAH FDBH FDCH FDDH FDEH PUMOD2 PUMOD1 PNE1 BSC0 BSC1 BSC2 BSC3 Locations FC4H-FCFH mapped. CLMOD DTMR PNE4.3 PNE5.3 PUR1.3 PUR5 PUR9 PM2.3 PM3.3 PMG2 PMG3 PCON IMOD0 IMOD1 IMOD2 IRQ4 IRQ1 IET1 IET0 IRQB IRQW IRQT1 IRQT0 IRQ0 IRQ2 Locations FB7H mapped. Locations FB9H mapped. Locations FBDH mapped. PNE4.2 PNE5.2 PUR1.2 PUR4 PUR8 PM2.2 PM3.2 PNE4.1 PNE5.1 PUR1.1 PUR3 PUR7 PNE4.0 PNE5.0 PUR1.0 PUR2 PUR6 Locations FD1H mapped. Locations FD4H-FD9H mapped. Locations FDFH-FE7H mapped. FE8H FE9H FEAH FEBH FECH FEDH PMG1 PM2.1 PM3.1 PM4.1 PM5.1 PM6.1 PM7.1 PM2.0 PM3.0 PM4.0 PM5.0 PM6.0 PM7.0 PM4.3 PM5.3 PM6.3 PM7.3 PM4.2 PM5.2 PM6.2 PM7.2 MEMORY Table 4-1. Memory Bank (Continued) FEEH FEFH PMG4 PM8.3 PM8.2 PM9.2 PM8.1 PM9.1 PM8.0 PM9.0 Locations FF0H mapped. FF1H FF2H FF3H FF4H FF5H FF6H FF7H FF8H FF9H Port Port Port Port Port Port Port Port Port NOTES WMOD register must logic carry flag read written specific manipulation instructions only. KS57C5304/C5308/C5312 does INT1 INT4 interrupts. KS57C5304/C5308/C5312 does PMG4, P1.1-P1.3, P3.2-P3.3, REGISTER DESCRIPTIONS this section, register descriptions presented consistent format familiarize with memorymapped locations bank RAM. Figure describes features register description format. Register descriptions arranged alphabetical order. Programmers this section quick-reference source when writing application programs. Counter registers, buffer registers, reference registers, well stack pointer port latches, included these descriptions. More detailed information about these registers used included Part this manual, "Hardware Descriptions," context corresponding peripheral hardware module descriptions. Register used addressing Register Name individual related Register name Associated hardware module Register location bank CLMOD Clock Output Control Register Identifier RESET Value Read/Write Addressing CLMOD.3 FB2H Enable/Disable Clock Output Control Disable interrupt processing globally Enable interrupt processing globally CLMOD.2 Always logic zero CLMOD.1-.0 Clock Source Frequency Selection Control Bits Select clock source Select system clock fxx/8 (524kHz 4.19 MHz) Operation generates negative number (MSB "1") Operation generates negative number (MSB "1") Read-only Write-only Read/write Type addressing that must used address (1-bit, 4-bit, 8-bit) Description effect specific settings identifier used addressing number order value immediately following RESET Figure 4-1. Register Description Format MEMORY BMOD Identifier RESET Basic Timer Mode Register F85H Value Read/Write Addressing BMOD.3 Basic Timer Restart Restart basic timer, then clear IRQB flag, BCNT BMOD.3 logic zero BMOD.2-.0 Input Clock Frequency Signal Stabilization Interval Control Bits Input clock frequency: Signal stabilization interval: Input clock frequency: Signal stabilization interval: Input clock frequency: Signal stabilization interval: Input clock frequency: Signal stabilization interval: fx/212 (1.02 kHz) 220/fx (250 fx/29 (8.18 kHz) 217/fx (31.3 fx/27 (32.7 kHz) 215/fx (7.82 fx/25 (131 kHz) 213/fx (1.95 NOTES: Signal stabilization interval time required stabilize clock signal oscillation after stop mode terminated interrupt. stabilization interval also interpreted "Interrupt Interval Time". When RESET occurs, oscillation stabilization time 31.3 (217/fx) 4.19 MHz. `fx' system clock rate, given clock frequency 4.19 MHz. CLMOD Identifier RESET Clock Output Mode Register FD0H Value Read/Write Addressing CLMOD.3 Enable/Disable Clock Output Control Disable clock output Enable clock output CLMOD.2 Always logic zero CLMOD.1-.0 Clock Source Frequency Selection Control Bits Select clock source fx/4, fx/8 fx/64 (1.05 MHz, 65.5 kHz) Select system clock fx/8 (524 kHz) Select system clock fx/16 (262 kHz) Select system clock fx/64 (65.5kHz) NOTE: `fx' system clock, given clock frequency 4.19 MHz. MEMORY DTMR Identifier RESET DTMF Mode Register DTMF FD3H, FD2H Value Read/Write Addressing DTMR.7-.4 DTMR Values Keyboard Inputs Function Function Function Function DTMR.3 Always logic zero DTMR.2-. Tone Selection Bits Dual-tone enable Dual-tone enable (alternate setting) Single-column tone enable Single-low tone enable DTMR.0 DTMF Operation Enable/Disable Disable DTMF operation Enable DTMF operation IMOD0 Identifier RESET External Interrupt (INT0) Mode Register Bits Always logic zero FB4H Value Read/Write Addressing IMOD0.3-.2 IMOD0.1-.0 External Interrupt Mode Control Bits Interrupt requests triggered rising signal edge Interrupt requests triggered falling signal edge Interrupt requests triggered both rising falling signal edges Interrupt request flag (IRQx) cannot logic MEMORY IMOD1- Identifier RESET External Interrupt (INT1) Mode Register (note) Bits Always logic zero FB5H Value Read/Write Addressing IMOD1.3-. IMOD1.0 External Interrupt Edge Detection Control Rising edge detection Falling edge detection NOTE: KS57C5304/C5308/C5312 does IMOD1. 4-10 IMOD2 Identifier RESET External Interrupt (INT2) Mode Register Bits Always logic zero FB6H Value Read/Write Addressing IMOD2.3-.2 IMOD2.1-.0 External Interrupt Edge Detection Selection Interrupt request INT2 triggered rising edge (KS57C5204/C5208 only) Interrupt request KS4-KS7 triggered falling edge Interrupt request KS2-KS7 triggered falling edge Interrupt request KS0-KS7 triggered falling edge MEMORY IE0, IRQ0, Identifier RESET INT0, Interrupt Enable/Request Flags IRQ1 (note) FBEH IRQ0 (note) Value Read/Write Addressing (note) INT1 Interrupt Enable Flag Disable interrupt requests INT1 Enable interrupt requests INT1 IRQ1 (note) INT1 Interrupt Request Flag Generate INT1 interrupt (This cleared hardware when rising falling edge detected INT1 pin.) INT0 Interrupt Enable Flag Disable interrupt requests INT0 Enable interrupt requests INT0 IRQ0 INT0 Interrupt Request Flag Generate INT0 interrupt (This cleared automatically hardware when rising falling edge detected INT0 pin.) NOTE: KS57C5304/C5308/C5312 does IE1, IRQ1, INT1 pin. 4-12 IE2, IRQ2 Identifier RESET INT2 Interrupt Enable/Request Flags Bits Always logic zero IRQ2 FBFH Value Read/Write Addressing .3-.2 INT2 Interrupt Enable Flag Disable INT2 interrupt requests INT2 (note) KS0-KS7 pins Enable INT2 interrupt requests INT2 (note) KS0-KS7 pins IRQ2 INT2 Interrupt Request Flag Generate INT2 quasi-interrupt (This cleared automatically hardware when rising edge detected INT2 (note) when falling edge detected KS0-KS7 pins. Since INT2 quasi-interrupt, IRQ2 flag must cleared software.) NOTE: KS57C5304/C5308/C5312 does INT2 pin. 4-13 MEMORY IE4, IRQ4 INT4 Interrupt Enable/Request Flags (note) IEB, IRQB INTB Interrupt Enable/Request Flags Identifier RESET FB8H FB8H (note) IRQ4 (note) IRQB Value Read/Write Addressing (note) INT4 Interrupt Enable Flag Disable interrupt requests INT4 Enable interrupt requests INT4 IRQ4 (note) INT4 Interrupt Request Flag Generate INT4 interrupt (This cleared automatically hardware when rising falling signal edge detected INT4 pin.) INTB Interrupt Enable Flag Disable INTB interrupt requests Enable INTB interrupt requests IRQB INTB Interrupt Request Flag Generate INTB interrupt (This cleared automatically hardware when reference interval signal received from basic timer.) NOTE: KS57C5304/C5308/C5312 does IE4, IRQ4, INT4 pin. 4-14 IET0, IRQT0 Identifier RESET INTT0 Interrupt Enable/Request Flags Bits Always logic zero IET0 IRQT0 FBCH Value Read/Write Addressing .3-.2 IET0 INTT0 Interrupt Enable Flag Disable INTT0 interrupt requests Enable INTT0 interrupt requests IRQT0 INTT0 Interrupt Request Flag Generate INTT0 interrupt (This cleared automatically hardware when contents TCNT0 TREF0 registers match.) 4-15 MEMORY IET1, IRQT1 Identifier RESET INTT1 Interrupt Enable/Request Flags Bits Always logic IET1 IRQT1 FBBH Value Read/Write Addressing .2-.3 INTT1 Interrupt Enable Flag Disable INTT1 interrupt requests Enable INTT1 interrupt requests IRQT INTT1 Interrupt Request Flag Generate INTT1 interrupt (This cleared automatically hardware when contents TCNT1 TREF1 registers match.) 4-16 IEW, IRQW Identifier RESET Intw Interrupt Enable/Request Flags Bits Always logic zero IRQW FBAH Value Read/Write Addressing .3-.2 INTW Interrupt Enable Flag Disable INTW interrupt requests Enable INTW interrupt requests IRQW INTW Interrupt Request Flag Generate INTW interrupt (This when timer interval seconds 3.19 milliseconds watch timer frequency 32.768 kHz.) NOTE: Since INTW quasi-interrupt, IRQW flag must cleared software. 4-17 MEMORY Identifier RESET Interrupt Priority Register FB2H Value Read/Write Addressing Interrupt Master Enable (MSB) Disable interrupt processing Enable processing interrupt service requests IPR.2-.0 Interrupt Priority Assignment Bits Normal interrupt processing according default priority settings Process INTB INT4 (note) interrupts highest priority Process INT0 interrupts highest priority Process INT1 (note) interrupts highest priority Process INTT0 interrupts highest priority Process INTT1 interrupts highest priority NOTES: KS57C5304/C5308/C5312 does INT1 INT4 interrupts. During normal interrupt processing, interrupts processed order which they occur. more interrupts occur simultaneously, processing order determined default interrupt priority settings shown below. Using settings, select specific interrupts high-priority processing event contention. When high-priority (IPR) interrupt been processed, waiting interrupts handled according their default priorities. default priorities follows (`1' highest priority; lowest priority): INTB, INT4 INT0 INT1 INTT0 INTT1 4-18 PCON Identifier RESET Power Control Register FB3H Value Read/Write Addressing PCON.3-.2 Operating Mode Control Bits Enable normal operating mode Initiate idle power-down mode Initiate stop power-down mode PCON.1-.0 Clock Frequency Selection Bits Select fx/64 Select fx/8 Select fx/4 NOTE: `fx' system clock. 4-19 MEMORY Identifier RESET Program Status Word FB1H, FB0H Value Read/Write Addressing Carry Flag overflow borrow condition exists overflow borrow condition does exist SC2-SC0 Skip Condition Flags skip condition exists; direct manipulation these bits allowed skip condition exists; direct manipulation these bits allowed IS1, Interrupt Status Flags Service interrupt requests Service only high-priority interrupt(s) determined interrupt priority register (IPR) service more interrupt requests Undefined Enable Data Memory Bank Flag Restrict program access data memory bank (F80H-FFFH) locations 000H-07FH bank only Enable full access data memory banks Enable Register Bank Flag Select register bank working register area Select register banks working register area accordance with select register bank (SRB) instruction operand NOTES: value carry flag after RESET occurs during normal operation undefined. RESET occurs during power-down mode (IDLE STOP), current value carry flag retained. carry flag only addressed specific 1-bit manipulation instructions. Section detailed information. 4-20 PMG1 Identifier RESET Port Mode Flags (Group Ports PM3.3 (note) PM2.3 PM2.2 FE9H, FE8H PM2.1 PM2.0 PM3.2 (note) PM3.1 PM3.0 Value Read/Write Addressing PM3.3 (note) P3.3 Mode Selection Flag P3.3 input mode P3.3 output mode PM3.2 (note) P3.2 Mode Selection Flag P3.2 input mode P3.2 output mode PM3. P3.1 Mode Selection Flag P3.1 input mode P3.1 output mode PM3.0 P3.0 Mode Selection Flag P3.0 input mode P3.0 output mode PM2.3 P2.3 Mode Selection Flag P2.3 input mode P2.3 output mode PM2.2 P2.2 Mode Selection Flag P2.2 input mode P2.2 output mode PM2. P0.1 Mode Selection Flag P2.1 input mode P2.1 output mode PM2.0 P2.0 Mode Selection Flag P2.0 input mode P2.0 output mode NOTE: KS57C5304/C5308/C5312 does PM3.2-PM3.3. MEMORY PMG2 Identifier RESET Port Mode Flags (Group Ports PM5.3 PM5.2 PM5.1 PM5.0 PM4.3 PM4.2 FEBH, FEAH PM4.1 PM4.0 Value Read/Write Addressing PM5.3 P5.3 Mode Selection Flag P5.3 input mode P5.3 output mode PM5.2 P5.2 Mode Selection Flag P5.2 input mode P5.2 output mode PM5. P5.1 Mode Selection Flag P5.1 input mode P5.1 output mode PM5.0 P5.0 Mode Selection Flag P5.0 input mode P5.0 output mode PM4.3 P4.3 Mode Selection Flag P4.3 input mode P4.3 output mode PM4.2 P4.2 Mode Selection Flag P4.2 input mode P4.2 output mode PM4. P4.1 Mode Selection Flag P4.1 input mode P4.1 output mode PM4.0 P4.0 Mode Selection Flag P4.0 input mode P4.0 output mode 4-22 PMG3 FECH Identifier RESET Port Mode Flags (Group Ports FEDH, PM7.3 Value PM7.2 PM7.1 PM7.0 PM6.3 PM6.2 PM6.1 PM6.0 Read/Write Addressing PM7.3 P7.3 Mode Selection Flag P7.3 input mode P7.3 output mode PM7.2 P7.2 Mode Selection Flag P7.2 input mode P7.2 output mode PM7. P7.1 Mode Selection Flag P7.1 input mode P7.1 output mode PM7.0 P7.0 Mode Selection Flag P7.0 input mode P7.0 output mode PM6.3 P6.3 Mode Selection Flag P6.3 input mode P6.3 output mode PM6.2 P6.2 Mode Selection Flag P6.2 input mode P6.2 output mode PM6. P6.1 Mode Selection Flag P6.1 input mode P6.1 output mode PM6.0 P6.0 Mode Selection Flag P6.0 input mode P6.0 output mode 4-23 MEMORY PMG4 Identifier RESET Port Mode Flags (Group Ports (note) Always logic zero PM9.2 PM9.1 PM9.0 PM8.3 PM8.2 FEFH, FEEH PM8.1 PM8.0 Value Read/Write Addressing PM9.2 P9.2 Mode Selection Flag P9.2 input mode P9.2 output mode PM9. P9.1 Mode Selection Flag P9.1 input mode P9.1 output mode PM9.0 P9.0 Mode Selection Flag input mode output mode PM8.3 P8.3 Mode Selection Flag P8.3 input mode P8.3 output mode PM8.2 P8.2 Mode Selection Flag P8.2 input mode P8.2 output mode PM8. P8.1 Mode Selection Flag P8.1 input mode P8.1 output mode PM8.0 P8.0 Mode Selection Flag P8.0 input mode P8.0 output mode NOTE: KS57C5304/C5308/C5312 does PMG4. 4-24 Identifier RESET Port Open-Drain Enable Register PNE5.3 PNE5.2 PNE5.1 PNE5.0 PNE4.3 FDBH, FDAH PNE4.1 PNE4.0 PNE4.2 Value Read/Write Addressing PNE5.3 P5.3 Output mode Control Push-pull output N-channel open-drain output PNE5.2 P5.2 Output mode Control Push-pull output N-channel open-drain output PNE5. P5.1 Output mode Control Push-pull output N-channel open-drain output PNE5.0 P5.0 Output mode Control Push-pull output N-channel open-drain output PNE4.3 P4.3 Output mode Control Push-pull output N-channel open-drain output PNE4.2 P4.2 Output mode Control Push-pull output N-channel open-drain output PNE4. P4.1 Output mode Control Push-pull output N-channel open-drain output PNE4.0 P4.0 Output mode Control Push-pull output N-channel open-drain output 4-25 MEMORY PUMOD1 Identifier RESET Pull-Up Resistor Mode Register PUR5 PUR4 PUR3 PUR2 PUR1.3 (note) PUR1.2 (note) FDDH, FDCH PUR1.(note) PUR1.0 Value Read/Write Addressing PUR5 Connect/Disconnect Port Pull-Up Resistor Control Disconnect port pull-up resistor Connect port pull-up resistor PUR4 Connect/Disconnect Port Pull-Up Resistor Control Disconnect port pull-up resistor Connect port pull-up resistor PUR3 Connect/Disconnect Port Pull-Up Resistor Control Disconnect port pull-up resistor Connect port pull-up resistor PUR2 Connect/Disconnect Port Pull-Up Resistor Control Disconnect port pull-up resistor Connect port pull-up resistor PUR1.3 (note) Connect/Disconnect P1.3 Pull-Up Resistor Control Disconnect P1.3 pull-up resistor Connect P1.3 pull-up resistor PUR1.2 (note) Connect/Disconnect P1.2 Pull-Up Resistor Control Disconnect P1.2 pull-up resistor Connect P1.2 pull-up resistor PUR1.1 (note) Connect/Disconnect P1.1 Pull-Up Resistor Control Disconnect P1.1 pull-up resistor Connect P1.1 pull-up resistor PUR1.0 Connect/Disconnect P1.0 Pull-Up Resistor Control Disconnect P1.0 pull-up resistor Connect P1.0 pull-up resistor NOTE: KS57C5304/C5308/C5312 does PUR1.1-PUR1.3. 4-26 PUMOD2 Identifier RESET PULL-UP RESISTOR MODE REGISTER PUR9 (note) FDEH PUR8 (note) PUR7 PUR6 Value Read/Write Addressing PUR9 (note) Connect/Disconnect Port Pull-Up Resistor Control Disconnect port pull-up resistor Connect port pull-up resistor PUR8 (note) Connect/Disconnect Port Pull-Down Resistor Control Disconnect port pull-down resistor Connect port pull-down resistor PUR7 Connect/Disconnect Port Pull-Up Resistor Control Disconnect port pull-up resistor Connect port pull-up resistor PUR6 Connect/Disconnect Port Pull-Up Resistor Control Disconnect port pull-up resistor Connect port pull-up resistor NOTE: KS57C5304/C5308/C5312 does PUR8 PUR9. 4-27 MEMORY TMOD0 Identifier RESET Timer/Counter Mode Register Always logic zero T/C0 F91H, F90H Value Read/Write Addressing TMOD0.7 TMOD0.6-.4 TMOD0.3 Timer/Counter Input Clock Selection Bits External clock input TCL0 rising edge External clock input TCL0 falling edge Internal system clock fx/210 (4.09 kHz) Select clock: fx/26 (65.5 kHz) Select clock: fx/24 (262 kHz) Select clock: (4.19 MHz) Clear Counter Resume Counting Control Clears TCNT0 IRQT0. TOL0 remained resume counting immediately (This cleared automatically when counting starts.) TMOD0.2 Enable/Disable Timer/Counter Disable timer/counter retain TCNT0 contents Enable timer/counter TMOD0. Always logic zero TMOD0.0 Always logic zero 4-28 TMOD1 Identifier RESET Timer/Counter Mode Register Always logic zero T/C2 FA1H, FA0H Value Read/Write Addressing TMOD1.7 TMOD1.6 Timer/Counter Input Clock Selection Bits External clock input TCL1 rising edge External clock input TCL1 falling edge Internal system clock fx/212 (1.02 kHz) Select clock: fx/210 (4.09 kHz) Select clock: fx/28 (16.4 kHz) Select clock: fx/26 (65.5 kHz) TMOD1.3 Clear Counter Resume Counting Control Clears TCNT1 IRQT1. TOL1 remained resume counting immediately (This cleared automatically when counting starts.) TMOD1.2 Enable/Disable Timer/Counter Disable timer/counter retain TCNT1 contents Enable timer/counter TMOD1. Always logic zero TMOD1.0 Always logic zero 4-29 MEMORY Identifier RESET Timer Output Enable Flag Register TOE1 TOE0 F92H Value Read/Write Addressing Timer/Counter Output Enable Flag Disable timer/counter output TCLO1 Enable timer/counter output TCLO1 TOE0 Timer/Counter Output Enable Flag Disable timer/counter output TCLO0 Enable timer/counter output TCLO0 Basic Timer Output Enable Flag Disable basic timer output BTCO Enable basic timer output BTCO Always logic zero 4-30 WDMOD Identifier RESET Watchdog Timer Mode Register F99H, F98H Value Read/Write Addressing WDMOD Watchdog Timer Enable/Disable Control other value Disable watchdog timer function Enable watchdog timer function MEMORY WDFLAG Identifier RESET Watchdog Timer Counter Clear Flag Register F9AH WDTCF Value Read/Write Addressing WDTCF Watchdog Timer Counter Clear Flag Clears watchdog timer counter .2-.0 Bits Always logic zero NOTE: After watchdog timer cleared writing "1", this cleared automatically. 4-32 WMOD Identifier RESET Watch Timer Mode Register F89H, F88H Value Read/Write Addressing WMOD.7 Enable/Disable Buzzer Output Disable buzzer (BUZ) signal output Enable buzzer (BUZ) signal output WMOD.6 Always logic zero WMOD.5-.4 Output Buzzer Frequency Selection Bits fw/16 buzzer (BUZ) signal output kHz) fw/8 buzzer (BUZ) signal output kHz) fw/4 buzzer (BUZ) signal output kHz) fw/2 buzzer (BUZ) signal output kHz) WMOD.3 Always logic zero WMOD.2 Enable/Disable Watch Timer Disable watch timer clear frequency dividing circuits Enable watch timer WMOD. Watch Timer Speed Control Normal speed; IRQW seconds High-speed operation; IRQW 3.91 WMOD.0 Always logic zero NOTE: System clock 4.19 assumed. 4-33 MEMORY NOTES 4-34 Oscillator Circuits Interrupts Power-Down RESET Ports Timers Timer/Counters DTMF Generator Electrical Data Mechanical Data KS57P5208/P5308/P5312 Development Tools OSCILLATOR CIRCUITS Basic timer OSCILLATOR CIRCUITS microcontrollers have oscillator circuit, system clock circuit, (fx). peripheral hardware operates system clock frequency supplied through this circuit. Specifically, clock pulse required following peripheral modules: Timer/counter Watch timer Clock output circuit Clock Control Registers power control register, PCON, used select normal operating mode power-down modes stop idle. Bits PCON register manipulated STOP IDLE instruction engage stop idle power-down mode. system clock frequencies divided manipulating PCON bits select following frequencies selected system clock. OSCILLATOR CIRCUITS Main System Oscillator Circuit DTMF generator XOUT 1-1/4096 Frequency dividing Circuit 1/16 Watch Timer Basic Timer Timer/Counter Clock Output Circuit Oscillator Stop Selector Clock stop signal (IDLE mode) PCON.0 PCON.1 IDLE STOP PCON.2 PCON.3 Oscillator Control Circuit Wait release signal Internal RESET signal Power-down release signal PCON.3, clear Figure 6-1. Clock Circuit Diagram OSCILLATOR CIRCUITS System Oscillator Circuits XOUT XOUT Figure 6-2. Crystal/Ceramic Oscillator Figure 6-3. External Oscillator OSCILLATOR CIRCUITS POWER CONTROL REGISTER (PCON) power control register, PCON, 4-bit register that used select clock frequency control operating power-down modes. PCON addressed directly 4-bit write instructions indirectly instructions IDLE STOP. FB3H PCON.3 PCON.2 PCON.1 PCON.0 PCON bits addressed STOP IDLE instructions, respectively, engage IDLE STOP power-down modes. IDLE STOP modes initiated these instruction despite current value enable memory bank flag (EMB). manipulating bits PCON register, system clock frequency divided RESET sets PCON register values logic zero: PCON.1 PCON.0 divide frequency PCON.3 PCON.2 enable normal operating mode. Table 6-1. Power Control Register (PCON) Organization PCON Settings PCON.3 PCON.2 Normal operating mode Idle power-down mode Stop power-down mode Resulting Clock Frequency fx/64 fx/8 fx/4 Resulting Operating Mode PCON Settings PCON.1 PCON.0 PROGRAMMINGNG Setting Clock clock 1.05 4.19 MHz: BITS A,#3H PCON,A OSCILLATOR CIRCUITS INSTRUCTION CYCLE TIMES unit time that equals machine cycle varies depending oscillator clock signal divided system clock. Table shows corresponding cycle times microseconds. Table 6-2. Instruction Cycle Times Clock Rates Selected Clock fx/64 fx/8 fx/4 Resulting Frequency 65.5 524.0 1.05 Oscillation Source 4.19 Cycle Time (µsec) 15.3 1.91 0.95 CLOCK OUTPUT MODE REGISTER (CLMOD) clock output mode register, CLMOD, 4-bit register that used enable disable clock output select clock source frequency. CLMOD addressable 4-bit write instruction only. FD0H RESET CLMOD.3 CLMOD. CLMOD.0 clears CLMOD logic zero, which automatically selects clock clock source (without initiating clock oscillation), disable clock output. CLOMD.3 enable/disable clock output control bit; CLOMD.1 CLOMD.0 used select four possible clock sources frequencies: normal clock, fx/8, fx/16, fx/64. Table 6-3. Clock Output Mode Register (CLMOD) Organization CLMOD Setting CLMOD.1 CLMOD.0 Clock Source clock (fx/4, fx/8, fx/64) fx/8 fx/16 fx/64 Resulting Clock Output Frequency 1.05 MHz,524 kHz, 65.5 65.5 CLMOD.3 Clock output disable Clock output enable Result CLMOD.3 Setting NOTE: Frequencies assume that 4.19 MHz. OSCILLATOR CIRCUITS CLOCK OUTPUT CIRCUIT clock output circuit, used output clock pulses pin, following components: 4-bit clock output mode register (CLMOD) Clock selector output latch Port mode flag output (P2.2) CLMOD.3 CLMOD.2 CLMOD.1 CLMOD.0 CLOCK SELECTOR P2.2 Output Latch PM2.2 CLOCKS (CPU clock, fx/8, fx/16, fx/64) Figure 6-4. Output Circuit Diagram CLOCK OUTPUT PROCEDURE procedure outputting clock pulses summarized follows: Disable clock output clearing CLMOD.3 logic zero. clock output frequency (CLMOD.1, CLMOD.0). Load output latch (P2.2). P2.2 mode flag output mode. Enable clock output setting CLMOD.3 logic one. PROGRAMMING Clock Output output clock BITS BITR EA,#04H PMG1,EA P2.2 A,#8H CLMOD,A Output mode Clear P2.2 output latch INTERRUPTS INTERRUPTS interrupt control circuit five functional components: Interrupt enable flags (IEx) Interrupt request flags (IRQx) Interrupt mask enable register (IME) Interrupt priority register (IPR) Power-down release signal circuit Three kinds interrupts supported: Internal interrupts generated on-chip processes External interrupts generated external peripheral devices Quasi-interrupts used edge detection clock sources Table 7-1. Interrupt Types Corresponding Port Pin(s) Interrupt Type External interrupts Internal interrupts Quasi-interrupts Interrupt Name INT0, INT1 (note), INT4 (note) INTB, INTT0, INTT1 INT2 INTW Corresponding Port P1.0, P1.1 (note), P1.3 (note) applicable P1.2 (note), KS0-KS7 applicable NOTE: KS57C5304/5308/C5312 does interrupts INT1, INT4, INT2 pin. INTERRUPTS VECTORED INTERRUPTS Interrupt requests processed vectored interrupts hardware, they generated program software. vectored interrupt generated when following flags register settings, corresponding specific interrupt (INTn) logic one: Interrupt enable flag (IEx) Interrupt master enable flag (IME) Interrupt request flag (IRQx) Interrupt status flags (IS0, IS1) Interrupt priority register (IPR) conditions satisfied execution requested service routine, start address interrupt loaded into program counter program starts executing service routine from this address. flags memory banks registers stored vector address area during interrupt service routines. flags stored beginning program with VENT instruction. initial flag values determine vectors resets interrupts. Enable flag values saved during main routine, well during service routines. changes that made enable flag values during service routine stored vector address. When interrupt occurs, enable flag values before interrupt initiated saved along with program status word (PSW), enable flag values interrupt fetched from respective vector address. Then, necessary, modify enable flags during interrupt service routine. When interrupt service routine returned main routine IRET instruction, original values saved stack restored main program continues program execution with these values. Software-Generated Interrupts generate interrupt request from software, program manipulates appropriate IRQx flag. When interrupt request flag value set, retained until other conditions vectored interrupt have been met, service routine initiated. Multiple Interrupts manipulating interrupt status flags (IS0 IS1), control service routine initialization thereby process multiple interrupts simultaneously. more than four interrupts being processed time, avoid possible loss working register data using PUSH instruction save register contents stack before service routines executed same register bank. When routines have executed successfully, restore register contents from stack working memory using instruction. Power-Down Mode Release interrupt used release power-down mode (stop idle). Interrupts power-down mode release initiated setting corresponding interrupt enable flag. Even flag cleared zero, power-down mode will released interrupt request signal when interrupt enable flag been set. such cases, interrupt routine will executed since "0". INTERRUPTS Interrupt generated (INT Request flag (IRQx) Retain value until Generate corresponding vector interrupt release power-down mode IS1, IS1, High-priority interrupt IS1, IS1, Retain value until IME= Retain value until interrupt service routine completed Store contents stack area; contents corresponding vector address both interrupt sources shared vector address used? IRQx flag value remains Reset corresponding IRQx flag Jump interrupt start address Jump interrupt start address Verify interrupt source clear IRQx with BTSTZ instruction Figure 7-1. Interrupt Execution Flowchart INTERRUPTS IMOD IMOD0 IET1 IET0 INTB IRQB IRQ4 INT4 INT0 INT1 INTT0 INTT1 INTW INT2 SELECTOR KS0-KS7 IRQ0 IRQ1 IRQT0 IRQT1 IRQW IRQ2 IMOD2 Power-Down Mode Release Signal Interrupt Control Unit Edge Detection Circuit Vector Interrupt Generator Figure 7-2. Interrupt Control Circuit Diagram (KS57C5204/5208) INTERRUPTS IMOD0 IET1 IET0 INTB IRQB IRQ0 IRQT0 IRQT1 IRQW IRQ2 INT0 INTT0 INTT1 INTW KS0-KS7 SELECTOR IMOD2 Power-Down Mode Release Signal Interrupt Control Unit Edge Detection Circuit Vector Interrupt Generator Figure 7-3. Interrupt Control Circuit Diagram (KS57C5304/5308/C5312) INTERRUPTS Multiple Interrupts interrupt controller service multiple interrupts ways: two-level interrupts, where either interrupt requests only those highest priority serviced, multi-level interrupts, when interrupt service routine lower-priority request accepted during execution higher priority routine. Two-Level Interrupt Handling Two-level interrupt handling standard method processing multiple interrupts. When bits (FB0H.3 FB0H.2, respectively) both logic zero, program execution mode normal interrupt requests serviced (see Figure 7-3). Whenever interrupt request accepted, incremented ("0" "0"), values stored stack along with other bits. After interrupt routine been serviced, modified values automatically restored from stack IRET instruction. manipulated directly 1-bit write instructions, regardless current value enable memory bank flag (EMB). Before modify interrupt status flag, however, must first disable interrupt processing with instruction. When "1", interrupt service routines inhibited except highest priority interrupt currently defined interrupt priority register (IPR). Normal Program Processing (Status Disable Enable High Level Interrupt Generated High Level Interrupt Processing (Status High Level Interrupt Processing (Status High Level Interrupt Generated Figure 7-4. Two-Level Interrupt Handling INTERRUPTS Multi-Level Interrupt Handling With multi-level interrupt handling, lower-priority interrupt request executed while high-priority interrupt being serviced. This done manipulating interrupt status flags, (see Table 7-2). When interrupt requested during normal program execution, interrupt status flags "0", respectively. This setting allows only highest-priority interrupts serviced. When high-priority request accepted, both interrupt status flags then cleared software that request priority level serviced. this way, high- low-priority requests serviced parallel (see Figure 7-4). Table 7-2. Manipulation Multi-Level Interrupt Handling Process Status Before interrupt requests serviced. Only high-priority interrupts determined current settings register serviced. additional interrupt requests will serviced. Value undefined Effect Setting After Normal Program Processing (Status Disable Enable High Level Interrupt Generated Single Interrupt 2-Level Interrupt Disable Modify Status Enable High Level Interrupt Generated Status 3-Level Interrupt Status High Level Interrupt Generated Status Status Status Figure 7-5. Multi-Level Interrupt Handling INTERRUPTS INTERRUPT PRIORITY REGISTER (IPR) 4-bit interrupt priority register (IPR) used control multi-level interrupt handling. reset value logic zero. Before modified 4-bit write instructions, interrupts must first disabled instruction. FB2H IPR.2 IPR.1 IPR.0 manipulating settings, choose process interrupt requests with same priority level, select type interrupt high-priority processing. low-priority interrupt itself interrupted high-priority interrupt, another low-priority interrupt. high-priority interrupt cannot interrupted other interrupt source. Table 7-3. Standard Interrupt Priorities Interrupt INTB, INT4 INT0 INT(note) (note) Default Priority INTT0 INTT IPR, interrupt master enable flag (IME), enables disables interrupt processing. Even interrupt request flag corresponding enable flag set, service routine cannot executed until flag logic one. flag directly manipulated instructions, regardless current enable memory bank (EMB) value. Table 7-4. Interrupt Priority Register Settings IPR.2 IPR.1 IPR.0 Result Setting Normal interrupt handling according default priority settings Process INTB INT4 (note) interrupts highest priority Process INT0 interrupts highest priority Process INT1 (note) interrupts highest priority Process INTT0 interrupts highest priority Process INTT1 interrupts highest priority NOTES: During normal interrupt processing, interrupts processed order which they occur. more interrupts occur simultaneously, processing order determined default interrupt priority settings shown Table 7-3. Using settings, select specific interrupts high-priority processing event contention. When high-priority (IPR) interrupt been processed, waiting interrupts handled according their default priorities. KS57C5304/C5308/C5312 does INT1 INT4 interrupts. INTERRUPTS Programming Setting Interrupt Priority following instruction sequence sets INT1 interrupt high priority: BITS IPR.3 (IME) A,#3H IPR,A IPR.3 (IME) EXTERNAL INTERRUPT MODE REGISTERS (IMOD0, IMOD1) following components used process external interrupts INT0 INT1 (note) pin: Edge detection circuit mode registers, IMOD0 IMOD1 (note) mode registers used control triggering edge input signal. IMOD0 IMOD1 (note) settings choose either rising falling edge incoming signal interrupt request trigger. INT4 (note) interrupt exception since input signal generates interrupt request both rising falling edges. FB4H FB5H IMOD0.1 IMOD0.0 IMOD1.0(NOTE) IMOD0 IMOD1 (note) bits addressable 4-bit write instructions. RESET clears IMOD values logic zero, selecting rising edges trigger incoming interrupt requests. Table 7-5. IMOD0 IMOD1 Register Organization IMOD0 IMOD0.1 IMOD1 (note) IMOD0.0 IMOD1.0 Effect IMOD0 Settings Rising edge detection Falling edge detection Both rising falling edge detection IRQ0 flag cannot Effect IMOD1 Settings Rising edge detection Falling edge detection NOTE: KS57C5304/C5308/C5312 does INT1 INT4 interrupts. INTERRUPTS EXTERNAL INTERRUPT MODE REGISTERS (CONTINUED) INT0 Edge Detection IRQ0 INT(note) Edge Detection IRQ(note) IMOD0 P1.1(note) P1.0 IMOD(note) Figure 7-6. Circuit Diagram INT0 INT1 Pins When modifying IMOD0 IMOD1 registers, possible accidentally interrupt request flag. avoid unwanted interrupts, take these precautions when writing your programs: Disable interrupts with instruction. Modify IMOD0 IMOD1 register. Clear relevant interrupt request flags. Enable interrupt setting appropriate flag. Enable interrupts with instructions. NOTE: KS57C5304/C5308/C5312 does INT1 P1.1. 7-10 INTERRUPTS EXTERNAL INTERRUPT MODE REGISTER (IMOD2) mode register external interrupts KS0-KS7 pins, IMOD2, addressable only 4-bit write instructions. RESET clears IMOD2 bits logic zero. FB6H IMOD2.1 IMOD2.0 When IMOD2 cleared logic zero, INT2 uses rising edge incoming signal interrupt request trigger. rising edge detected INT2 pin, when falling edge detected pins KS0KS7, IRQ2 flag logic release signal power-down mode generated. more pins which configured interrupt (KS0-KS7) input output) state, interrupt occurred. Table 7-6. IMOD2 Register Settings IMOD2 IMOD2.1 NOTE: KS57C5304/C5308/C5312 does INT2 pin. IMOD2.0 Effect IMOD2 Settings Select rising edge INT2 (note) Select falling edge KS4-KS7 Select falling edge KS2-KS7 Select falling edge KS0-KS7 INTERRUPTS 2(note) P7.3/KS7 P7.2/KS6 P7.1/KS5 P7.0/KS4 P6.3/KS3 P6.2/KS2 P6.1/KS1 P6.0/KS0 Rising Edge Detection Falling Edge Detection Circuit Clock Selector IMOD2 IRQ2 NOTES: generate interrupt falling edge KS0-KS7, KS0-KS7 pins must configured input mode. Particularly, KS4-KS7 must always configured input mode. KS57C5304/C5308/C5312 does INT2 pin. Figure 7-7. Circuit Diagram INT2 KS0-KS7 Pins 7-12 INTERRUPTS PROGRAMMING Using INT2 Input Interrupt When INT2 interrupt used interrupt, selected interrupt source must input: When KS0-KS7 selected (eight pins): BITS IMOD2, #00H PMG3, PUMOD2, (IMOD2) #3H, KS0-KS7 falling edge select input mode Enable pull-up resistors When KS2-KS7 selected (six pins): BITS IMOD2, #03H PMG3, PUMOD2, (IMOD2) #2H, KS2-KS7 falling edge select P6.2-P6.3 input mode Enable pull-up resistors When KS4-KS7 selected (four pins), must specified strobe signal input: BITS IMOD2, #0FH PMG3, PUMOD2, (IMOD2) #1H, KS4-KS7 falling edge select Enable pull-up resistor 7-13 INTERRUPTS INTERRUPT FLAGS There three types interrupt flags: interrupt request interrupt enable flags that correspond each interrupt, interrupt master enable flag, which enables disables interrupt processing. Interrupt Master Enable Flag (IME) interrupt master enable flag, IME, enables disables interrupt processing. Therefore, even when IRQx flag corresponding flag enabled, interrupt service routine executed until flag logic one. flag located register (IPR.3). directly manipulated instructions, regardless current value enable memory bank flag (EMB). Interrupt Enable Flags (IEx) flags, when logical one, enable specific interrupt requests serviced. When interrupt request flag logic one, interrupt will serviced until corresponding flag also enabled. Interrupt enable flags read, written, tested directly 1-bit instructions (BITS BITR) 4-bit instructions. flags addressed directly their specific addresses, despite current value enable memory bank (EMB) flag. Table 7-7. Interrupt Enable Interrupt Request Flag Addresses Address FB8H FBAH FBBH FBCH FBEH FBFH IPR.2 IPR. IPR.0 Effect Settings Inhibit interrupts Enable interrupts IRQ4 IRQ1 IET1 IET0 IRQB IRQW IRQT1 IRQT0 IRQ0 IRQ2 NOTES: refers generically interrupt enable flags. IRQx refers generically interrupt request flags. interrupt disable mode. interrupt enable mode. KS57C5304/5308/C5312 does IE1, IE4, IRQ1, IRQ4 interrupts. 7-14 INTERRUPTS Interrupt Request Flags (IRQx) Interrupt request flags, read/write addressable 1-bit 4-bit instructions. IRQx flags addressed directly their specific addresses, regardless current value enable memory bank (EMB) flag. When specific IRQx flag logic one, corresponding interrupt request generated. flag then automatically cleared logic zero when interrupt been serviced. Exceptions watch timer interrupt request flags, IRQW, external interrupt flag IRQ2, which must cleared software after interrupt service routine executed. IRQx flags also used execute interrupt requests from software. summary, follow these guidelines using IRQx flags: IRQx request interrupt when interrupt meets condition interrupt generation. IRQx hardware then cleared hardware when interrupt been serviced (with exception IRQW IRQ2). IRQx software, interrupt also generated. When interrupts share same service routine start address, interrupt processing occur ways: When only interrupt enabled, IRQx flag cleared automatically when interrupt been serviced. When interrupts enabled, request flag automatically cleared that user opportunity locate source interrupt request. this case, IRQx setting must cleared manually using BTSTZ instruction. Table 7-8. Interrupt Request Flag Conditions Priorities Interrupt Source INTB INT4 INT0 INT1 INTT0 INTT1 INT2 Internal External Pre-condition IRQx Flag Setting Reference time interval signal from basic timer Both rising falling edges detected INT4 Rising falling edge detected INT0 Rising falling edge detected INT1 Signals TCNT0 TREF0 registers match Signals TCNT1 TREF1 registers match Rising edge detected INT2 else falling edge detected KS0-KS7 pins Time interval secs 3.91 msecs Interrupt Priority Flag Name IRQB IRQ4 IRQ0 IRQ1 IRQT0 IRQT1 IRQ2 IRQW INTW NOTES: quasi-interrupt INT2 only used testing incoming signals. KS57C5304/C5308/C5312 does INT2 pin, INT1, INT4 interrupts. 7-15 INTERRUPTS INTB PROGRAMMING Enabling INTB INT4 Interrupts simultaneously enable INTB INT4 interrupts: BTSTZ IRET BITR IRET IRQB INT4 IRQB INT4 interrupt; yes, INTB interrupt processed INT4 IRQ4 INT4 processed 7-16 POWER-DOWN POWER-DOWN microcontroller power-down modes reduce power consumption: idle stop. Idle mode initiated IDLE instruction stop mode instruction STOP. (Several instructions must always follow IDLE STOP instruction program.) idle mode, clock stops while peripherals oscillation source continue operate normally. When RESET occurs during normal operation during power-down mode, reset operation initiated enters idle mode. When standard oscillation stabilization time interval (31.3 4.19 MHz) elapsed, normal operation resumes. stop mode, system clock oscillation halted (assuming currently operating), peripheral hardware components powered-down. effect stop mode specific peripheral hardware components CPU, basic timer, timer/counters, watch-timer external interrupt requests, detailed Table 8-1. NOTE stop mode using external clock source because input must restricted internally reduce current leakage. Idle stop modes terminated either RESET, interrupt which enabled corresponding interrupt enable flag, IEx. When power-down mode terminated RESET input, normal reset operation executed. Assuming that both interrupt enable flag interrupt request flag "1", power-down mode released immediately upon entering power-down mode. When interrupt used release power-down mode, operation differs depending value interrupt master enable flag (IME): flag "0", program execution started immediately after instruction which issues request enter power-down mode. interrupt request flag remains logic one. flag "1", instructions executed after power-down mode release. Then, vectored interrupt initiated. However, when release signal caused INT2 INTW, operation identical condition. That vector interrupt generated. POWER-DOWN Table 8-1. Hardware Operation During Power-Down Modes Operation Clock oscillator Basic timer Timer/counter Timer/counter Watch timer External interrupts Power-down mode release signal Stop Mode (STOP) System clock oscillation stops Basic timer stops Operates only TCL0 selected counter clock Operates only TCL1 selected counter clock Watch timer operation stopped INT0, INT1, INT2, INT4 acknowledged operations disabled Interrupt request signals enabled interrupt enable flag RESET input Idle Mode (IDLE) clock oscillation stops (system clock oscillation continues) Basic timer operates (with IRQB each reference interval) Timer/counter operates Timer/counter operates Watch timer operates INT0, INT1, INT2, INT4 acknowledged operations disabled Interrupt request signals enabled interrupt enable flag RESET input NOTE: KS57C5304/C5308/C5312 does INT1 INT4 interrupts. POWER-DOWN IDLE MODE TIMING DIAGRAMS Idle Instruction RESET Oscillation Stabilization (36.6 ms/3.58 MHz) Normal Mode Idle Mode Normal Mode Clock Signal Normal Oscillation Figure 8-1. Timing When Idle Mode Released RESET Idle Instruction Mode Release Signal Normal Mode Idle Mode Interrupt Acknowledge (IME Normal Mode Clock Signal Normal Oscillation Figure 8-2. Timing When Idle Mode Released Interrupt POWER-DOWN STOP MODE TIMING DIAGRAMS Stop Instruction RESET Oscillation Stabilization (36.6 ms/3.58 MHz) Normal Mode Stop mode Oscillation Stops Idle Mode Normal Mode Clock Signal Oscillation Resumes Figure 8-3. Timing When Stop Mode Released RESET Stop Instruction Mode Release signal Normal Mode Stop mode Oscillation Stops Oscillation Stabilization (BMOD Setting) (IME=1) Idle Mode Normal Mode Clock Signal Oscillation Resumes Figure 8-4. Timing When Stop Mode Release Interrupt POWER-DOWN PORT CONFIGURATION POWER-DOWN following method describes configure port pins reduce power consumption during power-down modes (stop, idle): Condition microcontroller configured external device: Connect unused port pins according information Table 8-2. Disable pull-up resistors output pins making appropriate modifications pull-up resistor mode register, PUMOD. Reason: output goes when pull-up resistor enabled, there unexpected surges current through pull-up. Disable pull-up resistors input pins configured levels order check current input option. Reason: input level port when pull-up resistor enabled, will draw unnecessarily large current. Condition microcontroller configured external device external device's source turned power-down mode. Connect unused port pins according information Table 8-2. Disable pull-up resistors output pins making appropriate modifications pull-up resistor mode register, PUMOD. Reason: output goes when pull-up resistor enabled, there unexpected surges current through pull-up. Disable pull-up resistors input pins configured levels order check current input option. Reason: input level port when pull-up resistor enabled, will draw unnecessarily large current. Disable pull-up resistors input pins connected external device making necessary modifications PUMOD register. Configure output pins that connected external device level. Reason: When external device's source turned off, microcontroller's output pins high level, supplied external device through input pin. This causes device operate level this case, total current consumption would reduced. Determine correct output state necessary block current pass according with external transistors (PNP, NPN). POWER-DOWN RECOMMENDED CONNECTIONS UNUSED PINS reduce overall power consumption, please configure unused pins according guidelines described Table 8-2. Table 8-2. Unused Connections Reduced Power Consumption Pin/Share Names P1.0/INT0 INT2 P1.3/INT4 P2.0/TCLO0 P2.1/TCLO1 P2.2/CLO P2.3/BUZ P3.0/TCL0 P3.1/TCL1 P3.2 P3.3 P4.0/BTCO P4.1-P4.3 P5.0-P5.3 P6.0/KS0-P6.3/KS3 P7.0/KS4-P7.3/KS7 P8.0-P8.3 P9.0-P9.2 DTMF Connect Input mode: Connect Output mode: connection Recommended Connection connection Connect NOTE: P1.1/INT1, P1.2/INT2, P1.3/INT4, P3.2, P3.3, used KS57C5304/C5308/C5312. RESET Carry flag RESET When RESET signal input during normal operation power-down mode, hardware reset operation initiated enters idle mode. Then, when standard oscillation stabilization interval 36.6 3.58 elapsed, normal system operation resumes. Regardless when RESET occurs during normal operating mode during power-down mode most hardware register values reset values described Table below. current status several register values however, always retained when RESET occurs during idle stop mode; RESET occurs during normal operating mode, their values undefined. Current values that retained this case follows: General-purpose registers Oscillation Stabilization (36.6 ms/3.58 MHz) RESET Input Normal Mode Power-Down Mode Reset Operation Idle Mode Operating Mode Figure 9-1. Timing Oscillation Stabilization After RESET RESET HARDWARE REGISTER VALUES AFTER RESET Table gives detailed information about hardware register values after RESET occurs during power-down mode during normal operation. Table 9-1. Hardware Register Values after RESET Hardware Component Subcomponent Program counter (PC) RESET Occurs During Power-Down Mode RESET Occurs During Normal Operation Lower five bits address 0000H transferred PC12-8, contents 0001H PC7-0. Lower five bits address 0000H transferred PC12-8, contents 0001H PC7-0. Program Status Word (PSW): Carry flag Skip flag (SC0-SC2) Interrupt status flags (IS0, IS1) Bank enable flags (EMB, ERB) Values retained address 0000H program memory transferred flag, address flag. Undefined Undefined address 0000H program memory transferred flag, address flag. Undefined Stack pointer (SP) Data Memory (RAM): General registers General-purpose registers Bank selection registers (SMB, SRB) register (BSC0-BSC) Clocks: Power control register (PCON) Clock output mode register (CLMOD) Interrupts: Interrupt request flags (IRQx) Interrupt enable flags (IEx) Interrupt priority flag (IPR) Interrupt master enable flag (IME) INT0 mode register (IMOD0) INT1 mode register (IMOD1) INT2 mode register (IMOD2) Values retained Values retained Undefined Undefined NOTES: value 0F8H-0FDH retained when RESET signal input. KS57C5304/C5308/C5312 does IMOD1. RESET Table 9-1. Hardware Register Values after RESET (Continued) Hardware Component Subcomponent Ports: Output buffers Output latches Port mode flags (PMG) Pull-up resistor mode (PUMOD1/2) Port open-drain enable register (PNE1) Basic Timer: Count register (BCNT) Mode register (BMOD) Output enable flag (BOE) Timer/Counters Count registers (TCNT0/1) Reference registers (TREF0/1) Mode registers (TMOD0/1) output enable flags (TOE0/1) output latch (TOL0/1) Watch Timer: Watch timer mode register (WMOD) Watchdog Timer mode register (WDMOD) clear flag (WDTCF) DTMF Generator: DTMF mode register (DTMR) FFH/FFH FFH/FFH Undefined Undefined RESET Occurs During Power-Down Mode RESET Occurs During Normal Operation RESET NOTES PORTS Port Mode Flags PORTS KS57C5204/C5208 input port eight ports. KS57C5304/C5308/C5312 input port ports. addresses ports mapped bank RAM. contents port latches read, written, tested corresponding address using manipulation instructions. KS57C5204/C5208 four input pins configurable pins maximum number pins. KS57C5304/C5308/C5312 input configurable pins maximum number pins. Port mode flags (PM) used configure ports (port mode group ports (port mode group ports (port mode group port (port mode group KS57C5204/C5208 only) input output mode setting clearing corresponding buffer. flags grouped four 8-bit registers, addressable 8-bit write instructions only. PUMOD Control Register pull-up mode registers, PUMOD1 8-bit 4-bit registers, respectively, used assign internal pullup resistors software specific ports. When configurable ports through serves output pin, assigned pull-up resistor automatically disabled, even though pin's pull-up resistor enabled corresponding setting pull-up resistor mode register (PUMOD). PUMOD1 addressable 8-bit write instructions only, PUMOD2 addressable 4-bit write instructions only. RESET clears PUMOD register values logic zero, automatically disconnecting software-assignable port pullup resistors. Table 10-1. Port Overview Port Pins Names P1.0 P1.1-P1.3 (note) P2.0-P2.3 P3.0-P3.1 P3.2-P3.3 (note) Address FF1H Function Description 4-bit input port. 1-bit 4-bit read test possible. 1-bit pull-up resistors software assignable 4-bit ports. 1-bit 4-bit read/write/test possible. Ports pins individually software configurable input output. 4-bit Pull-up resistors software assignable; pull-up registers automatically disabled output pins. Ports paired 8-bit data transfer. FF2H FF3H PORTS Table 10-1. Port Overview (Continued) Port Pins Names P4.0-P4.3 P5.0-P5.3 Address FF4H FF5H Function Description 4-bit ports. 1-bit 4-bit read/write/test possible. Port pins individually software configurable input output. 4-bit pull-up resistors software assignable; pull-up registers automatically disable output pins. N-Ch open drain push-pull output selected software. Ports paired 8-bit data transfer. 4-bit ports. 1-bit 4-bit read/write/test possible. Port pins individually software configurable input output. 4-bit pull-up resistors software assignable; pull-up registers automatically disabled output pins. Ports paired 8-bit data transfer. 4-bit port. 1-bit 4-bit read/write test possible. Ports pins individually software configurable input output. 4-bit pull-up resistors software assignable; pull-up registers automatically disable output pins. Ports paired 8-bit data transfer. P6.0-P6.3 P7.0-P7.3 FF6H FF7H (note) P8.0-P8.3 P9.0-P9.2 FF8H FF9H NOTE: KS57C5304/C5308/C5312 does P1.1-P1.3, P3.2-P3.3, ports. Table 10-2. Port Status During Instruction Execution Instruction Type 1-bit test 1-bit input 4-bit input 8-bit input 1-bit output 4-bit output 8-bit output Example BTST BITR P2.3 C,P1.0 A,P7 EA,P4 P2.3 P2,A P6,EA Input Mode Status Input test data each Output Mode Status Input test data output latch Output latch contents undefined Transfer accumulator data output latch Output status modified Transfer accumulator data output 10-2 PORTS PORT MODE FLAGS FLAGS) Port mode flags (PM) used configure ports input output mode setting clearing corresponding buffer. convenient program reference, flags organized into four groups PMG1, PMG2, PMG3, PMG4 shown Table 10-3. flags addressable 8-bit write instructions only. When flag "0", port input mode; when "1", port enabled output. RESET clears port mode flags logic zero, automatically configuring corresponding ports input mode. Table 10-3. Port Mode Group Flags Group PMG1 Address FE8H FE9H PMG2 PMG3 PM2.3 PM3.3 PM4.3 PM5.3 PM6.3 PM7.3 PM8.3 PM2.2 PM3.2 PM4.2 PM5.2 PM6.2 PM7.2 PM8.2 PM9.2 PM2.1 PM3.1 PM4.1 PM5.1 PM6.1 PM7.1 PM8.1 PM9. PM2.0 PM3.0 PM4.0 PM5.0 PM6.0 PM7.0 PM8.0 PM9.0 FEAH FEBH FECH FEDH FEEH FEFH PMG4 NOTES "0", corresponding input mode. "1", output mode: port flags cleared following RESET. KS57C5304/C5308/C5312 does PM3.2, PM3.3, PMG4. PROGRAMMING Configuring Ports Input Output Configure P2.3 output port other ports input ports: BITS EA,#0F8H PMG1,EA EA,#00H PMG2,EA PMG3,EA PMG4,EA P2.3, Output, P2.0-P2.2 Input Input, Input Input NOTE: KS57C5304/C5308/C5312 does P1.1-P1.3, P3.2-P3.3, P8.9. 10-3 PORTS PULL-UP RESISTOR MODE REGISTER (PUMOD) pull-up resistor mode registers (PUMOD1 8-bit registers used assign internal pull-up resistors software specific ports. When configurable ports through used output pin, assigned pull-up resistor automatically disabled, even though pin's pull-up enabled corresponding PUMOD setting. PUMOD1 addressable 8-bit write instructions only. PUMOD2 addressable 4bit write instructions only. RESET clears PUMOD register values logic zero, automatically disconnecting software-assignable port pullup resistors. Table 10-4. Pull-Up Resistor Mode Register (PUMOD) Organization PUMOD PUMOD1 PUMOD2 Address FDCH FDDH FDEH PUR1.3 PUR5 PUR9 PUR1.2 PUR4 PUR8 PUR1.1 PUR3 PUR7 PUR1.0 PUR2 PUR6 NOTES: When "1", pull-up resistors assigned corresponding port: PUR3 port PUR2 port KS57C5304/C5308/C5312 does PUR1.1-PUR1.3, PUR8, PUR9. PROGRAMMING Enabling Disabling Port Pull-Up Resistors P2-P5 enable pull-up resistors, disable pull-up resistors. BITS EA,#0F0H PUMOD1,EA P2-P5 enable N-CHANNEL OPEN-DRAIN MODE REGISTER (PNE1) n-channel, open-drain mode register (PNE1) used configure ports n-channel open-drain push-pull outputs. When PNE1 register "1", corresponding output configured n-channel open-drain; when "0", output configured push-pull. PNE1 register consists 8-bit register. PNE1 addressed 8-bit write instructions only. Table 10-5. N-Channel Open Drain Mode Register (PNE1) Organization Register PNE1 Address FDAH FDBH PNE4.3 PNE5.3 PNE4.2 PNE5.2 PNE4.1 PNE5.1 PNE4.0 PNE5.0 10-4 PORTS PORT CIRCUIT DIAGRAM INT0 INT1 INT2 INT4 PUR1.0 PUR1.1 PUR1.2 PUR1.3 P1.0/INT0 P1.1/INT1 P1.2/INT2 P1.3/INT4 NOTE: KS57C5304/C5308/C5312 does P1.1-P1.3. Figure 10-1. Port Circuit Diagram 10-5 PORTS PORT CIRCUIT DIAGRAM port number 7,8, PURx PMx.3 PURx PMx.2 PURx PMx.1 PURx PMx.0 Px.0 Px.1 Px.2 Px.3 Output Latch NOTES: When port acts output, pull-up resistor automatically disabled, even though port's pull-up resistor enabled settings pull-up resistor mode register (PUMOD). KS57C5304/C5308/C5312 does P3.2, P3.3, Figure 10-2. Port Circuit Diagram 10-6 PORTS PORT CIRCUIT DIAGRAM P-CH PUMOD1.a P-CH Output Latch Px.b N-CH PMx.b Figure 10-3. Port Circuit Diagram 10-7 PORTS NOTES 10-8 TIMERS TIMER/COUNTERS Watch timer (WT) TIMERS TIMER/COUNTERS microcontroller four timer timer/counter modules: 8-bit basic timer (BT) 8-bit timer/counters (TC0, TC1) 8-bit basic timer (BT) microcontroller's main interval timer. generates interrupt request fixed time interval when appropriate modification made mode register. When contents basic timer counter register BCNT overflows, pulse output basic timer output pin, BTCO. basic timer also functions 'watchdog' timer used determine clock oscillation stabilization time when stop mode released interrupt after RESET. 8-bit timer/counters (TC0, TC1) programmable timer/counters that used primarily event counting clock frequency modification output. watch timer (WT) module consists 8-bit watch timer mode register, clock selector, frequency divider circuit. Watch timer functions include real-time watch-time measurement, system clock interval timing, buzzer output generation. TIMERS TIMER/COUNTERS BASIC TIMER (BT) OVERVIEW 8-bit basic timer (BT) functional components: Clock selector logic 4-bit mode register (BMOD) 8-bit counter register (BCNT) Output enable flag (BOE) 8-bit watchdog timer mode register (WDMOD) Watchdog timer counter clear flag (WDTCF) basic timer generates interrupt requests precise intervals, based frequency system clock. Timer pulses output from basic timer's counter register BCNT output BTCO when overflow occurs counter register BCNT. basic timer "watchdog" timer monitoring system events output stabilize clock oscillation when stop mode released interrupt following RESET. settings basic timer mode register BMOD turns module off, selects input clock frequency, controls interrupt stabilization intervals. Interval Timer Function basic timer's primary function measure elapsed time intervals. standard time interval equal basic timer clock pulses. restart basic timer, setting required: mode register BMOD should logic one. input clock frequency interrupt stabilization interval selected loading appropriate values BMOD.2-BMOD.0. 8-bit counter register, BCNT, incremented each time clock signal detected that corresponds frequency selected BMOD. BCNT continues incrementing counts clocks until overflow occurs 255). overflow causes interrupt request flag (IRQB) logic signal that designated time interval elapsed. Then, interrupt request generated, BCNT cleared logic zero, counting continues from 00H. Watchdog Timer Function basic timer also used "watchdog" timer signal occurrence system program operation error. this purpose, instruction that clear watchdog timer (BITS WDTCF) should executed proper points program within given period. Other recent searchesXR-2206 - XR-2206 XR-2206 Datasheet SX1501 - SX1501 SX1501 Datasheet SX1502 - SX1502 SX1502 Datasheet SX1503 - SX1503 SX1503 Datasheet STS7NF60L - STS7NF60L STS7NF60L Datasheet HV220 - HV220 HV220 Datasheet EPS150080UPS-P5P-KH - EPS150080UPS-P5P-KH EPS150080UPS-P5P-KH Datasheet CP-24-5 - CP-24-5 CP-24-5 Datasheet B82991S - B82991S B82991S Datasheet B82991S2901N001 - B82991S2901N001 B82991S2901N001 Datasheet B82991S2601N001 - B82991S2601N001 B82991S2601N001 Datasheet B82991S2122N001 - B82991S2122N001 B82991S2122N001 Datasheet
Privacy Policy | Disclaimer |