Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Retomando el mundo PIC
#81
Bits de configuración Guiño En proteus probablemente los ignore y meta el oscilador que configuras, pero "en la vida real" has de configurarlos... En la datasheet tienes todas las opciones. Acuérdate no sólo de seleccionar el oscilador interno si no también de la frecuencia a la que quieres que trabaje.
Citar
#82
Yo siempre he usado oscilador externo ... pero si, tiene interno para frecuencias no muy altas.
Se configura con los Fuses
Citar
#83
Thorontir escribió:Bits de configuración Guiño En proteus probablemente los ignore y meta el oscilador que configuras, pero "en la vida real" has de configurarlos... En la datasheet tienes todas las opciones. Acuérdate no sólo de seleccionar el oscilador interno si no también de la frecuencia a la que quieres que trabaje.

La simulación de proteus era para comprobar que el problema no viniese del código, no vaya a ser que estuviera algo mal y me rompiera la cabeza por otro lado, ya me entiendes, muchas vences lo mas simple lo pasamos por alto porque suponemos que esta bien y es donde esta el fallo. Confundidois1:


cansi22 escribió:Yo siempre he usado oscilador externo ... pero si, tiene interno para frecuencias no muy altas.
Se configura con los Fuses

He utilizado una frecuencia de 4Mhz pero por lo que me decís el problema van a ser los FUSES. No tengo oscilador externo por eso quiero hacerlo funcionar con el interno, aunque tocara ir a comprar uno y un par de condensadores. Sisi3


Un par de saludos Mola Mola
Citar
#84
¿Que compilador usabas? Que el interno me suena que podía ir a 4MHz (Y te ahorras el viaje). Si no, a 8 seguro, y no cambia tanto Gran sonrisa

Por ejemplo, en xc8 sería algo como

#pragma config FOSC = INTOSC_HS

Y los otros los tendría que mirar. Voy a pegarle un ojo que estoy mayor ya y se me olvidan las cosas. De todos modos, el "camino a seguir" es el siguiente:

resim

Vale, si puedes ir a 4MHz con el interno. Todo está en la datasheet Sonrisa

EDIT: Estoy empanado. En MPLAB X es más sencillo: Ve al tab de config bits (Si estás usando MPLABX, vaya) y verás esto:

resim

Los configuras a tu gusto, y cuando lo tengas todo, le das a "Generate Source Code to Output" y te abrirá un tab con el texto para copiar y pegar.

En este caso, si no me equivoco, la parte importante es:

#pragma config FOSC = INTOSC_HS

por ejemplo.

Luego la velocidad ya la pones en el código (Puedes variarla durante la ejecución, por ejemplo puedes pasar al oscilador RC en vez de dormir y cosas así)

En este caso:

resim

en c18 seguro, e imagino que en xc8 será igual, sería algo como OSCCONbits.IRCF = 6 // (110) = 4MHz

EDIT2: Y ya que estás, para ir sobre seguro, OSCCONbits.SCS = 2, que lo tendrá por el #pragma config de antes, pero nunca está de más :mrgreen:

EDIT3:

ClioS escribió:
cansi22 escribió:Yo siempre he usado oscilador externo ... pero si, tiene interno para frecuencias no muy altas.
Se configura con los Fuses

He utilizado una frecuencia de 4Mhz pero por lo que me decís el problema van a ser los FUSES. No tengo oscilador externo por eso quiero hacerlo funcionar con el interno, aunque tocara ir a comprar uno y un par de condensadores. Sisi3


Un par de saludos Mola Mola

Lo de los fuses / config bits / Llamalos como quieras, es algo independiente del oscilador interno, externo, etc. Vas a tener que mirarlo igualmente Guiño De hecho, hay algunos que al final pondrás por costumbre (El del reset, el de watchdog) o incluso puedes hacerte un "esqueleto de proyecto" o una plantilla, llámalo como quieras, con los includes que metas siempre (Yo por ejemplo metía siempre las definiciones de estructuras que usaba en C18 para poder acceder a bits sueltos como un byte, por ejemplo) los defines (Si prefieres que un nop se "escriba como antres" (En C18 era Nop(); y no NOP(); como en xc8) pues te lo defines tu) e incluso los config bits típicos. Es un poco de lío al principio, pero realmente no tiene mucha historia cuando coges algo de maña...
Citar
#85
En mi caso uso el 16F877A aunque también tengo el 18F2550, pero me sirve de mucha ayuda todo lo que acabas de explicarme. Utilizo el pikit3 directamente pero también tengo el MPLABX así que mirare por el.
Como bien dices me parecerá lioso al principio (como todo lo que se desconoce) pero con paciencia y tiempo no habra problema, sobre todo paciencia Confundidois1:

