Você está na página 1de 8

INICIO

INICIO FORO
FORO BLOG
BLOG TIENDA BUSCAR INGRESAR REGISTRARSE
REGISTRARSE

MicroPIC » Foro » Contenidos de MicroPIC » Artículos » Datasheet en español: PIC12F629/675 (1)

« anterior pró
Menu Usuario Páginas: [1] Ir Abajo IMPR

Hola, Visitante
Autor Tema: Datasheet en español: PIC12F629/675 (1) (Leído 21010 veces)

xocas Datasheet en español:


PIC12F629/675 (1)
Administrator
« en: Abril 29, 2009, 18:18 »
Registrarse Colaborador MicroPIC

Ingresar Es importante decir que el único documento válido es el datasheet original de Microchip y
que los derechos les corresponden a ellos. A pesar del esfuerzo por ser lo más fiel posible
documento original no descarto que haya algún tipo de error, ya sea tipográfico o de
interpretación.
Mas Activos
He solicitado autorización de Microchip para publicarlo a nivel personal en los Foros en los
nocturno Mensajes: 73 que participo con mayor o menor frecuencia y solamente para los usuarios y/o visitantes
Mensajes: estos Foros llevé a cabo la tarea. No he obtenido el permiso para un formato final en pdf
1988 como me hubiera gustado y desautorizo su publicación -porque así lo expresa claramente
Microchip (1)- en cualquier otra parte.
Meta
Mensajes:
276 En todo caso, libro al Foro de todo tipo de responsabilidad y si algo se me ha pasado por
alto y estoy vulnerando las normas de propiedad de Microchip, agradecería se me informa
djfreeman para actuar en consecuencia.
Mensajes:
272
(1) Personal Use of Copyrighted Material: If you use Microchip copyrighted material
spiderman solely for your personal use you do not need Microchip’s written permission to use such
Mensajes: material. However, distribution or reproduction of such materials and images to others
257
(including posting on a website) does require Microchip’s written permission.
HJ.0x00
Mensajes: « última modificación: Mayo 21, 2009, 17:23 por xocas »
224

Tweet En

xocas Re: Datasheet en español:


PIC12F629/675 (1)
Administrator
« Respuesta #1 en: Abril 29, 2009, 18:19 »
Colaborador MicroPIC

Son muchas las ocasiones en las que una lectura pausada de la hoja de datos del PIC
(datasheet de ahora en adelante) nos da la solución a ese problema que no conseguimos
resolver en nuestro circuito, pero esa lectura no siempre es tan clara como nos gustaría
que fuese. El idioma (un gran escollo para muchos de nosotros), la terminología
empleada(1) y la poca profundidad a la hora de tocar ciertos temas consiguen que sobre
todo aquellos que están empezando no le presten la atención que requiere.
Mensajes: 73
La intención de este tema es tratar de ayudar en lo posible a resolver esos escollos: el
idiomático, partiendo de la intención de ser lo más fiel posible al contenido del datasheet,
el estudio 'paso a paso' de las características del PIC, de sus registros, periféricos...etc
En el caso de algunos temas que el datasheet no trata con demasiada profundidad trataré
de proporcionaros enlaces para que podáis ampliar conocimientos, de ser posible en
español, y desde el punto de partida de que no es la intención de este tema hacer todo e
trabajo por vosotros porque es vuestra inquietud, vuestras ganas de aprender, la mejor
ayuda que puedo ofreceros. Google y nuestros amados Foros son un excelente espacio pa
'ese empujoncito' que a veces necesitamos. De igual manera, son bastantes las Tablas de
Datos presentes y como no tengo la intención de sobrecargar el Foro con cosas que podé
ver sin esfuerzo en el datasheet, se hará referencia ya sea a su número de imagen, págin
o capítulo donde se puede ver.

El datasheet del PIC con el que trabajemos debería estar siempre a mano. Para obtenerlo
haremos directamente de la web de Microchip y fijándonos siempre que sea la última
versión la que tenemos, y verificar igualmente si existen documentos de 'erratas'
posteriores. Esto lo sabremos por la versión y las fechas... (2)

Se ha elegido uno de los 'enanos' de Microchip para empezar: PIC12F629/675. A pesar de


su tamaño tiene muchas cosas que se encuentran en sus hermanos mayores y lo aprendi
nos servirá posteriormente. Más adelante se tratarán ciertas particularidades no presente
en este PIC, como pueden ser USART, SPI...etc.

