Escolar Documentos
Profissional Documentos
Cultura Documentos
INICIO FORO
FORO BLOG
BLOG TIENDA BUSCAR INGRESAR REGISTRARSE
REGISTRARSE
« 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)
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
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)
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
Índice:
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
PIC12F629/675
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 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
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
(*) 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
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
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.
En
« anterior pró
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