EDITO: No tengo oscilador interno con el 16 :dale2: así que probare con el 18 que no tengo ganas de salir ahora a comprar un cristal.

EDITO2: Ya puesto a comprar un cristal... ¿tengo que fijarme en la frecuencia de operación para saber el máximo que soporta mi pic?
En el caso del 16 es 20Mhz y del 18 de 48Mhz.

Saludos Mola
Citar
#86
Ojo, ClioS... No es tanto la frecuencia de operación como la de entrada la que tienes que mirar. De hecho, el 2550 puede "trucarse" para ir a 96, si no recuerdo mal. Pero eso no implica que le puedas meter esa frecuencia. Fíjate en esta tabla de la datasheet:

resim

Como ves, para una frecuencia de cristal se pueden obtener muchas frecuencias de trabajo. ¿Por que te digo esto? Por que suele ser más sencillo tener un tipo de cristal "para todo" y luego usar los bits de configuración para trabajar a la frecuencia que quieras. Quiero decir, si estás en una empresa pues usas lo más apropiado, pero en esto, para ti, no vale la pena calentarse la cabeza. Pues comprar cristales de 4MHz y luego usar el PLL si quieres ir a más velocidad, o comprar de 12 y dividir/multiplicar según lo que necesites... Esto te ahorra tener que tener un montón de componentes "parecidos" (No sólo los cristales, según la precisión que necesites también tendrías que pillar condensadores apropiados para cada frecuencia...) y puedes tener "uno estándar" y ya dentro del micro trastear con la frecuencia.

Por cierto, se que las datasheets son un tocho que no veas, pero en serio, vale mucho la pena "ir conociéndolas". Por ejemplo, en este caso, leerte todo el capítulo del oscilador puede hacer que tengas mucho más claro el tema (Y ver que diferencia hay, por ejemplo, entre XT, HS, etc... igual que ver que cuando pones el oscilador interno, en esos pines del externo puedes hacer muchas cosas... )

Por ejemplo, si te siente valiente, podrías practicar con algo "relativamente" sencillo: configurar el pic18 con el oscilador interno, sacar la señal por uno de los pines:
resim

Y usar esa señal (Ojo, dividida por 4, ergo si quieres que el pic16 vaya a 4MHz tendrías que ponerle 16MHz al pic18) como entrada de reloj en el pic16
resim

Y ahí tienes, un cristal grande para tu pic16 Lengua
Citar
#87
Me gusta el reto... usar el pic 18 para crear un oscilador que utilizara el pic 16... :aplauso:
Lo que me motiva es que voy entendiendo lo que me vas diciendo...algo es algo ¿no? Confundidois1:

Saludos y un millón de gracias Mola
Citar
#88
Pues estando motivado, ya tienes gran parte del trabajo hecho. Verás como una vez te pones a ello, esto es más de trabajar metódicamente que de tirar "de genio". ¿Que es absurdo usar un micro únicamente para hacer de reloj de otro? Si, probablemente. Pero mola hacerlo. ¿Por qué? Por que podemos 8-) Y al final, si haces físicamente que la señal de reloj "viaje" entre varios circuitos, se modifique y demás, estás haciendo lo mismo que hace el micro en su interior con PLLs, divisiones y tal, y por tanto te quedará más claro.

Y luego cosas como mirar en la datasheet para ver valores de registros y tal: Por cosas como estas mola "trabajar a bajo nivel". ¿Que mi compilador/IDE tiene un wizard en el que le digo de cuanto es mi cristal y a cuanto quiero ir y me lo calcula? Cojonudo, es cómodo y lo acabarás usando. Pero haber tenido que trastear con los registros antes para saber "que se hace", o "donde se hace" te da ese plus de conocimiento que, en caso de fallo, te puede salvar (Al menos puede salvar tu cordura :mrgreen: )
Citar
#89
Estoy de acuerdo en todo lo que dices, lo que hay que hacer es ver como funcionan las cosas y "trastear" que es como se aprende, no sirve de nada encontrar hecho lo que quieres hacer, lo que sirve (aunque te cueste parte de la cordura :mrgreen: ) es pelearte con ello y conseguirlo por ti mismo, al principio cuesta pero una vez le cojas el truco ira todo viento en popa y es cuando te gustara mas trastear con ello.
Pero vayamos paso a paso... pelea con C18 y su osc interno. Sisi3

Saludos Mola
Citar
#90
No sabia muy bien donde poner esto, pero por casualidad me ha dado por mirar si seguía vivo Pinguino y para mis sorpresa... hace unos dias sacaron la IDE v11 y poco a poco van sacando mas librerias, algo de HW nuevo. Asi que parece que algo tira, no tiene mucha actividad, pero algo van haciendo.

http://blog.pinguino.cc/
Citar