No he seguido el orden establecido en los capítulos del datasheet si no el orden que sigo
la hora de programar, de ahí que comience por la 'Palabra de configuración' (Configuratio
Word) que va al principio de todos mis programas. Decir que programo en Basic y
desconozco otros lenguajes de programación, por ello cuando añada algún ejemplo será
siempre bajo este lenguaje o añadiendo algún ejemplo de ASM incluido en el datasheet

Agradezco que me informéis de cualquier error que se me haya pasado por alto.

Notas:
1 - Se mantendrá la terminología original en inglés para evitar confusiones. En otro tema
aparte se creará un glosario para que podáis consultar esa terminología.
2 - La referencia DS41190E se corresponde con la última versión del datasheet en este
momento. Es importante porque podría pasarnos que hubiera alguna actualización
importante en la que se corrijan errores con respecto a la versión que hemos descargado
hace unos meses. De igual forma revisar cualquier posible documento de erratas sobre el
datasheet con el cual vayáis a trabajar. en el caso del PIC12F629/675 no dejar de ver:
http://www.microchip.com/wwwproducts/Devices.aspx?DocName=en010114

« última modificación: Mayo 01, 2009, 12:14 por xocas » En

xocas Re: Datasheet en español:


PIC12F629/675 (1)
Administrator
« Respuesta #2 en: Mayo 01, 2009, 12:29 »
Colaborador MicroPIC

Índice:

Características del PIC

Propiedades Especiales:
CONFIGURATION WORD
Mensajes: 73 OSCILADOR
Los Modos de RESET

GPIO PORT

Módulo Timer0

Módulo Timer1

Interrupciones

Organización de la Memoria

Módulo Comparador

Memoria EEPROM

Convertidor A/D

« última modificación: Enero 24, 2012, 10:56 por xocas » En

xocas Re: Datasheet en español:


PIC12F629/675 (1)
Administrator
« Respuesta #3 en: Mayo 01, 2009, 12:30 »
Colaborador MicroPIC

PIC12F629/675

CPU RISC de alto rendimiento:


Sólo 35 instrucciones para aprender
Todas las instrucciones se ejecutan en un solo ciclo de reloj, excepto los saltos que
requieren dos
Mensajes: 73 Frecuencia de Operación de 0 a 20 MHz (DC a 200 nseg de ciclo de instrucción)
Posibilidad de Interrupciones
Pila (Stack) por hardware de 8 niveles
Modos de Direccionamiento Directos, Indirectos, y Relativos

Características especiales:
Opciones de oscilador Interno y externo
Oscilador interno de 4Mhz calibrado de fábrica a +/- 1%
Soporte para Oscilador externo a cristal y resonador
Tiempo de reacción tras el modo SLEEP: 5us (típico a 3.0V)
Ahorro de energía en el modo SLEEP
Amplio rango de voltaje - 2.0V a 5.5V
Rango de temperaturas Industrial y extendida
Power-on-Reset (POR) de bajo consumo
Power-up Timer (PWRT) y Oscilador Start-up Timer (OST)
Brown-out Detect (BOD)
Watchdog Timer(WDT) con oscilador independiente para una operación confiable
MCLR/pin de entrada, multiplexado
Interrupción por cambio de estado
Resistencias pull-up internas programables Individualmente
Protección de código Programable
Alta duración de FLASH/EEPROM
- 100,000 escrituras en memoria Flash
- 1,000,000 escrituras en EEPROM
- Flash/Data EEPROM Retención:> 40 años

Características de bajo consumo:


Corriente de Reserva (standby):
- 1 nA a 2.0V, típico
Corriente de operación:
- 8.5 uA a 32Khz, 2.0V, típico
- 100 uA a 1Mhz, 2.0V, típico
Corriente Watchdog Timer:
- 300 nA 2.0V, típico
CorrienteTimer1 :
4 uA a 32Khz, 2.0V, típico

Características de Periféricos:
6 entradas/salidas con control de dirección individual(*)
Alta corriente suministrada: 25mA
Módulo Comparador Analógico
Comparador de Voltaje Programable. Módulo (CVREF)
Entradas multiplexadas programables.
La salida del Comparador es accesible externamente
Módulo Convertidor Analógico/Digital (PIC12F675):
- Resolución de 10 bits
- Entrada de 4 canales programable
- Entrada de Referencia de Voltaje
Timer0: temporizador/contador de 8 bits con prescaler de 8 bits programable.
Timer1 Extendido:
- Temporizador/contador de 16 bytes con prescaler
- Modo de Entrada externo (External Gate Mode)
- Opción para usar OSC1 y OSC2 en modo de LP como oscilador de Timer1, si el modo
INTOSC está seleccionado
Programación en circuito (In-Circuit Serial Programming (ICSP)) vía dos pines

