Autor Tema: 16F876, se me escapa algo  (Leído 3687 veces)

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

Desconectado satandreu

  • PIC10
  • *
  • Mensajes: 10
16F876, se me escapa algo
« en: 18 de Mayo de 2009, 19:29:07 »
Buenas de nuevo,

vuelvo a la carga porque llevo un par de meses intentando dar con el problema pero no he sido capaz. Por necesidad de más puertos migré de un 16F628A a un 16F876. Adapté todo el programa a la nueva distribución de puertos, reconfiguré el oscilador y la configuración de los fuses, pero no funcionó. He ido simplificando el código hasta llegar a un simple bucle que enciende y apaga un led en RB0 cada medio segundo.

He probado con cristales de 12 y 20 y con condensadores de 15, 22, 27 y 33 pF, pero solo he conseguido una cadencia de parpadeo que nada tiene que ver con medio segundo. He testeado 5 pics, con lo cual descarto que sea problema del pic. Dependiendo del código que escribo hace cosas diferentes, por ejemplo:

loop:
portb.0 = 1
waitms 500
portb.0 = 0
waitms 500
goto loop

Con esta simple rutina el led queda siempre prendido;

loop:
toggle portb.0
waitms 500
goto loop

Con esta rutina parpadea, pero no cumple ni de coña el medio segundo.

Desde mi ignorancia, deduzco que es un problema de calibración de tiempo, pero por más que me leo el ds del pic no logro dar con la solución. ¿Alguna idea?.

Como siempre, gracias de antemano.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: 16F876, se me escapa algo
« Respuesta #1 en: 18 de Mayo de 2009, 21:44:21 »
No tengo ningún Pic16F876 para probar, de todas formas prueba con este código básico.

'*** PIC16F876
'*** A 20 Mhz
Define CONF_WORD = 0x3d32  'Configuracion bit
Define CLOCK_FREQUENCY = 20  'Cristal a 20Mhz
AllDigital  'Todos los pin I/O
TRISA = 0x00  'PortA como salidas
TRISB = 0x00  'PortB como salidas
TRISC = 0x00  'PortC como salidas
loop:
   PORTB.0 = 1
   WaitMs 500
   PORTB.0 = 0
   WaitMs 500
Goto loop
End 
Saludos desde Granada, España.

Desconectado satandreu

  • PIC10
  • *
  • Mensajes: 10
Re: 16F876, se me escapa algo
« Respuesta #2 en: 19 de Mayo de 2009, 07:16:44 »
Ya lo probé y no funcionó. Volviendo a buscar por internet he encontrado una página donde alguien tenía los mismos problemas pero con un 16F877A. Parecer ser que aunque el ds diga que permite cristales de 20Mhz solo acepta cristales de 4Mhz. La clave pasa por leer el código de producto del pic, si dice algo parecido a 16F876-20 si acepta los 20Mhz pero lo más seguro que ponga 16F876-04 es decir, solo 4Mhz. Hasta ahora desconocía este dato.

Hasta el viernes no volveré a casa para salir de dudas. Una duda más, ¿es posible que haya averiado los pics si le he puesto un cristal que no le corresponde?, más que nada lo pregunto por si he de comprar unos nuevos.

Saludos.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: 16F876, se me escapa algo
« Respuesta #3 en: 20 de Mayo de 2009, 19:49:51 »
Hay series en las que dice 4 y funcionan bien a 20, esto es una lotería. Este es un tema ya viejo en el foro y hay todo tipo de experiencias. Por ejemplo, los PIC16F877A-I/P que son muy fáciles de conseguir en España los utilizo a 20Mhz y me funciona sin problemas. También tengo unos PIC16F876-04/SP que me funciona perfectamente a 20Mhz y, también tengo algunos PIC16F628-04/P funcionando con cristal de 20Mhz y funciona perfectamente.
Otro tema es que si tuviera que producir series para la venta, pues claro que utilizaría los correctos ya que a la larga puede que den problemas.
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: 16F876, se me escapa algo
« Respuesta #4 en: 20 de Mayo de 2009, 20:03:23 »
PD. De todas formas también tengo PIC16F876-20/SP que conseguí fácilmente también en la península.
Y cuando me refería que no tenia PIC16F876 a mano me refería a que no tengo una placa de pruebas actualmente operativa para poder probarlos.
Saludos desde Granada, España.

Desconectado satandreu

  • PIC10
  • *
  • Mensajes: 10
Re: 16F876, se me escapa algo
« Respuesta #5 en: 20 de Mayo de 2009, 22:40:58 »
La verdad es que al tener poca experiencia en este mundillo ando bastante perdido, y cuando consigo que las cosas funcionen es más por haber hecho mil pruebas que por conocimiento, pero me choca que teniendo 5 pics comprados en 2 sitios diferentes los 5 me den el mismo fallo. He leído unas cuantas veces el apartado de la cpu del ds del micro y no he encontrado o no he sabido encontrar la solución. Esto ya es una guerra entre el micro y yo que espero ganar.

Saludos.

PD: La placa de pruebas es la siguiente inversión que tengo que realizar junto con un programador por usb.