Cypress CY7C638xx manual Interrupt Processing, Interrupt Trigger Conditions, Interrupt Latency

Page 51

CY7C63310, CY7C638xx

Figure 17-1. Interrupt Controller Block Diagram

Interrupt

Source

(Timer,

GPIO,etc.)

 

InterruptTaken

Priority

 

Encoder

 

or

 

 

 

INT_CLRxWrite

 

 

Posted

Pending

 

Interrupt

Interrupt

 

R

...

1

D Q

...

 

 

INT_MSKx

Mask Bit Setting

Interrupt Vector

CPU_F[0]

GIE

Interrupt

Request

M8C Core

17.2 Interrupt Processing

The sequence of events that occur during interrupt processing follows:

1.An interrupt becomes active, because:

a.The interrupt condition occurs (for example, a timer expires).

b.A previously posted interrupt is enabled through an update of an interrupt mask register.

c.An interrupt is pending and GIE is set from 0 to 1 in the CPU Flag register.

2.The current executing instruction finishes.

3.The internal interrupt is dispatched, taking 13 cycles. During this time, the following actions occur: the MSB and LSB of Program Counter and Flag registers (CPU_PC and CPU_F) are stored onto the program stack by an automatic CALL instruction (13 cycles) generated during the interrupt acknowledge process.

a.The PCH, PCL, and Flag register (CPU_F) are stored onto the program stack (in that order) by an automatic CALL instruction (13 cycles) generated during the interrupt acknowledge process

b.The CPU_F register is then cleared. Because this clears the GIE bit to 0, additional interrupts are temporarily disabled.

c.The PCH (PC[15:8]) is cleared to zero.

d.The interrupt vector is read from the interrupt controller and its value placed into PCL (PC[7:0]). This sets the program counter to point to the appropriate address in the interrupt table (for example, 0004h for the POR/LVD interrupt).

4.Program execution vectors to the interrupt table. Typically, a LJMP instruction in the interrupt table sends execution to the user's Interrupt Service Routine (ISR) for this interrupt.

5.The ISR executes. Note that interrupts are disabled because GIE = 0. In the ISR, interrupts are re-enabled by setting GIE = 1 (care must be taken to avoid stack overflow).

6.The ISR ends with a RETI instruction which restores the Program Counter and Flag registers (CPU_PC and CPU_F). The restored Flag register re-enables interrupts, because GIE = 1 again.

7.Execution resumes at the next instruction, after the one that occurred before the interrupt. However, if there are more pending interrupts, the subsequent interrupts are processed before the next normal program instruction.

17.3 Interrupt Trigger Conditions

Trigger conditions for most interrupts in Table 17-1on page 50 have been explained in the relevant sections. However, conditions under which the USB Active (interrupt address 0030h) and PS2 Data Low (interrupt address 004Ch) interrupts are triggered are explained follow.

1.USB Active Interrupt: Triggered when the D+/- lines are in a non-idle state, that is, K-state or SE0 state.

2.PS2 Data Low Interrupt: Triggered when SDATA becomes low when the SDATA pad is in the input mode for at least 6-7 32 kHz cycles.

3.The GPIO interrupts are edge triggered.

17.4 Interrupt Latency

The time between the assertion of an enabled interrupt and the start of its ISR is calculated from the following equation.

Latency = Time for current instruction to finish + Time for internal interrupt routine to execute + Time for LJMP instruction in interrupt table to execute.

For example, if the 5 cycle JMP instruction is executing when an interrupt becomes active, the total number of CPU clock cycles before the ISR begins is as follows:

(1 to 5 cycles for JMP to finish) + (13 cycles for interrupt routine) + (7 cycles for LJMP) = 21 to 25 cycles.

In the previous example, at 24 MHz, 25 clock cycles take 1.042 μs.

Document 38-08035 Rev. *K

Page 51 of 83

[+] Feedback

