SMSC LAN9311 Switch User Manual


 
Two Port 10/100 Managed Ethernet Switch with 16-Bit Non-PCI CPU Interface
Datasheet
Revision 1.4 (08-19-08) 162 SMSC LAN9311/LAN9311i
DATASHEET
Chapter 12 General Purpose Timer & Free-Running Clock
This chapter details the LAN9311/LAN9311i General Purpose Timer (GPT) and the Free-Running
Clock.
12.1 General Purpose Timer
The LAN9311/LAN9311i provides a 16-bit programmable General Purpose Timer that can be used to
generate periodic system interrupts. The resolution of this timer is 100uS.
The GPT loads the General Purpose Timer Count Register (GPT_CNT) with the value in the
GPT_LOAD field of the General Purpose Timer Configuration Register (GPT_CFG) when the
TIMER_EN bit of the General Purpose Timer Configuration Register (GPT_CFG) is asserted (1). On
a chip-level reset, or when the TIMER_EN bit changes from asserted (1) to de-asserted (0), the
GPT_LOAD field is initialized to FFFFh. The General Purpose Timer Count Register (GPT_CNT) is
also initialized to FFFFh on reset. Software can write a pre-load value into the GPT_LOAD field at any
time (e.g. before or after the TIMER_EN bit is asserted).
Once enabled, the GPT counts down until it reaches 0000h, or until a new pre-load value is written to
the GPT_LOAD field. At 0000h, the counter wraps around to FFFFh, asserts the GPT interrupt status
bit (GPT_INT) in the Interrupt Status Register (INT_STS), asserts the IRQ interrupt (if GPT_INT_EN is
set in the Interrupt Status Register (INT_STS)), and continues counting. GPT_INT is a sticky bit. Once
this bit is asserted, it can only be cleared by writing a 1 to the bit. Refer to Section 5.2.7, "General
Purpose Timer Interrupt," on page 53 for additional information on the GPT interrupt.
12.2 Free-Running Clock
The Free-Running Clock (FRC) is a simple 32-bit up-counter that operates from a fixed 25MHz clock.
The current FRC value can be read via the Free Running 25MHz Counter Register (FREE_RUN). On
assertion of a chip-level reset, this counter is cleared to zero. On de-assertion of a reset, the counter
is incremented once for every 25MHz clock cycle. When the maximum count has been reached, the
counter rolls over to zeros. The FRC does not generate interrupts.
Note: The free running counter can take up to 160nS to clear after a reset event.