(*) GP3 puede funcionar como MCLR, como un pin de entrada con interrupción por cambi
de estado o como Vpp para la programación del PIC, pero no como pin de salida.

En

xocas Re: Datasheet en español:


PIC12F629/675 (1)
Administrator
« Respuesta #4 en: Mayo 01, 2009, 12:32 »
Colaborador MicroPIC

Esta imagen nos permite ver las pocas diferencias existentes entre ambos PICs,
básicamente que el 12F675 está dotado de 4 canales A/D. estas diferencias serán
puntualmente comentadas a lo largo del tema:

Mensajes: 73

y en la distribución de sus pines, una vista más detallada:


Diagrama de Bloques del PIC, con la descripción de sus pines y configuración interna.
Podemos encontrar información adicional en el Manual de Referencia (PIC Mid-Range
Reference Manual (DS33023)) en la web de Microchip.

Descripción detallada de los pines del PIC:


Esto es a mi entender el punto de partida necesario. Las primeras hojas del datasheet no
dirán si es la elección correcta a nuestras necesidades. ¿dispone de un número suficiente
entradas/salidas? (en adelante I/O), ¿necesitamos o sería muy conveniente disponer de u
puerto serie por hardware?, ¿de un puerto USB?, ¿de más memoria?... todo esto lo
podemos ver en unas pocas páginas del datasheet.

A modo de un pequeño repaso:


AN0..AN3 = Entradas de los canales de los convertidores A/D
CIN+ y CN- = Entradas Comparador
COUT = Salida Comparador
CLKIN = Entrada de reloj /conexión oscilador RC
CLKOUT = Salida FOSC/4
GP0..GP5 = I/O bi-direccionales con pull-up programable e interrupción por cambio de
estado.(*)
ICSPDAT = Pin de Datos para programación ICSP
ICSPCLK = Pin de Reloj para programación ICSP
INT = Interrupción Externa
T0CKI = Entrada reloj de TMR0
T1CKI = Reloj TMR1
T1G = TMR1 Gate
VREF = Voltaje de Referencia Externo

(*) No es así en el caso de GP3, que puede funcionar solo como entrada.
GP3 = entrada con interrupción por cambio de estado.
MCLR = Master Clear
VPP = Voltaje de programación

En

xocas Re: Datasheet en español:


PIC12F629/675 (1)
Administrator
« Respuesta #5 en: Mayo 01, 2009, 12:34 »
Colaborador MicroPIC

Bien, como introducción a los Registros del PIC creo que 'Configuration Bits' (capítulo 9.1
del datasheet) es un buen punto de partida. Si bien es algo que podemos hacer a la hora
grabar el PIC seleccionando las opciones adecuadas en el software de grabación en mi
opinión es altamente recomendable añadirlo al principio de nuestro programa. Según el
lenguaje de programación hay diferentes sintaxis para hacerlo:

Mensajes: 73 en ASM -> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
en CCS -> #FUSES XT,NOWDT,NOPROTECT,PUT
Como se puede ver, son bastante intuitivas ambas formas de hacerlo

en PSI -> Define CONF_WORD = 0x31a1


En el menú Options .. Configuration bits indicamos las opciones deseadas y nos da como
resultado el valor de CONF_WORD

en PBP -> @ DEVICE pic12F675, 0x31A1


Sin embargo, y aquí quería llegar, ¿cómo obtenemos ese valor para PBP?
Podemos recurrir a ejecutar el software de programación (Winpic800 por ejemplo),
establecer las opciones y tomar nota del valor que devuelve en la posición 0x2007 para
posteriormente añadirlo a la instrucción @ DEVICE pic12F675, valor. (ver que hay una
diferencia en el valor devuelto: PSI = 0x31a1 y Winpic = 0x3FA1)

Para entender esta diferencia de valor y adentrarnos ya en el aprendizaje de los Registros


veamos la siguiente imagen y su descripción:

