PIC16C745/JW Microchip Technology, PIC16C745/JW Datasheet - Page 72
![IC MCU EPROM8KX14 USB A/D 28CDIP](/photos/7/29/72984/150-28-cdip_sml.jpg)
PIC16C745/JW
Manufacturer Part Number
PIC16C745/JW
Description
IC MCU EPROM8KX14 USB A/D 28CDIP
Manufacturer
Microchip Technology
Series
PIC® 16Cr
Datasheets
1.PIC16F616T-ISL.pdf
(8 pages)
2.PIC16C745-ISP.pdf
(165 pages)
3.PIC16C745-ISP.pdf
(6 pages)
4.PIC16C745-ISP.pdf
(6 pages)
Specifications of PIC16C745/JW
Core Processor
PIC
Core Size
8-Bit
Speed
24MHz
Connectivity
SCI, UART/USART, USB
Peripherals
Brown-out Detect/Reset, POR, PWM, WDT
Number Of I /o
22
Program Memory Size
14KB (8K x 14)
Program Memory Type
EPROM, UV
Ram Size
256 x 8
Voltage - Supply (vcc/vdd)
4.35 V ~ 5.25 V
Data Converters
A/D 5x8b
Oscillator Type
External
Operating Temperature
0°C ~ 70°C
Package / Case
28-CDIP (0.300", 7.62mm) Window
Lead Free Status / RoHS Status
Contains lead / RoHS non-compliant
Eeprom Size
-
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
PIC16C745/JW
Manufacturer:
MICROCHIP
Quantity:
51
Part Number:
PIC16C745/JW
Manufacturer:
MICROCHIP/微芯
Quantity:
20 000
PIC16C745/765
10.9
10.9.1
Microchip provides a layer of software that handles the
lowest level interface so your application won’t have
to. This provides a simple Put/Get interface for com-
munication. Most of the USB processing takes place in
the background through the Interrupt Service Routine.
From the application viewpoint, the enumeration pro-
cess and data communication takes place without fur-
ther interaction. However, substantial setup is required
in the form of generating appropriate descriptors.
FIGURE 10-3: USB SOFTWARE INTERFACE
10.9.2
The latest version of the USB interface software
is
http://www.microchip.com/).
The interface to the application is packaged in 3 func-
tions: InitUSB, PutUSB and GetUSB. InitUSB initial-
izes the USB peripheral, allowing the host to
enumerate the device. Then, for normal data commu-
nications, function PutUSB sends data to the host and
GetUSB receives data from the host.
However, there's a fair amount of setup work that must
be completed. USB depends heavily on the descrip-
tors. These are the software parameters that are com-
municated to the host to let it know what the device is,
and how to communicate with it. See USB V1.1 spec
section 9.5 for more details.
Also, code must be added to give meaning to the
SetConfiguration command. The Chapter 9 com-
mands call SetConfiguration when it receives the
command. Both the descriptors and SetConfigura-
tion are in DESCRIPT.ASM.
InitUSB enables the USB interrupt so enumeration
can begin. The actual enumeration process occurs in
the background, driven by the host and the Interrupt
Service Routine. Macro ConfiguredUSB waits until
the device is in the CONFIGURED state. The time
required to enumerate is completely dependent on the
host and bus loading.
DS41124C-page 72
available
USB Firmware Users Guide
INTRODUCING THE USB SOFTWARE
INTERFACE
INTEGRATING USB INTO YOUR
APPLICATION
USB
Put
Main Application
USB Peripheral
on
USB
Get
Microchip's
USB
Init
website
USB
(see
Preliminary
10.9.3
10.9.3.1
Most of the USB processing occurs via the interrupt and
thus is invisible to application. However, it still con-
sumes processor resources. These include ROM, RAM,
Common RAM and Stack Levels. This section attempts
to quantify the impact on each of these resources, and
shows ways to avoid conflicts.
If you write your own Interrupt Service Routine: W,
Status, FSR and PCLATH may be corrupted by servic-
ing the USB interrupt and must be saved.
USB_MAIN.ASM provides a skeleton ISR which does
this for you, and includes tests for each of the possible
interrupt bits. This provides a good starting point if you
haven't already written your own.
10.9.3.2
The hardware stack on the PICmicro
levels deep. So the worst case call between the applica-
tion and ISR can only be 8 levels. The enumeration pro-
cess requires 4 levels, so it’s best if the main application
holds off on any processing until enumeration is com-
plete. ConfiguredUSB is a macro that waits until the
enumeration process is complete for exactly this pur-
pose, by testing the lower two bits of USWSTAT
(0x197).
10.9.3.3
The code required to support the USB interrupt,
including the chapter 9 interface calls, but not includ-
ing the descriptor tables, is about 1kW. The descriptor
and string descriptor tables can each take up to an
additional 256W. The location of these parts is not
restricted.
10.9.3.4
With the exception of Common RAM discussed below,
servicing the USB interrupt requires ~40 bytes of
RAM in Bank 2. That leaves all the General Purpose
RAM in banks zero and one, plus half of bank two,
available for your application to use.
10.9.3.5
The PIC16C745/765 has 16 bytes of common RAM.
These are the last 16 addresses in each bank and all
refer to the same 16 bytes of memory, without regard
to which register bank is currently addressed by the
RP0, RP1 and IRP bits.
These are particularly useful when responding to inter-
rupts. When an interrupt occurs, the ISR doesn’t imme-
diately know which bank is addressed. With devices
that don’t support common RAM, the W register must
be provided for in each bank. The 16C745/765 can
save the appropriate registers in Common RAM and not
have to waste a byte in each bank for W register.
INTERRUPT STRUCTURE CONCERNS
Processor Resources
Stack Levels
ROM
RAM
Common RAM Usage
2000 Microchip Technology Inc.
®
MCU is only 8