NEW DATABASE - 350 MILLION DATASHEETS FROM 8500 MANUFACTURERS
ST10R272L 16-BIT 13/T5IN 14/T4E 15/T2E 12/BH TQFP-100 12/T6IN 11/T5EUD 10/T6EUD - Datasheet Archive
16-BIT LOW VOLTAGE ROMLESS MCU WITH MAC DATASHEET s High Performance 16-bit CPU q q q q q q q q q s Dedicated pins q OSC P.1 P.0
ST10R272L ST10R272L 16-BIT 16-BIT LOW VOLTAGE ROMLESS MCU WITH MAC DATASHEET s High Performance 16-bit CPU q q q q q q q q q s Dedicated pins q OSC P.1 P.0 XSSP ST10 CORE DPRAM MAC Interrupt Controller & PEC ASC GPT1/2 P.3 1KByte on-chip RAM Up to 16 MBytes linear address space for code and data (1 MByte with SSP used) s P.5 PWM P.7 Po.2 Timers q q q q q q Programmable external bus characteristics for different address ranges 8-bit or 16-bit external data bus Multiplexed or demultiplexed external address/data buses Five programmable chip-select signals Hold and hold-acknowledge bus arbitration support One Channel PWM Unit q q q s WDT P.4 PLL External Memory Interface q s P.6 Memory Organisation q s CPU Frequency: 0 to 50 MHz 40ns instruction cycle time at 50-MHz CPU clock Multiply-Accumulate unit (MAC) 4-stage pipeline Register-based design with multiple variable register banks Enhanced boolean bit manipulation facilities Additional instructions to support HLL and operating systems Single-cycle context switching support 1024 bytes on-Chip special function register area s q q Synchronous/asynchronous High-speed-synchronous serial port SSP s Up to 77 general purpose I/O lines s No bootstrap loader s Electrical Characteristics Fail Safe Protection Programmable watchdog timer Oscillator Watchdog 8-channel interrupt-driven single-cycle data transfer facilities via peripheral event controller (PEC) 16-priority-level interrupt system with 17 sources, sample-rate down to 40 ns Serial Channels q q q q q Interrupt q Two multi-functional general purpose timer units with 5 timers Clock Generation via on-chip PLL, or via direct or prescaled clock input s Support q s 5V Tolerant I/Os 5V Fail-Safe Inputs (Port 5) Power: 3.3 Volt +/-0.3V Idle and power down modes C-compilers, macro-assembler packages, emulators, evaluation boards, HLLdebuggers, simulators, logic analyser disassemblers, programming boards Package q 100-Pin Thin Quad Flat Pack (TQFP) Rev. 1.3 March 2001 1/77 1 Table of Contents 1 PIN DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 FUNCTIONAL DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 MEMORY MAPPING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4 CENTRAL PROCESSING UNIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5 MULTIPLY-ACCUMULATE UNIT (MAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.1 MAC FEATURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.2 MAC OPERATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 6 INTERRUPT AND TRAP FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.1 INTERRUPT SOURCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.2 HARDWARE TRAPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 7 PARALLEL PORTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 8 EXTERNAL BUS CONTROLLER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 9 PWM MODULE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 10 GENERAL PURPOSE TIMERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 10.1 GPT1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 10.2 GPT2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 11 SERIAL CHANNELS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 12 WATCHDOG TIMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 13 SYSTEM RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 14 POWER REDUCTION MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 15 SPECIAL FUNCTION REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 16 ELECTRICAL CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 16.1 ABSOLUTE MAXIMUM RATINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 16.2 DC CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77. . 42 . 2/77 1 Table of Contents 16.3 AC CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 16.3.1 CPU Clock Generation Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 16.3.2 Memory Cycle Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 16.3.3 Multiplexed Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 16.3.4 Demultiplexed Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 16.3.5 CLKOUT and READY/READY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 16.3.6 External Bus Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 16.3.7 External Hardware Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 16.3.8 Synchronous Serial Port Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 17 PACKAGE MECHANICAL DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 18 ORDERING INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3/77 P 5.13/T5IN 13/T5IN P 5.14/T4E 14/T4E D U P 5.15/T2E 15/T2E D U V SS X L1 TA X L2 TA V DD P 3.0 P 3.1/T6O T U P 3.2/C P A IN P 3.3/T3O T U P 3.4/T3E D U P 3.5/T4IN P 3.6/T3IN P 3.7/T2IN P 3.8 P 3.9 P 3.10/TxD 0 P 3.11/R 0 xD P 3.12/BH 12/BH /W H E R P 3.13 P 3.15/C O T LK U P 4.0/A 16 P 4.1/A 17 P 4.2/A 18 ST10R272L ST10R272L RPD P0L.0/AD0 P0L.1/AD1 P0L.2/AD2 P0L.3/AD3 P0L.4/AD4 P0L.5/AD5 P0L.6/AD6 P0L.7/AD7 VDD VSS Figure 1 TQFP-100 TQFP-100 pin configuration (top view) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 PIN DESCRIPTION ST10R272L ST10R272L - PIN DESCRIPTION 1 4/77 1 P5.12/T6IN 12/T6IN P5.11/T5EUD 11/T5EUD P5.10/T6EUD 10/T6EUD P7.3/POUT3 P7.2 P7.1 P7.0 P2.11/EX3IN 11/EX3IN P2.10/EX2IN 10/EX2IN P2.9/EX1IN P2.8/EX0IN P6.7/BREQ P6.6/HLDA P6.5/HOLD P6.4/CS4 P6.3/CS3 P6.2/CS2 P6.1/CS1 P6.0/CS0 NMI RSTOUT RSTIN VDD VSS P1H.7/A15 7/A15 P4.3/A19 3/A19 VSS VDD P4.4/A20/SSPCE1 4/A20/SSPCE1 P4.5/A21/SSPCE0 5/A21/SSPCE0 P4.6/A22/SSPDAT 6/A22/SSPDAT P4.7/A23/SSPCLK 7/A23/SSPCLK RD W R/W RL READY/READY ALE EA VDD VSS 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 P .6/A 1H 14 P .5/A 1H 13 P .4/A 1H 12 P .3/A 1H 11 P .2/A 1H 10 V SS V DD P .1/A 1H 9 P .0/A 1H 8 P 1L.7/A 7 P 1L.6/A 6 P 1L.5/A 5 P 1L.4/A 4 P 1L.3/A 3 P 1L.2/A 2 P 1L.1/A 1 P 1L.0/A 0 P .7/A 15 0H D P .6/A 14 0H D P .5/A 13 0H D P .4/A 12 0H D P .3/A 11 0H D P .2/A 10 0H D P .1/A 9 0H D P .0/A 8 0H D Pin Number (TQFP) Input (I) Output (O) Kind1) P5.10 98-100 I 5S P5.15 1- 3 I 5S 6-bit input-only port with Schmitt-Trigger characteristics. Port 5 pins also serve as timer inputs: 98 I 5S P5.10 T6EUD GPT2 Timer T6 Ext.Up/Down Ctrl.Input 99 I 5S P5.11 T5EUD GPT2 Timer T5 Ext.Up/Down Ctrl.Input 100 I 5S P5.12 T6IN GPT2 Timer T6 Count Input 1 I 5S P5.13 T5IN GPT2 Timer T5 Count Input 2 I 5S P5.14 T4EUD GPT1 Timer T4 Ext.Up/Down Ctrl.Input 3 I 5S P5.15 T2EUD GPT1 Timer T2 Ext.Up/Down Ctrl.Input XTAL1 5 I 3T XTAL1: Input to the oscillator amplifier and internal clock generator XTAL2 6 O 3T XTAL2: Output of the oscillator amplifier circuit. Function Symbol ST10R272L ST10R272L - PIN DESCRIPTION To clock the device from an external source, drive XTAL1, while leaving XTAL2 unconnected. Observe minimum and maximum high/low and rise/fall times specified in the AC Characteristics. Table 1 Pin definitions 5/77 1 Kind1) 8-21 I/O 5T P3.15 22 I/O 5T A 15-bit (P3.14 is missing) bidirectional I/O port. Port 3 is bitwise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into highimpedance state. Port 3 outputs can be configured as push/ pull or open drain drivers. The following pins have alternate functions: 9 O 5T P3.1 T6OUT GPT2 Timer T6 toggle latch output 10 I 5T P3.2 CAPIN GPT2 Register CAPREL capture input 11 O 5T P3.3 T3OUT GPT1 Timer T3 toggle latch output 12 I 5T P3.4 T3EUD GPT1 Timer T3 ext.up/down ctrl.input 13 I 5T P3.5 T4IN GPT1 Timer T4 input for count/gate/ reload/capture 14 I 5T P3.6 T3IN GPT1 Timer T3 count/gate input 15 I 5T P3.7 T2IN GPT1 Timer T2 input for count/gate/ reload/capture 18 O 5T P3.10 TxD0 ASC0 clock/data output (asyn./syn.) 19 I/O 5T P3.11 RxD0 ASC0 data input (asyn.) or I/O (syn.) 20 O 5T P3.12 BHE Ext. Memory High Byte Enable Signal O 5T WRH Ext. Memory High Byte Write Strobe O 5T CLKOUT System clock output (=CPU clock) 22 Function Input (I) Output (O) P3.0 P3.13 Symbol Pin Number (TQFP) ST10R272L ST10R272L - PIN DESCRIPTION P3.15 Table 1 Pin definitions 6/77 1 Pin Number (TQFP) Input (I) Output (O) Kind1) P4.0 P4.7 23-26 29-32- I/O 5T An 8-bit bidirectional I/O port. Port 8 is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. Port 4 can be used to output the segment address lines for external bus configuration. 23 O 5T P4.0 A16 Least Significant Segment Addr. Line . . . . . . 26 O 5T P4.3 A19 Segment Address Line 29 O 5T P4.4 A20 Segment Address Line O 5T SSPCE1 Chip Enable Line 1 O 5T A21 Segment Address Line O 5T SSPCE0 SSPChip Enable Line 0 O 5T A22 Segment Address Line I/O 5T SSPDAT SSP Data Input/Output Line O 5T A23 Most Significant Segment Addr. Line O 5T SSPCLK SSP Clock Output Line 30 31 32 Function Symbol ST10R272L ST10R272L - PIN DESCRIPTION P4.5 P4.6 P4.7 RD 33 O 5T External Memory Read Strobe. RD is activated for every external instruction or data read access. WR/ WRL 34 O 5T External Memory Write Strobe. In WR-mode, this pin is activated for every external data write access. In WRL-mode, this pin is activated for low byte data write accesses on a 16-bit bus, and for every data write access on an 8-bit bus. See WRCFG in the SYSCON register for mode selection. READY/ READY 35 I 5T Ready Input. Active level is programmable. When the Ready function is enabled, the selected inactive level at this pin during an external memory access will force the insertion of memory cycle time waitstates until the pin returns to the selected active level. Polarity is programmable. Table 1 Pin definitions 7/77 1 Pin Number (TQFP) Input (I) Output (O) Kind1) ALE 36 O 5T Address Latch Enable Output. Can be used for latching the address into external memory or an address latch in the multiplexed bus modes. EA 37 I 5T External Access Enable pin. Low level at this pin during and after reset forces the ST10R272L ST10R272L to begin instruction execution out of external memory. A high level forces execution out of the internal ROM. The ST10R272L ST10R272L must have this pin tied to `0'. I/O 5T PORT0 has two 8-bit bidirectional I/O ports P0L and P0H. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into highimpedance state. For external bus configuration, PORT0 acts as address (A) and address/data (AD) bus in multiplexed bus modes and as the data (D) bus in demultiplexed bus modes. PORT0: P0L.0 P0L.7, 41 - 48 P0H.0 P0H.7 51 - 58 Function Symbol ST10R272L ST10R272L - PIN DESCRIPTION Demultiplexed bus modes Data Path Width: 8-bit 16-bit P0L.0 P0L.7: D0 D7 D0 - D7 P0H.0 P0H.7: I/O D8 - D15 Multiplexed bus modes Data Path Width: 8-bit 16-bit P0L.0 P0L.7: PORT1: I/O P1L.0 P1L.7, 59- 66 P1H.0 P1H.7 67, 68 71-76 5T AD0 AD7 AD0 - AD7 P0H.0 P0H.7: A8 A15 AD8 AD15 PORT1 has two 8-bit bidirectional I/O ports P1L and P1H. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into highimpedance state. PORT1 acts as a 16-bit address bus (A) in demultiplexed bus modes and also after switching from a demultiplexed bus mode to a multiplexed bus mode. Table 1 Pin definitions 8/77 1 Pin Number (TQFP) Input (I) Output (O) Kind1) RSTIN 79 I 5T Reset Input with Schmitt-Trigger characteristics. Resets the device when a low level is applied for a specified duration while the oscillator is running. An internal pullup resistor enables power-on reset using only a capacitor connected to VSS. With a bonding option, the RSTIN pin can also be pulled-down for 512 internal clock cycles for hardware, software or watchdog timer triggered resets RSTOUT 80 O 5T Internal Reset Indication Output. This pin is set to a low level when the part is executes hardware-, software- or watchdog timer reset. RSTOUT remains low until the EINIT (end of initialization) instruction is executed. NMI 81 I 5S Non-Maskable Interrupt Input. A high to low transition at this pin causes the CPU to vector to the NMI trap routine. If it is not used, NMI should be pulled high externally. P6.0P6.7 82-89 I/O 5T An 8-bit bidirectional I/O port. Port 6 is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. Port 6 outputs can be configured as push/pull or open drain drivers. Function Symbol ST10R272L ST10R272L - PIN DESCRIPTION The following Port 6 pins have alternate functions: 82 O 5T P6.0 CS0 Chip Select 0 Output . . . . . . 86 O 5T P6.4 CS4 Chip Select 4 Output 87 I 5T P6.5 HOLD External Master Hold Request Input (Master mode: O, Slave mode: I) 88 I/O 5T P6.6 HLDA Hold Acknowledge Output 89 O 5T P6.7 BREQ Bus Request Output Table 1 Pin definitions 9/77 1 90 - 93 I/O 5T Function Kind1) P2.8 P2.11 Input (I) Output (O) Symbol Pin Number (TQFP) ST10R272L ST10R272L - PIN DESCRIPTION Port 2 is a 4-bit bidirectional I/O port. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. Port 2 outputs can be configured as push/pull or open drain drivers. The following Port 2 pins have alternate functions: 90 5T P2.8 EX0IN Fast External Interrupt 0 Input . . . . . . 93 P7.0 P7.3 I I 5T P2.11 EX3IN Fast External Interrupt 3 Input 94 - 97 I/O 5T Port 7 is a 4-bit bidirectional I/O port. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. Port 7outputs can be configured as push/pull or open drain drivers. The following Port 7 pins have alternate functions: 97 O 5T P7.3 POUT3 PWM (Channel 3) Output RPD 40 I/O 5T Input timing pin for the return from powerdown circuit and power-up asynchronous reset. VDD 7, 28, 38, 49, 69, 78 - PO Digital supply voltage. VSS 4, 27, 39, 50, 70, 77 - PO Digital ground. Table 1 Pin definitions 1) The following I/O kinds are used. Refer to ELECTRICAL CHARACTERISTICS on page 40 for a detailed description. PO: Power pin 3T: 3 V tolerant pin (voltage max. respect to Vss is -0.5 to VDD + 0.5) 5V: 5 V tolerant pin (voltage max. respect to Vss is -0.5 to 5.5 only if chip is powered) 5S: 5 V tolerant and fail-safe pin (-0.5-5.5 max. voltage w.r.t. Vss even if chip is not powered). 10/77 1 ST10R272L ST10R272L - FUNCTIONAL DESCRIPTION 2 FUNCTIONAL DESCRIPTION ST10R272L ST10R272L architecture combines the advantages of both RISC and CISC processors with an advanced peripheral subsystem. The following block diagram overviews the different onchip components and the internal bus structure. I/O CS(4:0) HOLD HLDA BREQ I/O A(23:16), SSPCLK, SSPDAT, SSPCE(1:0) dedicated pins Port 6 8-bit Port 4 8-bit OSC WDT EA, ALE, RD, WR/WRL, READY, NMI, RSTIN, RSTOUT I/O I/O, D(7:0) D(15:8), D(7:0) I/O A(15:8), AD(7:0) A(15:0) AD(15:8), AD(7:0) Port 1 2x8-bit Port 0 2x8-bit XTAL1 XSSP 4-bit XTAL2 PLL 1KByte ST10 CORE DPRAM MAC Interrupt Controller & PEC ASC Port 3 15-bit I/O CLKOUT, BHE/WRH, RxD0, TxD0, T2IN, T3IN, T4IN, T3EUD, T3OUT, CAPIN, T6OUT GPT1/2 PWM Port 7 4-bit Port 2 4-bit I/O POUT3 I/O EXIN(3:0) Port 5 6-bit I T2EUD, T4EUD, T5IN, T6IN, T5EUD, T6EUD Figure 2 Block diagram 11/77 1 ST10R272L ST10R272L - MEMORY MAPPING 3 MEMORY MAPPING The ST10R272L ST10R272L is a ROMless device, the internal RAM space is 1 KByte. The RAM address space is used for variables, register banks, the system stack, the PEC pointers (in 00'FCE0h - 00'FCFFh) and the bit-addressable space (in 00'FD00h - 00'FDFFh). RAM/SFR 00'EFFFh 256 Byte 00'EF00h 00'FFFFh 00'F000h XSSP Data Page 3 00'FFFFh 00'FF3Fh 00'FF20h SFR Area (reserved) 00'FE3Fh 00'FE20h 00'FE00h External memory 00'F000h RAM 1K-Byte Data Page 2 00'FA00h 00'8000h Data Page 1 internal memory Block 1 00'4000h 00'F200h 00'FF3Fh 00'FF20h 00'1FFFh 8K-byte Block 0 ESFR Area (reserved) Data Page 0 00'F03Fh 00'F020h 00'0000h 00'0000h System Segment 0 64 K-Byte Figure 3 Memory map 12/77 1 00'F000h DPRAM / SFR Area 4 K-Byte ST10R272L ST10R272L - CENTRAL PROCESSING UNIT 4 CENTRAL PROCESSING UNIT The main core of the CPU contains a 4-stage instruction pipeline, a MAC multiplyaccumulation unit, a separate multiply and divide unit, a bit-mask generator and a barrel shifter. Most instructions can be executed in one machine cycle requiring 40ns at 50MHz CPU clock. The CPU includes an actual register context consisting of 16 wordwide GPRs physically located in the on-chip RAM area. A Context Pointer (CP) register determines the base address of the active register bank to be accessed by the CPU. The number of register banks is only restricted by the available internal RAM space. For easy parameter passing, one register bank may overlap others. A system stack of up to 1024 bytes is provided as a storage for temporary data. The system stack is allocated in the on-chip RAM area, and it is accessed by the CPU via the stack pointer (SP) register. Two separate SFRs, STKOV and STKUN, are compared against the stack pointer value during each stack access to detect stack overflow or underflow. CPU 16 SP STKOV STKUN Exec. Unit Instr. Ptr Instr. Reg 4-Stage Pipeline PSW SYSCON BUSCON 0 BUSCON 1 BUSCON 2 BUSCON 3 BUSCON 4 Data Pg. Ptrs MDH MDL Mul./Div.-HW Bit-Mask Gen. R15 Internal RAM Purpose ALU General 1KByte Registers R15 16-Bit Barrel-Shift Context Ptr ADDRSEL 1 ADDRSEL 2 ADDRSEL 3 ADDRSEL 4 Code Seg. Ptr. R0 IDX0 QX0 QR0 IDX1 QX1 QR1 16 R0 Figure 4 CPU block diagram 13/77 1 ST10R272L ST10R272L - MULTIPLY-ACCUMULATE UNIT (MAC) 5 MULTIPLY-ACCUMULATE UNIT (MAC) The MAC is a specialized co-processor added to the ST10R272L ST10R272L CPU core to improve the performance of signal processing algorithms. It includes: · a multiply-accumulate unit · an address generation unit, able to feed the mac unit with 2 operands per cycle · a repeat unit, to execute a series of multiply-accumulate instructions New addressing capabilities enable the CPU to supply the MAC with up to 2 operands per instruction cycle. MAC instructions: multiply, multiply-accumulate, 32-bit signed arithmetic operations and the CoMOV transfer instruction have been added to the standard instruction set. Full details are provided in the `ST10 Family Programming Manual'. ST10R272L ST10R272L CPU dual-port data buses internal RAM external memory new addressing features IDX0 QX0 QR0 IDX1 QX1 QR1 program memory operands Peripheral interface program code control MAC CoProcessor 16 x16 multiplier 40-bit ALU shifter MCW MAL MRW MAH MSW repeat unit 40-bit accumulator Figure 5 MAC architecture 14/77 1 ST10R272L ST10R272L - MULTIPLY-ACCUMULATE UNIT (MAC) 5.1 MAC Features Enhanced addressing capabilities · Double indirect addressing mode with pointer post-modification. · Parallel Data Move allows one operand move during Multiply-Accumulate instructions without penalty. · CoSTORE instruction (for fast access to the MAC SFRs) and CoMOV (for fast memory to memory table transfer). General · Two-cycle execution for all MAC operations. · 16 x 16 signed/unsigned parallel multiplier. · 40-bit signed arithmetic unit with automatic saturation mode. · 40-bit accumulator. · 8-bit left/right shifter. · Scaler (one-bit left shifter) · Data limiter · Full instruction set with multiply and multiply-accumulate, 32-bit signed arithmetic and compare instructions. · Three 16-bit status and control registers: MSW: MAC Status Word, MCW: MAC Control Word, MRW: MAC Repeat Word. Program control · Repeat Unit allows some MAC co-processor instructions to be repeated up to 8192 times. Repeated instructions may be interrupted. · MAC interrupt (Class B Trap) on MAC condition flags. 15/77 1 ST10R272L ST10R272L - MULTIPLY-ACCUMULATE UNIT (MAC) 5.2 MAC Operation Instruction pipelining All MAC instructions use the 4-stage pipeline. During each stage the following tasks are performed: · FETCH: All new instructions are double-word instructions. · DECODE: If required, operand addresses are calculated and the resulting operands are fetched. IDX and GPR pointers are post-modified if necessary. · EXECUTE: Performs the MAC operation. At the end of the cycle, the Accumulator and the MAC condition flags are updated if required. Modified GPR pointers are written-back during this stage, if required. · WRITEBACK: Operand write-back in the case of parallel data move. Note At least one instruction which does not use the MAC must be inserted between two instructions that read from a MAC register. This is because the Accumulator and the status of the MAC are modified during the Execute stage. The CoSTORE instruction has been added to allow access to the MAC registers immediately after a MAC operation. Address generation MAC instructions can use some standard ST10 addressing modes such as GPR direct or #data4 for immediate shift value. New addressing modes have been added to supply the MAC with two new operands per instruction cycle. These allow indirect addressing with address pointer post-modification. Double indirect addressing requires two pointers. Any GPR can be used for one pointer, the other pointer is provided by one of two specific SFRs IDX0 and IDX1. Two pairs of offset registers QR0/QR1 and QX0/QX1 are associated with each pointer (GPR or IDXi). The GPR pointer allows access to the entire memory space, but IDX i are limited to the internal DualPort RAM, except for the CoMOV instruction. 16/77 1 ST10R272L ST10R272L - MULTIPLY-ACCUMULATE UNIT (MAC) The following table shows the various combinations of pointer post-modification for each of these 2 new addressing modes. In this document the symbols "[Rwn]" and "[IDXi]" refer to these addressing modes. Symbol Mnemonic Address Pointer Operation "[IDXi]" stands for [IDXi] (IDXi) (IDXi) (no-op) [IDXi+] (IDXi) (IDXi) +2 (i=0,1) [IDXi -] (IDXi) (IDXi) -2 (i=0,1) [IDXi + QXj] (IDXi) (IDXi) + (QX j) (i, j =0,1) [IDXi - QXj] (IDXi) (IDXi) - (QXj) (i, j =0,1) [Rwn] (Rwn) (Rwn) (no-op) [Rwn+] (Rwn) (Rwn) +2 (n=0-15) [Rwn-] (Rwn) (Rwn) -2 (k=0-15) [Rwn+QRj] (Rwn) (Rwn) + (QRj) (n=0-15;j =0,1) [Rwn - QRj] (Rwn) (Rwn) - (QRj) (n=0-15; j =0,1) "[Rwn]" stands for Table 2 Pointer post-modification combinations for IDXi and Rwn For the CoMACM class of instruction, Parallel Data Move mechanism is implemented. This class of instruction is only available with double indirect addressing mode. Parallel Data Move allows the operand pointed by IDXi to be moved to a new location in parallel with the MAC operation. The write-back address of Parallel Data Move is calculated depending on the postmodification of IDX i. It is obtained by the reverse operation than the one used to calculate the new value of IDX i. The following table shows these rules. Instruction Writeback Address CoMACM [IDXi+],. CoMACM [IDXi-],. CoMACM [IDXi+QXj],. CoMACM [IDXi-QXj],. Table 3 Parallel data move addressing 17/77 1 ST10R272L ST10R272L - MULTIPLY-ACCUMULATE UNIT (MAC) The Parallel Data Move shifts a table of operands in parallel with a computation on those operands. Its specific use is for signal processing algorithms like filter computation. The following figure gives an example of Parallel Data Move with CoMACM instruction. CoMACM [IDX0+], [R2+] 16-bit n+2 n n+2 IDX0 n X n-2 n-2 X n-4 n-4 X IDX0 Before Execution Parallel Data Move After Execution Figure 6 Example of parallel data move 16 x 16 signed/unsigned parallel multiplier The multiplier executes 16 x 16-bit parallel signed/unsigned fractional and integer multiplies. The multiplier has two 16-bit input ports, and a 32-bit product output port. The input ports can accept data from the MA-bus and from the MB-bus. The output is sign-extended and then feeds a scaler that shifts the multiplier output according to the shift mode bit MP specified in the co-processor Control Word (MCW). The product can be shifted one bit left to compensate for the extra sign bit gained in multiplying two 16-bit signed (2's complement) fractional numbers if bit MP is set. 40-bit signed arithmetic unit The arithmetic unit over 32 bits wide to allow intermediate overflow in a series of multiply/ accumulate operations. The extension flag E, contained in the most significant byte of MSW, is set when the Accumulator has overflowed beyond the 32-bit boundary, that is, when there are significant (non-sign) bits in the top eight (signed arithmetic) bits of the Accumulator. The 40-bit arithmetic unit has two 40-bit input ports A and B. The A-input port accepts data from 4 possible sources: 00,0000,0000h, 00,0000,8000h (round), the sign-extended product, or the sign-extended data conveyed by the 32-bit bus resulting from the concatenation of MAand MB-buses. Product and Concatenation can be shifted left by one according to MP for the multiplier or to the instruction for the concatenation. The B-input port is fed either by the 40-bit shifted/not shifted and inverted/not inverted accumulator or by 00,0000,0000h. A-input and B- 18/77 1 ST10R272L ST10R272L - MULTIPLY-ACCUMULATE UNIT (MAC) input ports can receive 00,0000,0000h to allow direct transfers from the B-source and Asource, respectively, to the Accumulator (case of Multiplication, Shift.). The output of the arithmetic unit goes to the Accumulator. It is also possible to saturate the Accumulator on a 32-bit value, automatically after every accumulation. Automatic saturation is enabled by setting the saturation bit MS in the MCW register. When the Accumulator is in the saturation mode and an 32-bit overflow occurs, the accumulator is loaded with either the most positive or the most negative value representable in a 32-bit value, depending on the direction of the overflow. The value of the Accumulator upon saturation is 00,7fff,ffffh (positive) or ff,8000,0000h (negative) in signed arithmetic. Automatic saturation sets the SL flag MSW. This flag is a sticky flag which means it stays set until it is explicitly reset by the user. 40-bit overflow of the Accumulator sets the SV flag in MSW. This flag is also a sticky flag. 40-bit accumulator register The 40-bit Accumulator consists of three SFR registers MAH, MAL and MAE. MAH and MAL are 16-bit wide. MAE is 8-bit wide and is contained within the least significant byte of MSW. Most co-processor operations specify the 40-bit Accumulator register as source and/or destination operand. Data limiter Saturation arithmetic is also provided to selectively limit overflow, when reading the accumulator by means of a CoSTORE MAS instruction. Limiting is performed on the MAC Accumulator. If the contents of the Accumulator can be represented in the destination operand size without overflow, the data limiter is disabled and the operand is not modified. If the contents of the accumulator cannot be represented without overflow in the destination operand size, the limiter will substitute a `limited' data as explained in the following table. Register E bit N bit Output of the Limiter x 0 x unchanged MAS 1 0 7fffh MAS 1 1 8000h Table 4 Data Limit Values Note In this case, the accumulator and the status register are not affected. MAS readable from a CoSTORE instruction. 19/77 1 ST10R272L ST10R272L - MULTIPLY-ACCUMULATE UNIT (MAC) Accumulator shifter The Accumulator shifter is a parallel shifter with a 40-bit input and a 40-bit output. The source operand of the shifter is the Accumulator and the possible shifting operations are: · No shift (Unmodified) · Up to 8-bit Arithmetic Left Shift · Up to 8-bit Arithmetic Right Shift E, SV and SL bits from MSW are affected by Left shifts, therefore if the saturation mechanism is enabled (MS), the behavior is similar to the one of the arithmetic unit. The carry flag C is also affected by left shifts. Repeat unit The MAC includes a repeat unit allowing the repetition of some co-processor instructions up to 213 (8192) times. The repeat count may be specified either by an immediate value (up to 31 times) or by the content of the Repeat Count (bits 12 to 0) in the MAC Repeat Word (MRW). If the Repeat Count equals "N" the instruction will be executed "N+1" times. At each iteration of a cumulative instruction the Repeat Count is tested for zero. If it is zero the instruction is terminated else the Repeat Count is decremented and the instruction is repeated. During such a repeat sequence, the Repeat Flag in MRW is set until the last execution of the repeated instruction. The syntax of repeated instructions is shown in the following examples: 1 Repeat #24 times CoMAC[IDX0+],[R0+] ; repeated 24 times In example 1, the instruction is repeated according to a 5-bit immediate value. The Repeat Count in MRW is automatically loaded with this value minus one (MRW=23). 1 MOV MRW, #00FFh ; load MRW NOP ; instruction latency Repeat MRW times CoMACM [IDX1-],[R2+] ; repeated 256 times In this example, the instruction is repeated according to the Repeat Count in MRW. Notice that due to the pipeline processing at least one instruction should be inserted between the write of MRW and the next repeated instruction. Repeat sequences may be interrupted. When an interrupt occurs during a repeat sequence, the sequence is stopped and the interrupt routine is executed. The repeat sequence resumes at the end of the interrupt routine. During the interrupt, MR remains set, indicating that a repeated instruction has been interrupted and the Repeat Count holds the number (minus 1) 20/77 1 ST10R272L ST10R272L - MULTIPLY-ACCUMULATE UNIT (MAC) of repetition that remains to complete the sequence. If the Repeat Unit is used in the interrupt routine, MRW must be saved by the user and restored before the end of the interrupt routine. Note The Repeat Count should be used with caution. In this case MR should be written as 0. In general MR should not be set by the user otherwise correct instruction processing can not be guaranteed. MAC interrupt The MAC can generate an interrupt according to the value of the status flags C (carry), SV (overflow), E (extension) or SL (limit) of the MSW. The MAC interrupt is globally enabled when the MIE flag in MCW is set. When it is enabled the flags C, SV, E or SL can triggered a MAC interrupt when they are set provided that the corresponding mask flag CM, VM, EM or LM in MCW is also set. A MAC interrupt request set the MIR flag in MSW, this flag must be reset by the user during the interrupt routine otherwise the interrupt processing restarts when returning from the interrupt routine. The MAC interrupt is implemented as a Class B hardware trap (trap number Ah - trap priority I). The associated Trap Flag in the TFR register is MACTRP, bit #6 of the TFR (Remember that this flag must also be reset by the user in the case of an MAC interrupt request). As the MAC status flags are updated (or eventually written by software) during the Execute stage of the pipeline, the response time of a MAC interrupt request is 3 instruction cycles (see Figure 3). It is the number of instruction cycles required between the time the request is sent and the time the first instruction located at the interrupt vector location enters the pipeline. Note that the IP value stacked after a MAC interrupt does not point to the instruction that triggers the interrupt. Response Time FETCH N N+1 N+2 N+3 N+4 I1 I2 DECODE N-1 N N+1 N+2 TRAP (1) TRAP (2) I1 EXECUTE N-2 N-1 N N+1 N+2 TRAP (1) TRAP (2) WRITEBACK N-3 N-2 N-1 N N+1 N+2 TRAP (1) MAC Interrupt Request Figure 7 Pipeline diagram for MAC interrupt response time 21/77 1 ST10R272L ST10R272L - INTERRUPT AND TRAP FUNCTIONS Number representation & rounding The MAC supports the two's-complement representation of binary numbers. In this format, the sign bit is the MSB of the binary word. This is set to zero for positive numbers and set to one for negative numbers. Unsigned numbers are supported only by multiply/multiplyaccumulate instructions which specifies whether each operand is signed or unsigned. In two's complement fractional format, the N-bit operand is represented using the 1.[N-1] format (1 signed bit, N-1 fractional bits). Such a format can represent numbers between -1 and +1-2-[N-1]. This format is supported when MP of MCW is set. The MAC implements `two's complement rounding'. With this rounding type, one is added to the bit to the right of the rounding point (bit 15 of MAL), before truncation (MAL is cleared). 6 INTERRUPT AND TRAP FUNCTIONS The architecture of the ST10R272L ST10R272L supports several mechanisms for fast and flexible response to the service requests that can be generated from various sources, internal or external to the microcontroller. Any of these interrupt requests can be programmed to be serviced, either by the Interrupt Controller or by the Peripheral Event Controller (PEC). In a standard interrupt service, program execution is suspended and a branch to the interrupt service routine is performed. For a PEC service, just one cycle is `stolen' from the current CPU activity. A PEC service is a single, byte or word data transfer between any two memory locations, with an additional increment of either the PEC source or the destination pointer. An individual PEC transfer counter is decremented for each PEC service, except in the continuous transfer mode. When this counter reaches zero, a standard interrupt is performed to the corresponding source-related vector location. PEC services are very well suited, for example, to the transmission or reception of blocks of data. The ST10R272L ST10R272L has 8 PEC channels, each of which offers fast interrupt-driven data transfer capabilities. A separate control register which contains an interrupt request flag, an interrupt enable flag and an interrupt priority bitfield, exists for each of the possible interrupt sources. Via its related register, each source can be programmed to one of sixteen interrupt priority levels. Once having been accepted by the CPU, an interrupt service can only be interrupted by a higher priority service request. For standard interrupt processing, each of the possible interrupt sources has a dedicated vector location. Fast external interrupt inputs are provided to service external interrupts with high precision requirements. These fast interrupt inputs, feature programmable edge detection (rising edge, falling edge or both edges). Software interrupts are supported by means of the `TRAP' instruction in combination with an individual trap (interrupt) number. 22/77 1 ST10R272L ST10R272L - INTERRUPT AND TRAP FUNCTIONS 6.1 Interrupt Sources Source of Interrupt or PEC Service Request Request Flag Enable Flag Interrupt Vector Vector Location Trap Number External Interrupt 0 CC8IR CC8IE CC8INT 60h 18h External Interrupt 1 CC9IR CC9IE CC9INT 64h 19h External Interrupt 2 CC10IR CC10IR CC10IE CC10IE CC10INT CC10INT 68h 1Ah External Interrupt 3 CC11IR CC11IR CC11IE CC11IE CC11INT CC11INT 6Ch 1Bh GPT1 Timer 2 T2IR T2IE T2INT 88h 22h GPT1 Timer 3 T3IR T3IE T3INT 8Ch 23h GPT1 Timer 4 T4IR T4IE T4INT 90h 24h GPT2 Timer 5 T5IR T5IE T5INT 94h 25h GPT2 Timer 6 T6IR T6IE T6INT 98h 26h GPT2 CAPREL Register CRIR CRIE CRINT 9Ch 27h ASC0 Transmit S0TIR S0TIE S0TINT A8h 2Ah ASC0 Transmit Buffer S0TBIR S0TBIE S0TBINT 11Ch 47h ASC0 Receive S0RIR S0RIE S0RINT ACh 2Bh ASC0 Error S0EIR S0EIE S0EINT B0h 2Ch PWM Channel 3 PWMIR PWMIE PWMINT FCh 3Fh SSP Interrupt XP1IR XP1IE XP1INT 104h 41h PLL Unlock XP3IR XP3IE XP3INT 10Ch 43h Table 5 List of possible interrupt sources, flags, vector and trap numbers 23/77 1 ST10R272L ST10R272L - INTERRUPT AND TRAP FUNCTIONS 6.2 Hardware Traps Exceptions or error conditions that arise during run-time are called Hardware Traps. Hardware traps cause immediate non-maskable system reaction similar to a standard interrupt service (branching to a dedicated vector table location). The occurrence of a hardware trap is additionally signified by an individual bit in the trap flag register (TFR). Except when another higher prioritized trap service is in progress, a hardware trap will interrupt any actual program execution. In turn, hardware trap services can not normally be interrupted by standard or PEC interrupts. The following table shows all of the possible exceptions or error conditions that can arise during run-time: Trap Vector Vector Location Trap Number Trap Priority Hardware Reset RESET 00'0000h 00h III Software Reset RESET 00'0000h 00h III Watchdog Timer Overflow RESET 00'0000h 00h III Exception Condition Trap Flag Reset Functions: Class A Hardware Traps: Non-Maskable Interrupt NMI NMITRAP 00'0008h 02h II Stack Overflow STKOF STOTRAP 00'0010h 04h II Stack Underflow STKUF STUTRAP 00'0018h 06h II Undefined opcode UNDOPC BTRAP 00'0028h 0Ah I Protected instruction fault PRTFLT BTRAP 00'0028h 0Ah I Illegal word operand access ILLOPA BTRAP 00'0028h 0Ah I Illegal instruction access ILLINA BTRAP 00'0028h 0Ah I Illegal external bus access ILLBUS BTRAP 00'0028h 0Ah I MAC trap MACTRP BTRAP 00'0028h 0Ah I [2Ch 3Ch] [0Bh 0Fh] Class B Hardware Traps: Reserved Software Traps TRAP Instruction Any [00'0000h Any Current 00'01FCh] [00h 7Fh] CPU steps of 4h Priority Table 6 Exceptions or error conditions 24/77 1 ST10R272L ST10R272L - PARALLEL PORTS 7 PARALLEL PORTS The ST10R272L ST10R272L provides up to 77 I/O lines organized into 7 input/output ports and one input port. All port lines are bit-addressable, and all input/output lines are individually (bit-wise) programmable as inputs or outputs by direction registers. The I/O ports are true bidirectional ports which are switched to high impedance state when configured as inputs. The output drivers of three I/O ports can be configured (pin by pin) for push/pull operation or open-drain operation by control registers. During the internal reset, all port pins are configured as inputs. All port lines have programmable alternate input or output functions associated with them. PORT0 and PORT1 may be used as address and data lines when accessing external memory, while Port 4 outputs the additional segment address bits A23/19/17 A23/19/17.A16 in systems where segmentation is enabled to access more than 64 KBytes of memory. Port 6 provides optional bus arbitration signals (BREQ, HLDA, HOLD) and chip select signals. Port 3 includes alternate functions of timers, serial interfaces, the optional bus control signal BHE and the system clock output (CLKOUT). Port 5 is used for timer control signals. Port 2 lines can be used as fast external interrupt lines. Port 7 includes alternate function for the PWM signal. All port lines that are not used for these alternate functions may be used as general purpose I/O lines. 8 EXTERNAL BUS CONTROLLER All external memory accesses are performed by the on-chip External Bus Controller which can be programmed either to single chip mode when no external memory is required, or to the following external memory access modes: 16-bit data, demultiplexed 16-/18-/20-/24-bit addresses 16-bit data, multiplexed 16-/18-/20-/24-bit addresses 8-bit data, multiplexed 16-/18-/20-/24-bit addresses 8-bit data, demultiplexed 16-/18-/20-/24-bit addresses In the demultiplexed bus modes, addresses are output on PORT1 and data is input/output on PORT0/P0L, respectively. In the multiplexed bus modes both addresses and data use PORT0 for input/output. Memory cycle time, memory tri-state time, length of ALE and read write delay are programmable so that a wide range of different memory types and external peripherals can be used. Up to 4 independent address windows can be defined (via ADDRSELx / BUSCONx register pairs) to access different resources with different bus characteristics. These address windows are arranged hierarchically where BUSCON4 overrides BUSCON3 etc. All accesses to locations not covered by these 4 address windows are controlled by BUSCON0. Up to 5 external CS signals (4 windows plus default) can be generated to reduce external glue logic. Access to very slow memories is supported by the READY function. A HOLD/HLDA protocol is available for bus arbitration so that external resources can be shared with other bus masters. In slave mode, the slave controller can be connected to another master controller without glue logic. For applications which require less than 16 MBytes 25/77 1 ST10R272L ST10R272L - PWM MODULE of external memory space, the address space can be restricted to 1 MByte, 256 KByte or to 64 KByte. 9 PWM MODULE A 1-channel Pulse Width Modulation (PWM) Module operates on channel 3. The pulse width modulation module can generate up to four PWM output signals using edge-aligned or centrealigned PWM. In addition, the PWM module can generate PWM burst signals and single shot outputs. The table below shows the PWM frequencies for different resolutions. The level of the output signals is selectable and the PWM module can generate interrupt requests. Mode 0 edge aligned Resolution 8-bit 10-bit 12-bit 14-bit 16-bit CPU clock/1 20ns 195.3 KHz 48.83KHz 12.21KHz 3.052KHz 762.9Hz CPU clock/64 1.28ns 3.052KHz 762.9Hz 190.7Hz 47.68Hz 11.92Hz Mode 1 center aligned Resolution 8-bit 10-bit 12-bit 14-bit 16-bit CPU clock/1 20ns 97.66KHz 24.41KHz 6.104KHz 1.525KHz 381.5Hz CPU clock/64 1.28ns 1.525Hz 381.5 Hz 95.37Hz 23.84Hz 0Hz Table 7 PWM unit frequencies and resolution at 50MHz CPU clock 26/77 1 ST10R272L ST10R272L - GENERAL PURPOSE TIMERS 10 GENERAL PURPOSE TIMERS The GPTs are flexible multifunctional timer/counters used for time-related tasks such as event timing and counting, pulse width and duty cycle measurements, pulse generation or pulse multiplication. The GPT unit contains five 16-bit timers, organized in two separate modules, GPT1 and GPT2. Each timer in each module may operate independently in a number of different modes, or may be concatenated with another timer of the same module. 10.1 GPT1 Each of the three timers T2, T3, T4 of the GPT1 module can be configured individually for one of four basic modes of operation: timer, gated timer, counter mode and incremental interface mode. In timer mode, the input clock for a timer is derived from the CPU clock, divided by a programmable prescaler. In counter mode, the timer is clocked in reference to external events. Pulse width or duty cycle measurement is supported in gated timer mode where the operation of a timer is controlled by the `gate' level on an external input pin. For these purposes, each timer has one associated port pin (TxIN) which serves as gate or clock input. Table 8 GPT1 timer input frequencies, resolution and periods lists the timer input frequencies, resolution and periods for each pre-scaler option at 50MHz CPU clock. This also applies to the Gated Timer Mode of T3 and to the auxiliary timers T2 and T4 in Timer and Gated Timer Mode The count direction (up/down) for each timer is programmable by software or may additionally be altered dynamically by an external signal on a port pin (TxEUD). In Incremental Interface Mode, the GPT1 timers (T2, T3, T4) can be directly connected to the incremental position sensor signals A and B by their respective inputs TxIN and TxEUD. Direction and count signals are internally derived from these two input signals so that the contents of the respective timer Tx corresponds to the sensor position. The third position sensor signal TOP0 can be connected to an interrupt input. Timer T3 has output toggle latches (TxOTL) which changes state on each timer over-flow/ underflow. The state of this latch may be output on port pins (TxOUT) e. g. for time out monitoring of external hardware components, or may be used internally to clock timers T2 and T4 for measuring long time periods with high resolution. In addition to their basic operating modes, timers T2 and T4 may be configured as reload or capture registers for timer T3. When used as capture or reload registers, timers T2 and T4 are stopped. The contents of timer T3 is captured into T2 or T4 in response to a signal at their associated input pins (TxIN). Timer T3 is reloaded with the contents of T2 or T4 triggered either by an external signal or by a selectable state transition of its toggle latch T3OTL. When both T2 and T4 are configured to alternately reload T3 on opposite state transitions of T3OTL with the low and high times of a PWM signal, this signal can be constantly generated without software intervention. 27/77 1 ST10R272L ST10R272L - GENERAL PURPOSE TIMERS Timer input selection FCPU=50MHz 000b 001b 010b 011b 100b 101b 110b 111b Prescaler Factor 8 16 32 64 128 256 512 1024 Input Frequency 6.25 MHz 3.125 MHz 1.5625 MHz 781 KHz 391 KHz 195 KHz 97.5 KHz 48.83 KHz Resolution 160ns 320ns 640ns 1.28 us 2.56 us 5.12 us 10.24 us 20.48 us Period 10.49ms 20.97ms 41.94ms 83.88ms 168ms 336ms 672ms 1.342s Table 8 GPT1 timer input frequencies, resolution and periods U/D T2E UD Interrupt Request GPT1 Timer T2 C PU Clock n 2 n=3.10 Mode T2IN CPU C lock T2 2n n=3.10 T3OUT T3 Mode T3EUD Reload Capture G PT1 Timer T3 T3O TL U/D T3IN Capture Reload T4 T4IN CPU Clock T4EU D Interrupt Request Mode 2n n=3.10 GPT1 Timer T4 U/D Figure 8 GPT1 block diagram 28/77 1 Interrupt Request ST10R272L ST10R272L - GENERAL PURPOSE TIMERS 10.2 GPT2 The GPT2 module provides precise event control and time measurement. It includes two timers (T5, T6) and a capture/reload register (CAPREL). Both timers can be clocked with an input clock derived from the CPU clock via a programmable prescaler or with external signals. The count direction (up/down) for each timer is programmable by software or altered dynamically by an external signal on a port pin (TxEUD). Concatenation of the timers is supported by the output toggle latch (T6OTL) of timer T6, which changes its state on each timer overflow/underflow. The state of T6OTL may be used to clock timer T5, or may be output on a port pin T6OUT. The overflows/underflows of timer T6 reload the CAPREL register. The CAPREL register captures the contents of T5 based on an external signal transition on the corresponding port pin (CAPIN), and timer T5 may optionally be cleared after the capture procedure. This allows absolute time differences to be measured or pulse multiplication to be performedwithout software overhead. Timer input selection FCPU=50MHz 000b 001b 010b 011b 100b 101b 110b 111b Prescaler Factor 4 8 16 32 64 128 256 512 Input Frequency 12.5 MHz 6.25 MHz 3.125 MHz 1.563 MHz 781 KHz 391 KHz 195 KHz 97.6 KHz Resolution 80ns 160ns 320ns 640ns 1.28 us 2.56 us 5.12 us 10.24 us Period 5.24ms 10.49ms 20.97ms 41.94ms 83.88ms 167.7ms 335.5ms 671ms Table 9 GPT2 timer input frequencies, resolution and periods 29/77 1 ST10R272L ST10R272L - SERIAL CHANNELS T5EUD CPU Clock U/D 2n n=2.9 T5IN T5 Interrupt Request GPT2 Tim T5 er Mode Clear Capture Interrupt Request CAPIN GPT2 CAPREL Reload T6IN CPU Clock Toggle FF T6 2n n=2.9 Interrupt Request Mode GPT2 Tim T6 er T60TL T60TL T6OUT U/D T6EUD Figure 9 GPT2 block diagram 11 SERIAL CHANNELS Serial communication with other microcontrollers, processors, terminals or external peripheral components is provided by two serial interfaces with different functionality, an Asynchronous/ Synchronous Serial Channel (ASC0) and a Synchronous Serial Port (SSP). ASC0 A dedicated baud rate generator sets up standard baud rates without oscillator tuning. 3 separate interrupt vectors are provided for transmission, reception, and erroneous reception. In asynchronous mode, 8- or 9-bit data frames are transmitted or received, preceded by a start bit and terminated by one or two stop bits. For multiprocessor communication, a mechanism to distinguish address from data bytes has been included (8-bit data + wake up bit mode). In synchronous mode, the ASC0 transmits or receives bytes (8 bits) synchronously to a shift clock which is generated by the ASC0. The ASC0 always shifts the LSB first. A loop back option is available for testing purposes. A number of optional hardware error detection capabilities have been included to increase the reliability of data transfers. A parity bit can be generated automatically on transmission, or checked on reception. Framing error detection recognizes data frames with missing stop bits. An overrun error is generated if the last character received was not read out of the receive buffer register at the time the reception of a new character is complete.The table below lists 30/77 1 ST10R272L ST10R272L - SERIAL CHANNELS various commonly used baud rates together with the required reload values and the deviation errors compared to the intended baudrate. S0BRS = `0', fCPU = 50MHz S0BRS = `1', f CPU = 50MHz Baud Rate Deviation Error (Baud) Reload Value Baud Rate Deviation Error (Baud) Reload Value 1562500 0.0% / 0.0% 0000H 0000H / 0000H 0000H 1041666 0.0% / 0.0% 0000H 0000H / 0000H 0000H 56000 +3.3% / -0.4% 001AH 001AH / 001BH 001BH 56000 +3.3% / -2.1% 0011H 0011H / 0012H 0012H 38400 +1.7% / -0.8% 0027H 0027H / 0028H 0028H 38400 +0.5% / -3.1% 001AH 001AH / 001BH 001BH 19200 +0.5% / -0.8% 0050H 0050H / 0051H 0051H 19200 +0.5% /-1.4% 0035H 0035H / 0036H 0036H 9600 +0.5% / -0.1% 00A1H/ 00A1H/ 00A2H 00A2H 9600 +0.5% / -0.5% 006BH 006BH / 006CH 006CH 4800 +0.2% / -0.1% 0144H 0144H / 0145H 0145H 4800 0.0% / -0.5% 00D8H 00D8H / 00D9H 00D9H 2400 0.0% / -0.1% 028AH 028AH / 028BH 028BH 2400 0.0% / -0.2% 01B1H 01B1H / 01B2H 01B2H 1200 0.0% / -0.1% 0515H 0515H / 0516H 0516H 1200 0.0% / -0.1% 0363H 0363H / 0364H 0364H 600 0.0% / 0.0% 0A2BH / 0A2CH 600 0.0% / -0.1% 06C7H 06C7H / 06C8H 06C8H 190 +0.4% /+0.4% 1FFFH / 1FFFH 75 0.0% / 0.0% 363FH 363FH / 3640H 3640H 127 +0.1% / +0.1% 1FFFH / 1FFFH Table 10 Commonly used baud rates, required reload values and deviation errors SSP transmits 1.3 bytes or receives 1 byte after sending 1.3 bytes synchronously to a shift clock which is generated by the SSP. The SSP can start shifting with the LSB or with the MSB and is used to select shifting and latching clock edges, and clock polarity. Up to two chip select lines may be activated in order to direct data transfers to one or both of two peripheral devices. When the SSP is enabled, the four upper pins of Port4 can not be used as general purpose IO. Note that the segment address selection done via the system start-up configuration during reset has priority and overrides the SSP functions on these pins. SSPCKS Value Synchronous baud rate 000 SSP clock = CPU clock divided by 2 25 MBit/s 001 SSP clock = CPU clock divided by 4 12.5 MBit/s 010 SSP clock = CPU clock divided by 8 6.25 MBit/s Table 11 Synchronous baud rate and SSPCKS reload values 31/77 1 ST10R272L ST10R272L - WATCHDOG TIMER SSPCKS Value Synchronous baud rate 011 SSP clock = CPU clock divided by 16 3.13 MBit/s 100 SSP clock = CPU clock divided by 32 1.56 MBit/s 101 SSP clock = CPU clock divided by 64 781 KBit/s 110 SSP clock = CPU clock divided by 128 391 KBit/s 111 SSP clock = CPU clock divided by 256 195 KBit/s Table 11 Synchronous baud rate and SSPCKS reload values 12 WATCHDOG TIMER The Watchdog Timer is a fail-safe mechanism which limits the malfunction time of the controller. The Watchdog Timer is always enabled after device reset and can only be disabled in the time interval until the EINIT (end of initialization) instruction has been executed. In this way, the chip's start-up procedure is always monitored. The software must be designed to service the Watchdog Timer before it overflows. If, due to hardware or software related failures, the software fails to maintain the Watchdog Timer, it will overflow generating an internal hardware reset and pulling the RSTOUT pin low to reset external hardware components. The Watchdog Timer is a 16-bit timer, clocked with the system clock divided either by 2 or by 128. The high byte of the Watchdog Timer register can be set to a pre-specified reload value (stored in WDTREL) in order to allow further variation of the monitored time interval. Each time it is serviced by the application software, the high byte of the Watchdog Timer is reloaded. The table below shows the watchdog time range which for a 50MHz CPU clock rounded to 3 significant figures. Reload value Prescaler for fCPU in WDTREL 2 (WDTIN = `0') 128 (WDTIN = `1') FFH 10.24 µs 655 µs 00H 2.62 ms 168 ms Table 12 Watchdog timer range 32/77 1 ST10R272L ST10R272L - SYSTEM RESET 13 SYSTEM RESET The following type of reset are implemented on the ST10R272L ST10R272L: Asynchronous hardware reset: Asynchronous reset does not require a stabilized clock signal on XTAL1 as it is not internally resynchronized, it resets the microcontroller into its default reset state. Asynchronous reset is required on chip power-up and can be used during catastrophic situations. The rising edge of the RSTIN pin is internally resynchronized before exiting the reset condition, therefore, only the entry to hardware reset is asynchronous. Synchronous hardware reset (warm reset): A warm synchronous hardware reset is triggered when the reset input signal RSTIN is latched low and Vpp pin is high. The I/Os are immediately (asynchronously) set in high impedance, RSTOUT is driven low. After RSTIN negation is detected, a short transition period elapses, during which pending internal hold states are cancelled and any current internal access cycles are completed, external bus cycles are aborted. Then, the internal reset sequence is active for 1024 TCL (512 CPU clock cycles). During this reset sequence, if bit BDRSTEN was previously set by software (bit 3 in SYSCON register), RSTIN pin is driven low and internal reset signal is asserted to reset the microcontroller in its default state. Note that after all reset sequence, bit BDRSTEN is cleared. After the reset sequence has been completed, the RSTIN input is sampled. When the reset input signal is active at that time the internal reset condition is prolonged until RSTIN becomes inactive. Software reset: The reset sequence can be triggered at any time by the protected instruction SRST (software reset). This instruction can be executed deliberately within a program, e.g. to leave bootstrap loader mode, or on a hardware trap that reveals a system failure. As for a synchronous hardware reset, if bit BDRSTEN was previously set by software (bit 3 in SYSCON register), the reset sequence lasts 1024 TCL (512 CPU clock cycles), and drives the RSTIN pin low. Watchdog timer reset: When the watchdog timer is not disabled during the initialization or serviced regularly during program execution it will overflow and trigger the reset sequence. Unlike hardware and software resets, the watchdog reset completes a running external bus cycle if this bus cycle does not use READY, or if READY is sampled active (low) after the programmed waitstates. When READY is sampled inactive (high) after the programmed waitstates the running external bus cycle is aborted. Then the internal reset sequence is started. The watchdog reset cannot occur while the ST10R272L ST10R272L is in bootstrap loader mode. Bidirectional reset: The bidirectional reset is activated by setting bit BDRSTEN (bit 3 in SYSCON register). This reset makes the watchdog timer reset and software reset externally visible. It is active for the duration of an internal reset sequences caused by a watchdog timer reset and software reset. Therefore, the bidirectional reset transforms an internal watchdog timer reset or software reset into an external hardware reset with a minimum duration of 1024 TCL. 33/77 1 ST10R272L ST10R272L - POWER REDUCTION MODES 14 POWER REDUCTION MODES Two different power reduction modes with different levels of power reduction can be entered under software control. In Idle mode the CPU is stopped, while the peripherals continue their operation. Idle mode can be terminated by any reset or interrupt request. In Power Down mode both the CPU and the peripherals are stopped. Power Down mode can now be configured by software in order to be terminated only by a hardware reset or by an external interrupt source on fast external interrupt pins. All external bus actions are completed before Idle or Power Down mode is entered. However, Idle or Power Down mode is not entered if READY is enabled, but has not been activated (driven low for negative polarity, or driven high for positive polarity) during the last bus access. 15 SPECIAL FUNCTION REGISTERS The following table lists all ST10R272L ST10R272L SFRs in alphabetical order. Bit-addressable SFRs are marked with the letter "b" in column "Name". SFRs within the Extended SFR-Space (ESFRs) are marked with the letter "E" in column "Physical Address". An SFR can be specified by its individual mnemonic name. Depending on the selected addressing mode, an SFR can be accessed by its physical address (using the Data Page Pointers), or by its short 8-bit address (without using the Data Page Pointers). Name Physical Address 8-Bit Description Address Reset Value ADDRSEL1 FE18h 0Ch Address Select Register 1 0000h ADDRSEL2 FE1Ah 0Dh Address Select Register 2 0000h ADDRSEL3 FE1Ch 0Eh Address Select Register 3 0000h ADDRSEL4 FE1Eh 0Fh Address Select Register 4 0000h BUSCON0 b FF0Ch 86h Bus Configuration Register 0 0XX0h BUSCON1 b FF14h 8Ah Bus Configuration Register 1 0000h BUSCON2 b FF16h 8Bh Bus Configuration Register 2 0000h BUSCON3 b FF18h 8Ch Bus Configuration Register 3 0000h BUSCON4 b FF1Ah 8Dh Bus Configuration Register 4 0000h FE4Ah 25h GPT2 Capture/Reload Register 0000h FF88h C4h EX0IN Interrupt Control Register 0000h CAPREL CC8IC b Table 13 Special functional registers 34/77 1 ST10R272L ST10R272L - SPECIAL FUNCTION REGISTERS Physical Address Name 8-Bit Description Address Reset Value CC9IC b FF8Ah C5h EX1IN Interrupt Control Register 0000h CC10IC CC10IC b FF8Ch C6h EX2IN Interrupt Control Register 0000h CC11IC CC11IC b FF8Eh C7h EX3IN Interrupt Control Register 0000h FE10h 08h CPU Context Pointer Register FC00h FF6Ah B5h GPT2 CAPREL Interrupt Control Register 0000h FE08h 04h CPU Code Segment Pointer Register (read only) 0000h CP CRIC b CSP DP0L b F100h E 80h P0L Direction Control Register 00h DP0H b F102h E 81h P0h Direction Control Register 00h DP1L b F104h E 82h P1L Direction Control Register 00h DP1H b F106h E 83h P1h Direction Control Register 00h DP2 b FFC2h E1h Port 2 Direction Control Register -0-h DP3 b FFC6h E3h Port 3 Direction Control Register 0000h DP4 b FFCAh E5h Port 4 Direction Control Register 00h DP6 b FFCEh E7h Port 6 Direction Control Register 00h DP7 b FFD2h E9h Port 7 Direction Control Register -0h DPP0 FE00h 00h CPU Data Page Pointer 0 Register (10 bits) 0000h DPP1 FE02h 01h CPU Data Page Pointer 1 Register (10 bits) 0001h DPP2 FE04h 02h CPU Data Page Pointer 2 Register (10 bits) 0002h DPP3 FE06h 03h CPU Data Page Pointer 3 Register (10 bits) 0003h EBUSCON b F10Eh E 87H Extended BUSCON register 0000h EXICON F1C0h E E0h External Interrupt Control Register 0000h IDCHIP F07Ch E 3Eh Device Identifier Register 1101h IDMANUF F07Eh E 3Fh Manufacturer/Process Identifier Register 0201h IDMEM F07Ah E 3Dh On-chip Memory Identifier Register 0000h IDPROG F078h E 3Ch Programming Voltage Identifier Register 0000h 84h MAC Unit Address Pointer 0 0000h IDX0 b b FF08h Table 13 Special functional registers 35/77 1 ST10R272L ST10R272L - SPECIAL FUNCTION REGISTERS Physical Address 8-Bit Description Address Reset Value FF0Ah 85h MAC Unit Address Pointer 1 0000h MAH FE5Eh 2Fh MAC Unit Accumulator - High Word 0000h MAL FE5Ch 2Eh MAC Unit Accumulator - Low Word 0000h MCW FFDCh EEh MAC Unit Control Word 0000h FF0Eh 87h CPU Multiply Divide Control Register 0000h MDH FE0Ch 06h CPU Multiply Divide Register High Word 0000h MDL FE0Eh 07h CPU Multiply Divide Register Low Word 0000h Name IDX1 MDC b b MRW b FFDAh EDh MAC Unit Repeat Word 0000h MSW b FFDEh EFh MAC Unit Status Word 0200h ODP2 b F1C2h E E1h Port 2 Open Drain Control Register -0-h ODP3 b F1C6h E E3h Port 3 Open Drain Control Register 0000h ODP6 b F1CEh E E7h Port 6 Open Drain Control Register 00h ODP7 b F1D2h E E9h Port 7 Open Drain Control Register -0h FF1Eh 8Fh Constant Value 1's Register (read only) FFFFh ONES P0L b FF00h 80h Port 0 Low Register (Lower half of PORT0) 00h P0H b FF02h 81h Port 0 High Register (Upper half of PORT0) 00h P1L b FF04h 82h Port 1 Low Register (Lower half of PORT1) 00h P1H b FF06h 83h Port 1 High Register (Upper half of PORT1) 00h P2 b FFC0h E0h Port 2 Register (4 bits) -0-h P3 b FFC4h E2h Port 3 Register 0000h P4 b FFC8h E4h Port 4 Register (8 bits) 00h P5 b FFA2h D1h Port 5 Register (read only) XXXXh P6 b FFCCh E6h Port 6 Register (8 bits) 00h P7 b FFD0h E8h Port 7Register (4 bits) -0h PECC0 FEC0h 60h PEC Channel 0 Control Register 0000h PECC1 FEC2h 61h PEC Channel 1 Control Register 0000h Table 13 Special functional registers 36/77 1 ST10R272L ST10R272L - SPECIAL FUNCTION REGISTERS Name Physical Address 8-Bit Description Address Reset Value PECC2 FEC4h 62h PEC Channel 2 Control Register 0000h PECC3 FEC6h 63h PEC Channel 3 Control Register 0000h PECC4 FEC8h 64h PEC Channel 4 Control Register 0000h PECC5 FECAh 65h PEC Channel 5 Control Register 0000h PECC6 FECCh 66h PEC Channel 6 Control Register 0000h PECC7 FECEh 67h PEC Channel 7 Control Register 0000h PP3 F03Eh 1Fh PWM Module Period Register 3 0000h FF10h 88h CPU Program Status Word 0000h PW3 FE36h 1Bh PWM Module Pulse Width Register 3 0000h PWMCON0 b FF30h 98h PWM Module Control Register 0 0000h PWMCON1 b FF32h 99h PWM Module Control Register 1 0000h PWMIC F17Eh E BFh PWM Module Interrupt Control Register 0000h QR0 F004h E 02h MAC Unit Offset Register R0 (8 bits) 00h QR1 F006h E 03h MAC Unit Offset Register R1 (8 bits) 00h QX0 F000h E 00h MAC Unit Offset Register X0 (8 bits) 00h QX1 F002h E 01h MAC Unit Offset Register X1 (8 bits) 00h F108h E 84h System Start-up Configuration Register (Rd. only) XXh FEB4h 5Ah Serial Channel 0 baud rate generator reload reg 0000h PSW RP0H b b b S0BG E S0CON b FFB0h D8h Serial Channel 0 Control Register 0000h S0EIC b FF70h B8h Serial Channel 0 Error Interrupt Control Register 0000h FEB2h 59h Serial Channel 0 receive buffer reg. (rd only) XXh B7h Serial Channel 0 Receive Interrupt Control Reg. 0000h CEh Serial Channel 0 transmit buffer interrupt control reg 0000h FEB0h 58h Serial Channel 0 transmit buffer register (wr only) 00h FF6Ch B6h Serial Channel 0 Transmit Interrupt Control Regis- 0000h ter S0RBUF S0RIC b FF6Eh S0TBIC b F19Ch S0TBUF S0TIC b E Table 13 Special functional registers 37/77 1 ST10R272L ST10R272L - SPECIAL FUNCTION REGISTERS Name Physical Address 8-Bit Description Address Reset Value SP FE12h 09h CPU System Stack Pointer Register FC00h SSPCON0 EF00h X - SSP Control Register 0 0000h SSPCON1 EF02h X - SSP Control Register 1 0000h SSPRTB EF04h X - SSP Receive/Transmit Buffer XXXXh SSPTBH EF06h X - SSP Transmit Buffer High XXXXh STKOV FE14h 0Ah CPU Stack Overflow Pointer Register FA00h STKUN FE16h 0Bh CPU Stack Underflow Pointer Register FC00h FF12h 89h CPU System Configuration Register 0xx0h1) FE40h 20h GPT1 Timer 2 Register 0000h SYSCON b T2 T2CON b FF40h A0h GPT1 Timer 2 Control Register 0000h T2IC b FF60h B0h GPT1 Timer 2 Interrupt Control Register 0000h FE42h 21h GPT1 Timer 3 Register 0000h T3 T3CON b FF42h A1h GPT1 Timer 3 Control Register 0000h T3IC b FF62h B1h GPT1 Timer 3 Interrupt Control Register 0000h FE44h 22h GPT1 Timer 4 Register 0000h T4 T4CON b FF44h A2h GPT1 Timer 4 Control Register 0000h T4IC b FF64h B2h GPT1 Timer 4 Interrupt Control Register 0000h FE46h 23h GPT2 Timer 5 Register 0000h T5 T5CON b FF46h A3h GPT2 Timer 5 Control Register 0000h T5IC b FF66h B3h GPT2 Timer 5 Interrupt Control Register 0000h FE48h 24h GPT2 Timer 6 Register 0000h T6 T6CON b FF48h A4h GPT2 Timer 6 Control Register 0000h T6IC b FF68h B4h GPT2 Timer 6 Interrupt Control Register 0000h TFR b FFACh D6h Trap Flag Register 0000h WDT FEAEh 57h Watchdog Timer Register (read only) 0000h WDTCON FFAEh D7h Watchdog Timer Control Register 000xh2) Table 13 Special functional registers 38/77 1 ST10R272L ST10R272L - SPECIAL FUNCTION REGISTERS Physical Address Name 8-Bit Description Address Reset Value XP1IC b F18Eh E C7h SSP Interrupt Control Register 0000h XP3IC b F19Eh E CFh PLL unlock Interrupt Control Register 0000h ZEROS b FF1Ch 8Eh Constant Value 0's Register (read only) 0000h Table 13 Special functional registers Note 1. The system configuration is selected during reset. Note 2. Bit WDTR indicates a watchdog timer triggered reset. 39/77 1 ST10R272L ST10R272L - ELECTRICAL CHARACTERISTICS 16 ELECTRICAL CHARACTERISTICS 16.1 Absolute Maximum Ratings · Ambient temperature under bias (TA): . -40 to +85 °C · Storage temperature (TST):. 65 to +150 °C · Voltage on VDD pins with respect to ground (VSS):. 0.5 to +4.0 V · Voltage on any pin with respect to ground (VSS): . 0.5 to VDD +0.5 V · Voltage on any 5V tolerant pin with respect to ground (VSS): .0.5 to 5.5 V · Voltage on any 5V fail-safe pin with respect to ground (VSS): .0.5 to 5.5 V · Input current on any pin during overload condition: . 10 to +10 mA · Absolute sum of all input currents during overload condition: .|100 mA| · Power dissipation:.1.0 W Note Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or any other conditions above those indicated in the operational sections of this specification is not guaranteed. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. During overload conditions (VIN>VDD or VIN