Image 51
Contents San Jose, CA Document 38-08035 Rev. *K Revised December 08 FeaturesApplications Cypress Semiconductor Corporation 198 Champion CourtGpio Logic Block DiagramConventions IntroductionPinouts Die Pad Summary Pad Number Pad Name Microns Pin Description Gpio Port 1 bit 0/USB D+ 1 If this pin is used as aGpio Port 1 bit 1/USB D- 1 If this pin is used as a Ground CPU ArchitectureNo connect SupplyFlags Register CPU RegistersAddressing Modes Destination Indexed Source Direct Opcode OperandSource Indexed Opcode Operand 10. Destination Direct Opcode Operand15. Source Indirect Post Increment Opcode Operand 12. Destination Direct Source Immediate Opcode Operand13. Destination Indexed Source Immediate Opcode Operand 14. Destination Direct Source Direct Opcode OperandInstruction Set Summary Sorted Numerically by Opcode Order2 Instruction Set SummaryEP0 EP1 EP2 Memory OrganizationFlash Program Memory Organization POR/LVD INT0Stack begins here and grows upward Data Memory OrganizationFlash SromReadBlock Parameters Name Address Description Srom Function DescriptionsSrom Function Parameters Variable Name Sram Address Srom Return Codes DescriptionBlock Block n Protection Modes Settings Description MarketingWriteBlock Parameters Name Address Description EraseBlock Parameters Name Address Description11. Return values for Table Read Table Number Return Value ProtectBlock Parameters Name Address DescriptionEraseAll Parameters Name Address Description 10. Table Read Parameters Name Address DescriptionSrom Table Clocking Checksum Function12. Checksum Parameters Name Address Description Clock Block Diagram Clock Architecture Description Iosc Trim Iosctr 0x34 R/WBit 40 Gain CPU/USB Clock Config Cpuclkcr 0x30 R/W Lposc Trim Lposctr 0x36 R/WBit 41 Reserved Bit 76 Reserved Bit 5 No Buzz OSC Control 0 OSCCR0 0x1E0 R/W= Tcapclk USB Osclock Clock Configuration Osclckcr 0x39 R/WTimer Clock Config Tmrclkcr 0x31 R/W Bit 72 ReservedInterval Timer Clock Itmrclk Timer Capture Clock TcapclkCou nte r Terru pt Ntro ller Document 38-08035 Rev. *K Clock IO Config Clkiocr 0x32 R/W CPU Clock During Sleep ModeReset Reset Watchdog Timer Reswdt 0xE3 W Sleep ModePower on Reset Watchdog Timer ResetWake up Sequence Sleep SequenceWake Up Timing Low Power in Sleep ModeBit 20 VM20 LVD Trip Point V Min Point V Typ Point V Max Low Voltage Detect ControlLow Voltage Control Register Lvdcr 0x1E3 R/W Bit 76 Reserved Bit 54 PORLEV10ECO Ecotr 0x1EB R/W Voltage Monitor Comparators Register Vltcmp 0x1E4 RBit 72 Reserved Bit 1 LVD ECO Trim RegisterGeneral Purpose IO Gpio Ports Port Data RegistersP0 Data Register P0DATA0x00 R/W P1 Data Register P1DATA 0x01 R/W P2 Data Register P2DATA 0x02 R/WP3 Data Register P3DATA 0x03 R/W Gpio Port Configuration P0.1/CLKOUT Configuration P01CR 0x06 R/W P0.0/CLKIN Configuration P00CR 0x05 R/WP0.5/TIO0 P0.6/TIO1 Configuration P05CR-P06CR 0x0A-0x0B R/W P0.2/INT0-P0.4/INT2 Configuration P02CR-P04CR 0x07-0x09 R/W12. P1.2 Configuration P12CR 0x0F R/W P0.7 Configuration P07CR 0x0C R/W10. P1.0/D+ Configuration P10CR 0x0D R/W 11. P1.1/D- Configuration P11CR 0x0E R/W16. P2 Configuration P2CR 0x15 R/W 13. P1.3 Configuration P13CR 0x10 R/W14. P1.4-P1.6 Configuration P14CR-P16CR 0x11-0x13 R/W 15. P1.7 Configuration P17CR 0x14 R/WSPI Data Register Spidata 0x3C R/W 17. P3 Configuration P3CR 0x16 R/WSerial Peripheral Interface SPI SPI Data RegisterSPI Configure Register SPI Interface Pins SPI Mode Timing vs. LSB First, Cpol and CphaSclk Ssel DAT a Registers Timer RegistersFree Running Timer Low order Byte Frtmrl 0x20 R/W Free Running Timer High-order Byte Frtmrh 0x21 R/WTimer Capture 1 Falling TIO1F 0x25 R/W Timer Capture 0 Rising TIO0R 0x22 R/WTimer Capture 1 Rising TIO1R 0x23 R/W Timer Capture 0 Falling TIO0F 0x24 R/W10. Programmable Interval Reload High Pirh 0x29 R/W Programmable Interval Timer High Pitmrh 0x27 RBit 74 Reserved Programmable Interval Reload Low Pirl 0x28 R/WTimer Capture 11. Timer Configuration Tmrcr 0x2A R/WBit 20 Reserved 13. Capture Interrupt Status Tcapints 0x2C R/W 12. Capture Interrupt Enable Tcapinte 0x2B R/W Timer Functional Sequence Diagram Bit Free Running Counter Loading Timing Diagram Architectural Description Interrupt ControllerPCH PC158 is cleared to zero Interrupt ProcessingInterrupt Trigger Conditions Interrupt LatencyInterrupt Clear 2 INTCLR2 0xDC R/W Interrupt RegistersInterrupt Clear 0 INTCLR0 0xDA R/W Interrupt Clear 1 INTCLR1 0xDB R/WBit 7 Enable Software Interrupt Enswint Interrupt Mask 3 INTMSK3 0xDE R/WBit 60 Reserved Interrupt Mask 2 INTMSK2 0xDF R/W Interrupt Mask 1 INTMSK1 0xE1 R/W Interrupt Vector Clear Register Intvc 0xE2 R/W Interrupt Mask 0 INTMSK0 0xE0 R/WRegulator Output Vreg ControlVreg Control Register Vregcr 0x73 R/W USB Serial Interface Engine SIE USB Transceiver ConfigurationUSB Transceiver Configure Register Usbxcr 0x74 R/W USB/PS2 TransceiverUSB Device Address Usbcr 0x40 R/W USB DeviceUSB Device Address Endpoint 0, 1, and 2 CountEndpoint 0 Mode Endpoint 0 Mode EP0MODE 0x44 R/WBit 30 Mode Endpoint 0 Data EP0DATA 0x50-0x57 R/W Endpoint 1 and 2 ModeEndpoint 1 and 2 Mode EP1MODE EP2MODE 0x45, 0x46 R/W Bit 7 StallEndpoint 2 Data EP2DATA 0x60-0x67 R/W USB Mode TablesMode Column Encoding ColumnSETUP, IN, and OUT Columns Details of Mode for Differing Traffic ConditionsCount Fifo Register Summary Addr Name DefaultTmrcr Intvc Voltage vs CPU Frequency Characteristics Voltage Vs CPU Frequency Characteristics3V Regulator DC CharacteristicsAbsolute Maximum Ratings DetectCpuclk AC CharacteristicsGeneral Purpose IO Interface Parameter Description Conditions Min Typical Max Unit ClockNon-USB Mode Driver Characteristics USB Data TimingSPI Timing Clock Timing Gpio Timing DiagramDifferential Data Lines SCK CPOL=0 SCK CPOL=0 SCK CPOL=1 Package Handling Ordering InformationPin 300-Mil Molded DIP P1 Package DiagramsPin 300-Mil Molded DIP P3 Pin 300-Mil Soic S13 Pin QFN Package Document History Removed Gpio port 4 configuration details Added block diagrams and timing diagramsUpdated part numbers in the header Removed 638xx die diagram and die form pad assignmentCMCC/PYRS VGT/AESASales, Solutions, and Legal Information Worldwide Sales and Design Support Products PSoC SolutionsUSB