PIC12C672T-10/SM Microchip Technology, PIC12C672T-10/SM Datasheet - Page 157

no-image

PIC12C672T-10/SM

Manufacturer Part Number
PIC12C672T-10/SM
Description
IC MCU OTP 2KX14 A/D 8-SOIJ
Manufacturer
Microchip Technology
Series
PIC® 12Cr
Datasheets

Specifications of PIC12C672T-10/SM

Core Processor
PIC
Core Size
8-Bit
Speed
10MHz
Peripherals
POR, WDT
Number Of I /o
5
Program Memory Size
3.5KB (2K x 14)
Program Memory Type
OTP
Ram Size
128 x 8
Voltage - Supply (vcc/vdd)
3 V ~ 5.5 V
Data Converters
A/D 4x8b
Oscillator Type
Internal
Operating Temperature
0°C ~ 70°C
Package / Case
8-SOIC (5.3mm Width), 8-SOP, 8-SOEIAJ
For Use With
XLT08SO-1 - SOCKET TRANSITION 8SOIC 150/208AC164312 - MODULE SKT FOR PM3 16SOIC309-1048 - ADAPTER 8-SOIC TO 8-DIP309-1047 - ADAPTER 8-SOIC TO 8-DIP
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Eeprom Size
-
Connectivity
-
9.12
I
2
C is a trademark of Philips Corporation.
1997 Microchip Technology Inc.
Design Tips
Question 1:
Answer 1:
1.
2.
3.
4.
5.
6.
Question 2:
Answer 2:
1.
2.
3.
Question 3:
Answer 3:
PORTB accepts TTL input levels (on most parts), so when you have an input of say 3V (with
V
Schmitt Trigger, which requires a higher voltage (than TTL input) before the high input is regis-
tered. So it is possible to read a one, but not get the interrupt. The interrupt was given a Schmitt
Trigger input with hysteresis to minimize noise problems. It is one thing to have short noise spikes
on a pin that is a data input that can potentially cause bad data, but quite another to permit noise
to cause an interrupt, hence the difference.
DD
Have the TRIS registers been initialized properly? These registers can be written to
directly in the second bank (Bank1). In most cases the user is not switching to Bank1
(BSF STATUS,RP0) before writing zeros to the TRIS register.
If you are setting up the TRIS registers properly in Bank1 (RP0 = 1), you may not be
returning to Bank0 before writing to the ports (BCF STATUS,RP0).
Is there a peripheral multiplexed onto those pins that are enabled?
Is the Watchdog Timer enabled (done at programming)? If it is enabled, is it being cleared
properly with a CLRWDT instruction at least every 9 ms (or more if prescaled)?
Are you using the correct instructions to write to the port? More than one person has used
the MOVF command when they should have used MOVWF.
For parts with interrupts, are the interrupts disabled? If not, try disabling them to verify they
are not interfering.
When a port is read, it is always the pin that is read, regardless of its being set to input or
output. So if a pin is set to an input, you will read the value on the pin regardless of the
register value.
If a pin is set to output, say it has a one in the data latch; if it is shorted to ground you will
still read a zero on the pin. This is very useful for building fault tolerant systems, or han-
dling I
If the pin is low and you are not driving it, some other device is trying to take the bus).
Mid-Range MCU devices all have at least one open drain (or open collector) pin. These
pins can only drive a zero or tristate. For most Mid-Range devices this is pin RA4. Open
drain pins must have a pull-up resistor to have a high state. This pin is useful for driving
odd voltage loads. The pull-up can be connected to a voltage (typically less than V
which becomes the high state.
= 5V), you will read a one. However the buffer to the interrupt structure from pin RB0 is
2
C™ bus conflicts. (The I
Code will not toggle any I/O ports, but the oscillator is running. What can I
be doing wrong?
When my program reads a port, I get a different value than what I put in the
port register. What can cause this?
I have a PIC16CXXX with pin RB0 configured as an interrupt input, but am
not getting interrupted. When I change my routine to poll the pin, it reads
the high input and operates fine. What is the problem?
2
C bus is only driven low, and the pin is tristated for a one.
Section 9. I/O Ports
DS31009A-page 9-17
DD
)
9

Related parts for PIC12C672T-10/SM