Hi-Speed Universal Serial Bus On-The-Go controller
Rev. 01 — 12 January 2005Product data sheet
1.General description
The ISP1761 is a single-chip Hi-Speed Universal Serial Bus (USB) On-The-Go (OTG)
Controller integrated with the advanced Philips Slave Host Controller and the Philips
ISP1582 Peripheral Controller.
2.Features
The Hi-Speed USB Host Controller and Peripheral Controller comply to
Bus Specification Rev. 2.0
Enhanced Host Controller Interface (EHCI) core implemented in the Host Controller is
adapted from
Rev. 1.0
Specification Rev. 1.0a
The ISP1761 has three USB ports. Port 1 can be configured to function as a downstream
port, an upstream port or an OTG port; ports 2 and 3 are always configured as
downstream ports. The OTG port can switch its role from host to peripheral, and
peripheral to host. The OTG port can become a host through the Host Negotiation
Protocol (HNP) as specified in the OTG supplement.
■ Compliant with
high-speed (480 Mbit/s), full-speed (12 Mbit/s) and low-speed (1.5 Mbit/s)
■ Integrated Transaction Translator (TT) for Original USB (full-speed and low-speed)
peripheral support
■ Three USB ports that support three operational modes:
◆ Mode 1: Port 1 is an OTG Controller port, and ports 2 and 3 are Host Controller
ports
◆ Mode 2: Ports 1, 2 and 3 are Host Controller ports
◆ Mode 3: Port 1 isaPeripheralController port, and ports 2 and 3 are Host Controller
Product data sheetRev. 01 — 12 January 20052 of 158
Philips Semiconductors
◆ Slave DMA, fully autonomous and supports multiple configurations
◆ Seven IN endpoints, seven OUT endpoints and one fixed control IN and OUT
◆ Integrated 8 kB memory
◆ Software-controllable connection to the USB bus, SoftConnect™
3.Applications
The ISP1761 can be used to implement a dual-role USB device in any application—USB
host or USB peripheral—depending on the cable connection. If the dual-role device is
connected to a typical USB peripheral, it behaves like a typical USB host. The dual-role
device can also be connected to a PC or any other USB host and behave like a typical
USB peripheral.
3.1 Host/peripheral roles
■ Mobile phone to/from:
◆ Mobile phone: exchange contact information
◆ Digital still camera: e-mail pictures or upload pictures to the web
◆ MP3 player: upload/download/broadcast music
◆ Mass storage: upload/download files
◆ Scanner: scan business cards
■ Digital still camera to/from:
◆ Digital still camera: exchange pictures
◆ Mobile phone: e-mail pictures, upload pictures to the web
◆ Printer: print pictures
◆ Mass storage: store pictures
■ Printer to/from:
◆ Digital still camera: print pictures
◆ Scanner: print scanned image
◆ Mass storage: print files stored in a device
■ MP3 player to/from:
◆ MP3 player: exchange songs
◆ Mass storage: upload/download songs
■ Oscilloscope to/from:
◆ Printer: print screen image
■ Personal digital assistant to/from:
◆ Personal digital assistant: exchange files
◆ Printer: print files
◆ Mobile phone: upload/download files
◆ MP3 player: upload/download songs
◆ Scanner: scan pictures
◆ Mass storage: upload/download files
◆ Global Positioning System (GPS): obtain directions, mapping information
GND17H2-analog ground for port 1
DM118H1AI/Odownstream data minus port 1
GND19J3-analog ground
DP120J2AI/Odownstream data plus port 1
PSW1_N21J1ODpower switch port 1, active LOW
GND31P2-analog ground for port 3
DM332P1AI/Odownstream data minus port 3
GND33R2-analog ground
DP334R1AI/Odownstream data plus port 3
PSW3_N35T1ODpower switch port 3, active LOW
GND36T2-digital ground
DATA037R3I/Odata bit 0 input and output
DATA138T3I/Odata bit 1 input and output
DATA239R4I/Odata bit 2 input and output
V
DATA341P5I/Odata bit 3 input and output
DATA442T5I/Odata bit 4 input and output
DATA543R5I/Odata bit 5 input and output
GND44T6-digital ground
DATA645R6I/Odata bit 6 input and output
DATA746P7I/Odata bit 7 input and output
DATA847T7I/Odata bit 8 input and output
…continued
Ball
TFBGA128
Type
[2]
Description
output pad, push-pull open-drain, 8 mA output drive, 5 V tolerant
between this pin and the RREF3 ground
output pad, push-pull open-drain, 8 mA output drive, 5 V tolerant
bidirectional pad, push-pull input, three-state output, 4 mA output
drive, 3.3 V tolerant
bidirectional pad, push-pull input, three-state output, 4 mA output
drive, 3.3 V tolerant
bidirectional pad, push-pull input, three-state output, 4 mA output
drive, 3.3 V tolerant
capacitor; see
bidirectional pad, push-pull input, three-state output, 4 mA output
drive, 3.3 V tolerant
bidirectional pad, push-pull input, three-state output, 4 mA output
drive, 3.3 V tolerant
bidirectional pad, push-pull input, three-state output, 4 mA output
drive, 3.3 V tolerant
bidirectional pad, push-pull input, three-state output, 4 mA output
drive, 3.3 V tolerant
bidirectional pad, push-pull input, three-state output, 4 mA output
drive, 3.3 V tolerant
bidirectional pad, push-pull input, three-state output, 4 mA output
drive, 3.3 V tolerant
Product data sheetRev. 01 — 12 January 200512 of 158
Philips Semiconductors
ISP1761
Hi-Speed USB OTG controller
Table 2:Pin description
Symbol
DC_SUSPEND
/WAKEUP_N
[1]
Pin
LQFP128
120C6I/ODPeripheral Controller suspend and wake-up; three-state suspend
…continued
Ball
TFBGA128
Type
[2]
Description
output (active LOW) and wake-up input circuits are connected
together
• HIGH = output is three-state; ISP1761 is in suspend mode
• LOW = output is LOW; ISP1761 is not in suspend mode.
connect to V
output pad, open-drain, 4 mA output drive, 3.3 V tolerant
GND121A6-core ground
RESET_N122B6Iexternal power-up reset; active LOW
input, 3.3 V tolerant
Remark: During reset, ensure that all the input pins to the ISP1761
are not toggling.
GND123B5-analog ground
C_B124A5AI/Ocharge pump capacitor input; connect a 220 nF capacitor between
this pin and pin 125
C_A125B4AI/Ocharge pump capacitor input; connect a 220 nF capacitor between
this pin and pin 124
V
CC(C_IN)
OC1_N/V
BUS
126A4Pcharge pump input; connect to 3.3 V
127B3(AI/O)(I)This pin has multiple functions:
through an external 10 kΩ pull-up resistor
CC(I/O)
• Port 1 OC1_N detection when port 1 is configured for host
functionality and an external power switch is used; connect to
V
through a 10 kΩ resistor
CC(I/O)
• V
• V
input, 3.3 V tolerant
OC2_N128A3AI/Iport 2 analog (5 V input) and digital overcurrent input; if not used,
connect to V
input, 3.3 V tolerant
out when internal charge pump is used and port 1 is
BUS
configured for the host functionality; maximum 50 mA current
capability; only for port 1
input detection when port 1 is defined for the peripheral
BUS
functionality.
through a 10 kΩ resistor
CC(I/O)
[1] Symbol names ending with underscore N (for example, NAME_N) represent active LOW signals.
[2] I = input only; O = output only; I/O = digital input/output; OD = open-drain output; AI/O = analog input/output; AI = analog input;
P = power; (AI/O)(I) = analog input/output digital input; AI/I = analog input digital input.
The EHCI block and the Hi-Speed USB hub block are the main components of the
Advanced Philips Slave Host Controller.
The EHCI is the latest generation design, with improved data bandwidth. The EHCI in the
ISP1761 is adapted from
Serial Bus Rev. 1.0
The internal Hi-Speed USB hub block replaces the companion Host Controller block used
in the original architecture of a Peripheral Component Interconnect (PCI) Hi-Speed USB
Host Controller to handle the full-speed and low-speed modes. The hardware architecture
in the ISP1761 is simplified to help reduce cost and development time, by eliminating the
additional work involved in implementing the OHCI software required to support the
full-speed and low-speed modes.
Figure 4 shows the internal architecture of the ISP1761. The ISP1761 implements an
EHCI that has an internal port—the Root Hub port (not availableexternally)—on which the
internal hub is connected. The three external ports are always routed to the internal hub.
The internal hub is a Hi-Speed USB hub including the TT.
ISP1761
Hi-Speed USB OTG controller
Enhanced Host Controller Interface Specification for Universal
.
Remark: The root hub must be enabled and the internal hub must be enumerated.
Enumerate the internal hub as if it is externally connected. For details, refer to
Linux Programming Guide (AN10042)
At the Host Controller reset and initialization, the internal Root Hub port will be polled until
a new connection is detected, showing the connection of the internal hub.
The internal Hi-Speed USB hub is enumerated using a sequence similar to a standard
Hi-Speed USB hub enumeration sequence, and the polling on the Root Hub is stopped
because the internal Hi-Speed USB hub will never be disconnected. When enumerated,
the internal hub will report the three externally available ports.
Product data sheetRev. 01 — 12 January 200515 of 158
Philips Semiconductors
Hi-Speed USB OTG controller
Port 2 does not need to be enabled using software if only port 1 or port 3 is used. No port
needs to be disabled by external pull-up resistors, if not used. The DP and DM of the
unused ports need not be externally pulled HIGH because there are internal pull-down
resistors on each port that are enabled by default.
Table 3 lists the various port connection scenarios.
Table 3:Port connection scenarios
Port configuration Port 1Port 2Port 3
One port (port 1)DP and DM are routed to USB
connector
One port (port 2)DP and DM are not connected
(left open)
One port (port 3)DP and DM are not connected
(left open)
Two ports
(ports 1 and 2)
Two ports
(ports 2 and 3)
Two ports
(ports 1 and 3)
Three ports
(ports 1, 2 and 3)
DP and DM are routed to USB
connector
DP and DM are not connected
(left open)
DP and DM are routed to USB
connector
DP and DM are routed to USB
connector
DP and DM are not connected
(left open)
DP and DM are routed to USB
connector
DP and DM are not connected
(left open)
DP and DM are routed to USB
connector
DP and DM are routed to USB
connector
DP and DM are not connected
(left open)
DP and DM are routed to USB
connector
DP and DM are not connected
(left open)
DP and DM are not connected
(left open)
DP and DM are routed to USB
connector
DP and DM are not connected
(left open)
DP and DM are routed to USB
connector
DP and DM are routed to USB
connector
DP and DM are routed to USB
connector
ISP1761
7.2 Host Controller buffer memory block
7.2.1 General considerations
The internal addressable Host Controller buffer memory is 63 kB. The 63 kB effective
memory size is the result of subtracting the size of registers (1 kB) from the total
addressable memory space defined by the ISP1761 (64 kB). This is an optimized value
for achieving the highest performance with a minimal cost.
The ISP1761 is a slave Host Controller. This means that it does not need access to the
local bus of the system to transfer data from the memory of the system to the ISP1761
internal memory, unlike the case of the original PCI Hi-Speed USB Host Controllers.
Therefore, correct data must be transferred to both the Philips Transfer Descriptor (PTD)
area and the payload area by Parallel I/O (PIO) (CPU access) or programmed DMA.
The ‘slave-host’ architecture ensures better compatibility with most of the processors
present in the market today because not all processors allow a ‘bus-master’ on the local
bus. It also allows better load balancing of the processor’s local bus because only the
internal bus arbiter of the processor controls the transfer of data dedicated to USB. This
preventsthe local bus from being busy when other more important transfersmay be in the
queue; and therefore achieving a ‘linear’ system data flow that has less impact on other
processes running at the same time.
The considerations mentioned are also the main reason for implementing the prefetching
technique, instead of using a READY signal. The resulting architecture avoids ‘freezing’ of
the local bus (by asserting READY), enhancing the ISP1761 memory access time, and
avoiding introduction of programmed additional wait states. For details, see Section 7.3.
Product data sheetRev. 01 — 12 January 200516 of 158
Philips Semiconductors
The total amount of memory allocated to the payload determines the maximum transfer
size specified by a PTD—a bigger internal memory size results in less CPU interruption
for transfer programming. This means less time spent in context switching, resulting in
better CPU usage.
A larger buffer also implies a larger amount of data can be transferred. This transfer,
however, can be done over a longer period of time, to maintain the overall system
performance. Each transfer of the USB data on the USB bus can span up to a few
milliseconds before requiring further CPU intervention for data movement.
The internal architecture of the ISP1761 allows a flexible definition of the memory buffer
for optimization of the data transfer on the CPU extension bus and the USB. It is possible
to implement different data transfer schemes, depending on the number and type of USB
devices present (for example: push-pull—data can be written to half of the memory while
data in the other half is being accessed by the Host Controller and sent on the USB bus).
This is useful especially when a high-bandwidth ‘continuous or periodic’ data flow is
required.
Through an analysis of the hardware and software environment regarding the usual data
flow and performance requirements of most embedded systems, Philips has determined
the optimal size for the internal buffer as approximately 64 kB.
ISP1761
Hi-Speed USB OTG controller
7.2.2 Structure of the ISP1761 Host Controller memory
The 63 kB of internal memory consists of the PTD area and the payload area.
Both the PTD and payload memory zones are divided into three dedicated areas for each
main type of USB transfer: isochronous (ISO), interrupt (INT) and Acknowledged Transfer
List (ATL). As shown in Table 4, the PTD areas for ISO, INT and ATL are grouped at the
beginning of the memory, occupying the address range 0400h to 0FFFh, following the
address space of the registers. The payload or data area occupies the next memory
address range 1000h to FFFFh, meaning that 60 kB of memory are allocated for the
payload data.
A maximum of 32 PTD areas and their allocated payload areas can be defined for each
type of transfer. The structure of a PTD is similar for every transfer type and consists of
eight Double Words (DWs) that must be correctly programmed for a correct USB data
transfer. The reserved bits of a PTD must be set to logic 0. A detailed description of the
PTD structure can be found in Section 8.5.
The transfer size specified by the PTD determines the contiguous USB data transfer that
can be performed without any CPU intervention. The respective payload memory area
must be equal to the transfer size defined. The maximum transfer size is flexible and can
be optimized, depending on the number and nature of USB devices or PTDs defined and
their respective MaxPacketSize.
The CPU will program the DMA to transfer the necessary data in the payload memory.
The next CPU intervention will be required only when the current transfer is completed
and DMA programming is necessary to transfer the next data payload. This is normally
signaled by the IRQ that is generated by the ISP1761 on completing the current PTD,
meaning all the data in the payload area was sent on the USB bus. The external IRQ
signal is asserted according to the settings in the IRQ Mask OR or IRQ MASK AND
registers, see Section 8.4.
Product data sheetRev. 01 — 12 January 200517 of 158
Philips Semiconductors
The RAM is structured in blocks of PTDs and payloads so that while the USB is executing
on an active transfer-based PTD, the processor can simultaneously fill up another block
area in the RAM. A PTD and its payload can then be updated on-the-fly without stopping
or delaying any other USB transaction or corrupting the RAM data.
Some of the design features are:
• The address range of the internal RAM buffer is from 0400h to FFFFh.
• The internal memory contains isochronous, interrupt and asynchronous PTDs, and
respective defined payloads.
• All accesses to the internal memory are double-word aligned.
• Internal memory address range calculation:
Memory address = (CPU address − 0400h) (shift right >> 3). Base address is 0400h.
Table 4:Memory address
Memory mapCPU addressMemory address
ISO0400h to 07FFh0000h to 007Fh
INT0800h to 0BFFh0080h to 00FFh
ATL0C00h to 0FFFh0100h to 017Fh
Payload1000h to FFFFh0180h to 1FFFh
Product data sheetRev. 01 — 12 January 200518 of 158
Philips Semiconductors
ISP1761
Hi-Speed USB OTG controller
USB BUS
63 kbytes
USB HIGH-SPEED
HOST AND
TRANSACTION
TRANSLATOR
(FULL-SPEED
AND LOW-SPEED)
address
data (64 bits)
PTD1
PTD2
. .
PTD32
PTD1
PTD2
PTD32
PTD1
PTD2
. .. .
PTD32
PAYLOAD
. . . . . . . .
PAYLOAD
ARBITER
240 MB/s
ISOCHRONOUS
INTERRUPT
ASYNC
PAYLOAD
REGISTERS
MEMORY MAPPED
INPUT/OUTPUT,
MEMORY
MANAGEMENT
UNIT,
SLAVE DMA
CONTROLLER
AND
INTERRUPT
CONTROL
D[15:0]/D[31:0]
A[17:1]
CS_N
RD_N
WR_N
DC_IRQ
HC_IRQ
DC_DREQ
HC_DREQ
HC_DACK
MICRO-
PROCESSOR
DC_DACK
control signals
004aaa568
Fig 6. Memory segmentation and access block diagram
Both the CPU interface logic and the USB Host Controller require access to the internal
ISP1761 RAM at the same time. The internal arbiter controls these accesses to the
internal memory, organized internally on a 64-bit data bus width, allowing a maximum
bandwidth of 240 MB/s. This bandwidth avoids any bottleneck on accesses both from the
CPU interface and the internal USB Host Controller.
7.3 Accessing the ISP1761 Host Controller memory: PIO and DMA
The CPU interface of the ISP1761 can be configured for a 16-bit or 32-bit data bus width.
When the ISP1761 is configured for a 16-bit data bus width, the upper unused 16 data
lines must be pulled up to V
together to a single 10 kΩ pull-up resistor. The 16-bit or 32-bit data bus width
configuration is done by programming bit 8 of the HW Mode Control register. This will
determine the register and memory access types in both PIO and DMA modes to all
internal blocks: Host Controller, Peripheral Controller and OTG Controller. All accesses
must be word-aligned for 16-bit mode and double-word aligned for 32-bit mode, where
one word = 16 bits. When accessing the Host Controller registers in 16-bit mode, the
Product data sheetRev. 01 — 12 January 200519 of 158
. This can be achieved by connecting DATA[31:16] lines
CC(I/O)
Philips Semiconductors
register access must always be completed using two subsequent accesses. In the case of
a DMA transfer,the 16-bit or 32-bit data bus width configuration will determine the number
of bursts that will complete a certain transfer length.
In PIO mode, CS_N, WR_N and RD_N are used to access registers and memory. In DMA
mode, the data validation is performed by DACK—instead of CS_N—together with the
WR_N and RD_N signals. The DREQ signal will always be asserted as soon as the
ISP1761 DMA is enabled, as described in the following section.
7.3.1 PIO mode access—memory read cycle
The followingmethod has been implemented to reduce the read access timing in the case
of a memory read:
• The Memory register contains the starting address and the bank selection to read
from the memory. Before every new read cycle of the same or different banks, an
appropriate value is written to this register.
• Once a value is written to this register, the address is stored in the FIFO of that bank
and is then used to prefetch data for the memory read of that bank.
For every subsequent read operation executed at a contiguous address, the address
pointer corresponding to that bank is automatically incremented to prefetch the next
data to be sent to the CPU.
Memory read accesses for multiple banks can be interleaved. In this case, the FIFO
block handles the MUXing of appropriate data to the CPU.
• The address written to the Memory register is incremented and used to successively
prefetch data from the memory irrespective of the value on the address bus for each
bank, until a new value for a bank is written to the Memory register.
For example, consider the following sequence of operations:
– Write the starting (read) address 4000h and bank1 = 01 to the Memory register.
– Write the starting (read) address 4100h and bank2 = 10 to the Memory register.
ISP1761
Hi-Speed USB OTG controller
When RD_N is asserted for three cycles with A[17:16] = 01, the returned data
corresponds to addresses 4000h, 4004h and 4008h.
Remark: Once 4000h is written to the Memory register for bank1, the bank select
value determines the successive incremental addresses used to fetch the data.
That is, the fetching of data is independent of the address on A[15:0] lines.
When RD_N is asserted for four cycles with A[17:16] = 10, the returned data
corresponds to addresses 4100h, 4104h, 4108h and 410Ch.
Consequently, the RD_N assertion with A[17:16] = 01 will return data from 400Ch
because the bank1 read stopped there in the previous cycle. Also, RD_N
assertions with A[17:16] = 10 will now return data from 4110h because the bank2
read stopped there in the previous cycle.
7.3.2 PIO mode access—memory write cycle
The PIO memory write access is similar to a normal memory access. It is not necessary
to set the prefetching address before a write cycle to memory.
The ISP1761 internal write address will not be automatically incremented during
consecutive write accesses, unlike in a series of ISP1761 memory read cycles. The
memory write address must be incremented before every access.
Product data sheetRev. 01 — 12 January 200520 of 158
Philips Semiconductors
7.3.3 PIO mode access—register read cycle
The PIO register read access is similar to a general register access. It is not necessary to
set a prefetching address before a register read.
The ISP1761 register read address will not be automatically incremented during
consecutive read accesses, unlike in a series of ISP1761 memory read cycles. The
ISP1761 register read address must be correctly specified before every access.
7.3.4 PIO mode access—register write cycle
The PIO register write access is similar to a general register access. It is not necessary to
set a prefetching address before a register write.
The ISP1761 register write address will not be automatically incremented during
consecutive write accesses, unlike in a series of ISP1761 memory read cycles. The
ISP1761 register write address must be correctly specified before every access.
7.3.5 DMA—read and write operations
The internal ISP1761 Host Controller DMA is a slave DMA. The host system processor or
DMA must ensure the data transfer to or from the ISP1761 memory.
ISP1761
Hi-Speed USB OTG controller
The ISP1761 DMA supports a DMA burst length of 1, 4, 8 and 16 cycles for both the 16-bit
and 32-bit data bus width. DREQ will be asserted at the beginning of the first burst of a
DMA transfer and will be deasserted on the last cycle (RD_N or WR_N active pulse) of
that burst. It will be reasserted shortly after the DACK deassertion, as long as the DMA
transfer counter was not reached. DREQ will be deasserted on the last cycle when the
DMA transfer counter is reached and will not reasserted until the DMA reprogramming is
performed. Both the DREQ and DACK signals are programmable as active LOW or active
HIGH, according to the system requirements.
The DMA start address must be initialized in the respective register, and the subsequent
transfers will automatically increment the internal ISP1761 memory address. A register or
memory access or access to other system memory can occur in between DMA bursts,
whenever the bus is released because DACK is deasserted, without affecting the DMA
transfer counter or the current address.
Any memory area can be accessed by the system’sDMA at any starting address because
there are no predefined memory blocks. The DMA transfer must start on a word or Double
Word address, depending on whether the data bus width is set to 16-bit or 32-bit. DMA is
the most efficient method to initialize the payload area, to reduce the CPU usage and
overall system loading.
The ISP1761 does not implement EOT to signal the end of a DMA transfer. If
programmed, an interrupt may be generated by the ISP1761 at the end of the DMA
transfer.
The slave DMA of the ISP1761 will issue a DREQ to the DMA controller of the system to
indicate that it is programmed for transfer and data is ready. The system DMA controller
may also start a transfer without the need of the DREQ, if the ISP1761 memory is
available for the data transfer and the ISP1761 DMA programming is completed.
Product data sheetRev. 01 — 12 January 200521 of 158
Philips Semiconductors
It is also possible that the system’s DMA will perform a memory-to-memory type of
transfer between the system memory and the ISP1761 memory. The ISP1761 will be
accessed in the PIO mode. Consequently, memory read operations must be preceded by
initializing the Memory register (address 033Ch), as described in Section 7.3.1. No IRQ
will be generated by the ISP1761 on completing the DMA transfer but an internal
processor interrupt may be generated to signal that the DMA transfer is completed. This is
mainly useful in implementing the double-buffering scheme for data transfer to optimize
the USB bandwidth.
The ISP1761 DMA programming involves:
• Set the active levels of signals DREQ and DACK in the HW Mode Control register.
• The DMA Start Address register contains the first memory address at which the data
transfer will start. It must be word-aligned in the 16-bit data bus mode and double
word aligned in the 32-bit data bus mode.
• The programming of the HcDMAConfiguration register specifies:
– The type of transfer that will be performed: read or write.
– The burst size—expressed in bytes—is specified, regardless of the data bus width.
– The transfer length—expressed in number of bytes—defines the number of bursts.
– Enable ENABLE_DMA (bit 1) of the HcDMAConfigurationregister to determine the
ISP1761
Hi-Speed USB OTG controller
For the same burst size, a double number of cycles will be generated in the 16-bit
mode data bus width as compared to the 32-bit mode.
The DREQ will be deasserted and asserted to generate the next burst, as long as
there are bytes to be transferred. At the end of a transfer, the DREQ will be
deasserted and an IRQ can be generated if DMAEOTINT (bit 3 in the HcInterrupt
register) is set. The maximum DMA transfersize is equal to the maximum memory
size. The transfer size can be an odd or even number of bytes, as required. If the
transfer size is an odd number of bytes, the number of bytes transferred by the
system’s DMA is equal to the next multiple of two for the 16-bit data bus width or
four for the 32-bit data bus width. For a write operation, however, only the specified
odd number of bytes in the ISP1761 memory will be affected.
assertion of DREQ immediately after setting the bit.
After programming the preceding parameters, the system’sDMA may be enabled (waiting
for the DREQ to start the transfer or immediate transfer may be started).
The programming of the system’s DMA must match the ISP1761 DMA parameters
programmed above. Only one DMA transfer may take place at a time. A PIO mode data
transfer may occur simultaneously with a DMA data transfer, in the same or a different
memory area.
7.4 Interrupts
The ISP1761 will assert the IRQ according to the source or event in the HcInterrupt
register. The main steps to enable the IRQ assertion are:
1. Set GLOBAL_INTR_EN (bit 0) in the HW Mode Control register.
2. Define the IRQ active as level or edge in INTR_LEVEL (bit 1) of the HW Mode Control
register.
Product data sheetRev. 01 — 12 January 200522 of 158
Philips Semiconductors
3. Define the IRQ polarity as active LOW or active HIGH in INTR_POL (bit 2) of the HW
Mode Control register. These settings must match the IRQ settings of the host
processor.
By default, interrupt is level-triggered and active LOW.
4. Program the individual Interrupt Enable bits in the HcInterruptEnable register. The
software will need to clear the Interrupt status bits in the HcInterrupt register before
enabling individual interrupt enable bits.
Additional IRQ characteristics can be adjusted in the Edge Interrupt Count register, as
necessary, applicable only when IRQ is set to be edge-active(a pulse of a defined width is
generated every time the IRQ is active).
Bits 15 to 0 of the Edge Interrupt Count register define the IRQ pulse width. The maximum
pulse width that can be programmed is FFFFh, corresponding to a 1 ms pulse width. This
setting is necessary for certain processors that may require a different minimum IRQ
pulse width than the default value. The default IRQ pulse width set at power on is
approximately 500 ns.
Bits 31 to 24 of the Edge Interrupt Count register define the minimum interval between
two interrupts to avoid frequent interrupts to the CPU. The default value of 00h attributed
to these bits determines the normal IRQ generation, without any delay. When a delay is
programmed and the IRQ becomes active after the respective delay, several IRQ events
may have already occurred.
ISP1761
Hi-Speed USB OTG controller
All the interrupt events are represented by the respective bits allocated in the HcInterrupt
register. There is no mechanism to show the order or the moment occurrence of an
interrupt.
The asserted bits in the HcInterrupt register can be cleared by writing back the same
value to the HcInterrupt register. This means that writing logic 1 to each of the set bits will
reset that corresponding bits to the initial inactive state.
The IRQ generation rules that apply according to the preceding settings are:
• If an event of interrupt occurs but the respective bit in the Interrupt Enable register is
not set, then the respective HcInterrupt register bit is set but the interrupt signal is not
asserted.
An interrupt will be generated when interrupt is enabled and the respective bit in the
Interrupt Enable register is set.
• For a level trigger, an interrupt signal remains asserted until the processor clears the
HcInterrupt register by writing logic 1 to clear the HcInterrupt register bits that are set.
• If an interrupt is made edge-sensitive and is asserted, writing to clear the HcInterrupt
register will not haveany effect because the interrupt will be asserted for a prescribed
amount of clock cycles.
• The clock stopping mechanism does not affect the generation of an interrupt. This is
useful during the suspend and resume cycles, when an interrupt is generated to
signal a wake-up event.
The IRQ generation can also be conditioned by programming the IRQ Mask OR and
IRQ Mask AND registers. Setting some of the bits in these registers to logic 1 will
determine the IRQ generation only when the respective AND or OR conditions of
completing the respective PTDs is met.
Product data sheetRev. 01 — 12 January 200523 of 158
Philips Semiconductors
With the help of the IRQ Mask AND and IRQ Mask OR registers for each type of
transfer— ISO, INT and bulk—software can determine which PTDs get priority and an
interrupt will be generated when the AND or OR conditions are met. The PTDs that are
set will wait until the respective bits of the remaining PTDs are set and then all PTDs
generate an interrupt request to the CPU together.
The registers definition shows that the AND or OR conditions are applicable to the same
category of PTDs—ISO, INT and ATL.
When an IRQ is generated, the PTD Done Map registers and the respective V bits will
show which PTDs were completed.
The rules that apply to the IRQ Mask AND or IRQ Mask OR settings are:
• TheOR mask has a higher priority over the AND mask. An IRQ is generated if bit n of
done map is set and the corresponding bit n of the OR mask register is set.
• If the OR mask for any done bit is not set, then the AND mask comes into picture. An
IRQ is generated if all the corresponding done bits of the AND Mask register are set.
For example: If bits 2, 4 and 10 are set in the AND Mask register,an IRQ is generated
only if bits 2, 4, 10 of the done map are set.
• If using the IRQ interval setting for the bulk PTD, an interrupt will only occur at the
regular time interval as programmed in the ATL Done Timeout register. Even if an
interrupt eventoccurs before the timeout of the register,no IRQ will be generated until
the time is up.
ISP1761
Hi-Speed USB OTG controller
For an example on using the IRQ Mask AND or IRQ Mask OR registers, without the ATL
Done Timeout register, see Table 5.
The AND function: activate the IRQ only if PTDs 1, 2 and 4 are done.
The OR function: if any of the PTDs 7, 8 or 9 are done, an IRQ for each of the PTD will be
raised.
Table 5:Using the IRQ Mask AND or IRQ Mask OR registers
PTDAND registerOR registerTimePTD doneIRQ
1101ms1210- 1300- -4103 ms1active because of AND
500- -600- -7015 ms1active because of OR
8016 ms1active because of OR
9017 ms1active because of OR
7.5 Phase-Locked Loop (PLL) clock multiplier
The internal PLL requires a 12 MHz input, which can be a 12 MHz crystal or a 12 MHz
clock already existing in the system with a precision better than 50 ppm. This allows the
use of a low-cost 12 MHz crystal that also minimizes Electro-Magnetic Interference (EMI).
When an external crystal is used, make sure the CLKIN pin is connected to V
Product data sheetRev. 01 — 12 January 200524 of 158
Philips Semiconductors
The PLL block generates all the main internal clocks required for normal functionality of
various blocks: 30 MHz, 48 MHz and 60 MHz.
No external components are required for the PLL operation.
7.6 Power management
The ISP1761 implements a flexible power management scheme, allowing various power
saving stages.
The usual powering scheme implies programming EHCI registers and the internal
Hi-Speed USB (USB 2.0) hub in the same way it is done in the case of a PCI Hi-Speed
USB Host Controller with a Hi-Speed USB hub attached.
While the ISP1761 is set in suspend mode, the main internal clocks will be stopped to
ensure minimum power consumption. An internal LazyClock of 100 kHz ± 40 % will
continue running. This allows initiating a resume on one of the following events:
• External USB device connect or disconnect
• Assertion of the CS_N signal because of any access to the ISP1761
• Driving the HC_SUSPEND/WAKEUP_N pin to a LOW logical level will wake up the
Host Controller, and driving the DC_SUSPEND/WAKEUP_N pin to a LOW logical
level will wake up the Peripheral Controller
ISP1761
Hi-Speed USB OTG controller
The HC_SUSPEND/WAKEUP_N and DC_SUSPEND/WAKEUP_N pins are bidirectional.
These pins should be connected to the GPIO pins of a processor.
The awake state can be verified by reading the LOW level of this pin. If the level is HIGH,
it means that the ISP1761 is in the suspend state.
HC_SUSPEND/WAKEUP_N and DC_SUSPEND/WAKEUP_N require pull-up resistors
because in the ISP1761 suspended state these pins become three-state and can be
pulled down, driving them externally by switching the processor’sGPIO lines to the output
mode to generate the ISP1761 wake-up.
The HC_SUSPEND/WAKEUP_N and DC_SUSPEND/WAKEUP_N pins are three-state
output and also input to the internal wake-up logic.
When in suspend mode, the ISP1761 internal wake-up circuitry will sense the status of
the HC_SUSPEND/WAKEUP_N and DC_SUSPEND/WAKEUP_N pins:
• Ifthe pins remain pulled-up, no wake-upwill be generated because a HIGH is sensed
by the internal wake-up circuit.
• If the pins are externally pulled LOW (for example, by the GPIO lines or just a test by
jumpers), the input to the wake-up circuitry becomes LOW and the wake-up is
internally initiated.
The resume state has a clock-off count timer defined by bits 31 to 16 of the Power Down
Control register. The default value of this timer is 10 ms, meaning that the resume state
will be maintained for 10 ms. If during this time, the RUN/STOP bit in the USBCMD
register is set to logic 1, the Host Controller will go into a permanent resume—the normal
functional state. If the RUN/STOPbit is not set during the time determined by the clock-off
Product data sheetRev. 01 — 12 January 200525 of 158
Philips Semiconductors
count, the ISP1761 will switch back to suspend mode after the specified time. The
maximum delay that can be programmed in the clock-off count field is approximately
500 ms.
Additionally, the Power Down Control register allows the ISP1761 internal blocks to
disable for lower power consumption as defined in Table 8.
ISP1761
Hi-Speed USB OTG controller
The lowest suspend current (I
CC(susp)
) that can be achieved is approximately 150 µA at
room temperature. The suspend current will increase with the increase in temperature,
with approximately 300 µAat40°C and up to a typical 1 mA at 85 °C. The system is not in
suspend mode when its temperature increases above 40 °C. Therefore, even a 1 mA
current consumption by the ISP1761 in suspend mode can be considered negligible. In
normal environmental conditions, when the system is in suspend mode, the maximum
ISP1761 temperature is approximately 40 °C, determined by the ambient temperature.
Therefore, the ISP1761 maximum suspend current will be below 300 µA. An alternative
solution to achieve a very low suspend current is to completely switch off the V
CC(5V0)
power input by using an external PMOS transistor, controlled by one of the GPIO pins of
the processor. This is possible because the ISP1761 can be used in the hybrid mode,
which allows only the V
powered on to avoid loading of the system bus.
CC(I/O)
The time from wake-up to suspend will be approximately 100 ms when the ISP1761
power is always on.
It is necessary to wait for the CLK_RDY interrupt assertion before programming the
ISP1761 because internal clocks are stopped during deep sleep suspend and restarted
after the first wake-up event. The occurrence of the CLK_RDY interrupt means that the
internal clocks are running and the normal functionality is achieved.
It is estimated that the CLK_RDY interrupt will be generated less than 100 µs after the
wake-up event, if the power to the ISP1761 was on during suspend.
If the ISP1761 is used in the hybrid mode and V
CC(5V0)
is off during suspend, a 2 ms reset
pulse is required when the power is switched back to on, before starting to program the
resume state. This will ensure that the internal clocks are running and all logics reach a
stable initial state.
7.7 Power supply
Figure 7 shows the ISP1761 power supply connection.
Product data sheetRev. 01 — 12 January 200528 of 158
V
CC(5V0)
Status
Philips Semiconductors
7.8 Overcurrent detection
The ISP1761 can implement a digital or analog overcurrent detection scheme. Bit 15 of
the HW Mode Control register can be programmed to select the analog or digital
overcurrent detection. An analog overcurrent detection circuit is integrated on-chip. The
main features of this circuit are self reporting, automatic resetting, low-trip time and low
cost. This circuit offers an easy solution at no extra hardware cost on the board. The port
power will be automatically disabled by the ISP1761 on an overcurrent event occurrence,
by deasserting the PSWn_N signal without any software intervention.
When using the integrated analog overcurrent detection, the range of the overcurrent
detection voltage for the ISP1761 is 45 mV to 90 mV. Calculation of the external
components should be based on the 45 mV value, with the actual overcurrent detection
threshold usually positioned in the middle of the interval.
ISP1761
Hi-Speed USB OTG controller
For an overcurrent limit of 500 mA per port, a PMOS transistor with R
approximately 100 mΩ is required. If a PMOS transistor with a lower R
DSON
DSON
of
is used, the
analog overcurrent detection can be adjusted using a series resistor; see Figure 10.
∆V
Fig 10. Adjusting analog overcurrent detection limit (optional)
= ∆V
PMOS
∆V
I
OC(nom)
= voltage drop on PMOS
PMOS
=1µA.
(1) Rtd is optional.
OC(TRIP)
= ∆V
5 V
TRIP(intrinsic)
REF5V
− (I
OC(nom)
ISP1761
× Rtd), where:
PSWn_N
I
OC
(1)
R
td
OCn_N
004aaa662
The digital overcurrent scheme requires using an external power switch with integrated
overcurrent detection, such as: LM3526, MIC2526 (2 ports) or LM3544 (4 ports). These
devices are controlled by PSWn_N signals corresponding to each port. In the case of
overcurrent occurrence, these devices will assert OCn_N signals. On OCn_N assertion,
the ISP1761 cuts off the port power by deasserting PSWn_N. The external integrated
power switch will also automatically cut-off the port power in the case of an overcurrent
event, by implementing a thermal shutdown. An internal delay filter of 1 ms to 3 ms will
prevent false overcurrent reporting because of in-rush currents when plugging a USB
device.
Product data sheetRev. 01 — 12 January 200529 of 158
Philips Semiconductors
7.9 Power-On Reset (POR)
ISP1761
Hi-Speed USB OTG controller
When V
(t
) will be typically 800 ns. The pulse is started when V
PORP
is directly connected to the RESET_N pin, the internal POR pulse width
CC(5V0)
rises above V
CC(5V0)
TRIP
(1.2 V).
To give a better viewof the functionality, Figure 11 shows a possible curve of V
CC(5V0)
with
dips at t2–t3 and t4–t5. If the dip at t4–t5 is too short (that is, < 11 µs), the internal POR
pulse will not react and will remain LOW. The internal POR starts with a 1 at t0. At t1, the
detector will see the passing of the trip level and a delay element will add another t
PORP
before it drops to 0.
The internal POR pulse will be generated whenever V
drops below V
CC(5V0)
TRIP
for more
than 11 µs.
V
CC(5V0)
V
TRIP
t0t1
t
PORP
(1) PORP = Power-On Reset Pulse.
Fig 11. Internal power-on reset timing
t2
t3
t
PORP
t4
t5
(1)
004aaa584
PORP
The recommended RESET input pulse length at power-on should be at least 2 ms to
ensure that internal clocks are stable.
The RESET_N pin can be either connected to V
(using the internal POR circuit) or
CC(I/O)
externally controlled (by the microcontroller, ASIC, and so on). Figure 12 shows the
availability of the clock with respect to the external POR.
RESET_N
EXTERNAL CLOCK
004aaa583
A
Stable external clock is available at A.
Fig 12. Clock with respect to the external power-on reset