The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers.    


Datasheet Search Engine   
 
Part # or Description: • 5V RS232 Driver • 2SC5066* • "Real Time Clock" • "USB connector" • "blue led" 5mm • 10 watt zener diode • 2N3055* motorola
 
Search Tip: Try entering the part number only. Include a wildcard (eg. lm317* or 1n4148*)

 

 

SAM87RI PRODUCT FAMILY Samsung's SAM87Ri family 8-bit single-chip


Datasheet Thumbnail

  

Download PDF



Top Searches for this datasheet



KS86C4204/C4208/P4208
SAM87RI PRODUCT FAMILY
Samsung's SAM87Ri family 8-bit single-chip CMOS microcontrollers offers fast efficient CPU, wide range integrated peripherals, various mask-programmable sizes. address/data architecture large number bit-configurable ports provide flexible programming environment applications with varied memory requirements. Timer/counters with selectable operating modes included support real-time operations.
KS86C4204/C4208/P4208 MICROCONTROLLER
KS86C4204/C4208/P4208 single-chip 8-bit microcontroller fabricated using advanced CMOS process. built around powerful SAM87Ri core. KS86C4204/C4208/P4208 versatile microcontroller, with converter, SIO, zero-crossing detection capability used wide range general purpose applications. Stop Idle power-down modes were implemented reduce power consumption. increase on-chip register space, size internal register file logically expanded. KS86C4204/C4208/P4208 have 4-Kbyte 8-Kbyte program memory on-chip (ROM) 208-bytes general purpose register area RAM. Using SAM87Ri design approach, following peripherals were integrated with SAM87Ri core: Four configurable ports pins) Nine interrupt sources with vector interrupt level 8-bit timer/counter with various operating modes Analog digital converter with input channels 10-bit resolution synchronous module module 12-bit output
ideal wide range electronic applications requiring simple timer/counter, PWM, ADC, SIO, IIC, capture functions. KS86C4204/C4208/P4208 available 28/32-pin 30-pin SDIP package.
KS86P4208 (One Time Programmable) version KS86C4204/C4208 microcontroller. KS86P4208 on-chip 8-Kbyte one-time-programmable EPROM instead masked ROM. KS86P4208 fully compatible with KS86C4204/C4208, function, D.C. electrical characteristics configuration.
KS86C4204/C4208/P4208
FEATURES
SAM87RI core Timer/Counters Memory 208-byte general purpose register area (RAM) 4K/8K byte internal program memory (ROM) module Instruction instructions SAM87RI core provides SAM87 core instruction except word-oriented instruction, multiplication, division, some one-byte instruction 12-bit 2-ch (Max: 250KHz) 6-bit base 6-bit extension frame 8-bit timer/counter 8-bit basic timer watchdog function 8-bit timer/counter with three operating mode 8-bit timer/counter
Converter analog input pins 10-bit conversion resolution
Instruction Execution Time fosc(minimum)
Buzzer Frequency Range Interrupts interrupt sources vector interrupt level Oscillator Freqeuncy General Four ports (total 24pins) programmable ports 1-MHz 16-MHz external crystal oscillator Maximum 16-MHz clock 4MHz(typ) signal generated
Operating Temperature Range 40°C 85°C
Serial synchronous serial module Selectable transmit receive rates
Operating Voltage Range (LVD) LVD)
Multi-Master IIC-Bus Serial peripheral interface
Interface Protocol Spec Serial
Zero-Crossing Detection Circuit Zero crossing detection circuit that generates digital signal synchronism with signal input
Package Types KS86C4204/C4208 32-pin SOP-450 LVD) 30-pin SDIP-400 LVD) 28-pin SOP-375
Built-in reset Circuit (LVD) voltage detector safe reset
KS86C4204/C4208/P4208
BLOCK DIAGRAM
P0.0-P0.7 SCK,SO, AD8-AD1
P1.0-P1.3 BUZ, INT0,
Basic Timer
Port
Port
XOUT (CAP) T0(PWM)
Port Interrupt Control Port P2.0-P2.7 AD0-AD7
Timer
Timer
Port
P3.0-P3.3
AD0-AD1
SAM87RI
P1.1/BUZ
P2.7/SCLK P2.6/SDAT P0.0/SCK P0.1/SO P0.2/SI
P0.7/PWM0 P1.3/PWM
4K/8K
208-Byte Register File
Figure 1-1. Block Diagram
KS86C4204/C4208/P4208
ASSIGNMENTS
XOUT TEST P0.1/SO P0.0/SCK
RESET
P3.0 P3.2 P2.0/AD0 P2.1/AD1 P2.2/AD2 P2.3/AD3 P2.4/AD4 P2.5/AD5
KS86C4204 /C4208 32-SOP (Top View)
P0.2/SI P0.3/CLO P0.4/AD8 P0.5/AD9 P0.6/AD10 P0.7/AD11/PWM0 P3.1 P3.3 P1.0/T0/ZCD P1.1/BUZ P1.2/INT0 P1.3/INT1/PWM1 P2.7/AD7/SCLK P2.6/AD6/SDAT
Figure 1-2. Assignment Diagram (32-Pin Package)
KS86C4204/C4208/P4208
ASSIGNMENTS (Continued)
XOUT TEST P0.1/SO P0.0/SCK
RESET
P3.0 P2.0/AD0 P2.1/AD1 P2.2/AD2 P2.3/AD3 P2.4/AD4 P2.5/AD5
KS88C4204 /C4208 30-SDIP (Top View)
P0.2/SI P0.3/CLO P0.4/AD8 P0.5/AD9 P0.6/AD10 P0.7/AD11/PWM0 P3.1 P1.0/T0/ZCD P1.1/BUZ P1.2/INT0 P1.3/INT1/PWM1 P2.7/AD7/SCLK P2.6/AD6/SDAT
Figure 1-3. Assignment Diagram (30-Pin SDIP Package)
XOUT TEST P0.1/SO P0.0/SCK
RESET
P2.0/AD0 P2.1/AD1 P2.2/AD2 P2.3/AD3 P2.4/AD4 P2.5/AD5
KS88C4204 /C4208 28-SOP (Top View)
P0.2/SI P0.3/CLO P0.4/AD8 P0.5/AD9 P0.6/AD10 P0.7/AD11/PWM0 P1.0/T0/ZCD P1.1/BUZ P1.2/INT0 P1.3/INT1/PWM1 P2.7/AD7/SCLK P2.6/AD6/SDAT
Figure 1-4. Assignment Diagram (28-Pin Package)
KS86C4204/C4208/P4208
DESCRIPTIONS
Table 1-1. KS86C4204/C4208/P4208 Descriptions Names P0.0-P0.7 Type Description Bit-programmable port Schmitt trigger input push-pull, open-drain output. Pull-up resistors assignable software. Bit-programmable port Schmitt trigger input push-pull output. Pull-up resistors assignable software. Port pins also used alternative functions. Bit-programmable port Schmitt trigger input push-pull, open drain output. Pull resistors assignable software. Port also used external interrupt, input. Push-pull open-drain output port. Pull-up resistors assignable software. Crystal/ceramic, oscillator signal system clock. System RESET signal input pin. Test signal input (for factory only: must connected VSS) converter reference voltage input ground Voltage input ground Serial interface clock input output Serial data output Serial data output System clock output port CLOCK DATA Hz-20 frequency output buzzer sound. Zero crossing detector input Timer capture input 10-bit output External interrupt input 12-bit output converter input Type Share Pins SCK,SO,SI CLO, AD8-AD11 T0/ZCD INT0 INT1 AD0-AD7
P1.0-P1.3
P2.0-P2.7
P3.0-P3.3 XIN, XOUT RESET TEST AVREF, AVSS VDD, SCLK SDAT INT0 INT1 PWM0 PWM1 AD0-AD1
P0.0 P0.1 P0.2 P0.3 P2.7 P2.6 P1.1 P1.0 P1.0 P1.2 P1.3 P0.7 P1.3 P2.0-P2.7 P0.4-P0.7
KS86C4204/C4208/P4208
CIRCUITS
P-Channel N-Channel Data
P-Channel
Output DIsable
N-Channel
Figure 1-5. Circuit Type
Last Developing: 99.02.02
Figure 1-7. Circuit Type
Pull-Up Resistor Resistor Enable Data Output DIsable Pull-up Resistor P-Channel
Circuit Type
Data
Figure 1-6. Circuit Type
Figure 1-8. Circuit Type
KS86C4204/C4208/P4208
Pull-up Resistor
P-CH Data Output Disable N-CH
Pull-up Enable
Data Output Disable
Pull-up Enable
Input
Figure 1-9. Circuit Type
Figure 1-11. Circuit Type
Pull-up Resistor
P-CH Data Output Disable N-CH
Pull-up Enable
Input Analog Input
Figure 1-10. Circuit Type
KS86C4204/C4208/P4208
ADDRESS SPACES
ADDRESS SPACES
OVERVIEW
KS86C4204/C4208/P4208 microcontroller kinds address space: Internal program memory (ROM) Internal register file 13-bit address supports program memory operations. separate 8-bit register carries addresses data between internal register file. KS86C4204/C4208/P4208 have 4-Kbytes 8-Kbytes mask-programmable on-chip program memory: which configured Internal mode, 4-Kbyte internal program memory used. KS86C4204/C4208/P4208 microcontroller general-purpose registers internal register file. Forty-four bytes register file mapped system peripheral control functions.
ADDRESS SPACES
KS86C4204/C4208/P4208
PROGRAM MEMORY (ROM)
Normal Operating Mode KS86C4204/C4208/P4208 have 4-Kbytes (locations 0H-0FFFH) 8-Kbytes (locations 0H-1FFFH) internal mask-programmable program memory. first 2-bytes (0000H-0001H) interrupt vector address. Unused locations (0002H-00FFH) used normal program memory. program reset address 0100H.
(DECIMAL) 8,181 8-Kbyte Program Memory Area
(HEX) 1FFFH
4,095
(HEX) 0FFFH 4-Kbyte Program Memory Area
Program start
0100H 0002H 0001H 0000H
Interrupt Vector
Figure 2-1. Program Memory Address Space
KS86C4204/C4208/P4208
ADDRESS SPACES
REGISTER ARCHITECTURE
upper 64-bytes KS86C4204/C4208/P4208's internal register file addressed working registers, system control registers peripheral control registers. lower 192-bytes internal register file(00H-BFH) called general purpose register space. total addressable register space thereby 256-bytes. 252registers this space accessed; available general-purpose use. many SAM87Ri microcontrollers, addressable area internal register file further expanded additional register pages general purpose register space (00H-BFH). This register file expansion implemented KS86C4204/C4208/P4208, however. specific register types area bytes) that they occupy internal register file summarized Table 2-1. Table 2-1. Register Type Summary Register Type system control registers Peripheral, I/O, clock control data registers General-purpose registers (including 16-bit common working register area) Total Addressable Bytes Number Bytes
ADDRESS SPACES
KS86C4204/C4208/P4208
Peripheral Control Registers Bytes Common Area System Registers Working Registers
Bytes (Page
General Pupose Registers Stack Area (page
Figure 2-2. Internal Register File Organization
KS86C4204/C4208/P4208
ADDRESS SPACES
COMMON WORKING REGISTER AREA (C0H-CFH)
SAM87Ri register architecture provides efficient method working register addressing that takes full advantage shorter instruction formats reduce execution time. This 16-byte address range called common area. That locations this area used working registers operations that address location page register file. Typically, these working registers serve temporary buffers data operations between different pages. However, because KS86C4204/C4208/P4208 uses only page common area internal data operation. Register addressing mode used access this area Registers addressed either single 8-bit register paired 16-bit register. 16-bit register pairs, address first 8-bit register always even number address next register number. most significant byte 16-bit data always stored even-numbered register; least significant byte always stored next odd-numbered register.
Even Address
Figure 2-3. 16-Bit Register Pairs
PROGRAMMING Addressing Common Working Register Area
following examples show, should access working registers common area, locations C0H-CFH, using working register addressing mode only. Examples: 0C2H,40H Invalid addressing mode!
working register addressing instead: R2,40H (C2H) value location
0C3H,#45H
Invalid addressing mode!
working register addressing instead: R3,#45H (C3H)
ADDRESS SPACES
KS86C4204/C4208/P4208
SYSTEM STACK
KS86-series microcontrollers system stack subroutine calls returns store data. PUSH instructions used control system stack operations. KS86C4204/C4208/P4208 architecture supports stack operations internal register file. Stack Operations Return addresses procedure calls interrupts data stored stack. contents saved stack CALL instruction restored instruction. When interrupt occurs, contents FLAGS register pushed stack. IRET instruction then pops these values back their original locations. stack address always decremented before push operation incremented after operation. stack pointer (SP) always points stack frame stored stack, shown Figure 2-4.
High Address
Stack
Stack
FLAGS Stack Contents After Interrupt
Stack Contents After Call Instruction
Address
Figure 2-4. Stack Operations Stack Pointer (SP) Register location contains 8-bit stack pointer (SP) that used system stack operations. After reset, value undetermined. Because only internal memory space implemented KS86C4204/C4208/P4208, must initialized 8-bit value range 00H-0C0H. NOTE case Stack Pointer initialized 00H, decreased when stack operation starts. This means that Stack Pointer access invalid stack area.
KS86C4204/C4208/P4208
ADDRESS SPACES
PROGRAMMING Standard Stack Operations Using PUSH
following example shows perform stack operations internal register file using PUSH instructions:
SP,#0C0H
(Normally, 0C0H initialization routine)
PUSH PUSH PUSH PUSH
Stack address 0BFH Stack address 0BEH Stack address 0BDH Stack address 0BCH
Stack address 0BCH Stack address 0BDH Stack address 0BEH Stack address 0BFH
ADDRESS SPACES
KS86C4204/C4208/P4208
NOTES
KS86C4204/C4208/P4208
ADDRESSING MODES
OVERVIEW
ADDRESSING MODES
Instructions that stored program memory fetched execution using program counter. Instructions indicate operation performed data operated Addressing mode method used determine location data operand. operands specified SAM87Ri instructions condition codes, immediate data, location register file, program memory, data memory. SAM87Ri instruction supports explicit addressing modes. these addressing modes available each instruction. addressing modes their symbols follows: Register Indirect Register (IR) Indexed Direct Address (DA) Relative Address (RA) Immediate (IM)
ADDRESSING MODES
KS86C4204/C4208/P4208
REGISTER ADDRESSING MODE Register addressing mode, operand content specified register (see Figure 3-1). Working register addressing differs from Register addressing because uses 16-byte working register space register file 4-bit register within that space (see Figure 3-2).
Program Memory 8-bit Register File Address One-Operand Instruction (Example)
Register File
OPCODE
Point Rigister Register File Value used Instruction Execution
OPERAND
Sample Instruction: CNTR Where CNTR label 8-bit register address
Figure 3-1. Register Addressing
Register File
Program Memory 4-bit Working Register Two-Operand Instruction (Example) LSBs Point Woking Register
OPCODE
OPERAND
Sample Instruction: Where
Figure 3-2. Working Register Addressing
KS86C4204/C4208/P4208
ADDRESSING MODES
INDIRECT REGISTER ADDRESSING MODE (IR) Indirect Register (IR) addressing mode, content specified register register pair address operand. Depending instruction used, actual address point register register file, program memory (ROM), external memory space (see Figures through 3-6). 8-bit register indirectly address another register. 16-bit register pair used indirectly address another memory location.
Program Memory 8-bit Register File Address One-Operand Instruction (Example)
Register File
OPCODE
Point Rigister Register File Address Operand used Instruction
ADDRESS
Value used Instruction Execution
OPERAND
Sample Instruction: @SHIFT Where SHIFT label 8-bit register address
Figure 3-3. Indirect Register Addressing Register File
ADDRESSING MODES
KS86C4204/C4208/P4208
INDIRECT REGISTER ADDRESSING MODE (Continued)
Register File
Program Memory Example Instruction References Program Memory REGISTER PAIR 16-Bit Address Point Program Memory
OPCODE
Point Rigister Pair
Program Memory
Sample Instructions: CALL @RR2 @RR2
Value used Instruction
OPERAND
Figure 3-4. Indirect Register Addressing Program Memory
KS86C4204/C4208/P4208
ADDRESSING MODES
INDIRECT REGISTER ADDRESSING MODE (Continued)
Register File
Program Memory 4-bit Working Register Address LSBs Point Woking Register
OPCODE
OPERAND
Sample Instruction:
Value used Instruction
OPERAND
Figure 3-5. Indirect Working Register Addressing Register File
ADDRESSING MODES
KS86C4204/C4208/P4208
INDIRECT REGISTER ADDRESSING MODE (Concluded)
Register File
Program Memory 4-bit Working Register Address OPCODE Next 3-bit Point Working Register Pair Register Pair
Example Instruction References either Program Memory Data Memory
Program Memory Data Memory Value used Instruction
OPERAND
Sample Instructions: R5,@RR2 R3,@RR14 @RR4, Program memory access External data memory access External data memory access
Figure 3-6. Indirect Working Register Addressing Program Data Memory
KS86C4204/C4208/P4208
ADDRESSING MODES
INDEXED ADDRESSING MODE Indexed addressing mode adds offset value base address during instruction execution order calculate effective operand address (see Figure 3-7). Indexed addressing mode access locations internal register file external memory. short offset Indexed addressing mode, 8-bit displacement treated signed integer range 127. This applies external memory accesses only (see Figure 3-8). register file addressing, 8-bit base address provided instruction added 8-bit offset contained working register. external memory accesses, base address stored working register pair designated instruction. 8-bit 16-bit offset given instruction then added base address (see Figure 3-9). only instruction that supports Indexed addressing mode internal register file Load instruction (LD). instructions support Indexed addressing mode internal program memory, external program memory, external data memory, when implemented.
Register File
Value used Instruction OPERAND
Program Memory Two-Operand Instruction Example X(OFFSET) OPCODE LSBs Point Woking Register
INDEX
Sample Instruction: #BASE[R1] Where BASE 8-bit immediate value
Figure 3-7. Indexed Addressing Register File
ADDRESSING MODES
KS86C4204/C4208/P4208
INDEXED ADDRESSING MODE (Continued)
Register File Program Memory 4-bit Working Register Address X(OFFSET) OPCODE Next bits Point Woking Register Pair Register Pair 16-bit Address added Offset
Selects bits
bits Program Memory Data Memory Value used Instruction
bits
OPERAND
Sample Instructions: #04H[RR2] R4,#04H[RR2] values program address (RR2 #04H) loaded into register Identical operation example, except that external program memory accessed.
Figure 3-8. Indexed Addressing Program Data Memory with Short Offset
KS86C4204/C4208/P4208
ADDRESSING MODES
INDEXED ADDRESSING MODE (Concluded)
Program Memory XLH(OFFSET) XLL(OFFSET) OPCODE
Register File
4-bit Working Register Address
Next bits Point Woking Register Pair Selects bits
Register Pair 16-bit Address added Offset
bits Program Memory Data Memory
bits
OPERAND
Value used Instruction
Sample Instructions: #1000H[RR2] R4,#1000H[RR2] values program address (RR2 #1000H) loaded into register Identical operation example, except that external program memory accessed.
Figure 3-9. Indexed Addressing Program Data Memory with Long Offset
ADDRESSING MODES
KS86C4204/C4208/P4208
DIRECT ADDRESS MODE (DA) Direct Address (DA) mode, instruction provides operand's 16-bit memory address. Jump (JP) Call (CALL) instructions this addressing mode specify 16-bit destination address that loaded into whenever CALL instruction executed. instructions Direct Address mode specify source destination address Load operations program memory (LDC) external data memory (LDE), implemented.
Program Data Memory
Program Memory
Memory Address used
UPPER ADDR BYTE LOWER ADDR BYTE dst/src OPCODE
Selects Program Memory Data Memory: Program Memory Data Memory
Sample Instructions: R5,1234H R5,1234H values program address (1234H) loaded into register Identical operation example, except that external program memory accessed.
Figure 3-10. Direct Addressing Load Instructions
3-10
KS86C4204/C4208/P4208
ADDRESSING MODES
DIRECT ADDRESS MODE (Continued)
Program Memory
NEXT OPCODE
Memory Address used UPPER ADDR BYTE LOWER ADDR BYTE OPCODE
Sample Instructions: CALL C,JOB1 DISPLAY Where JOB1 16-bit immediate address Where DISPLAY 16-bit immediate address
Figure 3-11. Direct Addressing Call Jump Instructions
ADDRESSING MODES
KS86C4204/C4208/P4208
RELATIVE ADDRESS MODE (RA) Relative Address (RA) mode, two's-complement signed displacement between specified instruction. displacement value then added current value. result address next instruction executed. Before this addition occurs, contains address instruction immediately following current instruction. instructions that support addressing
Program Memory
NEXT OPCODE Program Memory Address used
Current Value Current Instruction DISPLACEMENT OPCODE Signed Displacement Value
Sample Instructions: ULT,$+OFFSET Where OFFSET value range +127 -128
Figure 3-12. Relative Addressing IMMEDIATE MODE (IM) Immediate (IM) addressing mode, operand value used instruction value supplied operand field itself. Immediate addressing mode useful loading constant values into registers.
Program Memory OPERAND OPCODE
(The Operand value instruction) Sample Instruction: R0,#0AAH
Figure 3-13. Immediate Addressing
3-12
KS86C4204/C4208/P4208
CONTROL REGISTERS
CONTROL REGISTERS
OVERVIEW
this section, detailed descriptions KS86C4204/C4208/P4208 control registers presented easyto-read format. These descriptions will help familiarize with mapped locations register file. also them quick-reference source when writing application programs. System peripheral registers summarized Table 4-1. Figure illustrates important features standard register description format. Control register descriptions arranged alphabetical order according register mnemonic. More information about control registers presented context various peripheral hardware descriptions Part this manual.
CONTROL REGISTERS
KS86C4204/C4208/P4208
Table 4-1. Register RESET Status Register Name Timer counter register Timer data register Timer control register (high) Timer control register (low) Clock control register System flags register Stack pointer register special register Basic timer control register Basic timer counter Test mode control register System mode register
NOTE: mapped, `x'is Undefined
Mnemonic T0CNT T0DATA T0CONH T0CONL CLKCON FLAGS MDSREG BTCON BTCNT FTSTCON
Address Location Address
RESET Value (bit)
Locations D6H-D8H mapped. Locations reserved.
KS86C4204/C4208/P4208
CONTROL REGISTERS
Table 4-1. Register RESET Status (Continued) Register Name Port data register Port data register Port data register Port data register Timer control register Timer data register Port control register (high) Port control register (low) Port pull-up resistor enable register Port control register Port pull-up, pending register Port control register (high) Port control register (low) Port pull-up resistor enable register Port control register data register control register prescaler IIC-bus clock control register IIC-bus clock/status register IIC-bus address register IIC-bus Tx/Rx data shift register 8-bit prescaler buzzer output control register converter data register (high) converter data register (low) data register extension data register data register extension data register control register Zero crossing detection control register
NOTE: mapped, `x'is Undefined
Mnemonic Address T1CON T1DATA P0CONH P0CONL P0PUR P1CON P1PND P2CONH P2CONL P2PUR P3CON SIODATA SIOCON SIOPS ICCR ICSR IDSR BUZPS ADCON ADDATAH ADDATAL PWM0 PWM0EX PWM1 PWM1EX PWMCON ZCMOD
RESET Value (bit)
CONTROL REGISTERS
KS86C4204/C4208/P4208
number(s) that is/are appended register name addressing Name individual Register function Full Register name mnemonic
Register address (hexadecimal)
FLAGS System Flags Register
Identifier RESET Value Read/Write
Carry Flag Operation dose generate carry borrow condition Operation generates carry-out borrow into high-order bit7
Zero Flag Operation result non-zero value Operation result zero
Sign Flag Operation generates positive number (MSB "0") Operation generates negative number (MSB "1")
Read-only Write-only Read/write used Addressing mode modes modify register values
Description effect specific settings
RESET value notation:
used Undetermind value Logic zero Logic
number:
Figure 4-1. Register Description Format
KS86C4204/C4208/P4208
CONTROL REGISTERS
ADCON
Identifier Value Read/Write .7-.4
Converter Control Register
Converter Input Selection Bits (P2.0) (P2.1) (P2.2) (P2.3) (P2.4) (P2.5) (P2.6) (P2.7) (P0.4) (P0.5) AD10 (P0.6) AD11 (P0.7) Internally connected Internally connected Internally connected Internally connected AVREF
End-of-Conversion Status conversion progress conversion complete
.2-.
Clock Source Selection fosc/16 fosc/8 fosc/4 fosc/
Conversion Start meaning conversion start
CONTROL REGISTERS
KS86C4204/C4208/P4208
BTCON
Identifier Value Read/Write .7-.4
Basic Timer Control Register
Watchdog Timer Function Enable Disable watchdog timer function Enable watchdog timer function Others
.3-.2
Basic Timer Input Clock Selection Bits fosc/4096 fosc/1024 fosc/128 Invalid setting
Basic Timer 8-bit Counter Clear (note) effect Clear basic timer counter value
Basic Timer Divider Clear (note) effect Clear both dividers
NOTE: When write BTCON.0 BTCON.1), basic timer counter basic timer divider) cleared. then cleared automatically "0".
KS86C4204/C4208/P4208
CONTROL REGISTERS
BUZPS
Identifier Value Read/Write
6-Bit Prescaler Buzzer Output
Buzzer Output Enable Disable buzzer output (buzzer off) Enable buzzer output (buzzer
Buzzer Clock Selection Divided (fx/256) Divided (fx/64)
.5-.0
6-Bit Prescaler
divided [fx/(256 64)] divided [fx/(256 64)] divided [fx/(256 64)] divided [fx/(256 64)] divided 2x(n+1) [fx/(256 64)] divided [fx/(256 64)]
CONTROL REGISTERS
KS86C4204/C4208/P4208
CLKCON
Identifier Value Read/Write
System Clock Control Register
Oscillator Wake-up Function Enable Enable main system oscillator wake-up function Disable main system oscillator wake-up function
used KS86C4204/C4208/P4208 Clock (System Clock) Selection Bits Divide (fosc/16) Divide (fosc/8) Divide (fosc/2) Non-divided clock (fosc)
.2-.0
used KS86C4204/C4208/P4208
NOTES: After reset, slowest clock (divided selected system clock. select faster clock speeds, load appropriate values CLKCON.3 CLKCON.4. fosc means oscillator frequency
KS86C4204/C4208/P4208
CONTROL REGISTERS
FLAGS
Identifier Value Read/Write
System Flags Register
Carry Flag Operation does generate carry borrow condition Operation generates carry-out borrow into high-order
Zero Flag Operation result non-zero value Operation result zero
Sign Flag Operation generates positive number (MSB "0") Operation generates negative number (MSB "1")
Overflow Flag Operation result Operation result
.3-.0
used KS86C4204/C4208/P4208
CONTROL REGISTERS
KS86C4204/C4208/P4208
ICCR
Identifier Value Read/Write
Multi-master IIC-Bus Clock Control Register
Acknowledgement Enable Acknowledgement disable mode Acknowledgement enable mode
Clock Selection fosc/16 fosc/512
Multi-master IIC-Bus Tx/Rx Interrupt Enable Disable interrupt Enable interrupt
Multi-master IIC-Bus Tx/Rx Interrupt pending When write this when ICSR.4 When 1-byte transmit/receive terminated, general call slave address match occurred, arbitration lost
.3-.0
ICCR.3-0: Transmit Clock 4-Bit Prescaler Bits clock IICLK/CCR<3:0> where, IICLK fosc/16 when IICR.6 "0", IICLK fosc/512 when ICCR.6
4-10
KS86C4204/C4208/P4208
CONTROL REGISTERS
ICSR
Identifier Value Read/Write .7-.6
Multi-master IIC-Bus Control/Status Register
Master/Slave Tx/Rx Mode Selection Bits Slave receiver mode (Default mode) Slave transmitter mode Master receiver mode Master transmitter mode
IIC-Bus Busy IIC-bus busy Stop condition generation IIC-bus busy (when read) Stop condition generation (when write)
IIC-bus Interface Module Enable Disable IIC-bus data transmit/receive Enable IIC-bus data transmit/receive
Arbitration Lost This when serial interface, master transmit mode, loses arbitration procedure. slave mode this flag when ICCR.5 ICSR.2
Address Match When Start Stop Reset When received slave address matches register general call
General Call When Start/Stop condition generated When received slave address "00000000" (general call)
Received Acknowledge received received
CONTROL REGISTERS
KS86C4204/C4208/P4208
P0CONH
Identifier Value Read/Write .7-.6
Port Control Register (High Byte)
Port P0.7/AD11/PWM0 Configuration Bits Schmitt trigger input converter input (AD11) Schmitt trigger input Push-pull output Alternative function (PWM0 Output)
.5-.4
Port P0.6/AD10 Configuration Bits Schmitt trigger input converter input (AD10) Schmitt trigger input Push-pull output Open-drain output
.3-.2
Port P0.5/AD9 Configuration Bits Schmitt trigger input converter input (AD9) Schmitt trigger input Push-pull output Open-drain output
.1-.0
Port P0.4/AD10 Configuration Bits Schmitt trigger input converter input (AD8) Schmitt trigger input Push-pull output Open-drain output
4-12
KS86C4204/C4208/P4208
CONTROL REGISTERS
P0CONL
Identifier Value Read/Write .7-.6
Port Control Register (Low Byte)
Port P0.3/CLO Configuration Bits Schmitt trigger input Alternative function; ouput Push-pull output Open-drain output
.5-.4
Port P0.2/SI Configuration Bits Schmitt trigger input; input Schmitt trigger input; input Push-pull output Open-drain output
.3-.2
Port P0.1/SO Configuration Bits Schmitt trigger input Alternative function; output Push-pull output Open-drain output
.1-.0
Port P0.0/SCK Configuration Bits Schmitt trigger input; input Alternative function; output Push-pull output Open-drain output
4-13
CONTROL REGISTERS
KS86C4204/C4208/P4208
P0PUR
Identifier Value Read/Write
Port Pull-up Resistor Enable Register
Port P0.7 Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P0.6 Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P0.5 Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P0.4 Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P0.3 Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P0.2 Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P0.1 Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P0.0 Pull-up Resistor Enable Disable pull-up Enable pull-up
4-14
KS86C4204/C4208/P4208
CONTROL REGISTERS
P1CON
Identifier Value Read/Write
Port Control Register
Port P1.3/INT1/PWM1 Configuration Bits Schmitt trigger input; INT1 interrupt disabled Schmitt trigger input; Interrupt falling edge Push-pull output Alternative function (PWM1 output)
Port P1.2/INT0 Configuration Bits Schmitt trigger input; INT0 interrupt disabled Schmitt trigger input; Interrupt falling edge Push-pull output Schmitt trigger input; Interrupt rising edge
Port P1.1/BUZ Configuration Bits Schmitt trigger Schmitt trigger input Push-pull output Alternative function (BUZ output)
Port P1.0 /ZCD Configuration Bits Schmitt trigger input Capture input) input; enable Push-pull output Alternative function output; match PWM)
4-15
CONTROL REGISTERS
KS86C4204/C4208/P4208
P1PND
Identifier Value Read/Write
Port Interrupt Pending Register
Port P1.3/INT1/PWM1 Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P1.2/INT0 Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P1.1/BUZ Pull-up Resistor Enable Disable pull-up Enable pull-up
Port P1.0/T0/ZCD Pull-up Resistor Enable Disable pull-up Enable pull-up
Port 1,P1.3/INT1/PWM1 Open-drain Enable Push pull output mode Open-drain output
Port P1.1/BUZ Open-drain Enable Push pull output mode Open-drain output
Port P1.3/INT1 Interrupt Pending interrupt pending (when read) Clear pending (when write) Interrupt pending (when read)/No effect (when write)
Port P1.2/INT0 Interrupt Pending interrupt pending (when read) Clear pending (when write) Interrupt pending (when read)/No effect (when write)
4-16
KS86C4204/C4208/P4208
CONTROL REGISTERS
P2CONH
Identifier Value Read/Write
Port Control Register (High Byte)
Port P2.7/AD7/SCLK Configuration Bits Schmitt trigger input converter input (AD7); Schmitt trigger input Push-pull output Alternative function (IIC Clock pin); Open-drain type
Port P2.6/AD6/SDAT Configuration Bits Schmitt trigger input converter input (AD6); Schmitt trigger input Push-pull output Alternative function (IIC Data pin); Open-drain type
Port P2.5/AD5 Configuration Bits Schmitt trigger input converter input (AD5); Schmitt trigger input Push-pull output Open-drain output
Port P2.4/AD4 Configuration Bits Schmitt trigger input converter input (AD4); Schmitt trigger input Push-pull output Open-drain output
4-17
CONTROL REGISTERS
KS86C4204/C4208/P4208
P2CONL
Identifier Value Read/Write
Port Control Register (Low Byte)
Port P2.3/AD3 Configuration Bits Schmitt trigger input converter input (AD3); Schmitt trigger input Push-pull output Open-drain output
Port P2.2/AD2 Configuration Bits Schmitt trigger input converter input (AD2); Schmitt trigger input Push-pull output Open-drain output
Port P2.1/AD1Configuration Bits Schmitt trigger input converter input (AD1); Schmitt trigger input Push-pull output Open-drain output
Port P2.0/AD0 Configuration Bits Schmitt trigger input converter input (AD0); Schmitt trigger input Push-pull output Open-drain output
4-18
KS86C4204/C4208/P4208
CONTROL REGISTERS
P2PUR
Identifier Value Read/Write
Port Pull-up Resistor Enable Register
Port Pull-up Resistor Enable Disable pull-up Enable pull-up
Port Pull-up Resistor Enable Disable pull-up Enable pull-up
Port Pull-up Resistor Enable Disable pull-up Enable pull-up
Port Pull-up Resistor Enable Disable pull-up Enable pull-up
Port Pull-up Resistor Enable Disable pull-up Enable pull-up
Port Pull-up Resistor Enable Disable pull-up Enable pull-up
Port Pull-up Resistor Enable Disable pull-up Enable pull-up
Port Pull-up Resistor Enable Disable pull-up Enable pull-up
4-19
CONTROL REGISTERS
KS86C4204/C4208/P4208
P3CON
Identifier Value Read/Write
Port Control Register
Port P3.3 Configuration Bits Push-pull output Push-pull output Open-drain output; Pull-up resistor disable Open-drain output; Pull-up resistor enable
Port P3.2 Configuration Bits Push-pull output Push-pull output Open-drain output; Pull-up resistor disable Open-drain output; Pull-up resistor enable
Port P3.1 Configuration Bits Push-pull output Push-pull output Open-drain output; Pull-up resistor disable Open-drain output; Pull-up resistor enable
Port P3.0 Configuration Bits Push-pull output Push-pull output Open-drain output; Pull-up resistor disable Open-drain output; Pull-up resistor enable
4-20
KS86C4204/C4208/P4208
CONTROL REGISTERS
PWMCON
Identifier Value Read/Write .7-.6
Control Register
Input Clock Slection fosc/256 fosc/64 fosc/8 fosc/
Data Reload Interval Selection Reload from 12-bit counter overflow Reload from 6-bit counter overflow
Data Reload Interval Selection Reload from 12-bit counter overflow Reload from 6-bit counter overflow
Counter Clear effect Clear 12-bit counter (when write)
Counter Enable Stop counter Start (Resume counting)
Overflow Interrupt Enable (12-bit Counter Overflow) Disable interrupt Enable interrupt
12-Bit Counter Overflow Interrupt Pending interrupt pending Clear pending (when write) Interrupt pending
CONTROL REGISTERS
KS86C4204/C4208/P4208
SIOCON
Identifier Value Read/Write
Serial Module Control Registers
Shift Clock Selection Interval clock (P.S Clock) External clock (SCK)
Data Direction Control MSB-first mode LSB-first mode
Mode Selection Receive-only mode Transmit/Receive mode
Shift Clock Edge Selection falling edges, rising edges. rising edges, falling edges.
Counter Clear Shift Start action Clear 3-bit counter start shifting
Shift Operation Enable Disable shift clock counter Enable shift clock counter
Interrupt Enable Disable interrupt Enable interrupt
Interrupt Pending interrupt pending Clear pending condition (when write) Interrupt pending
4-22
KS86C4204/C4208/P4208
CONTROL REGISTERS
Identifier Value Read/Write .7-.3
System Mode Register
used KS86C4204/C4208/P4208 Global Interrupt Enable (note) Disable interrupt instruction) Enable interrupt Instruction)
Page Selection Bits page page (Not used KS86C4204/C4208/P4208) page (Not used KS86C4204/C4208/P4208) page (Not used KS86C4204/C4208/P4208)
NOTE: Following reset, enable global interrupt processing executing instruction (not writing SYM.2).
4-23
CONTROL REGISTERS
KS86C4204/C4208/P4208
T0CONH
Identifier Value Read/Write .7-.1
TIMER Control Register (High Byte)
used KS86C4204/C4208/P4208 Timer Overflow Interrupt Pending (overflow interrupt) interrupt pending (when read) Clear Pending (when write) Interrupt pending (when read)
4-24
KS86C4204/C4208/P4208
CONTROL REGISTERS
T0CONL
Identifier Value Read/Write
TIMER Control Register (Low Byte)
Timer Input Clock Selection Bits fosc/4096 fosc/256 fosc/8 fosc/
Timer Operating Mode Selection Bits Interval mode Capture mode (capture rising edge, counter running, OVF) Capture mode (capture falling edge, counter running, OVF) mode (OVF interrupt occur)
Timer Counter Clear effect Clear timer counter (when write)
Timer Overflow Interrupt Enable Disable overflow interrupt Enable overflow interrupt
Timer Interrupt Enable Disable interrupt Enable interrupt
Timer Interrupt Pending (Capture Match Interrupt) interrupt pending (when read) Clear pending (when write) Interrupt pending (when read)
NOTE: When write T0CONL.3 timer counter cleared. then cleared automatically "0".
4-25
CONTROL REGISTERS
KS86C4204/C4208/P4208
T1CON
Identifier Value Read/Write
Timer Control Register
Timer Counter Control Disable operation Enable counter operation
Timer Input Clock Selection Bits fosc/4096 fosc/1024 fosc/512 fosc/256 fosc/128 fosc/32
Timer Counter Automatic Clear Enable Disable Enable clear signal clear timer counter
Timer Counter Clear Enable effect Clear timer counter (when write)
Timer Interrupt Enable Disable interrupt Enable interrupt
Timer Interrupt Pending interrupt pending Clear pending (when write) Interrupt pending
4-26
KS86C4204/C4208/P4208
CONTROL REGISTERS
ZCMOD
Identifier Value Read/Write .7-.5
Zero Crossing Detection Control Register
used KS86C4204/C4208/P4208 Operation Enable Disable operation Enable operation
Interrupt Mode Selection Bits Interrupt falling edge Interrupt rising edge Interrupt both edge used
Interrupt Enable Disable interrupt Enable interrupt
Interrupt Pending interrupt pending (when read) Clear pending (when write) Interrupt pending (when read)
4-27
CONTROL REGISTERS
KS86C4204/C4208/P4208
NOTES
4-28
KS86C4204/C4208/P4208
INTERRUPT STRUCTURE
INTERRUPT STRUCTURE
OVERVIEW
SAM87Ri interrupt structure basic components: vector, sources. number interrupt sources serviced through interrupt vector which assigned address 0000H.
VECTOR
SOURCES
0000H 0001H
NOTES: SAM87Ri interrupt only vector address (0000H-0001H). number value expandable.
Figure 5-1. KS86-Series Interrupt Type INTERRUPT PROCESSING CONTROL POINTS Interrupt processing controlled ways: either globally, specific interrupt level source. system-level control points interrupt structure therefore: Global interrupt enable disable instructions) Interrupt source enable disable settings corresponding peripheral control register(s) ENABLE/DISABLE INTERRUPT INSTRUCTIONS (EI, system mode register, (DFH), used enable disable interrupt processing. SYM.2 enable disable global interrupt processing respectively, modifying SYM.2. Enable Interrupt (EI) instruction must included initialization routine that follows reset operation order enable interrupt processing. Although manipulate SYM.2 directly enable disable interrupts during normal operation, recommend that instructions this purpose.
INTERRUPT STRUCTURE
KS86C4204/C4208/P4208
INTERRUPT PENDING FUNCTION TYPES When interrupt service routine executed, application program's service routine must clear appropriate pending before return from interrupt subroutine (IRET) occurs. INTERRUPT PRIORITY Because there interrupt priority register SAM87Ri, order service determined sequence source which executed interrupt service routine.
"EI" Instruction Execution RESET Source Interrupts Source Interrupts Enable
Interrupt Pending Register
Interrpt priority determind software polling method Global Interrupt Control (EI, instruction)
Vector Interrupt Cycle
Figure 5-2. Interrupt Function Diagram
KS86C4204/C4208/P4208
INTERRUPT STRUCTURE
INTERRUPT SOURCE SERVICE SEQUENCE interrupt request polling servicing sequence follows: source generates interrupt request setting interrupt request pending "1". generates interrupt acknowledge signal. service routine starts source's pending flag cleared software. Interrupt priority must determined software polling method. INTERRUPT SERVICE ROUTINES Before interrupt request serviced, following conditions must met: Interrupt processing must enabled (EI, SYM.2 "1") Interrupt must enabled interrupt's source (peripheral control register) above conditions met, interrupt request acknowledged instruction cycle. then initiates interrupt machine cycle that completes following processing sequence: Reset (clear "0") global interrupt enable register (DI, SYM.2 "0") disable subsequent interrupts. Save program counter status flags stack. Branch interrupt vector fetch service routine's address. Pass control interrupt service routine. When interrupt service routine completed, Interrupt Return instruction (IRET) occurs. IRET restores status flags sets SYM.2 (EI), allowing process next interrupt request. GENERATING INTERRUPT VECTOR ADDRESSES interrupt vector area contains address interrupt service routine. Vectored interrupt processing follows this sequence: Push program counter's low-byte value stack. Push program counter's high-byte value stack. Push FLAGS register values stack. Fetch service routine's high-byte address from vector address 0000H. Fetch service routine's low-byte address from vector address 0001H. Branch service routine specified 16-bit vector address.
INTERRUPT STRUCTURE
KS86C4204/C4208/P4208
KS86C4204/C4208/P4208 INTERRUPT STRUCTURE KS86C4204/C4208/P4208 microcontroller nine peripheral interrupt sources: Timer match/capture interrupt Timer overflow interrupt Timer match interrupt Zero-cross detection external interrupts port P1.2-P1.3 interrupt overflow interrupt IIC-bus Tx/Rx interrupt
VECTOR
ENABLE/DISABLE PENDING BITS T0CONL.0 T0CONL.1 T0CONH.0 T0CONL.2 T1CON.0 T1CON.1 ZCMOD.0 ZCMOD.1 P1PND.0 P1CON.1-0 P1PND.1 SYM.2 (EI, P1CON.3-2 SIOCON.0 SIOCON.1 PWNCON.0 PWNCON.1 ICCR.4 ICCR.5
SOURCES Timer Match Capture Timer Overflow Timer Match Zero-cross Detect P1.2 External Interrupt P1.3 External Interrupt Interrupt Overflow Interrupt Tx/Rx Interrupt
0000H 0001H
Figure 5-3. KS86C4204/C4208/P4208 Interrupt Structure
KS86C4204/C4208/P4208
CLOCK CIRCUIT
OVERVIEW
CLOCK CIRCUIT
oscillation source provides typical clock KS86C4204/C4208/P4208. internal capacitor supports oscillator circuit. external crystal ceramic oscillation source provides maximum clock. XOUT pins connect oscillation source on-chip clock circuit. Simplified oscillator crystal/ceramic oscillator circuits shown Figures 7-2.
CXIN KS86C4204 /C4208/P4208
KS86C4204 /C4208/P4208 XOUT
XOUT
Figure 7-1. Main Oscillator Circuit Oscillator with Internal Capacitor)
Figure 7-2. Main Oscillator Circuit (Crystal/Ceramic Oscillator)
MAIN OSCILLATOR LOGIC increase processing speed reduce clock noise, non-divided logic implemented main oscillator circuit. this reason, very high resolution waveforms (square signal edges) must generated order efficiently process logic operations. CLOCK STATUS DURING POWER-DOWN MODES power-down modes, Stop mode Idle mode, affect clock oscillation follows: Stop mode, main oscillator "freezes", halting peripherals. contents register file current system register values retained. Stop mode released, oscillator started, reset operation external interrupt with RC-delay noise filter (for KS86C4204/C4208/P4208, INT0-INT1). Idle mode, internal clock signal gated CPU, interrupt control timer. current status preserved, including stack pointer, program counter, flags. Data register file retained. Idle mode released reset interrupt (external internally-generated).
CLOCK CIRCUIT
KS86C4204/C4208/P4208
SYSTEM CLOCK CONTROL REGISTER (CLKCON) system clock control register, CLKCON, located location D4H. read/write addressable following functions: Oscillator wake-up function enable/disable (CLKCON.7) Oscillator frequency divide-by value: non-divided, (CLKCON.4 CLKCON.3) CLKCON register controls whether external interrupt used trigger Stop mode release (This called "IRQ wake-up" function). wake-up enable CLKCON.7. After reset, external interrupt oscillator wake-up function enabled, main oscillator activated, fOSC/16 (the slowest clock speed) selected clock. necessary, then increase clock speed fosc, fosc/2 fosc/8.
SYSTEM CLOCK CONTOL REGISTER (CLKCON) D4H,
Oscillator wake-up enable bit: Enable main system oscillator wake-up function power down mode Disable main system oscillator wake-up function power down mode
used KS86C4204/C4208/P4208 Divide-by selection bits clock frequency: fosc/16 fosc/8 fosc/2 fosc(non-divided)
used KS86C4204/C4208/P4208
Figure 7-3. System Clock Control Register (CLKCON)
KS86C4204/C4208/P4208
CLOCK CIRCUIT
Stop Instruction Oscillator Stop MAIN Oscillator Wake-up NOISE FILTER 1/16
CLKCON.3,.4
CLOCK P0.3/CLO P0CONL
CLKCON.7
NOTE: external interrupt with RC-delay nosie fillter used release Stop mode "wake-up" main ascillator KS86C4204/C4208/P4208, INT0-INT1 external interrupts interrupt this type.
Figure 7-4. System Clock Circuit Diagram
CLOCK CIRCUIT
KS86C4204/C4208/P4208
NOTES
KS86C4204/C4208/P4208
RESET POWER-DOWN
SYSTEM RESET
OVERVIEW power-on reset
POWER-DOWN
KS86C4204/C4208/P4208 RESET four ways:
external reset input pulled digital watchdog peripheral timing Voltage Detection (LVD) During power-on reset, voltage High level RESET forced level. RESET signal input through Schmitt trigger circuit where then synchronized with clock. This bring KS86C4204/C4208/P4208 into known operating status. ensure correct start-up, user should take care that reset signal released before level sufficient allow operation chosen frequency. must held level minimum time interval after power supply comes within tolerance order allow time internal clock oscillation stabilize. minimum required oscillation stabilization time reset approximately 6.55 216/fosc, fosc MHz). When reset occurs during normal operation (with both High level), signal forced reset operation starts. system peripheral control registers then their default hardware reset values (see Table 8-1). provides watchdog timer function order ensure graceful recovery from software malfunction. watchdog timer refreshed before end-of-counter condition (overflow) reached, internal reset will activated. on-chip Voltage Detector, features static Reset when supply voltage below reference value (Typ. Thanks this feature, external reset circuit removed while keeping application safety. long supply voltage below reference value, there internal static RESET. start only when supply voltage rises over reference value. NOTE program duration oscillation stabilization interval, must make appropriate settings basic timer control register, BTCON, before entering Stop mode. Also, want basic timer watchdog function (which causes system reset basic timer counter overflow occurs), disable writing "1010B" upper nibble BTCON.
RESET POWER-DOWN
KS86C4204/C4208/P4208
Initialization Sequence following sequence events occurs during reset operation: interrupts disabled. watchdog function (basic timer) enabled. Ports input mode pull-up resistors disabled. Peripheral control data registers disabled reset their initial values (See Table 8-1). program counter loaded with reset address, 0100H. When programmed oscillation stabilization time interval elapsed, address stored location 0100H (and 0101H) fetched executed.
RESET
Internal RESET Watchdog RESET RESET
Figure 8-1. Reset Block Diagram
Oscillation Stabilization wait time (6.55ms/at MHz)
RESET Input
Normal Mode Power-Down Mode
RESET Operation
Idle Mode
Operation Mode
Figure 8-2. Timing Oscillation Stabilization after RESET
KS86C4204/C4208/P4208
RESET POWER-DOWN
POWER-DOWN MODES
STOP MODE Stop mode invoked instruction STOP (opcode 7FH). Stop mode, operation peripherals halted. That on-chip main oscillator stops supply current reduced less than system functions halted when clock "freezes", data stored internal register file retained. Stop mode released ways: signal external interrupt. Using Release Stop Mode
Stop mode released when signal released returns High level. system peripheral control registers then reset their default values contents data registers retained. reset operation automatically selects slow clock (fosc/16) because CLKCON.3 CLKCON.4 cleared "00B". After oscillation stabilization interval elapsed, executes system initialization routine fetching 16-bit address stored locations 0100H 0101H. Using External Interrupt Release Stop Mode Only external interrupts with RC-delay noise filter circuit used release Stop mode (Clock-related external interrupts cannot used). External interrupts INT0-INT1 KS86C4204/C4208/P4208 interrupt structure meet this criteria. Note that when Stop mode released external interrupt, current values system peripheral control registers changed. When interrupt release Stop mode, CLKCON.3 CLKCON.4 register values remain unchanged, currently selected clock value used. external interrupt Stop mode release, also program duration oscillation stabilization interval. this, must make appropriate control clock settings before entering Stop mode. external interrupt serviced when Stop mode release occurs. Following IRET from service routine, instruction immediately following that initiated Stop mode executed. IDLE MODE Idle mode invoked instruction IDLE (opcode 6FH). Idle mode, operations halted while select peripherals remain active. During Idle mode, internal clock signal gated CPU, interrupt logic timer/counters. Port pins retain mode (input output) they time Idle mode entered. There ways release Idle mode: Execute reset. system peripheral control registers reset their default values contents data registers retained. reset automatically selects slow clock (fosc/16) because CLKCON.3 CLKCON.4 cleared "00B". interrupts masked, reset only release Idle mode. Activate enabled interrupt, causing Idle mode released. When interrupt release Idle mode, CLKCON.3 CLKCON.4 register values remain unchanged, currently selected clock value used. interrupt then serviced. Following IRET from service routine, instruction immediately following that initiated Idle mode executed. NOTES Only external interrupts that clock-related used release stop mode. release Idle mode, however, type interrupt (that internal external) used. Before enter STOP IDLE mode, (P1CON) (P0CONH, P2CONH, P2CONL) must disabled. Otherwise, STOP IDLE current will increased significantly.
RESET POWER-DOWN
KS86C4204/C4208/P4208
HARDWARE RESET VALUES
Table lists values system registers, peripheral control registers, peripheral data registers following reset operation normal operating mode. shows reset value logic logic zero, respectively. means that value undefined following reset. dash ("-") means that either used mapped.
Table 8-1. Register RESET Status Register Name Timer counter register Timer data register Timer control register (high) Timer control register (low) Clock control register System flags register Stack pointer register special register Basic timer control register Basic timer counter Test mode control register System mode register
NOTE: mapped, `x'is Undefined
Mnemonic T0CNT T0DATA T0CONH T0CONL CLKCON FLAGS MDSREG BTCON BTCNT FTSTCON
Address Location Address
RESET Value (bit)
Locations D6H-D8H mapped. Locations reserved.
KS86C4204/C4208/P4208
RESET POWER-DOWN
Table 8-1. Register RESET Status (Continued) Register Name Port data register Port data register Port data register Port data register Timer control register Timer data register Port control register (high) Port control register (low) Port pull-up resistor enable register Port control register Port pull-up, pending register Port control register (high) Port control register (low) Port pull-up resistor enable register Port control register data register control register prescaler IIC-bus clock control register IIC-bus clock/status register IIC-bus address register IIC-bus Tx/Rx data shift register 8-bit prescaler buzzer output control register converter data register (high) converter data register (low) data register extension data register data register extension data register control register Zero crossing detection control register
NOTE: mapped, `x'is Undefined
Mnemonic Address T1CON T1DATA P0CONH P0CONL P0PUR P1CON P1PND P2CONH P2CONL P2PUR P3CON SIODATA SIOCON SIOPS ICCR ICSR IDSR BUZPS ADCON ADDATAH ADDATAL PWM0 PWM0EX PWM1 PWM1EX PWMCON ZCMOD
RESET Value (bit)
KS86C4204/C4208/P4208
RESET POWER-DOWN
PROGRAMMING Sample KS86C4204/C4208/P4208 Initialization Routine
following sample program suggests program initial program settings ;-<< Interrupt Vector Address VECTOR INITIAL: SYM, #00H BTCON, #10100010B CLKCON, #00011000B #0C0H Global/Fast interrupt disable Watch-dog disable non-divided clock 4208 00~BF (After decrease, push data) 0000H 00H,INT_4208 0100H KS86C4208 only interrupt vector
;-<< Port Initialization P0CONH, P0CONL, P0PUR, #0FFH P1CON, #50H P1PND, #0F0H P2CONH, P2CONL, P2PUR, #0FFH P3CON, input input pull-up enable input, EXT.INT enable pull-up enable input input pull-up enable push-pull output
;-<< Timer Setting T0DATA, #41H T0CONL, #01000010B interrupt interval -1.667msec (10MHz base) Timer match output
;-<< Area Clear RAM_CLR: #0BFH ULE, RAM_CLR clear area setting
general register area 00H~BFH
RESET POWER-DOWN
KS86C4204/C4208/P4208
PROGRAMMING Sample KS86C4204/C4208/P4208 Initialization Routine (Continued)
;-<< Initialize Other Register
;-<< Main Loop MAIN:
#33H
CALL
SUB_ROUTINE0
subroutine call
CALL
SUB_ROUTINE
subroutine call
MAIN
;-<< Subroutine SUB_ROUTINE0:
SUB_ROUTINE1:
KS86C4204/C4208/P4208
RESET POWER-DOWN
PROGRAMMING Sample KS86C4204/C4208/P4208 Initialization Routine (Continued)
;-<< Interrupt Service Routine INT_4208: INT_TIMER0:
T0CONL #00000011B #00000011B INT_TIMER0
KS86C4208 just interrupt vector only Timer match interrupt enable T0CON's pending INT. enable check
T0CONL, #11111110B
pending clear
IRET
KS86C4204/C4208/P4208
PORTS
OVERVIEW
Port
PORTS
KS86C4204/C4208/P4208 four ports (0-3): 32-SOP type, with pins total 28-SOP type, with pins total. access these ports directly writing reading port data register addresses. Ports configured drive. (High current output: typical Table 9-1. KS86C4204/C4208/P4208 Port Configuration Overview Function Description Bit-programmable port Schmitt trigger input push-pull, opendrain put. Pull-up resistors assignable software. Bit-programable port Schmitt trigger input push-pull output. Pull-up resistors assignable software. Port1 pins also used alternative function. Bit-programmable port Schmitt trigger input push-pull, open drain output. Pull-up resistors assignable software. Port2 pins also used converter input. Push-pull open-drain output port. Pull-up resistors assignable software. Programmability
PORTS
KS86C4204/C4208/P4208
PORT DATA REGISTERS Table gives overview port data register names, locations, addressing characteristics. Data registers ports have structure shown Figure 9-1. Table 9-2. Port Data Register Summary Register Name Port data register Port data register Port data register Port data register Mnemonic
NOTE: reset operation clears P0-P3 data register "00H".
PORT DATA REGISTER 0-3) Pn.1 Pn.0
Pn.7
Pn.6
Pn.5
Pn.4
Pn.3
Pn.2
NOTES: Eight bits data register used port port Only lower four bits data register used port Only lower four bits data register used port (32-SOP type).
Figure 9-1. Port Data Register Format
KS86C4204/C4208/P4208
PORTS
PORT Port bit-programmable, general-purpose, ports. select normal input push-pull, open drain output mode. addition, configure pull-up resistor individual pins using control register settings. access port directly writing reading corresponding port data register, (E0H). reset clears port control register, P0CONH P0CONL, "00H" configuring port pins normal inputs. addition register used control Port P0PUR (E8H).
Pull-Up Register Typical) Pull-Up Enable Open-Drain P0CONH P0CONL
PWM, Data Output Disable (Input Mode)
IN/OUT
Input Data
Circuit Type
NOTE:
pins have protection diodes through VSS.
Mode Input Data Output Input
Figure 9-2. Port Circuit Diagram
PORTS
KS86C4204/C4208/P4208
PORT CONTROL REGISTERS (HIGH BYTE) E6H,
[.7-.6] Port P0.7/AD11/PWM0 Configuration Bits
Schmitt trigger input converter input (AD11); Schmitt trigger input Push-pull output Alternative function (PWM0 Output)
[.5-.4] Port P0.6/AD10 Configuration Bits
Schmitt trigger input converter input (AD10); Schmitt trigger input Push-pull output Open-drain output
[.3-.2] Port0, P0.5/AD9 Configuration Bits
Schmitt trigger input converter input (AD9); Schmitt trigger input Push-pull output Open-drain output
[.1-.0] Port0, P0.4/AD8 Configuration Bits
Schmitt trigger input converter input (AD8); Schmitt trigger input Push-pull output Open-drain output
Figure 9-3. Port High-Byte Control Register (P0CONH)
KS86C4204/C4208/P4208
PORTS
PORT CONTROL REGISTERS (LOW BYTE) E7H,
[.7-.6] Port P0.3/CLO Configuration Bits
Schmitt trigger input Alternative function; output Push-pull output Open-drain output
[.5-.4] Port P0.2/SI Configuration Bits
Schmitt trigger input; Input Schmitt trigger input; Input Push-pull output Open-drain output
[.3-.2] Port0, P0.1/SO Configuration Bits
Schmitt trigger input Alternative function; Output Push-pull output Open-drain output
[.1-.0] Port0, P0.0/SCK Configuration Bits
Schmitt trigger input; Input Alternative function; Output Push-pull output Open-drain output
Figure 9-4. Port Low-Byte Control Register (P0CONL)
PORTS
KS86C4204/C4208/P4208
PORT PULL-UP RESISTOR ENABLE REGISTERS E8H,
[.7] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.6] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.5] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.4] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.3] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.2] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.1] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.0] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
Figure 9-5. Port Pull-up Enable Control Registers (P0PUR)
KS86C4204/C4208/P4208
PORTS
PORT Port 4-bit port with individually configurable pins. used general port (Schmitt trigger input mode push-pull output mode). also port1 special input (ZCD) output (BUZ, PWM). addition, configure pull-up resistor individual using control register settings. normal operating mode, reset clears P1CON "00H", configuring P1.0-P1.3 normal Schmitt trigger inputs, also configure P1CON "0FFH" alternative functions. address port bits directly writing reading port data register, (E1H). port control register, P1CON located addresses E9H.
Pull-Up Register Typical) Pull-Up Enable P1CON
BUZ, Data Output Disable (Input Mode)
IN/OUT
Input Data External Interrupt Input
Circuit Type Noise Filter
NOTE:
pins have protection diodes through
Mode Input Data Output Input
Figure 9-6. Port Circuit Diagram
PORTS
KS86C4204/C4208/P4208
PORT CONTROL REGISTERS E9H,
[.7-.6] Port P1.3/PWM1/INT1 Configuration Bits
Schmitt trigger input; INT1 interrupt disabled Schmitt trigger input; Interrupt falling edge Push-pull output Alternative function (PWM1 Output)
[.5-.4] Port P1.2/INT0 Configuration Bits
Schmitt trigger input; INT0 interrupt disabled Schmitt trigger input; Interrupt falling edge Push-pull output Schmitt trigger input; Interrupt rising edge
[.3-.2] Port1, P1.1/BUZ Configuration Bits
Schmitt trigger input; Schmitt trigger input; Push-pull output Alternative function (BUZ Output)
[.1-.0] Port1, P1.0/T0/ZCD Configuration Bits
Schmitt trigger input Capture input) input; Enable Push-pull output Alternative function Output; match PWM)
Figure 9-7. Port Control Registers (P1CON)
KS86C4204/C4208/P4208
PORTS
PORT INTERRUPT PENDING REGISTERS EAH,
[.7] Port 1.3/INT1/PWM1, Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.6] Port 1.2/INT0, Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.5] Port 1.1/BUZ, Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.4] Port 1.0/T0/ZCD, Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.3] Port 1.3/INT1/PWM1, Open-drain Enable
Push pull output mode Open-drain output mode
[.2] Port 1.1/BUZ, Open-drain Enable
Push pull output mode Open-drain output mode
[.1] Port 1.3/INT1, Interrupt Pending
interrupt pending (when read) Clear pending (when write) Interrupt pending (when read)/No effect (when write)
[.0] Port 1.2/INT0 Interrupt Pending
interrupt pending (when read) Clear pending (when write) Interrupt pending (when read)/No effect (when write)
Figure 9-8. Port Interrupt Pending Registers (P1PND)
PORTS
KS86C4204/C4208/P4208
PORT Port 8-bit port with individually configurable pins. used general port (Schmitt trigger input mode push-pull output mode N-channel open-drain output mode). also port pins inputs. addition, configure pull-up resistor individual pins using control register settings. normal operating mode, reset clears P2CONH P2CONL "00H", configuring P2.0-P2.7 normal Schmitt trigger inputs. address port bits directly writing reading port data register, (E2H). port control register, P2CONH located addresses P2CONL ECH. additional register used control Port P2PUR (EDH). setting port open-drain pull-up resistor enable register, P2PUR, configure specific pins open-drain push-pull output.
Pull-Up Register Typical) Pull-Up Enable Open-Drain P2CONH P2CONL
SCL, Data Output Disable (Input Mode)
IN/OUT
Input Data SCLK SDAT
Circuit Type
NOTE:
pins have protection diodes through VSS.
Mode Input Data Output Input
Figure 9-9. Port Circuit Diagram
9-10
KS86C4204/C4208/P4208
PORTS
PORT CONTROL REGISTERS (HIGH BYTE) EBH,
[.7-.6] Port2, P2.7/AD7/SCLK Configuration Bits
Schmitt trigger input converter input (AD7); Schmitt trigger input Push-pull output Alternative function (IIC Clock pin):open-drain type
[.5-.4] Port P2.6/AD6/SDAT Configuration Bits
Schmitt trigger input converter input (AD6); Schmitt trigger input Push-pull output Alternative function (IIC Data pin):open-drain type
[.3-.2] Port2, P2.5/AD5 Configuration Bits
Schmitt trigger input converter input (AD5); Schmitt trigger input Push-pull output Open-drain output
[.1-.0] Port2, P2.4/AD4 Configuration Bits
Schmitt trigger input converter input (AD4); Schmitt trigger input Push-pull output Open-drain output
Figure 9-10. Port High-Byte Control Registers (P2CONH)
PORTS
KS86C4204/C4208/P4208
PORT CONTROL REGISTERS (LOW BYTE) ECH,
[.7-.6] Port2, P2.3/AD3 Configuration Bits
Schmitt trigger input converter input (AD3); Schmitt trigger input Push-pull output Open-drain output
[.5-.4] Port P2.2/AD2 Configuration Bits
Schmitt trigger input converter input (AD2); Schmitt trigger input Push-pull output Open-drain output
[.3-.2] Port2, P2.1/AD1 Configuration Bits
Schmitt trigger input converter input (AD1); Schmitt trigger input Push-pull output Open-drain output
[.1-.0] Port2, P2.0/AD0 Configuration Bits
Schmitt trigger input converter input (AD0); Schmitt trigger input Push-pull output Open-drain output
Figure 9-11. Port Low-Byte Control Register (P2CONL)
9-12
KS86C4204/C4208/P4208
PORTS
PORT PULL-UP RESISTOR ENABLE REGISTERS EDH,
[.7] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.6] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.5] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.4] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.3] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.2] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.1] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
[.0] Port Pull-up Resistor Enable
Disable pull-up Enable pull-up
Figure 9-12. Port Pull-up Resistor Enable Register (P2PUR)
9-13
PORTS
KS86C4204/C4208/P4208
PORT Port 4-bit port with individually configurable pins. used only output port. addition, configure pull-up register individual pins using control register settings. normal operating mode, reset clears P3CON "00H", configures P3.0-P3.3 push-pull output mode. Using P3CON register (EEH), alternatively configure port pins push-pull output, open-drain output.
Pull-Up Register Typical) Pull-Up Enable Open-Drain
Data Output Only
IN/OUT
NOTE:
pins have protection diodes through
VSS.
Figure 9-13. Port Circuit Diagram
9-14
KS86C4204/C4208/P4208
PORTS
PORT CONTROL REGISTERS EEH,
[.7-.6] Port P3.3 Configuration Bits
Push-pull output Push-pull output Open-drain output: pull-up resistor disable Open-drain output: pull-up resistor enable
[.5-.4] Port P3.2 Configuration Bits
Push-pull output Push-pull output Open-drain output: pull-up resistor disable Open-drain output: pull-up resistor enable
[.3-.2] Port3, P3.1 Configuration Bits
Push-pull output Push-pull output Open-drain output: pull-up resistor disable Open-drain output: pull-up resistor enable
[.1-.0] Port3, P3.0 Configuration Bits
Push-pull output Push-pull output Open-drain output: pull-up resistor disable Open-drain output: pull-up resistor enable
Figure 9-14. Port Control Registers (P3CON)
9-15
PORTS
KS86C4204/C4208/P4208
PROGRAMMING Configuring Port Pins Specification
following sample program shows configure KS86C4204/C4208/P4208 ports specification Program comments show effect settings:
P0CONH, #01101010B P0CONL, #10010101B P1CON, #10101010B P2CONH, #11111010B P2CONL, #10101010B P3CON, #00000000B
input 0.6-0.4 push-pull output push-pull output 0.2-0.0 setting 1.3-1.0 push-pull output 2.7, setting 2.5, push-pull output 2.0-2.3 push-pull output 3.3-3.0 push-pull output
9-16
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
Basic Timer (BT)
BASIC TIMER TIMERS
MODULE OVERVIEW
KS86C4204/C4208/P4208 three default timers: 8-bit basic timer, 8-bit general-purpose timer/counter, called timer 8-bit timer/counter zero-crossing detection circuit called timer
basic timer (BT) different ways: watchdog timer provide automatic reset mechanism event system malfunction. signal required oscillation stabilization interval after reset Stop mode release. functional components basic timer block are: Clock frequency divider (fOSC divided 4096, 1024, 128) with multiplexer 8-bit basic timer counter, BTCNT (DDH, read-only) Basic timer control register, BTCON (DCH, read/write) Timer Timer three operating modes, which select appropriate T0CONL setting: Interval timer mode Capture input mode 8-bit output mode Timer following functional components: Clock frequency divider (fosc divided 4096, 256, with multiplexer 8-bit counter (T0CNT), 8-bit comparator, 8-bit data register (T0DATA) (P1.0, match) timer match/PWM output capture input Timer overflow interrupt (T0OVF) match interrupt (T0INT) generation Timer control registers, T0CONH T0CONL (D2H respectively) Timer Timer operating mode, interval timer mode. clear timer counter appropriate setting T1CON register. T1CON.3 "1", T1CNT cleared edge detection. Timer following components: Clock frequency divider (fOSC divided 4096, 1024, 512, 256, 128, 8-bit counter (T1CNT), 8-bit comparator, 8-bit data register (T1DATA) Timer control register, T1CON
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
BASIC TIMER (BT)
BASIC TIMER CONTROL REGISTER (BTCON) basic timer control register, BTCON, used select input clock frequency, clear basic timer counter frequency dividers, enable disable watchdog timer function. reset clears BTCON "00H". This enables watchdog function selects basic timer clock frequency fosc/4096. disable watchdog function, must write signature code "1010B" basic timer register control bits BTCON.7-BTCON.4. 8-bit basic timer counter, BTCNT, cleared during normal operation writing BTCON.1. clear frequency dividers both basic timer input clock timer clock, write BTCON.0.
BASIC TIMER CONTROL REGISTER (BTCON) DCH,
Watchdog timer enable bits: 1010B Disable watchdog function Other value Enable watchdog function
Divider clear basic timer timer effect Clear both dividers Basic timer counter clear bits: effect Clear basic timer counter
Basic timer input clock selection bits: fosc/4096 fosc/1024 fosc/128 Invalid selection
Figure 10-1. Basic Timer Control Register (BTCON)
10-2
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
BASIC TIMER FUNCTION DESCRIPTION Watchdog Timer Function program basic timer overflow signal (BTOVF) generate reset setting BTCON.7-BTCON.4 value other than "1010B" (The "1010B" value disables watchdog function). reset clears BTCON "00H", automatically enabling watchdog timer function. reset also selects clock determined current CLKCON register setting) divided 4096 clock. reset whenever basic timer counter overflows occurs. During normal operation, application program must prevent overflow, accompanying reset operation, from occurring. this, BTCNT value must cleared writing BTCON.1) regular intervals. system malfunction occurs circuit noise some other error condition, counter clear operation will executed basic timer overflow will occur, initiating reset. other words, during normal operation, basic timer overflow loop overflow 8-bit basic timer counter, BTCNT) always broken BTCNT clear instruction. malfunction does occur, reset triggered automatically. Oscillation Stabilization Interval Timer Function also basic timer program specific oscillation stabilization interval following reset when Stop mode been released external interrupt. Stop mode, whenever reset external interrupt occurs, oscillator starts. BTCNT value then starts increasing rate fOSC/4096 (for reset), rate preset clock source (for external interrupt). When BTCNT.4 set, signal generated indicate that stabilization interval elapsed gate clock signal that resume normal operation. summary, following events occur when Stop mode released: During Stop mode, power-on reset external interrupt occurs trigger Stop mode release oscillation starts. power-on reset occurred, basic timer counter will increase rate fOSC/4096. external interrupt used release Stop mode, BTCNT value increases rate preset clock source. Clock oscillation stabilization interval begins continues until basic timer counter set. When BTCNT.4 set, normal operation resumes. Figure 10-2 10-3 shows oscillation stabilization time STOP mode release.
10-3
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
Oscillation Stabilization
Normal Operating mode
Reset ReleaseVoltage RESET trst Internal Reset Release
Oscillator (XOUT) Oscillator Stabilization Time
BTCNT clock BTCNT value 10000B 00000B tWAIT 4096x16x1/fOSC
Basic timer increment operations IDLE mode
NOTE:
During oscillator stabilization wait time, Power-on-reset 4096x16/fosc.
WAIT,
when released
Figure 10-2. Oscillation Stabilization Time RESET
10-4
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
Normal Operating Mode STOP Instruction Execution External Interrupt
RESET
STOP Mode
Oscillation Stabilization Time
Normal Operating Mode
STOP Mode Release Signal
STOP Release Signal
Oscillator (XOUT)
BTCNT clock
10000B BTCNT Value 00000B tWAIT Basic Timer Increment NOTE: Duration oscillator stabilzation wait time, tWAIT, released interrupt determined setting basic timer control register, BTCON.
BTCON.3
BTCON.2
tWAIT
4096 16/fosc 1024 16/fosc 16/fosc Invalid setting
tWAIT (When MHz)
6.55 1.64
Figure 10-3. Oscillation Stabilization Time STOP Mode Release
10-5
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
PROGRAMMING Configuring Basic Timer
This example shows configure basic timer sample specification ;-<<Initialize system peripherals>> RESET 0100H BTCON,#10100010B SP,#0C0H
MHz) select (non-divided)
Reset start address disable interrupt disable watchdog function clock source: fosc/4096 (104 overflow CLKCON,#00011000B clock source KS86C4204/C4208/P4208 Stack pointer initial
;-<< Main loop MAIN
enable interrupt
overflow
BTCON,#02H
enable watchdog function clear basic timer counter (BTCON) before occurs
T,MAIN
10-6
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
TIMER
TIMER CONTROL REGISTERS (T0CONH T0CONL) timer control register byte, T0CONL, used select timer operating mode (interval timer, capture mode, mode) input clock frequency, clear timer counter, enable overflow interrupt match/capture interrupt. also contains pending match/capture interrupts. Timer control register high byte, T0CONH, contains pending overflow interrupt. Only T0CONH register used, T0CONH.0. reset clears T0CONL "00H". This sets timer normal interval timer mode, selects input clock frequency fOSC /4096, disables overflow interrupt match/capture interrupts. counter cleared time during normal operation writing T0CONL.3. overflow interrupt, T0OVF, IRQ0 with vector 00H. When overflow interrupt occurs serviced CPU, pending condition cleared manually writing T0CONH.0. enable match/capture interrupt (T0INT, IRQ0, vector 00H), must T0CONL.1 "1". interrupt service routine must clear pending condition writing interrupt pending bit, T0CONL.0.
TIMER CONTROL REGISTERS (HIGH BYTE) D2H, .0(8)
used
Timer overflow interrupt pending bit(overflow interrupt): interrupt pending (when read) Clear pending (when write) Interrupt pending (when read)
Figure 10-4. Timer High-Byte Control Registers (T0CONH)
10-7
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
TIMER CONTROL REGISTERS (LOW BYTE) D3H,
Timer interrupt clock selection bits: fosc/4096 fosc/256 fosc/8 fosc/1 Timer operating mode selection bits: Interval mode Capture mode (capture rising edge, counter running, occur) Capture mode (capture falling edge, counter running, occur) mode (OVF interrupt occur)
Timer interrupt pending bit: interrupt pending (when read) Clear pending (when write) interrupt pending (when read) Timer interrupt enable bit: Disable interrupt Enable interrupt Timer overflow interrupt enable bit: Disable overflow interrupt Enable overflow interrupt
Timer counter clear bit: effect Clear Timer counter (when write)
Figure 10-5. Timer Low-Byte Control Registers (T0CONL)
10-8
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
TIMER FUNCTION DESCRIPTION Timer Interrupts (IRQ0, Vectors 00H) Timer module generate interrupts; timer overflow interrupt (T0OVF), timer match/capture interrupt (T0INT). T0OVF interrupt level IRQ0, vector 00H; T0INT also level IRQ0, vector 00H. T0OVF interrupt pending condition cleared setting T0CONH.0 pending "0". T0INT pending condition must cleared software writing T0CONL.0 pending bit. INTERVAL TIMER MODE interval timer mode, match signal generated when counter value identical value written Timer reference data register, T0DATA. match signal generates Timer match interrupt (T0INT, vector 00H) then clears counter. example, write value "10H" T0DATA, counter will increment until reaches "10H". this point, Timer interrupt request generated, counter value reset counting resumes. With each match, level signal Timer output inverted.
Interrupt Enable/Disable
(Clear)
IRQ0 (T0OVF)
Counter
Interrupt Enable/Disable
IRQ0 (T0INT)
Comparator
Match
Toggle
P1.0/T0 P1CON.1,
Data Register
Figure 10-6. Simplified Timer Function Diagram (Interval Timer Mode)
10-9
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
Compare Value (T0DATA) Counter Value (T0CNT) Count Start T0CON Counter Clear (T0CONL.3)
Match
Match
Match Match Match Match Match
Clear
Clear T0DATA Value Change
Clear
Interrupt Request (T0CONL.0)
Figure 10-7. Timer Timing Diagram
10-10
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
PULSE WIDTH MODULATION MODE Pulse width modulation (PWM) mode lets program width (duration) pulse that output pin. interval timer mode, match signal generated when counter value identical value written data register (T0DATA). mode, however, match signal does clear counter runs continuously, overflowing "FFH", continues incrementing from "00H"). Although possible match signal generate T0INT interrupt, interrupt typically used PWM-type applications. Instead, pulse held High level long data register (T0DATA) value greater than counter (T0CNT) value 8-bit operation.
Timer Counter Clock (4MHz) T0DATA
T0DATA
250ns
32µs T0DATA
T0DATA
250ns Cycle 64µs
NOTES: system clock frequency 4MHz assumed. input clock timer count(T0CNT) assumed non-divided (fosc/1).
Figure 10-8. Simplified Timer Function Diagram (PWM Mode)
10-1
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
Interrupt Enable/Disable
(Clear)
IRQ0 (T0OVF)
Counter
Interrupt Enable/Disable
IRQ0 (T0INT)
Comparator
Match
T0CON P1CON.1,
P1.0/T0 High level when data counter; level when data counter
Data Register
Figure 10-9. Block Function Diagram
10-12
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
CAPTURE MODE capture mode, signal edge that detected opens gate loads current counter value into data register. Rising edges falling edges selected trigger this operation. Both kinds interrupts used capture mode: T0OVF generated when counter overflow occurs, T0INT generated when counter value loaded into data register. reading captured data value T0DATA, assuming specific value tCLK, determine pulse width (duration) signal being input pin. (See Figure 10-10.)
Interrupt Enable/Disable
Counter
IRQ0 (T0OVF) IRQ0 (T0INT) Interrupt Enable/Disable
P1.0/TO (CAP)
T0CONL
Data Register
Figure 10-10. Simplified Timer Function Diagram (Capture Mode)
10-13
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
Bits Clear
RESET
STOP Data Basic Timer Control Register (Write '1010xxxxB' disable.)
1/4096 1/1024 1/128
8-Bit Counter (BTCNT, Read-Only)
RESET
When BTCNT.4 after releasing from RESET STOP mode, clock starts. Bits Data 1/4096 1/256 Match 8-Bit Compatator T0CNT (D0H) (Read-Only) Clear IRQ0 (PWM interval) Bits T0DATA (D1H) (Read/Write) Basic Timer Control Register Data Timer Control Register IRQ0
(CAP)
Bits
NOTE: During power-on reset operation, idle during required oscillation stabilization interval (until basic timer counter set).
Figure 10-11. Basic Timer Timer Block Diagram
10-14
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
PROGRAMMING Configuring Timer (Interval Mode)
following sample program sets Timer interval timer mode. VECTOR INITIAL:
0000H 00H, INT_4208 0100H SYM, #00H BTCON, #10100010B CLKCON, #00011000B #0C0H Global/Fast interrupt disable Watch-dog disable non-divided clock 4208 00~BF (After decrease, push data) KS86C4208 only interrupt vector
T0DATA, #41H T0CONL, #01000010B
interrupt interval 1.69msec (10MHz base) Timer match interrupt enable
MAIN:
CALL
SUB_ROUTINE
SUB_ROUTINE:
MAIN
10-15
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
PROGRAMMING Configuring Timer (Interval Mode) (Continued)
INT_4208: INT_Timer
T0CONL #00000011B #00000011B INT_Timer
KS86C4208 just interrupt vector
only Timer match interrupt enable
T0CON'spending INT. enable check
T0CONL, #11110110B
pending clear
IRET
10-16
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
PROGRAMMING Configuring Timer (PWM Mode)
following sample program sets Timer 8-bit mode. INITIAL:
0100H
SYM, #00H BTCON, #10100010B CLKCON, #00011000B #0C0H
Global/Fast interrupt disable Watch-dog disable non-divided clock 4208 00~BF (After decrease, push data)
P1CON, #00000011B T0DATA, #80H T0CONL, #01111000B
P1.0 (PWM) output half duty Timer mode
MAIN:
MAIN
10-17
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
TIMER TIMER CONTROL REGISTER (T1CON) timer control register,T1CON, located operates interval timer mode. setting appropriate bits T1CON select input clock frequency enable Timer interrupt. T1CON also contains pending Timer interrupt. reset clears T1CON "00H". This sets timer normal interval mode selects input clock frequency fosc/4096 disables Timer interrupt. clear timer counter either setting T1CON.2 enable clear signal clear timer counter setting T1CON.3 "1". enable Timer match interrupt (IRQ0, vector 00H) must T1CON.1 "1". interrupt service routine must clear pending condition writing Timer interrupt pending bit, T1CON.0.
TIMER CONTROL REGISTERS E4H,
Timer 1counter control bit: Disable operation Enable counter operation
Timer interrupt pending bit: interrupt pending (when read) Clear pending (when write) Interrupt pending (when read) Timer interrupt enable bit: Disable interrupt Enable interrupt Timer counter clear enable bit: effect Clear timer counter when write)
Timer input clock selection bits: fosc/4096 fosc/1024 fosc/512 fosc/256 fosc/128 fosc/32
Timer counter automatic clear enable bit: Disable Enable clear signal clear timer counter
Figure 10-12. Timer Control Register (T1CON)
10-18
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
Bits 1/4096 1/1024 1/512 1/256 1/128 1/32 1/256 1/64 IRQ0 8-BIT COUNTER Clear From Data
8-BIT COMPARATOR Match
DATA REGISTER
Data P1.1 P1CON.3, P1.1/BUZZE
6-Bit Prescaler
TOGGLE
NOTE:
When P1.1/BUZZER used BUZZER output pin, initial value (Low Level). (When bit7 BUZPS "0", output P1.1 Low.)
Figure 10-13. Timer Block Diagram
10-19
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
BUZZER OUTPUT CONTROL REGISTER (BUZPS) Buzzer output control register used select frequency from KHz. these various frequency used generate melody signal. selecting clock source (bit BUZPS) value prescaler, desire frequency obtained. BUZPS.7 used control buzzer output when P1.1 buzzer output mode (configure P1CON).
BUZPS CONTROL REGISTERS F6H,
BUZZER clock selection bit: Divided (fosc/256) Divided (fosc/64) BUZZER output enable bit: Disable buzzer output (Buzzer off) Enable buzzer output (Buzzer Prescaler value: 000000 000001 000010 111111 Divided [fosc/(256 64)] Divided [fosc/(256 64)] Divided [fosc/(256 64)] Divided 2x(n+1) [fosc/(256 64)] Divided [fosc/(256 64)]
Figure 10-14. Buzzer Output Control Register (BUZPS)
10-20
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
PROGRAMMING Configuring Timer following sample program sets Timer interval timer mode. VECTOR INITIAL:
0000H 00H, INT_4208 0100H KS86C4208 only interrupt vector
SYM, #00H BTCON, #10100010B CLKCON, #00011000B #0C0H
Global/Fast interrupt disable Watch-dog disable non-divided clock 4208 00~BF (After decrease, push data)
T1DATA, #41H T1CON, #10010110B
interrupt interval 6.76msec (10MHz base) Timer1 match interrupt enable
MAIN:
CALL
SUB_ROUTINE
SUB_ROUTINE:
MAIN
10-2
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
+PROGRAMMING Configuring Timer (Continued)
INT_4208:
KS86C4208 just interrupt vector T1CON #00000011B #00000011B INT_T
Timer interrupt routine
INT_T1:
T1CON, #11111010B
pending clear
IRET
10-22
KS86C4204/C4208/P4208
BASIC TIMER TIMERS
+PROGRAMMING Configuring Buzzer
following sample program sets Buzzer output. VECTOR INITIAL:
0000H 00H, INT_4208 0100H KS86C4208 only interrupt vector
SYM, #00H BTCON, #10100010B CLKCON, #00011000B #0C0H
Global/Fast interrupt disable Watch-dog disable non-divided clock 4208 00~BF (After decrease, push data)
P1CON, #00001100B BUZPS, #10000000B
P1.1 Buzzer output fosc/512 Buzzer wave output
MAIN:
CALL
SUB_ROUTINE
SUB_ROUTINE:
MAIN
10-23
BASIC TIMER TIMERS
KS86C4204/C4208/P4208
NOTES
10-24
KS86C4204/C4208/P4208
CONVERTER
1OVERVIEW
CONVERTER
converter (ADC) module uses successive approximation logic convert analog levels twelve input channels equivalent 10-bit digital values. analog input level must between AVREF AVSS values. converter following components: Twelve multiplexed analog input pins (AD0-AD11) Analog comparator with successive approximation logic 10-bit conversion data output registers (ADDATAH, ADDATAL) control register (ADCON) analog-to-digital conversion procedure initiated when writes value ADCON register address select twelve available input pins. select desired input channel setting appropriate bits ADCON register. KS86C4204/C4208/P4208 microcontroller performs 10-bit conversions only input channel time. dynamically select different analog input channels during program execution manipulating selection bits ADCON register. During normal conversion, logic initially sets successive approximation register 200H (the approximate half-way point 10-bit register). This register then updated automatically during each conversion step. successive approximation block performs 10-bit conversions input channel time. dynamically select different channels mainpulating channel selection value (ADCON.7-4) ADCON register. start conversion, should enable bit, ADCON.0. When conversion completed, ADCON.3, end-of-conversion (EOC) automatically result dumped into ADDATA register where read. converter then enters idle state. Remember read contents ADDATA before another conversion starts. Otherwise, previous result will overwritten next conversion result. NOTE Because does sample-and-hold circuitry, important that fluctuations analog level AD0-AD11 input pins during conversion procedure kept absolute minimum. change input level, perhaps circuit noise, will invalidate result.
CONVERTER
KS86C4204/C4208/P4208
INTERNAL REFERENCE VOLTAGE LEVELS function block, analog input voltage level compared reference voltage. analog input level must remain within range AVSS AVREF (usually, AVREF VDD). Different reference voltage levels generated internally along resistor tree during analog conversion process each conversion step. reference voltage level first conversion always AVREF. USING PINS STANDARD DIGITAL INPUT module's input pins alternatively used digital input port port AD0-AD7 share names P2.0-P2.7 AD8-AD11 share names P0.4-P0.7, respectively CONVERTER CONTROL REGISTER (ADCON) converter control register, ADCON, located address F7H. ADCON four functions: Bits select analog input (AD0-AD11). indicates status conversion. Bit2-1 select clock source. starts conversion. Only analog input channel selected time. dynamically select eight analog input pins (AD0-AD11) manipulating 4-bit value ADCON.7-ADCON.4
CONVERTER CONTROL REGISTERS F7H,
converter input selection bits: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110
Conversion start bit: meaning (P2.0) conversion start (P2.1) (P2.2) Clock source selection bit: (P2.3) fosc/16 (P2.4) fosc/8 (P2.5) fosc/4 (P2.6) fosc/1 (P2.7) (P0.4) (P0.5) End-of-Conversion status bit: AD10 (P0.6) conversion progress AD11 (P0.7) conversion complete Internally connected Internally connected Internally connected Internally connected
Figure 11-1. Converter Control Register (ADCON)
11-2
KS86C4204/C4208/P4208
CONVERTER
Converter Control Register ADCON (F7H) ADCON .7-4 ADCON Control Circuit AD0/P2.0 AD1/P2.1 Multiplexer Successive Approximation Circuit ADCON .2-1 Clock Selector ADCON (EOC Flag)
AD7/P2.7 AD8/P0.4
Analog Comparator
AD11/P0.7 Conversion Result Converter AVREF AVSS ADDATAH (F8H) ADDATAL (F9H)
Data
ADDATAH
ADDATAL
Figure 11-2. Converter Circuit Diagram
11-3
CONVERTER
KS86C4204/C4208/P4208
ADCON.0 Conversion Start Clock
ADDATA Previous Value
Valid Data
ADDATAH (8-Bit) ADDATA (2-Bit) time clock Clock
Figure 11-3. Converter Timing Diagram CONVERSION TIMING conversion process requires steps clock edges) convert each clocks step-up conversion. Therefore, total clocks required complete 10-bit conversion: With 10MHz clock frequency, clock cycle (4/fosc). each conversion requires clocks, conversion rate calculated follows: clocks/bit 10-bits set-up time clock) clocks clock 10MHz, clock time 4/fosc (assuming ADCON.2-.1
INTERNAL CONVERSION PROCEDURE Analog input must remain between voltage range AVSS AVREF. Configure analog input pins input mode making appropriate settings P2CONH, P2CONL P0CONH registers. Before conversion operation starts, must first select twelve input pins (AD0-AD11) writing appropriate value ADCON register. When conversion been completed, clocks have elapsed), flag "1", that check made verify that conversion successful. converted digital value loaded output register, ADDATAH (High 8-bit) ADDATAL (Low 2-bit), then module enters idle state. digital conversion result read from ADDATAH ADDATA registers.
11-4
KS86C4204/C4208/P4208
CONVERTER
Reference Voltage Input
AVREF
Analog Input
AD0-AD11
XOUT
KS86C4204/ C4208/P4208
AVSS
NOTES: symbol signifies offset resistor with value from Ohms. recommended that oscillator SS/VSS must connected separately with power.
Figure 11-4. Recommended Converter Circuit Highest Absolute Accuracy
11-5
CONVERTER
KS86C4204/C4208/P4208
PROGRAMMING PROGRAMMING Configuring 10-bit Converter
VECTOR INITIAL:
0000H 00H, INT_4208 0100H KS86C4208 only interrupt vector
SYM, #00H BTCON, #10100010B CLKCON, #00011000B #0C0H
Global/Fast interrupt disable Watch-dog disable non-divided clock 4208 00-BF (After decrease, push data)
MAIN:
CALL
Sub_ADC
Sub_ADC: CONV_LOOP:
MAIN
P0CONH, #55H P0PUR, #00H ADCON, #10000001B
P0.7~0.4: input enable pull-up disable Select P0.4, Conversion start
ADCON, #00001000B CONV_LOOP ADDATAH ADDATAL
Check Conversion completed High 8-bit result 2-bit result
11-6
KS86C4204/C4208/P4208
ZERO-CROSSING DETECTION CIRCUIT
OVERVIEW
ZERO-CROSSING DETECTION CIRCUIT
Zero-crossing detection circuit Samsung's KS86C4204/C4208/P4208, generates digital signal synchronism with signal input. provides timing signal operations which synchronized with line. zero crossing detection circuit digitizes signal receives from power supply. setting bits port control register (P1CON), enable zero-crossing detection. Zero-crossing detector shown Figure 12-1.
ZCMOD .3-2
Input
P1.0
P1CON.1-0 Edge Detection
IRQ0 (ZCINT)
0.1µF Timer Counter Clear Enable
ZCMOD.4
Normal Input
NOTE:
abbreviation noise filter.
Figure 12-1. Zero-Crossing Detector Diagram
ZERO-CROSSING DETECTION CIRCUIT
KS86C4204/C4208/P4208
ZERO-CROSSING DETECTOR CONTROL REGISTER zero crossing detector control register, ZCMOD, used select interrupt mode (interrupt falling edge, rising edge both). Reset clears ZCMOD `00H', configures interrupt selection mode falling edge disables interrupt. interrupt pending must cleared writing ZCMOD.0
ZERO CROSSING DETECOR CONTROL REGISTERS FFH,
used operation enable bit: Disable operation Enable operation
interrupt pending bit: interrupt pending (when read) Clear pending (when write) Interrupt pending (when read) interrupt enable bit: Disable interrupt Enable interrupt
Interrupt mode selection bits: Interrupt falling edge Interrupt rising edge Interrupt both edge used
Figure 12-2. Zero-Crossing Detector Control Register (ZCMOD)
12-2
KS86C4204/C4208/P4208
ZERO-CROSSING DETECTION CIRCUIT
ZERO CROSS DETECTOR circuit detects zero-cross point waveform. Three types detection selected, point from positive negative, point from negative positive, both. zero cross detection circuit noise filter circuit detected zero cross point used clear timer counter (T1CON.3
1/fzc
input
VAZC
VAZ(P-P)
ZCINT
Figure 12-3. Zero-Crossing Waveform Diagram
12-3
ZERO-CROSSING DETECTION CIRCUIT
KS86C4204/C4208/P4208
PROGRAMMING Configuring VECTOR 0000H 00H, INT_4208 0100H KS86C4208 only interrupt vector
INITIAL:
SYM, #00H BTCON, #10100010B CLKCON, #00011000B #0C0H
Global/Fast interrupt disable Watch-dog disable non-divided clock 4208 00-BF (After decrease, push data)
P1CON, #00000001B ZCMOD, #00010010B
P1.0 input enable Input sine wave P1.0 operation/interrupt enable
MAIN:
CALL
SUB_ROUTINE
SUB_ROUTINE:
MAIN
12-4
KS86C4204/C4208/P4208
ZERO-CROSSING DETECTION CIRCUIT
PROGRAMMING TIP1 Configuring (Continued)
INT_4208:
ZCMOD #00000011B #00000011B INT_ZCD
interrupt routine
INT_ZCD:
ZCMOD, #11111110B
pending clear
IRET
12-5
ZERO-CROSSING DETECTION CIRCUIT
KS86C4204/C4208/P4208
NOTES
12-6
KS86C4204/C4208/P4208
12-BIT
OVERVIEW
12-BIT (PULSE WIDTH MODULATION)
This microcontroller 12-bit circuit. operation circuit controlled single control register, PWMCON. counter 12-bit incrementing counter. used 12-bit circuits. start counter enable circuits, PWMCON.2 "1". counter stopped, retains current count value; when re-started, resumes counting from retained count value. When there need clear counter PWMCON.3 "1". select clock counter PWMCON.6-.7. Clocks which select Fosc/256, Fosc/64, Fosc/8, Fosc/1.
FUNCTION DESCRIPTION
12-bit circuits have following components: 6-bit comparator extension cycle circuit 6-bit reference data registers (PWM0, PWM1) 6-bit extension data registers (PWM0EX, PWM1EX) output pins (P0.7/PWM0, P1.3/PWM1) counter counter 12-bit incrementing counter comprised lower 6-bit counter upper 6-bit counter. determine module's base operating frequency, lower byte counter compared data register value. order achieve higher resolutions, bits upper counter used modulate "stretch" cycle. control "stretching" output duty cycle specific intervals, 6-bit extended counter value compared with 6-bit value (bits 7-2) that write module's extension register.
12-BIT
KS86C4204/C4208/P4208
data extension registers (duty) data registers, located FCH, determine output value generated each 12-bit circuit. These registers, read/write addressable. 8-bit data register PWM0 PWM1, which only bits used. 8-bit extension registers PWM0EX (FBH) PWM1EX (FDH), which only bits used program required output, load appropriate initialization values into 6-bit data registers (PWM0, PWM1) 6-bit extension registers (PWM0EX, PWM1EX). start counter, resume counting, PWMCON.2 "1". reset operation disables output. current counter value retained when counter stops. When counter starts, counting resumes retained value. clock rate timing characteristics both 12-bit output channels identical, based Fosc clock frequency. counter clock value determined setting PWMCON.6-.7. Table 13-1. Control Data Registers Register Name data registers control registers Mnemonic PWM0, PWM1 PWM0EX, PWM1EX PWMCON Address FAH, FBH, Function 6-bit basic cycle frame value 6-bit extension ("stretch") value counter stop/start (resume), Fosc clock settings
function Description output signal toggles level whenever lower 6-bit counter matches reference value stored module's data register (PWM0, PWM1). value PWM0 PWM1 register zero, overflow lower counter causes output toggle High level. this way, reference value written data register determines module's base duty cycle. value 6-bit extension counter compared with extension settings 6-bit extension data registers (PWM0EX, PWM1EX). This 6-bit extension counter value, together with extension logic module's extension register then used "stretch" duty cycle output. "stretch" value extra clock period specific intervals, cycles (see Table 13-2). example, value extension register '04H', 32nd cycle will pulse longer than other cycles. base duty cycle duty 32nd cycle will therefore "stretched" approximately duty. example, write extension register, odd-numbered pulses will cycle longer. write extension register, pulses will stretched cycle except 64th pulse. output goes output buffer then corresponding output pin. this way, obtain high output resolution high frequencies.
13-2
KS86C4204/C4208/P4208
12-BIT
Table 13-2. output "stretch" Values Extension Registers PWM0EX PWM0EX "Stretched" Cycle Number used used
Clock: 4MHz PWM0 PWM1 Register Values: 250ns
250ns
250ns
Figure 13-1. 12-Bit Basic Waveform
13-3
12-BIT
KS86C4204/C4208/P4208
Clock: 4MHz
PWM0 PWM1 Register Values:
500ns
PWM0EX PWM1EX Register Values: (Extended Value 04H)
32th
64th
32th
64th
4MHz
750ns
Figure 13-2. 12-Bit Extended Waveform
13-4
KS86C4204/C4208/P4208
12-BIT
CONTROL REGISTER (PWMCON) control register module, PWMCON, located register address FEH. PWMCON used 12-bit modules. settings PWMCON register control following functions: counter clock selection data reload interval selection counter clear counter stop/start resume) operation counter overflow (upper 6-bit counter overflow) interrupt control reset clears PWMCON bits logic zero, disabling entire module.
CONTROL REGISTERS(PWMCON) FEH, Reset:
input clock selection bits: fosc/256 fosc/64 fosc/8 fosc/1 PWM1 data reload interval selection bit: Reload from 12-bit counter overflow Reload from 6-bit counter overflow PWM0 data reload interval selection bit: Reload from 12-bit counter overflow Reload from 6-bit counter overflow
12-bit Interrupt pending bit: interrupt pending Clear pending condition (when write) Interrupt pending counter interrupt enable bit: Disable interrupt Enable interrupt counter enable bit: Stop counter Start (resume countering)
counter clear bit: effect Clear 12-bit counter
Figure 13-3. PWM/Capture Module Control Register (PWMCON)
13-5
12-BIT
KS86C4204/C4208/P4208
6-Bit Basic Register PWM0, PWM1 Reload (overflow lower 6-bit counter) 6-Bit Buffer
fosc/256 fosc/64 fosc/8 fosc/1 PWMCON.6-7 Lower 6-Bit Counter Upper 6-Bit Counter Pending PWMCON.0 PWMCON.1 PWMCON.2 Extension Control Logic OVFINT 6-Bit Comparator When PWM0 PWM1 Counter When PWM0 PWM1 Counter PWMDATA Counter P1.3/PWM1 P0.7/PWM0
(1,3,.,61,63)
6-Bit Extension Registers (PWM0EX, PWM1EX)
Figure 13-4. PWM/Capture Module Functional Block Diagram
13-6
KS86C4204/C4208/P4208
12-BIT
PROGRAMMING Programming Module Sample Specifications VECTOR 0000H 00H, INT_4208 0100H SYM, #00H BTCON, #10100010B CLKCON, #00011000B #0C0H Global/Fast interrupt disable Watch-dog disable non-divided clock 4208 00-BF (After decrease, push data) KS86C4208 only interrupt vector
INITIAL:
P0CONH, #0C0H PWM0EX, PWM0, #20H PWMCON, #00000100B
P0.7 PWM0 output Extension register setting Data register setting Start counting Half dutyPWM wave P0.7
MAIN:
CALL
SUB_ROUTINE
SUB_ROUTINE:
MAIN
13-7
12-BIT
KS86C4204/C4208/P4208
NOTES
13-8
KS86C4204/C4208/P4208
SERIAL INTERFACE
OVERVIEW
SERIAL INTERFACE
Serial module, interface with various types external devices that require serial data transfer. components each function block are: 8-bit control register (SIOCON) Clock selection logic 8-bit data buffer (SIODATA) 8-bit prescaler (SIOPS) 3-bit serial clock counter Serial data pins (SI, External clock input (SCK) module transmit receive 8-bit serial data frequency determined corresponding control register settings. ensure flexible data transmission rates, select internal external clock source. PROGRAMMING PROCEDURE program module, follow these basic steps: Configure pins port (SO, SCK, loading appropriate value P1CONL Register. Load 8-bit value SIOCON control register properly configure serial module. this operation, SIOCON.2 must enable data shifter. interrupt generation, serial interrupt enable (SIOCON.1) "1". When transmit data serial buffer, write data SIODATA SIOCON.3 shift operation starts. When shift operation (transmit/receive) completed, pending (SIOCON.0) interrupt request generated.
SERIAL INTERFACE
KS86C4204/C4208/P4208
SERIAL CONTROL REGISTERS (SIOCON) control registers serial interface, SIOCON, located F0H. control settings module. Clock source selection (internal external) shift clock Interrupt enable Edge selection shift operation Clear 3-bit counter start shift operation Shift operation (transmit) enable Mode selection (transmit/receive receive-only) Data direction selection (MSB first first) reset clears SIOCON value "00H". This configures corresponding module with internal clock source SCK, selects receive-only operating mode, clears 3-bit counter. data shift operation interrupt disabled. selected data direction MSB-first.
CONTROL REGISTERS(SIOCON) F0H,R/W, Reset:
shift clock select bit: Internal clock (P.S clock) External clock (SCK) Data direction control bit: MSB-first mode LSB-first mode mode selction bit: Rececive-only mode Transmit/receive mode Shift clock edge selction bit: falling edges, rising edges rising edges, falling edges
Interrupt pending bit: interrupt pending Clear pending condition (when write) Interrupt pending SIOinterrupt enable bit: Disable interrupt Enable interrupt shift operation enable bit: Disable shifter clock counter Enable shfter clock counter
counter clear shift start bit: action Clear 3-bit counter start shifting
Figure 14-1. Serial Interface Control Register (SIOCON)
14-2
KS86C4204/C4208/P4208
SERIAL INTERFACE
PRESCALER REGISTER (SIOPS) control register serial interface module, SIOPS located F1H. value stored prescaler registers, SIOPS, lets determine clock rate (baud rate) follows: Baud rate Input clock(Xin/2) 2(pre-scaler value external input clock
PRE-SCALER REGISTERS(SIOPS) F1H,R/W
Baud rate IN/4)/(SIOPS
Figure 14-2. Pre-scaler Register (SIOPS)
3-Bit Counter Clear SIOCON.3
SIOCON.0 Pending
SIOCON.7 (Shift Clock Source Select)
SIOCON.1 (Interrupt Enable)
SIOCON.4 (Edge Select) SIOPS(F1H)
SIOCON.2 (Shift Enable)
SIOCON.5 (Mode Select) SIOCON.6 (LSB/MSB First Mode Select)
XIN/2
8-Bit Prescaler Prescaler Value 1/(SIOPS
Toggle
8-Bit Shift Buffer (SIODATA)
Data
Figure 14-3. Functional Block Diagram
14-3
SERIAL INTERFACE
KS86C4204/C4208/P4208
IRQS SIOCON.3
Transmit Complete
Figure 13-4. Serial Timing Transmit-Receive Mode falling, SIOCON.4
IRQS SIOCON.3
Transmit Complete
Figure 14-5. Serial Timing Transmit-Receive Mode rising, SIOCON.4
14-4
KS86C4204/C4208/P4208
SERIAL INTERFACE
Shift Clock Data Input
Data Output
High Impedance
IRQ5
Start
Transmit Complete
Figure 14-6. Serial Timing Receive-Only Mode
PROGRAMMING
VECTOR INITIAL:
0000H 00H, INT_4208 0100H SYM, #00H BTCON, #10100010B CLKCON, #00011000B #0C0H Global/Fast interrupt disable Watch-dog disable non-divided clock 4208 00~BF (After decrease, push data) KS86C4208 only interrupt vector
P0CONL, #10010101B
0.2~0.0 setting
SIOCON, #00100110B SIOPS,
Enable SIO/Interrupt setting baud rate
14-5
SERIAL INTERFACE
KS86C4204/C4208/P4208
PROGRAMMING (Continued)
MAIN:
CALL
SUB_SIO
Data transmit routine
SUB_SIO:
MAIN SIODATA, TRANSBUF SIOCON, #00001000B 1-byte transmission Shift start (8-bit transmit)
INT_4208: INT_SIO:
KS86C4208 just interrupt vector SIOCON #00000011B #00000011B INT_SIO SIOCON, #11111110
SIOCON's pending INT. enable check Pending clear
IRET
14-6
KS86C4204/C4208/P4208
IIC-BUS INTERFACE
OVERVIEW
IIC-BUS INTERFACE
KS86C4204/C4208/P4208 microcontrollers support multi-master IIC-bus serial interface. dedicated serial data line (SDAT) serial clock line (SCLK) carry information between masters peripheral devices which connected IIC-bus. SDAT SCLK lines bi-directional. multi-master IIC-bus mode, multiple KS86C4204/C4208/P4208 microcontrollers receive transmit serial data from slave devices. master KS86C4204/C4208/P4208 which initiates data transfer over IICbus responsible terminating transfer. Standard arbitration functions supported. control multi-master IIC-bus operations, write values following registers: IIC-bus control register, ICCR IIC-bus control/status register, ICSR IIC-bus Tx/Rx data shift register, IDSR IIC-bus address register, When IIC-bus free, SDAT SCLK lines both High level. High-to-Low transition SDAT initiates Start condition. Low-to-High transition SDAT while SCLK remains steady High level initiates Stop condition. Start Stop conditions always generated master. 7-bit address value first data byte that onto after Start condition initiated determines which slave device master selects. determines direction transfer (read write). Every data byte that onto SDAT line must total eight bits. number bytes which sent received transfer operation unlimited. Data always sent most-significant (MSB) first every byte must immediately followed acknowledge (ACK) bit.
IIC-BUS INTERFACE
KS86C4204/C4208/P4208
MULTI-MASTER IIC-BUS CONTROL REGISTER (ICCR) multi-master IIC-bus control register, ICCR, located address F2H. read/write addressable. ICCR settings control following IIC-bus functions: acknowledge signal (ACK) enable suppress IIC-bus clock source selection (fosc/16 fosc/512) Transmit/receive interrupt enable disable Transmit/receive interrupt pending control 4-bit prescaler serial transmit clock (SCLK) KS86C4204/C4208/P4208 interrupt structure, IIC-bus Tx/Rx interrupt assigned level IRQ2, vector F8H. enable this interrupt, ICCR.5 "1". Program software then poll IIC-bus Tx/Rx interrupt pending (ICCR.4) detect IIC-bus receive transmit requests. When acknowledges interrupt request from IIC-bus, interrupt service routine must clear interrupt pending condition writing ICCR.4. frequency determined IIC-bus clock source selection (fosc/16 fosc/512) 4-bit prescaler value ICCR register (see Figure 15-1).
MULTI-MASTER IIC-BUS CONTROL REGISTERS (ICCR) F2H,
IIC-bus acknowledge (ACK) enable bit: Disable generation Enable generation IIC-bus clock source selection bit: fosc/16 fosc/512
IIC-bus transmit (Tx) clock prescaler: IIC-bus transmit clock (SCLK) frequency determined clock source selection (ICCR.6) this 4-bit prescaler value, according following formula: clock (SCL) IICLK/(ICCR.3-ICCR.0)
where IICLK fosc/16 (ICCR

Other recent searches


NDH8436 - NDH8436   NDH8436 Datasheet
MAX481 - MAX481   MAX481 Datasheet
MAX483 - MAX483   MAX483 Datasheet
MAX485 - MAX485   MAX485 Datasheet
MAX487 - MAX487   MAX487 Datasheet
MAX491 - MAX491   MAX491 Datasheet
MAX1487 - MAX1487   MAX1487 Datasheet
MAX488 - MAX488   MAX488 Datasheet
MAX489 - MAX489   MAX489 Datasheet
MAX490 - MAX490   MAX490 Datasheet
MAX487 - MAX487   MAX487 Datasheet
MAX488 - MAX488   MAX488 Datasheet
MAX491 - MAX491   MAX491 Datasheet
LTC4259A-1 - LTC4259A-1   LTC4259A-1 Datasheet
LTC4259A-1s - LTC4259A-1s   LTC4259A-1s Datasheet
LTC4257 - LTC4257   LTC4257 Datasheet
LTC4257-1 - LTC4257-1   LTC4257-1 Datasheet
LTC4267 - LTC4267   LTC4267 Datasheet
DS91D176 - DS91D176   DS91D176 Datasheet
DS91C176 - DS91C176   DS91C176 Datasheet
C80186EC - C80186EC   C80186EC Datasheet
BO12864H - BO12864H   BO12864H Datasheet
ST7565 - ST7565   ST7565 Datasheet

 

Privacy Policy | Disclaimer
© 2012 Datasheet Archive