Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

04/11/2010 #1


Oscilador interno pic 16f627a
hola a todos

qusiera saber si me pueden ayudar a como configurar el pic 16f627a para utilizar el oscilador interno.

ya lei demasiado y todos manejan otros lenguajes de programacion (yo utilizo ensamblador) y no tengo ni idea de como hacerle.
tambien si mepodrian decir como configurar las demas cosas como el perro guardian y todo es por favor
soy principiante en esto
saludos!!
04/11/2010 #2

Avatar de ByAxel

Datasheet del PIC16F6xxA.
- Pag 10 (12 visor pdf): Diagrama de bloques.
- Pag 93 (95 visor pdf): SPECIAL FEATURES OF THE CPU; se describe las características de los fuses y se muestra el registro donde están los fuses (Configuration word).

- En el MPLAB se acostumbra incluir el archivo del PIC respectivo:
#include <p16F627A.inc> ; Donde está todo declarado, incluso el nombre de los fuses para una mejor comprensión.

- En el archivo, en la última parte se ubican todas las combinaciones de fuses que por ejemplo para el oscilador son:
Código:
_RC_OSC_CLKOUT               EQU     H'3FFF'
_RC_OSC_NOCLKOUT             EQU     H'3FFE'
_ER_OSC_CLKOUT               EQU     H'3FFF' ;Backwards compatability to 16F62X
_ER_OSC_NOCLKOUT             EQU     H'3FFE' ;Backwards compatability to 16F62X
_INTOSC_OSC_CLKOUT   	     EQU     H'3FFD'
_INTOSC_OSC_NOCLKOUT         EQU     H'3FFC'    
_INTRC_OSC_CLKOUT   	     EQU     H'3FFD' ;Backwards compatability to 16F62X
_INTRC_OSC_NOCLKOUT	     EQU     H'3FFC' ;Backwards compatability to 16F62X
_EXTCLK_OSC                  EQU     H'3FEF'
_HS_OSC                      EQU     H'3FEE'
_XT_OSC                      EQU     H'3FED'
_LP_OSC                      EQU     H'3FEC'
- Para declarar los fuses en el MPLAB se usa la directiva __CONFIG; por ejemplo:
__CONFIG _HS_OSC ; Configura el tipo de oscilador externo de alta velocidad 10Mhz a 20Mhz.

- Para el resto de fuses se separa con &:
__CONFIG _WDT_OFF & _INTOSC_OSC_NOCLKOUT & _LVP_OFF ; Configura oscilador interno (por defecto a 4Mhz ya que también soporta el de 32Khz interno), el watchdog apagado y la grabación en bajo voltaje apagada.

Espero te ayude... saludos
04/11/2010 #3


muchas gracias de verdad es de mucha ayuda por eso me gusta demasiado este foro porque aqui aprendo lo que en la escuela no me enseñan

muchas gracias por tu respuesta Axel

hola oye una pregunta ahi en datasheet menciona que hay que configurar todo eso por medio del registro CONFIG no se si sea a lo que te refieres de "_CONFIG" aun asi tengo otra duda
¿todos esos bits que en el datasheet maneja como los configuro? asi como me dices anteriormente? perdon pero es que lei el datasheet y me confundi espero no me lo tomes a mal eh

saludos y gracias
17/12/2010 #4


hola, soy nueca en esto y tengo muchas dudas, pero la que me tiene al borde de la locura es lo del oscilaor interno... Estoy trabajando en la configuraciÓn de un pic 12f509 con un programador diy k150, hexgen4 y microbrn, pude grabar el archivo hex pero no logro grabar el nº en la parte final del pic, que corresponde al que trae el chip de fabrica... Alguien que por favor me ayude ya que sin eso no logro que funcione el chip... Otra cosa, que tipo de oscilador debo usar para ese chip...
17/12/2010 #5

Avatar de Meta

Hola:

Mira donde lo tienes instalado el MPLAb y te fijas su dirección.

