Autor Tema: Como cambio el oscilador interno del PIC16F628???  (Leído 347 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Fulguitron

  • PIC16
  • ***
  • Mensajes: 122
    • Disfruta de mi blog, hobbies y gadgets diferentes y poco comunes.
Como cambio el oscilador interno del PIC16F628???
« en: 01 de Octubre de 2017, 18:48:48 »
He leido que este pic tiene dos osciladores, uno a 4MHZ y otro a 48khz. Veo que por defecto sale el del 4 MHZ, como cambio al de 48?? He leido el datasheet y veo esto



Supongo que tendré que cambiar algo de aquí, pero que??

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT & _DATA_CP_OFF & _LVP_OFF & _MCLRE_OFF
   LIST      P=16F628A
   INCLUDE  <P16F628A.INC>

Un saludo y muchas gracias.
Disfruta de mi blog, hobbies y gadgets diferentes y poco comunes.

http://hobbiesygadgets.blogspot.com.es/

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 6850
Re:Como cambio el oscilador interno del PIC16F628???
« Respuesta #1 en: 01 de Octubre de 2017, 19:28:52 »
El PIC16F628 tiene esos 2 relojes internos, pero segun el datasheet que poseo es de 4Mhz y de 37KHz.
El PIC16F628A tiene pero los valores 4Mhz y 48Khz, asi que creo que estas intentando saber sobre este ultimo.

Como dice el datasheet, podes ponerlo como oscilador interno a los fuses ( como ya lo tenes realizado ) Y luego solo falta acomodar el bit de ese registro para cambiar de velocidad. Es decir:

Código: ASM
  1.         BCF PCON, OSCF

Desconectado Fulguitron

  • PIC16
  • ***
  • Mensajes: 122
    • Disfruta de mi blog, hobbies y gadgets diferentes y poco comunes.
Re:Como cambio el oscilador interno del PIC16F628???
« Respuesta #2 en: 13 de Octubre de 2017, 05:15:54 »
Como siempre muchísimas gracias, funciona perfectamente. Y siguiendo con mis lecciones del datasheet, entiendo que a esta veloicdad el consume también es bastante menor no?? Como diez veces menos??

Disfruta de mi blog, hobbies y gadgets diferentes y poco comunes.

http://hobbiesygadgets.blogspot.com.es/

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 6850
Re:Como cambio el oscilador interno del PIC16F628???
« Respuesta #3 en: 13 de Octubre de 2017, 09:43:17 »
Creo que esos valores son bastantes optimistas, en el datasheet, dentro de las especificaciones electricas tenes una tabla que te dice cuanto es el consumo del micro, del BOR, del WDT, etc por separado, segun sea la frecuencia y la tension utilizada.

Tambien casi al final tenes los graficos de como varia la corriente con la tension aplicada, para cada uno de los casos, como varia con la temperatura, etc.

Desconectado Fulguitron

  • PIC16
  • ***
  • Mensajes: 122
    • Disfruta de mi blog, hobbies y gadgets diferentes y poco comunes.
Re:Como cambio el oscilador interno del PIC16F628???
« Respuesta #4 en: 10 de Septiembre de 2018, 15:05:04 »
Seguimos con mis problemas, hace tiempo pensaba que había solucionado el problema pero no es así. Estoy haciendo pruebas con un programa simple pero no doy con la tecla para seleccionar el oscilador interno de 48khz. En que falla????

Código: [Seleccionar]

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT & _DATA_CP_OFF & _LVP_OFF & _MCLRE_OFF
LIST    P=16F628A
INCLUDE  <P16F628A.INC>

CBLOCK  0x20
Status_temp
W_temp
segundos
ENDC


ORG    0x0000     
bsf STATUS,RP0
clrf TRISA
movlw b'00000011'
movwf TRISB
movlw b'00000000'
bcf STATUS,RP0
    movlw   0x07
    movwf   CMCON
BCF PCON, OSCF

mostrar
movlw d'1'
movwf segundos
movwf PORTA
movwf PORTB
call Retardo_50ms
clrf PORTA
clrf PORTB
call Retardo_50ms
goto mostrar

INCLUDE <RETARDOS.INC>
END
Disfruta de mi blog, hobbies y gadgets diferentes y poco comunes.

http://hobbiesygadgets.blogspot.com.es/

Desconectado Pinolillo16

  • PIC16
  • ***
  • Mensajes: 249
Re:Como cambio el oscilador interno del PIC16F628???
« Respuesta #5 en: 10 de Septiembre de 2018, 15:40:55 »
El registro PCON para cambio de frecuencia se encuentra en el banco 1. Recuerda que los PIC16F necesitas seleccionar el banco. En tu codigo estas en el banco 0 tratando de escribir al banco 1. Entonces muevete al banco 1 y cambia el bit. Debera funcionar.

Saludos

Desconectado Fulguitron

  • PIC16
  • ***
  • Mensajes: 122
    • Disfruta de mi blog, hobbies y gadgets diferentes y poco comunes.
Re:Como cambio el oscilador interno del PIC16F628???
« Respuesta #6 en: 10 de Septiembre de 2018, 16:30:59 »
Lo pongo con la boca pequeña, pero creo que me ha salido (obviamente con vuestra ayuda, sino aún estaría despotricando a todo lo que me rodea, no os pasa de vez en cuando?  :lol: :lol: :lol:)
Os dejo el código, el cambio es notable, el led parpadea muchísimo más lento.
Gracias a todos.
Código: [Seleccionar]
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT & _DATA_CP_OFF & _LVP_OFF & _MCLRE_OFF
LIST    P=16F628A
INCLUDE  <P16F628A.INC>

CBLOCK  0x20
Status_temp
W_temp
segundos
ENDC


ORG    0x0000      ; Vector de reset
bsf STATUS,RP0
clrf TRISA
movlw b'00000011' ; Configurado como salidas excepto los dos primeros.
movwf TRISB
movlw b'00000000' ; Configurado como salidas
bcf PCON,OSCF
bcf STATUS,RP0
    movlw   0x07
    movwf   CMCON
mostrar
movlw d'1'
movwf segundos ; mostramos las horas por el display de leds.
movwf PORTA
movwf PORTB
call Retardo_50ms
clrf PORTA
clrf PORTB
call Retardo_50ms
goto mostrar

INCLUDE <RETARDOS.INC>
END
Disfruta de mi blog, hobbies y gadgets diferentes y poco comunes.

http://hobbiesygadgets.blogspot.com.es/