
ADSP-2192M
–20–
REV. 0
location specified by the USB REGIO (write) com-
mand. The driver must wait for each command to finish 
before sending a new code download address.
5. If there is more code to be downloaded at a different 
starting address, the driver begins the entire sequence 
again, using steps 1–4.
General Comments:
 DSP code download is only available after the ADSP-
2192M has re-enumerated using the MCU soft firmware. 
The DSP code download command will not be available 
in the MCU boot ROM for the default CONFIG device.
 After setting the download addresses using the USB 
REGIO (write) command, code download can be 
initiated for any length using normal BULK traffic.
Example Initialization Process
After attachment to the USB bus, the ADSP-2192M identifies 
itself as a CONFIG device with one endpoint, which refers to its 
one control, EP0. This will cause a generic user-defined 
CONFIG driver to load.
The CONFIG driver downloads appropriate MCU code to setup 
the MCU, which includes the specific device descriptors, inter-
faces, and endpoints.
The external Serial EEPROM is read by the DSP and transferred 
to the MCU. The CONFIG driver through the control EP0 pipe 
generates a register read to determine the configuration value. 
Based on this configuration code, the host downloads the proper 
USB configurations to the MCU.
Finally, the driver writes the USB Control Register, causing the 
device to disconnect and then reconnect so the new downloaded 
configuration is enumerated by the system. Upon enumeration, 
each interface loads the appropriate device driver.
An example of this procedure is configuring the ADSP-2192M 
to be an ADSL modem and a FAX modem.
1. ADSP-2192M device is attached to USB bus. System 
enumerates the CONFIG device in the ADSP-2192M 
first. A user-defined driver is loaded.
2. The user-defined driver reads the device descriptor, 
which identifies the card as an ADSL/FAX modem.
3. The user-defined driver downloads USB configuration 
and MCU code to the MCU for interface 1, which is the 
ADSL modem.
4. Configuration specifies which endpoints are used (and 
their definitions). A typical configuration for ADSL 
appears in 
Table 21
.
5. The user-defined driver downloads USB configuration 
for interface 2, which is the FAX modem. Configuration 
specifies which endpoints are used and their definitions. 
A typical configuration for FAX appears in
 Table 22
.
6. The user-defined driver now writes the USB Config 
Register, which causes the device to disconnect and 
reconnect. The system enumerates all interfaces and 
loads the appropriate drivers.
7. ADSL driver downloads code to DSP for ADSL service. 
DSP also initializes the USB Endpoint Description Reg-
ister, DSP Memory Buffer Base Addr Register, DSP 
Memory Buffer Size Register, DSP Memory Buffer RD 
Pointer Offset, and DSP Memory Buffer WR Pointer 
Offset registers for each endpoint. Endpoints can only be 
used when these registers have been written. ADSL ser-
vice is now available.
8. FAX driver downloads code to DSP for FAX service. 
DSP also initializes the USB Endpoint Description Reg-
ister, DSP Memory Buffer Base Addr Register, DSP 
Memory Buffer Size Register, DSP Memory Buffer RD 
Pointer Offset, and DSP Memory Buffer WR Pointer 
Offset registers for each endpoint. Endpoints can only be 
used when the above registers have been written. FAX 
service is now available.
USB Data Pipe Operations
All data transactions involving the generic endpoints (4–11) 
stream data into and out of the DSP memory via a dedicated USB 
hardware block. This hardware block manages all USB transac-
tions for these endpoints and serves as a conduit for the data 
moving to and from the DSP memory FIFOs. There is no MCU 
involvement in the management of these data pipes.
The USB data FIFOs for these generic endpoints exist in DSP 
memory space. The following memory buffer registers exist for 
each endpoint:
 Base Address (18 bits)
 Size (16 bits) – Offset from the Base Address
 Read Offset (16 bits) – Offset from the Base Address
 Write Offset (16 bits) – Offset from the Base Address
As part of initialization, the DSP code sets up these FIFOs before 
USB data transactions for these endpoints can begin. When 
setting up these USB FIFOs, Base+Size/Read Offset/Write 
Offset cannot be greater than 18 bits. DSP memory addresses 
cannot exceed 18 bits (0x000000–0x03FFFF).
Table 21. Typical Configuration for ADSL Modem 
End 
Point
Type
Max 
Packet
Comment
1
4
5
6
BULK OUT
BULK IN
BULK OUT
INT IN
64
64
64
16
DSP CODE
ADSL RCV
ADSL XMT
STATUS
Table 22. Typical Configuration for FAX Modem 
End 
Point
2
7
8
9
Type
BULK OUT
BULK IN
BULK OUT
INT IN
Max 
Packet
64
64
64
16
Comment
DSP CODE
FAX RCV
FAX XMT
STATUS