Autor Tema: Reloj secundario PIC24F16KM202  (Leído 2783 veces)

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

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Reloj secundario PIC24F16KM202
« en: 06 de Julio de 2016, 14:34:39 »
Estoy intentando hacer funcionar un PIC24F16KM202 (de 16 bits) con un oscilador externo inyectando la señal a través del oscilador secundario.
Cuando la señal de reloj la inyecto en el oscilador primario (RA2/CLKI), todo va bien y el pic trabaja sin problema.
Cuando intento inyectar la señal de reloj en RA4/SCLKI, el microprocesador no funciona.

He cambiado la configuración de fuses y la configuración del reloj, pero sigue sin funcionar.


Configuración:
Código: C
  1. /* Register FOSCSEL (0xf80006)                               */
  2. /*
  3. **
  4. **   Oscillator Select:
  5. **     FNOSC_FRC            Fast RC Oscillator (FRC)
  6. **     FNOSC_FRCPLL         Fast RC Oscillator with Postscaler and PLL Module (FRCDIV+PLL)
  7. **     FNOSC_PRI            Primary Oscillator (XT, HS, EC)
  8. **     FNOSC_PRIPLL         Primary oscillator with PLL Module (HS+PLL, EC+PLL)
  9. **     FNOSC_SOSC           Secondary oscillator (SOSC)
  10. **     FNOSC_LPRC           Low Power RC oscillator (LPRC)
  11. **     FNOSC_LPFRC          500kHz Low-Power FRC oscillator with Postscaler(LPFRCDIV)
  12. **     FNOSC_FRCDIV         8MHz FRC oscillator With Postscaler (FRCDIV)
  13. **
  14. **   SOSC Source Type:
  15. **     SOSCSRC_DIG          Digital Mode for use with external source
  16. **     SOSCSRC_ANA          Analog Mode for use with crystal
  17. **
  18. **   LPRC Oscillator Power and Accuracy:
  19. **     LPRCSEL_LP           Low Power, Low Accuracy Mode
  20. **     LPRCSEL_HP           High Power, High Accuracy Mode
  21. **
  22. **   Internal External Switch Over bit:
  23. **     IESO_OFF             Internal External Switchover mode disabled (Two-speed Start-up disabled)
  24. **     IESO_ON              Internal External Switchover mode enabled (Two-speed Start-up enabled)
  25. **
  26. */
  27. _FOSCSEL(FNOSC_SOSC & SOSCSRC_DIG & LPRCSEL_HP & IESO_ON)

Oscilador:
Código: C
  1. __builtin_write_OSCCONH(0x04);   // Secondary Oscillator (SOSC)
  2.    __builtin_write_OSCCONL(0x01);   // Oscillator Switch Enable bit




¿Alguna idea?

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Reloj secundario PIC24F16KM202
« Respuesta #1 en: 06 de Julio de 2016, 14:55:24 »
Un par de preguntas, que estas poniendole en los pines de ese oscilador? Ademas tambien la frecuencia, por que le SOSC esta preparado para unos 32Khz creo.

Si es digital, A que pin lo estas conectando ? es el SOSCO (RA4 pin 12 en PDIP).

Luego del ultimo build_write_ deberias tener un while hasta que se ponga a 0 el bit
« Última modificación: 06 de Julio de 2016, 15:02:32 por KILLERJC »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Reloj secundario PIC24F16KM202
« Respuesta #2 en: 06 de Julio de 2016, 15:16:46 »
Le estoy conectando un oscilador externo de 10Mhz de señal digital (CMOS), con el que quiero que trabaje el PIC.
Lo estoy conectando al RA4/SCLKI/SOSCO. Aunque también lo he conectado al RB4/SOSCI por si acaso funcionaba ahi.
En los dos casos no funciona.
La conexión la hago con una resistencia de 180 Ohm para no estropear el oscilador o el microcontrolador en caso de error.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Reloj secundario PIC24F16KM202
« Respuesta #3 en: 06 de Julio de 2016, 15:17:57 »
En el datasheet no he encontrado la frecuencia máxima de esa entrada de reloj:
http://ww1.microchip.com/downloads/en/DeviceDoc/33030a.pdf


Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Reloj secundario PIC24F16KM202
« Respuesta #4 en: 06 de Julio de 2016, 15:21:08 »
Lo que si he probado es a contar pulsos de 10MHz provenientes del oscilador secundario (SOSC) con un módulo CCP y los cuenta sin problemas (trabajando con el reloj en el oscilador primario)