bit 13-12 BG1:BG0: bits de calibración 'Bandgap' para voltaje de BOD y POR (1)
00 = Lowest bandgap
11 = Highest bandgap
bit 11-9 No implementados: se leen como ‘0’
bit 8 /CPD: Data Code Protection bit(2)
1 = Data memory code protection deshabilitada
0 = Data memory code protection habilitada
bit 7 /CP: Code Protection bit(3)
1 = Program Memory code protection deshabilitada
0 = Program Memory code protection habilitada
bit 6 BODEN: Brown-out Detect Enable bit(4)
1 = BOD habilitado
0 = BOD deshabilitado
bit 5 MCLRE: GP3/MCLR pin function select(5)
1 = GP3/MCLR pin function como MCLR
0 = GP3/MCLR pin function como digital I/O, MCLR internamente llevada a VD
bit 4 /PWRTE: Power-up Timer Enable bit
1 = PWRT deshabilitado
0 = PWRT habilitado
bit 3 WDTE: Watchdog Timer Enable bit
1 = WDT habilitado
0 = WDT deshabilitado
bit 2-0 FOSC2:FOSC0: Oscillator Selection bits
111 = oscilador RC: CLKOUT en GP4/OSC2/CLKOUT, RC en GP5/OSC1/CLKIN
110 = oscilador RC: I/O en GP4/OSC2/CLKOUT, RC en GP5/OSC1/CLKIN
101 = oscilador INTOSC: CLKOUT en GP4/OSC2/CLKOUT, I/O en
GP5/OSC1/CLKIN
100 = oscilador INTOSC: I/O en GP4/OSC2/CLKOUT, I/O en GP5/OSC1/CLKIN
011 = EC: I/O en GP4/OSC2/CLKOUT, CLKIN en GP5/OSC1/CLKIN
010 = oscilador HS: cristal/resonador de alta frecuencia en GP4/OSC2/CLKOUT
GP5/OSC1/CLKIN
001 = oscilador XT: cristal/resonador en GP4/OSC2/CLKOUT y GP5/OSC1/CLKI
000 = oscilador LP: cristal de baja frecuencia en GP4/OSC2/CLKOUT y
GP5/OSC1/CLKIN

*******
Notas:
1: los bits de calibración de bandgap están programados de fábrica y se deben leer y
guardar antes de borrar el dispositivo. Tal como está especificado en 'PIC12F629/675
Programming Specification'. Estos bits se reflejan en la exportación de la palabra de
configuración. Las Herramientas de Desarrollo de Microchip mantienen todos los bits de
calibración a la configuración de fábrica.
2: Todos los datos contenidos en la EEPROM se borrarán cuando está desactivada la
protección de código.
3: Toda la Memoria de Programa, incluido el valor OSCCAL, se borrará cuando está
desactivada la protección de código.
4: Habilitar Brown-out Detect no habilita automáticamente Power-up Timer.
5: Cuando MCLR se declaró en los modos INTOSC o RC, se deshabilita el reloj del oscilado
interno.
/: Indica 'negado' en el modo texto. 0 = habilitado, 1 = deshabilitado
*****

Ahora veamos bit a bit como llegar al punto de partida... el valor 0x31A1. Este valor
hexadecimal se corresponde en binario con 11-000-110100-001 (los guiones son para
mayor claridad), y consultando la tabla vemos que:
bandgap = 11 (Highest)
bits 11..9 = 000
/CPD = 1 (deshabilitado)
/CP = 1 (deshabilitado)
BODEN = 0 (deshabilitado)
MCLRE = 1 (funciona como MCLR)
/PWRTE = 0 (habilitado)
WDTE = 0 (deshabilitado)
FOSC2: FOSC0 = 001 (oscilador XT: cristal/resonador en OSC2 y OSC1)

¿y que pasaba con el valor 0x3FA1? Veamos este valor en binario: 11-111-110100-001
para apreciar que solo cambian los bits 11..9 cuyo valor siempre se lee como '0' y por tan
a efectos de configuración ambos valores proporcionan igual resultado.

Esta palabra de configuración de 14 bits se escribe durante el proceso de grabación del PI


y no se puede modificar durante la ejecución del programa. Ocupa la posición reservada d
memoria 0x2007.

En

Páginas: [1] Ir Arriba IMPR

« anterior pró

MicroPIC » Foro » Contenidos de MicroPIC » Artículos » Datasheet en español: PIC12F629/675 (1)

Ir a: => Artículos

SMF 2.0.11 | SMF © 2011, Simple Machines | Adk Portal 2.0 « Elysium Edition » ® SMF Personal © 2011
SMFAds for Free Forums
Protected by: Forum Firewall © 2010-2011
Made by Diego Andrés design by Fab Themes.
Sitemap XHTML RSS WAP2

Você também pode gostar