C:\Program Files (x86)\Microchip\MPASM Suite\Template\Code

Luego su contendido del archivo de configuración.


Configuración.
__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT
Código completo:
;************************************************* *********************
; This file is a basic code template for assembly code generation *
; on the PIC16F627A. This file contains the basic code *
; building blocks to build upon. *
; *
; Refer to the MPASM User's Guide for additional information on *
; features of the assembler (Document DS33014). *
; *
; Refer to the respective PIC data sheet for additional *
; information on the instruction set. *
; *
;************************************************* *********************
; *
; Filename: xxx.asm *
; Date: *
; File Version: *
; *
; Author: *
; Company: *
; *
; *
;************************************************* *********************
; *
; Files Required: P16F627A.INC *
; *
;************************************************* *********************
; *
; Notes: *
; *
;************************************************* *********************

list p=16f627A ; list directive to define processor
#include <p16F627A.inc> ; processor specific variable definitions

errorlevel -302 ; suppress message 302 from list file

__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT

; '__CONFIG' directive is used to embed configuration word within .asm file.
; The lables following the directive are located in the respective .inc file.
; See data sheet for additional information on configuration word settings.




;***** VARIABLE DEFINITIONS
w_temp EQU 0x7E ; variable used for context saving
status_temp EQU 0x7F ; variable used for context saving





;************************************************* *********************
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program


ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register

; isr code can go here or be located as a call subroutine elsewhere


movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt


main

; remaining code goes here

goto main ;loop forever, remove this instruction, for test only


; initialize eeprom locations

ORG 0x2100
DE 0x00, 0x01, 0x02, 0x03


END ; directive 'end of program'
Saludo.
11/02/2012 #6


bronce dijo: Ver Mensaje
hola que tal tendras de pura casualidad el diagrama para microcontrolador pero en forma de oscilador interno

si es asi me lo podras publicar

Saludos,
Hola....estar preguntando sobre una temática que la ultima actividad fue hace mas de 2 años!!!!!.
El oscilador interno es eso un oscilador que incluyen algunos PIC internamente y se puede seleccionar mediante la palabra de configuración. Algunos son de frecuencia fija y otros tienen ajuste o frecuencias determinadas de trabajo.
No hay esquema exterior a realizar como en el caso de Xtal, RC, externo asi que no hay nada que publicar.

Consulta la hoja de datos del PIC en particular que usaras.

Saludos.

Ric.
11/02/2012 #7

Avatar de Meta

Si te refieres a un dibujo como un diagrama de flujo, encontrarás eso, no símbolos o formas de dibujo, so encontrarás esquemas eléctricos y palabras de configuraciónen la hoja de datos sobre el PIC16F627A.
12/02/2012 #8
Moderador

Avatar de D@rkbytes

bronce dijo: Ver Mensaje
ok, gracias, ya lo cheque......pero no esta.....la idea es conectarlo con cristal interno.....
¿En que lenguaje lo piensas configurar con oscilador interno?

Para lenguaje ensamblador se define de esta manera:
Código:
    list      p=12F510            ; list directive to define processor
    #include <p12F510.inc>        ; processor specific variable definitions

    __CONFIG   _MCLRE_ON & _CP_OFF & _WDT_OFF & _INTRC_OSC & _IOSCFS_ON

; '__CONFIG' directive is used to embed configuration word within .asm file.
; The lables following the directive are located in the respective .inc file. 
; See respective data sheet for additional information on configuration word.




;***** VARIABLE DEFINITIONS
temp    EQU     0x0A        ;example variable definition



;**********************************************************************
    ORG     0x3FF             ; processor reset vector

; Internal RC calibration value is placed at location 0x3FF by Microchip
; as a movlw k, where the k is a literal value.

    ORG     0x000             ; coding begins here
    movwf   OSCCAL            ; update register with factory cal value




start    
    nop                       ; example code
    movlw   0xFF              ; example code
    movwf   temp              ; example code

; remaining code goes here
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.