De manera que el pin funciona como entrada sin problemas a 10MHz, pero no funciona como oscilador secundario o no soy capaz de configurarlo para ello.

Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Reloj secundario PIC24F16KM202
« Respuesta #5 en: 06 de Julio de 2016, 15:52:06 »
En el datasheet no he encontrado la frecuencia máxima de esa entrada de reloj:
http://ww1.microchip.com/downloads/en/DeviceDoc/33030a.pdf

Yo tampoco, solo la del oscilador ( preparado para cristal de 32K ) , pero no habla nada de poder insertar pulsos externos como reloj, el unico que puede hacer eso es el oscilador primario en modo EC. pero no el secundario. Por eso mismo mi suposicion es que al activar en los fuses el tema del SOSC, intenta usar el oscilador que trae incorparado para esos 32Khz, es decir que no se le pueda poner cualquier frecuencia.

Para el manejo del timer eso no importaria. Ya que iria por otro camino. No tenes un oscilador con salida digital que envie los 32k a ese pin ?

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Reloj secundario PIC24F16KM202
« Respuesta #6 en: 06 de Julio de 2016, 15:59:17 »
Si, pero quiero que trabaje con un oscilador de precisión de 10MHz.
En principio en los fuses hay una opción que da a entender que se puede inyectar una señal externa:
(Página 250 del manual)
FOSCSEL: OSCILLATOR SELECTION CONFIGURATION REGISTER
bit 5 SOSCSRC: Secondary Oscillator Clock Source Configuration bit
        1 = SOSC analog crystal function is available on the SOSCI/SOSCO pins
        0 = SOSC crystal is disabled; digital SCLKI function is selected on the SOSCO pin

SCLKI = Secondary Clock Digital Input

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Reloj secundario PIC24F16KM202
« Respuesta #7 en: 06 de Julio de 2016, 16:10:11 »
Si y te entiendo, pero luego no dice mas nada, y de lo unico que habla es del SOSC pero con oscilador.

Busque en las caracteristicas electricas del PIC, tampoco aparece nada, y del SOSC lo unico que nombra es la frecuencia que soporta el oscilador, el cual no nos importa, pero no hay ninguna otra definicion sobre una señal de entrada digital indicando su minimo y maximo.

Oscilador del PIC24
http://ww1.microchip.com/downloads/en/DeviceDoc/39726a.pdf
« Última modificación: 06 de Julio de 2016, 16:20:49 por KILLERJC »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Reloj secundario PIC24F16KM202
« Respuesta #8 en: 07 de Julio de 2016, 08:36:27 »
Voy a probar con una señal de 31kHz a ver si así funciona.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Reloj secundario PIC24F16KM202
« Respuesta #9 en: 07 de Julio de 2016, 17:07:09 »
Con 31kHz tampoco funciona. El PIC se queda parado del todo.
Es extraño porque en caso de no funcionar el oscilador secundario, el propio pic debería comenzar a funcionar con el oscilador interno.

Creo que estoy configurando mal algún fuse.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Reloj secundario PIC24F16KM202
« Respuesta #10 en: 08 de Julio de 2016, 15:47:17 »
He conseguido que funcione con 31kHz.
Configurando los fuses para que el oscilador secundario trabaje con un cristal, funciona al inyectarle una señal de baja frecuencia. Con señales de alta frecuencia no funciona.
Si configuro los fuses para que no funcione con oscilador sino con una señal externa, no funciona a ninguna frecuencia.

Código: [Seleccionar]
**   SOSC Source Type:
**     SOSCSRC_DIG          Digital Mode for use with external source
**     SOSCSRC_ANA          Analog Mode for use with crystal
Sólo funciona con SOSCSRC_ANA y sólo para señales de baja frecuencia.

Un saludo

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Reloj secundario PIC24F16KM202
« Respuesta #11 en: 08 de Julio de 2016, 20:18:52 »
Que raro.. es Como si te obligara a tener el oscilador :/

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Reloj secundario PIC24F16KM202
« Respuesta #12 en: 09 de Julio de 2016, 08:04:39 »
Si. Después de muchas pruebas, la entrada SCLKI sólo funciona si se activa el oscilador.
Con la opción de entrada de señal desde una fuente externa (fuse SOSCSRC_DIG) no funciona de ninguna manera ni con ninguna frecuencia.

La frecuencia máxima que admite con oscilador (fuse SOSCSRC_ANA) es de aproximadamente 1.8MHz. Por encima de ese valor, el PIC se bloquea.

No voy a poder meter por lo tanto la señal de precisión de 10MHz que quería. Tendré que buscar otra solución.


 

anything