Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
-
28-Pin PDIP, SOIC
MCLRNPP/REJ-
AAO/ANO-
RA1/AN1-
o
'
2
3
- ,.
",.
- AB7/KBl3/PGO
- AB61KBl21PGC
- RB51K811/PGM
AA2/AN2NREF·ICVREF - •5 "'o
25 - AB4/AN11/KBIO
AA31AN3NREF+ -
RA41T0CKI/C10UTIRCV - 6 "' "'
� "
23
- AB31AN9.'CCP2'11NPO
- RB2/AN8/INT2NMO
--
AA51AN4/SSIHLVDIN/C20UT- 7 ��
NN
22 - AB1/AN10/INT1/SCK/SCL
==
OSC1/CLKI-
vss-
'
9
ro
00
e:: e:: "
20
- ABOIAN12JINTO/FLTO/SOIISOA
-voo
-vss
OSC21CLKOIRA6 -
ACotT10SO/T13CKI -
"ta "" - AC7/RXIOT/SOO
RC1fT10SllCCP2'1lJUOE -
RC2/CCP1 - ta "
te
- AC61TXICK
- RCSID+NP
v=-
" " - AC4/DNM
40-Pin PDIP
MCLRNPP/RE3 ______.. (
AAO/ANO -[ 2
o
'
<:» ... p ------- R87/K8131PGD
39 J - AB6/KB12/PGC
RA1/AN1 -[ 3 38 - R85/KBIIIPGM
RA2/AN2NREF·/CVAEF - [
•5 37 - RB4/AN11/KBIO/CSSPP
RA31AN3111FIEF+ ---:
RA-4/TOCKI/ClOUT/RCV - ¡ 6
36
,.. p -
35
J- RB3/AN9/CCP2'1)NPQ
RB2/AN8/INT2NMO
AA5/AN4/SSIHLVOIN/C20UT -( 7 - R811AN10/INT1/SCK.ISCL
-e
:! " ==--
REOIAN5/CK1SPP
' "'o 33 - ABOIAN12/INTO/FLTOISOI/SDA
AE1/Aflt6/CK2SPP 9
to "':¡��"'� 32 -voo
RE2/AN7/0ESPP -
voo-
vss-c ta
"
JO
J-vss
J - R07/SPP7/P10
00 29 - RD6JSPP6/P1C
a: a:
�¡ ""rs
OSC1/CLKI - ( 28 - ROS/SPPSIP16
OSC2/CLKOIRA6 27 - R04/SPP4
RCOIT10SO/T13CKI - 26 ] - RC71RXIOTISDO
RC1/T10SVCCf>2C')llJOE -[ te 25 ] - RC61TX/CK
vose -[ "
RC21CCP1/P1A - (
" - RCSIO+NP
�¡ ts"
23 - RC4.ID-NM
ROO/SPPO 22 .- A031SPP3
R01/SPP1 - 20
" P- RD2/SPP2
1
Documento creado por Slalen para Electronics Strange World
44-Pin TQFP
RC7/RXIOT/SOO - - NC/ICRSf<21f1CVpp(2)
RD4/SPP4 - - RCCVT10SOIT13CKI
RDSISPP5'P 1 B - - OSC,,CU<"""
RD61SPP6/P1C
RD71SPP71P1D
-
- PIC18F4455 _,"
- OSC1/CUCI
-,oo
RBO/AN12/INTM'LTO/SDI/SDA
'"-
vce -
-
PIC18F4550 -
-
RE2/AN7/0ESPP
AE1/AN&'CK2SPP
AB1/AN1MNT1/SCKISCL - - REG'AN�lSPP
RB2/AN8/INT2NMO - - FV&'NMISSIHLVDIN/C20UT
RB31AN9JCCP:zl'fNPO - - AM/TOCKI/CIOUT/RCV
;��;�í!!!l!::.;i;i¡q�
.
RC7/RXIOTISOO - ' • 33 - OSC2/CUCOIRA6
RD41SPP4 -
_,"
.. - OSC1/CUCI
"2928 _,"
RDSl'SPP5'P 1 B - 2 "
RD61SPP6/P1C -
a "
R07/SPP7/P10 - s PIC18F4455 - veo
'"-
voe -
6
8r
PIC18F4550
"
,.
- vce
RE21AN7!0ESPP
RE 1/AN61CK2SPP
veo - es REOIAN5/QS1SPP
RBO/AN12/INTOiflTO'SOI/SDA - 9
RB1/AN1MNT1/$CK/$CL -
RB2/AN8/INT2/VMO - "
��!.���'.!?��;;;�23
11
" RA5'AN4/SSM..VDINIC20UT
RA4/TOCKI/C10UTIRCV
2
Datasheet de la familia PIC18F2455/2550/4455/4550
3
Documento creado por Slalen para Electronics Strange World
---
"
' '
r-r-ru.Lsa ""'""'
RA1/AN1
RA2JAN2NREf·/CVAEF
R.o\:vAN3/VREF•
RMITOCKLIC 1 OUTIRCV
RASl��N,C20.JT
OSC2JCU<OIRA6
RBO'AN121M1l'1'1.TO'SelWSOA.
RB 1/AN1l)'INT11SCKJSCl
R821AN&INT2NMO
RWAN9o'CCl'al1fNPO
� e� }---------+¡ �
!�::::�:::,["""�-
AB41AN11/KBIO
R65r1<611/PGM
ln11ruclion Bu• <18> .,.,...,...., AB&'l(Bl2/PGC
RB7A<Bl:wGD
"
,_,
lnstruetion Sla1a Machlne
Control Slgn&II
"""'"
RCt'VT10SOIT13CKI
.......... ,c,,c,:,,
RC1/T10SlfCCP'i')llJOE
---·
cecre 1n1e,nal
""'' """°""'
Osc,11.a1or
.....
511111-up Tome
""""""'
--·
INTRC
Olal!a1or RC7/RX/OT/SDO
T10$1
T10SO w, ....
- .._
�·)
.""'""'
Fai-Sa!e
vce.vss Cloclc t.lonltor
use V011age
Aegulalor
Timer1 Tirner3
Nole 1: RE311 molbple•G<I Wllh MCLR and 19 onty available w11et1 � MCLR Aellell •• OISabltd.
2: ose 1/CLKI arid OSC2/CU<O llfl only avallable In Hled oecolator modes and whlln lhese plns are no1 b&,ng used as dlg'181 VO. Re!«
IO Sec!lon 2.0 "Oaclllator Conllgu .. 1ion1" to, 8ddltional int«mat,on
3. RB3 il 1he aneroate pin lor CCP2 m.,11ip4e,1r,g.
4
Datasheet de la familia PIC18F2455/2550/4455/4550
." '-
Dalll Bus<8>
Table Poinlet"21>
'"''"',-.
1
• ' º''"*" ,-.
,-. "'"""
RA11AN1
•
inc:.'dec IDgic
.._,
AA2/ANVVAU./CV,it:F
,-. RA.31AN3NAEF•
,-.
" ,.
--
,CU.TU ,CU,T>o RA4/TOCl<I/C10UT/RCV
,-.
••
!
I PCU PCH I PCL """"'"""'
T,, � - RA51��
OSC2JCU<OIRA6
----
Program Coun1er
-,
'•
/ Dala Aoüess.<12>
eoere
31 Level Staclc
' t,, t '.
ese•
R80'AN12!HTOR.lll'SOIISOA
Address LalCh ,-. RB 1/ANIOl1NT1/SCl</SCL
,-.
""' �
•
STl<PTR RB2JAN8/INT2NMO
(2�1<byles) FSR1 ,-. RB3JANWCCp-¿.•1NPO
,-.
� "" "
RB41AN111KBIOICSSPP
"'"""" ,-.
· -- *
RB511<Bl1/PGM
,-. RB6/!<;Bl2/PGC
--•
• RB71KBl31PGD
...... '°""�
-
lnstrucllon Bus c16> 1 "'""" RCOIT10SO'TIX:1<1
,-. RC1fT1�•>,voe
,-
•
RC21CCP1/P1A
1
" ,-
,-. "''"'"""'
,e"'"""'
li'
RCS/0•/VP
,-.
lns1ruc1ion Slaie Mao;:t,lne ,-. RC7/RXIDT/SOO
...... """"
,-...
8�8Mu
·,-�-
voc.vss a
0---+ Oscila!Of lo[,
;;i . ....
,-.
RDOISPPO"RD4/SPP4
-·-
osc1111
-=· ""'
- '
AD5/SPP5/P18
oses" ,- AD61SPP6/P1C
MRC
�
[)do"'
,-
••
SUlr1·up Tlmeo AD7/SPP7/P1D
Oteil,,lo,
'
T10SI
-
-
¡�g.¡
Osc:ila!Of \ AlÚ<e> I
ICPGd3) �
w, ....
&-
t•
'°"",-
ICPG!fll �
AEQIAN!>C1<1SPP
1CPQAT5'3)[8)-t,
I
Fa.Sar. AE11AN61C1<2SPP
Clock MonlOr ,- AE2/AN71QESPP
ICRS'f0) 8)-t, BandGap
...
Reterence �E,l('l
t.i;i..Rll) 0---+ use Voltage I
A�alOI
"""
HLVD
1,
º'"
"""'" TI�· I Tme<1 I Timer2 r...o
. •
I""""""' ECCPl cesa MSS, I EUSART 1.�1 usa
Nole 1: RE3 ia múliple•ed wlth MCLR and is only available when lhe MCLR Resets a,e disabled.
ª"'
"a: OSC1/CLl<I and OSC:VCLl<O are only availilble"' se!eci 0$0lal0f mode5 and when lhese pons
to Secllon 2.0 "Osdllator Con1!9u .. 1lon1" to, ad<lrtK)nal ,nformatJDn
These pins are only available on ••·pin
nol t>e1ng us«I asdogllal 1/(). Atifer
TOFP packa¡¡es under cer1air1 cond,tioos Aefer ID Seclion 25.9 ""Spedal ICPORT Features
(Deslgnated Package• Only)" lor addlbOnal irdormabon
5
Documento creado por Slalen para Electronics Strange World
Pin
Number Pin Buffer
Pin Name Oescrlptlon
POIP, Type Type
SOIC
6
Datasheet de la familia PIC18F2455/2550/4455/4550
Pla
Number Pin Buffer
Pin Name Description
PDIP, Type Type
SOIC
POATB is a eccecucner 110 port. PORTB can be software
programmed lor interna! weak pull·ups on all lnputs.
ABOJAN12/INTOJFLTO/ 21
$01/SDA
ABO l/0 TIL D191tal 1/0.
AN12 1 Analog Analog input 12.
INTO 1 ST Externa! ,nterrupt O.
FLTO 1 ST PWM Fault input (CCP1 module).
SDI 1 ST SPI data in.
SDA vo ST t2C' .. data 110.
AB 1/AN 1 OIINT1/SCK/ 22
SCL
RB1 l/0 TIL Digital 1/0.
AN10 1 Analog Analog input 1 O
INT1 1 ST E:,:lernal inlerrupl 1.
SCK vo ST Synchrooous serial clock 1nput/output for SPI mode.
SCL vo ST Syochrooous serial clock input/output for 12C moda.
AB2JAN8/INT2NMO 23
RB2 vo TIL Digital 1/0.
AN8 1 Analog Analog input 8.
INT2 1 ST Extemal interrupt 2.
VMO o - Externa! USB transceiver VMO output.
RB3/AN9/CCP2NP0 24
RB3 vo TIL Digital 110.
AN9 1 Analog Analog input 9.
cceeoi vo ST Capture 2 input/Compare 2 output/PWM 2 output.
VPO o - E:w:temal USB «anscewer VPO output.
AB4/AN11/KBIO 25
RB4 vo TIL Digital 1/0.
AN11 1 Analog Analog input 11.
KBIO 1 TIL lnterrupt·oo·change p,n.
ABS/KBI 1/PGM 26
RBS vo TIL Digital 1/0.
KBl1 1 TIL lnterrupt-on-change pm.
PGM vo ST Low-Voltage ICSP'" Programming enable pin.
AB6/KBl2/PGC 27
RB6 vo TIL Digital 1/0.
KBl2 1 TTL lnterrupt-oo-change p,n.
PGC vo ST ln·Circuit Debugger and ICSP programm1ng clock pin
AB7/KBl3/PGD 28
RB7 vo TIL Digital 1/0.
KBl3 1 TIL tnterrupt-on-change p,n.
PGD vo ST ln·Circuit Debugger and ICSP programming data pin.
7
Documento creado por Slalen para Electronics Strange World
Pla
Number Pla Buffer
Pin Name Descrlptlon
PDIP, Type Type
SOIC
PORTC is a bidirectional VO port.
RCO/T10SOIT13CKI 11
RCO 110 ST Digital UO.
rroso o - Timer1 osc,llator outpul.
T13CKI 1 ST Timer1mmer3 externa! clock input.
RC1fT10SI/CCP2/UOE 12
RC1 110 ST Digital UO.
T10SI 1 CMOS Timerl oscdlator input.
ccP2<2l 110 ST Capture 2 input/Compare 2 outputlPWM 2 output.
UOE - - Extemal USB transceiver OE output.
RC2/CCPI 13
RC2 110 ST Digital UO.
CCP1 110 ST Capture 1 input/Compare 1 outpuUPWM 1 output.
RC4JD.NM 15
RC4 1 TTL Digital input.
O· 110 - USB d1fferential minus lme (input/output).
VM 1 TTL Extemal USB transceiver VM input.
RCS/D+NP 16
RCS 1 TTL Dlg1tat mput.
O+ 1/0 - USB differential plus line (input/output).
VP o TTL fatemal USB transoewer VP mput.
AC6/TX/CK 17
RC6 1/0 ST Digital VO.
TX o - EUSART asynchrooous nansrmt
CK 1/0 ST EUSART synchrooous dock (see RXIDn.
RC7/RXIDT/SDO 18
RC7 110 ST Digital UO.
RX 1 ST EUSART asynchronous receive.
DT 1/0 ST EUSAAT synchronous data (see TX/CK).
SDO o - SPI data out.
RE3 - - - See MCLRNPP/RE3 pin.
vusa 14 o - Interna! USB 3.3V voltage regulator.
Vss 8. 19 p - Ground reference lor logic and 1/0 pins.
voo 20 p - Positive supply lor logic and UO pins.
8
Datasheet de la familia PIC18F2455/2550/4455/4550
9
Documento creado por Slalen para Electronics Strange World
10
Datasheet de la familia PIC18F2455/2550/4455/4550
RC7
AX "º
1
ST
ST
Digital 110.
EUSART asynchronous receive.
DT
SDO "ºo ST
-
EUSART synchronous data (see TX/CK).
SPI data out.
11
Documento creado por Slalen para Electronics Strange World
12
Datasheet de la familia PIC18F2455/2550/4455/4550
13
Documento creado por Slalen para Electronics Strange World
PIC18F245512550/4455/4550
--------------------------------------,
PLLOIV
.. ""
use Clock Source
u
., uo
•i
USBOIV
., '"
.,
• •3
100 �
Oll �
•"" .,
Sleep:
º"
.
FSEN
' º"
000
HSPLL, ECPLL usa
XTPLL, ECPIO Peripheral
CP DIV
., f-----10
CPUDIV
Pnma,y
cece
.-
10LEN
c,u
FOSC3FOSCO
Penph&rals
�
,�...
T10SC ""
TlOSCEN
°"'�"' OSCCON<6.4>
------·
ln11mal Qsc,llat0<
1n1tm111
o,c111111or
-�
Block
�
f-c8cMc,c,- FOSC3:FOSCO OSCCON<l'O>
INTRC (INTOSCJ
14
Datasheet de la familia PIC18F2455/2550/4455/4550
15
Documento creado por Slalen para Electronics Strange World
16
Datasheet de la familia PIC18F2455/2550/4455/4550
17
Documento creado por Slalen para Electronics Strange World
OSC2--�
oscuarcr
Dosc1 anct
'---©---,Prescaler
veo SYSCLK
X
18
Datasheet de la familia PIC18F2455/2550/4455/4550
19
Documento creado por Slalen para Electronics Strange World
20
Datasheet de la familia PIC18F2455/2550/4455/4550
21
Documento creado por Slalen para Electronics Strange World
22
Datasheet de la familia PIC18F2455/2550/4455/4550
Los osciladores secundarios son las fuentes externas que no se conectan en los
pines OSC1 u OSC2. Estas fuentes pueden seguir funcionando incluso cuando el
microcontrolador se pone en modo “control de energía”.
Los micros PIC18F2455/PIC18F2550/PIC18F4455/PIC18F4550 ofrecen el
Timer1 como oscilador secundario. Este oscilador es, a menudo, el temporizador base
en las aplicaciones basadas en tiempo real en todos los modos de “control de energía”.
Más comúnmente, se conecta un XTAL de 32,768kHz en los pines
RC0/T1OSO/TI3CKI y RC1/T10SI/UOE* junto con un condensador e cada pin a masa.
El bloque interno de oscilación se puede usar como reloj en los modos “control
de energía”. La fuente INTRC se utiliza en varias opciones especiales como el perro
guardián o el monitor del reloj de seguridad.
23
Documento creado por Slalen para Electronics Strange World
cambia la señal de reloj. La longitud de esta pausa es la suma de dos ciclos del reloj
antiguo mas de tres a cuatro ciclos del reloj nuevo. Esta formula indica cuando el reloj
nuevo se hace estable.
24
Datasheet de la familia PIC18F2455/2550/4455/4550
25
Documento creado por Slalen para Electronics Strange World
26
Datasheet de la familia PIC18F2455/2550/4455/4550
27
Documento creado por Slalen para Electronics Strange World
28
Datasheet de la familia PIC18F2455/2550/4455/4550
T10SI
OSC1 ..f\.I\.J"\.j"\L��c'
' 3
Pfogram
cecmer
T10SI
ose,
��
PLL Clock
2 n-t n: :
Outpu1
: : C1ock<2> : :
• ·-Transit,on-. '
CPU Clock
Perlpheral
º"'"
Program
cccraer • ••
t j
scs r seso orts Changad OSTS bit Se!
29
Documento creado por Slalen para Electronics Strange World
ceu
C0<•
Penpheral
ceee
Pmgram
Counter
nerosc
º' 02 03 01 .•••••••• · •• ;02103104101102¡0,
: . . ' .
Mulbplexe,
ose,
PLLC!odl
°"""
CPU Clock
e,,,,.«
Program
•
! !
SCS1:SCSO blUi Cha1'96(1 OSTS l>!1 Sal
30
Datasheet de la familia PIC18F2455/2550/4455/4550
��::::�'s:::::::¡:::::'::::::::::::::::::::::::},�c[•c!!:• ::::::::'.::::'.::::::'.::::;::::'.:::::':::::'.::::::;::::
CPU Clock
Periphelal • J
º""".
Program
.;_
cccme- •
¡ ¡
Wake Event OSTS bit Set
31
Documento creado por Slalen para Electronics Strange World
32
Datasheet de la familia PIC18F2455/2550/4455/4550
º' º' 03 01 · - - - - - - - · - - - - - - - - - - - - - - - - - - - - - - - - - · •
ose,
CPU Clocil
Penpheral
CO<>
Program
Coun1er
.,
FIGURA 3-8: TIEMPO DE TRANSICIÓN EL REINICIO DEL MODO IDLE AL
RUN
01 . - - --- - - - - ----- - - - - .... - - ..... - - . -1 02 03
+
Wake Event
33
Documento creado por Slalen para Electronics Strange World
34
Datasheet de la familia PIC18F2455/2550/4455/4550
35
Documento creado por Slalen para Electronics Strange World
4.0 RESET
Los dispositivos PIC18F2455/2550/4455/4550 distinguen entre las distintas
clases de reset:
a) Reset por fallo de energía (POR)
b) Reset por MCLR* durante la operación normal
c) Reset de MCLR* durante modos ahorro de energía
d) Reset por el perro guardián (WDT) (durante ejecución)
e) Reset por cese de energía (BOR)
f) Instrucción RESET
g) Reset por desbordamiento la Pila
h) Reset por vaciado de la Pila
Esta sección discute los resets generados por MCLR*, POR y BOR y cubre la
operación de los varios contadores de tiempo inicio.
Voo
Brown-out L-----<r-,
Aeset
BOA EN l.----------J s
-----,
1024 Cycles
Chip_Aeset
1 o-Bot Aipple Counter R o'----
L---------- EnablePWAT
Enable osrer
36
Datasheet de la familia PIC18F2455/2550/4455/4550
37
Documento creado por Slalen para Electronics Strange World
38
Datasheet de la familia PIC18F2455/2550/4455/4550
39
Documento creado por Slalen para Electronics Strange World
40
Datasheet de la familia PIC18F2455/2550/4455/4550
41
Documento creado por Slalen para Electronics Strange World
PC<20:0>
1f
.�.
CALL, RCALL, Rm.lRN, Rm.lRN. 21
l!KTFIE, RKnM. CALl,ll,
ADDUWK, stlBULlfK SUSUWK -0,
---"su-,-,",",--,. -,--� Slack Level I
,
On·Chip
Program MemOfY On·Chip
Program Memory
5 FFFh
6 OOOh
•
Je-
7FFFh
8000h
?�
a•
¡
Reed -o'
o
Read ·o·
1 FFFFFh 1FFFFFh
200000h 200000 -
42
Datasheet de la familia PIC18F2455/2550/4455/4550
43
Documento creado por Slalen para Electronics Strange World
El stack pointer se inicializa con ‘00000’ después de cada reset. No hay RAM
asociado a la localización que corresponde con un valor del stack pointer de ‘00000’;
esto sólo es un valor de reset. Los bits de estado indican si la pila está llena, ha
desbordado o tiene está vacía y tiene que devolver una dirección (underflow).
11111
11110
'rcp-ct-stack Reglsters 11101 Stack Pointer
I
TOSU
OOh I
TOSH
1 1Ah I
TOSL
34h I ... •••
� -
-
•
•
•
STKPTR<4:0>
1000101
00011 J
'---�� Top·of-Stack 001A34h 000 l O .....--------
OOOD58h 0000 l
00000
44
Datasheet de la familia PIC18F2455/2550/4455/4550
45
Documento creado por Slalen para Electronics Strange World
eliminados y se almacenarán los de la alta. En estos casos, el usuario debe almacenar los
datos de los registros en memoria.
Si las interrupciones de alta prioridad no se utilizan, todas las interrupciones
pueden utilizar la pila almacenamiento rápido para volver de la interrupción. Si no se
utilizan las interrupciones, la pila de almacenamiento rápido se puede usar para
restaurar los registros ESTADO, WREG y BSR al final de una llamada de un
subprograma. Para utilizar la pila de almacenamiento rápido en una llamada de un
subprograma, hay que usar una instrucción CALL LABEL, FAST donde LABEL es el
nombre de la subrutina se debe utilizar para guardar los registros de ESTADO, WREG
y BSR en la pila de almacenamiento rápido. Para restaurar estos registros hay que
utilizar una instrucción RETURN, FAST.
46
Datasheet de la familia PIC18F2455/2550/4455/4550
OSC1
01
02
03
04
PC
OSC2/CLKO
(RC mode)
Ex&Cute INST (PC- 2)
Fe1ch INST (PC) Ex!ICU1e INST (PC) 1
Fetch INST PC + 2l Execute INST 1PC + 2
Fetch INST PC + 4
47
Documento creado por Slalen para Electronics Strange World
Program Memory
Byte tccanons --+
LSB-- l LSB-- O
'
OOOOOOh
000002h
000004h
000006h
Instructcn 1: MOVLW OSSh OFh 55h 000008h
Instrucnon 2: GOTO 0006h EFh 03h OOOOOAh
FOh OOh OOOOOCh
rosuucnon 3: MOVFF 123h, 456h C1h 23h OOOOOEh
F4h 56h 000010h
000012h
000014h
48
Datasheet de la familia PIC18F2455/2550/4455/4550
49
Documento creado por Slalen para Electronics Strange World
OOh OOOh
: 0000 Access RAM 05Fh
BankO - - - - 060h
FFh GPA OFFh
OOh 100h
: 0001
Bank 1 GPA
FFh 1FFh
: 0010 OOh 200h
Bank2 GPA
FFh 2FFh
: 0011 OOh 300h
Bank 3 GPA
FFh 3FFh
OOh 400h
"'0100 Bank4 GPA<1l
FFh 4FFh
: 0101 OOh SOOh
Bank 5 GPA<1l
FFh SFFh
: 0110 OOh 600h
Bank6 GPA<1l
Access Bank
FFh 6FFh
: 0111 OOh 700h OOh
Bank 7 GPA<1l Access RAM Low
- - - - SFh
FFh 7FFh Access RAM H1gh 60n
OOh 800h (SFRs) FFh
: 1000
Bank 8
Unused
to Read as OOh
: 1110
Bank 14
FF h EFFh
00 h Unused FOOh
= 1111 - - - - FSFh
Bank 15
SFA F60h
FF h FFFh
Cuando a=0:
Se ignora el BSR y usamos el acceso al banco.
Los primeros 96bytes de la RAM son de propósito general (del banco 0)
Los 160bytes restantes son registros de funciones especiales (banco 15)
Cuando a=1:
El BSR especifica el banco usado en la instrucción.
50
Datasheet de la familia PIC18F2455/2550/4455/4550
51
Documento creado por Slalen para Electronics Strange World
T-� ----·· :
OOh
Bank 1
Selecrl2) h F Fh
OOh
Bank Bank 2
h F Fh�-----�
OOh
Bank 3
through
� Bank 13 '
F Fh
EOO h
OOh
Bank 14
FOO h FFh
OOh
Bank 15
FF Fh FFh
52
Datasheet de la familia PIC18F2455/2550/4455/4550
-
TABLA 5-1: MAPA DE LOS REGISTROS DE FUNCION ESPECÍFICA
.... ·� ...,... -·'""···
··=� ·�
Adck•••
-·-
-
A<ld'ff• Add•••I
�
..
rose
�
""" "''"" CcPFUH
'"" ""' IPR1
="
UEP15
"�" '
POS�'I CCPAll UEP1•
·=·
� = "�
·- -
'"" -"
POSTDEC2i1l CCP1CON PI El UEP13
·-
roe =
""' ·=" '""
PRE�') CCPR2H UEP12
··--
� = ""'
'"" '""' """' '"" TRISEtJJ
-
ECCPIAS
--
'""
"� """"' "'"'
"""
"""""
�"""" """
"� '"""'
TRISB
""' ""' UEP3
"'""'" ""''"
"""'"' "' " "°'"'" '" "
'""'
"""' '" ' -•
TRISA
m
' UEP1
-·-
"� '"" ""'" ""' """"" ""' -"
"'" -"•
""' "'"'
'""" """
· -
<M
" "''" "''º
IN()FQl'l TMAIH
"'"
"�
POSnte:oC'I
"'
"� ""'" "'
"�" ""º "'" "' """"'
=
··""'-- ""'"'"""'-· ··'""--
POSTDE001l
""'" TXREG LATE<SJ
""' ·- ··---
rece ™�
""'
""'
PREINC(i('I
'"' TXSTA
"'' LAT�"l
'º"' ""
Pluswol11
·= ......
· -
�ra
""' -··
<CM
'""'"
"""" �"
UEIR
""' ""
-·""'--
""' "'""" " ""
"'" -·
""'
EEOATA
· -
"Th 1NOF1l'l ,CTh SSPSTAT •• Th EE�1l ,OTh
" "Th UFRMH
_,.
. -"
-"
""'
"�
POSTOEC111l
""""' •••"
'"" -,
-� ·-
PREINC1(11 PORTE $PPEP$1"l
•
""' '"" ""' ·= "''-
""'
Pll.lSWIC11 SPPCFG<JJ
53
Documento creado por Slalen para Electronics Strange World
54
Datasheet de la familia PIC18F2455/2550/4455/4550
55
Documento creado por Slalen para Electronics Strange World
56
Datasheet de la familia PIC18F2455/2550/4455/4550
¡
ADDWF, INDFl, 1 BankO
100 h
Bank 1
200 h
Bank2
300 h
FSA1H:FSA1L
7 O 7 O
[x[x[x[x[,[,[,[o[ [ ,[ ,[ o[o[,[,[o[o[ Bank3
:
e through
Bank 13
h
Bank 14
FOO h
Bank 15
FFF h
Data Memory
57
Documento creado por Slalen para Electronics Strange World
registro FSRnH. Por otra parte, los resultados de estas operaciones no cambian el valor
de los flags del registro ESTADO (Ej., Z, N, OV, etc.).
El registro PLUSW se puede utilizar para implementar una forma de
direccionamiento indexado en la memoria de datos. Manipulando el valor del registro,
los usuarios pueden conseguir direcciones fijando el puntero de direcciones. En algunos
casos, esto se puede utilizar para poner un control estructurado del programa, por
ejemplo pilas del software, dentro de la memoria de datos.
58
Datasheet de la familia PIC18F2455/2550/4455/4550
59
Documento creado por Slalen para Electronics Strange World
,� "'u�r-
instrucción se ejecuta en el modo
directo forzado. Se interpreta ‘f’ como
un localización en el acceso a RAM
entre 060h y 0FFh. Éste es igual que el
;� -. , �
SFRs o las localizaciones F60h a 0FFh
.....
/
s.nl< 1
direccionamiento.
Cuando a=0 y f=5Fh: La
=� ·
instrucción se ejecuta en el Modo
indexado por literal compensado. ‘f’ se
interpreta como compensación del valor OOlOOl"° ffffHH
de dirección en FSR2. Los dos se suman
para obtener la dirección objetivo para '� BM>k1 ,-------::·":::;;1
, � l
·�
la instrucción. La dirección puede estar FSA2H FSR2L
=� �·
donde ‘k’ es lo mismo que ‘f’.
lm""
ooml
Cuando a = 1 (cualquier valor
�-'.:::=-�-=:=,.__ ,
---·
de f): La instrucción se ejecuta en el
modo directo (también conocido como
'�
..,.,.,., 1
1,1••,,,.,.,,, -,J:"'"'"''
Modo largo directo). Se interpreta la ‘f’
' ., e. .. ,.
como localización en uno de los 16
bancos de la memoria de datos. El
banco se elige con el registro BSR. La
dirección puede estar en cualquier
·�
FOOh -15
FFFn,LC�;:;.,.¡¡;_,; ;
banco implementado en la memoria de
datos.
60
Datasheet de la familia PIC18F2455/2550/4455/4550
61
Documento creado por Slalen para Electronics Strange World
62
Datasheet de la familia PIC18F2455/2550/4455/4550
Program Memory
Holding Reg1sters
Table Pom1er<1) Table Latch (8·b1t)
63
Documento creado por Slalen para Electronics Strange World
64
Datasheet de la familia PIC18F2455/2550/4455/4550
65
Documento creado por Slalen para Electronics Strange World
TABLE ERASE
TBLPTR<21 :6>
Program Memory
?
7
1
TBLPTR • xxxxxl TBLPTR •
11nstruction Register
FETCH TABLAT
(IR) TBLRD Read Reg,ster 1
66
Datasheet de la familia PIC18F2455/2550/4455/4550
67
Documento creado por Slalen para Electronics Strange World
68
Datasheet de la familia PIC18F2455/2550/4455/4550
final de la actualización de los 32 registros, el registro EECON1 debe estar escrito para
comenzar la operación de programación con una escritura larga.
Se necesita la escritura larga para programar la flash interna. Se para la
ejecución de instrucciones mientras dure la escritura larga. La escritura larga finalizará
con el contador interno de programación.
El contador de tiempo de la EEPROM controla el tiempo de escritura. Las
tensiones de escritura/borrado las genera el chip con una bomba de carga, ajustada para
funcionar sobre la gama de la tensión del dispositivo.
Nota: El valor prefijado de los registros bloqueados en un reset y antes de una
operación de escritura es FFh. Al escribir FFh en un registro de este tipo, no modifica
ese byte. Esto significa que los bytes individuales de memoria de programa se pueden
modificar, siempre que el cambio no sea modificar un bit de ‘0’ a ‘1’. Al modificar
bytes individuales, no es necesario cargar los 32 registros antes de ejecutar una
operación de escritura.
•••
• • • 8
•••
Program Memory
69
Documento creado por Slalen para Electronics Strange World
READ_BLOCK
TBLRD*+ ;leer en TABLAT, e incrementar
MOVF TABLAT, W ;coger datos
MOVWF POSTINC0 ;guardar datos
DECFSZ COUNTER ;¿correcto?
BRA READ_BLOCK ;repetir
MODIFY_WORD
MOVLW DATA_ADDR_HIGH ;Puntero al
buffer
MOVWF FSR0H
MOVLW DATA_ADDR_LOW
MOVWF FSR0L
MOVLW NEW_DATA_LOW ;Actualizar buffer
MOVLW NEW_DATA_HIGH
MOVWF INDF0
ERASE_BLOCK
MOVLW CODE_ADDR_UPPER ;Cargar TBLPTR con la dirección base
MOVWF TBLPTRU ;del bloque de memoria
MOVLW CODE_ADDR_HIGH
MOVWF TBLPTRH
MOVLW CODE_ADDR_LOW
MOVWF TBLPTRL
BSF EECON1, EEPGD ;Puntero a la Flash
BCF EECON1, CFGS ;acceso a la Flash
BSF EECON1, WREN ;activar la escritura en memoria
BSF EECON1, FREE ;Activar la operación de borrado de fila
BCF INTCON, GIE ;desactiva interrupciones
MOVLW 55h
MOVWF EECON2 ;escribe 55h
MOVLW 0AAh
MOVWF EECON2 ;escribe 0AAh
BSF EECON1, WR ;comienzo del borrado (CPU parada)
BSF INTCON, GIE ; reactivae interrupciones
TBLRD*- ;decrmeto después de leer
MOVLW BUFFER_ADDR_HIGH ;puntero al buffer
MOVWF FSR0H
MOVLW BUFFER_ADDR_LOW
MOVWF FSR0L
MOVLW D’2’
70
Datasheet de la familia PIC18F2455/2550/4455/4550
MOVWF COUNTER1
WRITE_BUFFER_BACK
MOVLW D’32’ ;nº de bytes en los registros bloqueados
MOVWF COUNTER
WRITE_BYTE_TO_HREGS
MOVF POSTINC0, W ;coger el byte bajo del buffer
MOVWF TABLAT ;llevar dato al lacht de tabla
TBLWT+* ;escribir dato (escritura corta)
DECFSZ COUNTER ;repetir hasta que el buffer se llene
BRA WRITE_WORD_TO_HREGS
PROGRAM_MEMORY
BSF EECON1, EEPGD ;Puntero a la memoria flash
BCF EECON1, CFGS ;Acceso a la memoria flash
BSF EECON1, WREN ;Activar escritura en memoria
BCF INTCON, GIE ;Desactivar interrupciones
MOVLW 55h
MOVWF EECON2 ;Escribir 55h
MOVLW 0AAh
MOVWF EECON2 ;Escribir 0AAh
BSF EECON1, WR ;Comienzo del programa
DECFSZ COUNTER1
BRA WRITE_BUFFER_BACK
BSF INTCON, GIE ;Activa las interrupciones
BCF EECON1, WREN ;Desactiva la escritura en memoria
71
Documento creado por Slalen para Electronics Strange World
72
Datasheet de la familia PIC18F2455/2550/4455/4550
73
Documento creado por Slalen para Electronics Strange World
74
Datasheet de la familia PIC18F2455/2550/4455/4550
75
Documento creado por Slalen para Electronics Strange World
76
Datasheet de la familia PIC18F2455/2550/4455/4550
77
Documento creado por Slalen para Electronics Strange World
78
Datasheet de la familia PIC18F2455/2550/4455/4550
79
Documento creado por Slalen para Electronics Strange World
9.0 INTERRUPCIONES
Los dispositivos PIC18F2455/2550/4455/4550 tienen fuentes múltiples de
interrupción y una prioridad de interrupción que permite que cada fuente de interrupción
se le asigne un nivel prioritario o un nivel bajo de prioridad. El puntero de alta prioridad
está en 000008h y el puntero de interrupción de baja prioridad está en 000018h. Los
acontecimientos prioritarios de interrupción pararán cualquier interrupción de prioridad
baja que pueda estar en marcha.
Hay diez registros que se utilizan para controlar las operaciones de interrupción.
Estos registros son:
• RCON
• INTCON
• INTCON2
• INTCON3
• PIR1, PIR2
• PIE1, PIE2
• IPR1, IPR2
Cada fuente de interrupción tiene tres bits para controlar su operación. Las
funciones de estos bits son:
• Flag para indicar que ha ocurrido una interrupción
• El bit que permite la ejecución de programa en la dirección del puntero
de interrupción cuando se activa el flag
• El bit de prioridad para seleccionar alta o baja prioridad
Las características de prioridad de las interrupciones se determinan activando el
bit IPEN (RCON<7>). Cuando se permite la prioridad de las interrupciones, hay dos
bits que permiten las interrupciones globalmente. Activando el bit GIEH (INTCON<7>)
se permiten todas las interrupciones que tengan el bit de prioridad activo (prioritario).
Seteando el bit GIEL (INTCON<6>) permite todas las interrupciones que tengan el bit
de prioridad borrado (prioridad baja). Cuando el flag de interrupción, el bit de permiso y
el bit de las interrupciones globales están activos, el programa saltará inmediatamente a
la dirección 000008h ó 000018h, dependiendo del bit de prioridad. Las interrupciones
individuales pueden desactivarse con su correspondiente bit de permiso.
Cuando el bit IPEN está borrado (estado por defecto), las características de
prioridad de las interrupciones están desactivadas y las interrupciones son compatibles
con los dispositivos de alcance medio de PICmicro®. En el modo de compatibilidad, los
bits de prioridad de las interrupciones para cada fuente no tienen ningún efecto.
INTCON<6> es el bit PEIE el cuál permite/inhabilita todas las fuentes periféricas de
interrupción. INTCON<7> es el bit GIE que permite/inhabilita todas las fuentes de
interrupción. Todas las interrupciones saltan a la dirección 000008h en modo de
compatibilidad.
Cuando se responde una interrupción, el bit de permiso de las interrupciones
globales está borrado para inhabilitar las otras. Si el bit IPEN está reseteado, éste es el
bit GIE. Si se utilizan los niveles de prioridad de interrupción, éste será el bit GIEH o
GIEL. Las fuentes de interrupción prioritarias pueden interrumpir una interrupción de
baja prioridad. Las interrupciones de prioridad bajas no se procesan mientras que las
interrupciones prioritarias estén en marcha.
La dirección de retorno se pone en la pila y el PC se carga con la dirección del
puntero de interrupción (000008h ó 000018h). Una vez en la rutina de la interrupción,
las fuentes de interrupción se pueden determinar interrogando los flags de interrupción.
80
Datasheet de la familia PIC18F2455/2550/4455/4550
Los flags de interrupción se tienen que despejar por software antes de volver a permitir
las interrupciones para evitar interrupciones recurrentes.
La “instrucción para volver de la interrupción”, RETFIE, devuelve de la rutina
de interrupción y activa el bit GIE (GIEH o GIEL si se utilizan los niveles de prioridad)
que vuelve a permitir las interrupciones.
Para los acontecimientos externos de interrupción, tales como los pines INT o la
interrupción por cambio de la entrada PORTB, el estado latente de la interrupción es de
tres a cuatro ciclos de instrucción. El exacto el estado latente es igual para instrucciones
de uno o dos ciclos. Los flags individuales de interrupción se activan sin importar el
estado de su bit de permiso correspondiente o el bit GIE.
Nota: No utilizar la instrucción MOVFF para modificar registros de control de
interrupción mientras que se permita cualquier interrupción. Al hacerlo puede provocar
un comportamiento errático del microcontrolador.
81
Documento creado por Slalen para Electronics Strange World
TMROIF
TMflOIE
™�'
RSIF
sae
m"""
�
,INTOIF
INT11F
INTHE
INT11P
INT:?IF
INT2�
INT2�
GIE/GIEH
,�,
TMA11F
TMA11E
D----1
TMR11P
o - "-"9r.. lrQ<,upll
o
W...upl 10 CPU
TMROIF -10 loc.lion
-==�[==>----� º"�
TMROIE
TMROIP
=:1�:
"'"
TMRIIP