Curso - PIC18
Curso - PIC18
Curso - PIC18
Microcontroladores PIC18
PIC18 - Perifricos
Pines soportan hasta 25mA en modo sink/source Hasta 4 pines para interrupciones externas Hasta 3 timers de 16 bits Hasta 2 timers de 8 bits Timer 1 con oscilador LP Hasta 5 mdulos CCP, configurables como Entradas de captura de 16 bits de resolucin Modo Comparador de 16 bits de resolucin Salida PWM hasta 10 bits de resolucin 156Khz Max con 8 bits de resolucin 39Khz max con 10 bits de resolucin Puerto MSSP que puede ser configurado como Puerto Serial SPI - 3 hilos. Soporta los 4 modos Puerto I2C Master y Slave Puerto serial USART direccionable Puerto Paralelo PSP Conversor Anlogo Digital 10 bits Hasta 16 canales
PIC18 - Perifricos
Detector de bajo voltaje programable (LVD) Genera interrupcin Brown Out Reset Proramable (PBOR) Comparadores analgicos Programacin Serial en Circuito (ICSP) Protecciones Power On Reset (POR) Power Up Timer (PWRT) Oscilator Start Up Timer (OST) WatchDog timer con oscilador RC propio Proteccin de Cdigo Generales Alimentacin: 2.0V - 5.5V Rango temperatura Comercial: 0-70C Industrial: -40C a 85C Extendido: -40C a 125C 18 a 80 pines
Organizacin de Memoria
STKFUL Flag de SP lleno 1 = SP lleno 0 = An no lleno STKUNF Flag de Underflow del SP 1 = Un underflow ha ocurrido 0 = no hay underflow SP4:SP0 Bits de localizacin del SP 00000 = Pocisin 0 del SP 00001 = Pocisin 1 del SP 00010 = Pocisin 2 del SP . . 11111 = Pocisin 31 del SP
Despus de que se han llenado todas las pocisiones del SP sin hacer un POP de ninguna de ellas, el flag STKPRT<STKFUL> es puesto y slo puede ser limpiado por software o mediante un POR Lo que suceda con el SP luego de su rebalse, depender del estado del bit CONFIG4L<STVREN>. Si el STVREN est puesto (defecto), en el ltimo Push al SP (11111), provocar que el PC sea respaldado en el SP, el flag STKFUL ser puesto y se provocar un RESET del uC. El flag STKFUL seguir puesto y el SP apuntar a la direccin 00000. Si el STVREN = 0, el STKFUL ser puesto en el ltimo push del SP (11111). Un Push adicional no sobreescibir la pocisin 31 del SP y los bits STKPTR<SP4:SP0> permanecern el 31 (11111) Cuando el SP es descargado (POPed) totalmente , el siguiente POP retornar un 0 al PC y el flag STKPTR<STKUNF> ser puesto.
A B C D E F G
A F G B
CLRF PCLATH MOVF Valor del Display,W CALL DecodificaSieteSegmentos MOVWF PORTB GOTO Continua DecodificaSieteSegmentos ADDWF PCL,F RETLW B00111111 ;Decodifica 0 RETLW B00000110 ; Decodifica 1 RETLW B01011011 ; Decodifica 2 RETLW B01001111 ; Decodifica 3 RETLW B01100110 ; Decodifica 4 RETLW B01101101 ; Decodifica 5 RETLW B01111101 ; Decodifica 6 RETLW B00000111 ; Decodifica 7 RETLW B01111111 ; Decodifica 8 RETLW B01101111 ; Decodifica 9 Continua . . .
PIC16xxx PIC18xxx
E D
TBLRD TBLWT
Registro Puntero de memoria de programa para tablas de datos (22 bits) Registro que contiene el byte que fue ledo o el que sern escrito (8 bits) Instruccin de lectura de tablas de datos Instruccin de escritura de tablas de datos
La memoria de programa es de 16 bits, mientras que la Ram es de 8 bits. Las instrucciones TBLRD/TBLWT mueven datos entre estas dos zonas de memoria
Los 21 primeros bits direccionan hasta 2Mbytes de memoria de programa. El 22 bits, se usa para acceder a los Bits de Cofiguracin
Modo 8 bits
PIC18 - RAM
La memoria de datos est dividida hasta en 15 bancos de 256 bytes cada uno El registro BSR es utilizado para seleccionar uno de los 15 bancos. Para ello, slo los 4 bits LSBs estn implementados La Ram est compartida con los SFRs y la ram disponible para el usuario (GPRs) Los SFRs comienzan su localizacin en la ltima posicin del banco 15 (0FFFh) y hacia abajo y los GPRs estn ubicados desde la primera posicin del banco 0 (0000h) Toda la Ram puede ser accedida en forma directa o indirecta. El acceso en forma directa se realiza utilizando el puntero BSR y el acceso en forma indirecta hace uso del punteros FSRn y el registro INDFn
PIC18 - RAM/SFRs
EC/ECIO
HS + PLL
Perifricos Resumen
Timer de 8 (TMR0) 16 bits (TMR0H:TMROL), seleccionable por software Puede ser detenido y activado por software Prescaler slo en modo de 8 bits Prescaler : 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256 Timer mapeado en memoria Genera interrupcin por rebalse. Acepta clock interno o externo
Hasta 5 mdulos CCP pueden estar presentes en algunos micros Cada mdulo CCP est compuesto por un registro de 16 bits que puede funcionar en 3 modos Modo Captura Modo Comparador Generador de seales PWM
PIC18 - Perifricos/MSSP
Puerto de comunicacin serial sncrona half y full duplex Orientado para comunicaciones con componentes externos como e2prom (24LCxx), RTC (DS1302), DTMF generators (PCD3312), Chips de voz (ISD4002), etc. Puede funcional en dos modos de comunicacin SPI Serial Peripheral Interface Estndar comunicacin 3 hilos Full-Duplex I2C Inter-Integrated Circuit Estndar de comunicacin 2 hilos Half - Duplex Genera interrupcin
PIC18 - Perifricos/USART
Puerto serial orientado a establecer comunicacin con equipos con protocolo EIA-232 Hasta 2 puertos seriales Usart pueden estar incorporados en algunos PIC18 Cada puerto serial puede ser configurado en forma distinta. Puede funcionar en los siguientes modos Asncrono - Full Duplex Sncrono Master - Half Duplex Sncrono Slave - Half Duplex Generador de baudios dedicado No generan ni detectan paridad (por software solamente) Formato de datos: 1 Start bit + 8/9 bits de datos + 1 Stop bit Gereran interrupciones por fin de transmisin y por recepcin Mxima velocidad: 1.250Mbaudios@40Mhz. 0% error en modo sncrono o asncrono.
PIC18 - Perifricos/CAD
CAD 10 bits de Aproximaciones Sucecivas Hasta 16 canales AD Error Absoluto: 1% LSB Vref. interna (VDD/VSS) y externa Tad = Tiempo de adquisicin por bits = 1.6uS (mnimo) Tiempo de Conversin: 12Tad = 19.2uS mnimo Usa dos registros para almacenar el resultado de la convesrsin ADRESH: ADRESL Resultado de la conversin justificable Clock para el CAD seleccionable por software Puede convertir en modo de bajo consumo Genera interrupcin por fin de conversin
2 comparadores analgicos incorporados 8 modos de funcionamiento Referencia de voltaje interna o externa Referencia de voltaje interna trabaja con mdulo Vref Condiciones de comparacin configurables pro software Genera interrupcin Salida de los comparadores pueden ser asociadas a un pin I/O
Set de Instrucciones
Set de Instrucciones
Instrucciones orientadas bytes Nemnico Ciclos addwf f,d,a 1 addwfc f,d,a 1 andwf f,d,a 1 clrf f,a 1 comf f,d,a 1 cpfseq f,a 1,2,3 cpfsgt f,a 1,2,3 cpfslt f,a 1,2,3 decf f,d,a 1 decfsz f,d,a 1,2,3 dcfsnz f,d,a 1,2,3 incf f,d,a 1 incfsz f,d,a 1,2,3 infsnz f,d,a 1,2,3 iorwf f,d,a 1 movf f,d,a 1 movff fs,fd 2 movwf f,a 1 mulwf f,a 1 Descripcin (W) + (F) (W) + (F) + C (W) AND (F) 00 F Complementa F Compara F con W y salta si F = W Compara F con W y salta si F > W Compara F con W y salta si F < W Decrementa F Decrementa F y salta si = 0 Decrementa F y salta si no es 0 Incrememta F Incrementa F y salta si = 0 Incrementa F y salta si no es 0 (W) OR (F) Mueve F Mueve registro fs a fd (W) F (W) x (F) PRODH:PRODL
Set de Instrucciones
Instrucciones orientadas bytes (Continuacin) Nemnico Ciclos Descripcin negf f,a 1 F rlcf f,d,a 1 izquierda a travs del carry rlncf f,d,a 1 izquierda sin carry rrcf f,d,a 1 derecha a travs del carry rrncf f,d,a 1 derecha sin carry setf f,a 1 subfwb f,d,a 1 con borrow subwfb f,d,a 1 con borrow subwf f,d,a 1 swapf f,d,a 1 Intercambia nibbles de F Niega F Rota F a la
Rota F a la
Rota F a la Rota F a la FFh F (W) - (F) (F) - (W) (F) - (W)
Set de Instrucciones
Instrucciones de Control Nemnico Ciclos bc n 1,2 bn n 1,2 bnc n 1,2 bnn n 1,2 negativo bnov n 1,2 overflow bnz n 2 direccin n si no es cero bov n 1,2 overflow bra n 1,2 bz n 1,2 call n,s 2 subrutina (2Mb) clrwdt 1
Descripcin Salta a la direccin n si hay carry Salta a la direccin n si es negativo Salta a la direccin n si no hay carry Salta a la direccin n si no es
Salta a la direccin n si no hay Salta a la Salta a la direccin n si hay salto incondicional a la direccin n Salta a la direccin n si es cero Llamado a Limpia
Set de Instrucciones
Instrucciones de Control (continuacin) Nemnico Ciclos Descripcin rcal n 2 relativo (limitado a 1K) reset 1 software retfie s 2 interrupcin retlw k 2 subrutina con literal en W return s 2 subrutina sleep 1 de bajo consumo Instrucciones literales addlw k 1 W andlw k 1 W iorlw k 1 Call Reset por
Retorno de
Retorno de Retorno de Va a modo k + (W) k AND (W) k OR (W)
Set de Instrucciones
Instrucciones de operacin en memoria de programa Nemnico Ciclos Descripcin tblrd* 2 Lee tabla tblrd*+ Lee tabla con Post incremento tblrd*Lee tabla con Post decremento tblrd+* Lee tabla con Preincremento tblwt* 2(5) Escribe tabla tblwt*+ Escribe tabla con Post incremento tblwt*Escribe tabla con Post decremento
Micros sugeribles
PicStart - Plus
Programador para PIC12/16/18 en formato DIP hasta 40 pines Usa MPLAB - IDE Ensamblador Simulador Interfase para Debugger Interfase para programadores Permite grabar directamente algunos PIC18 (no todos) Algunos adaptadores SMDTH disponibles USD 272 + IVA
PIC18Fxxxx - BootLoader
Requerimientos Usart en modo sncrono 8/N/1 255 bytes de ram 512 bytes (256 words) de memoria de programa Cambio de vectores Vector de reset = 0200h vector de interrupcin de alta prioridad = 0208h Vector de interrupcin de baja prioridad = 0218h Aplicable a todo tipo de memorias novoltiles El algoritmo permite Borrar memoria Escribir memoria Leer memoria Auto baud rate