TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Minu en 15 de Octubre de 2008, 14:35:29
-
Hola...sin conseguirlo he intentado varias veces hacer parpadear un led.
El pic utilizado es el 16f628-04,posteriormente y obteniendo el mismo resultado,lo he probado con el 16F877A-1.
Este es el programa:
Define CONF_WORD = 0x3f50
AllDigital
TRISA = %11111111
TRISB = %00000000
loop:
PORTB.3 = 1
WaitMs 500
PORTB.3 = 0
WaitMs 500
Goto loop
En el pic simulator ide he seleccionado correctamente el pic,frecuencia del reloj 4.0 Mhz. Configuration bits,la he dejado por defecto dandole a generate basic code.
Depues en la ventana de basic compiler,una vez escrito el codigo,le he dado a tools,compile & assemble para que genere los archivos correspondientes
Con una aplicaion llamada MicroPro he abierto el archivo *.hex, "en esta aplicacion tambien he seleccionado el pic correctamente", y lo he mandado al pic usando un programador usb.
Aparentemente hasta aqui todo es correcto.
En la protoboard he alimentado el microcontrolador con +5V en Vdd y -5V en Vss,la resistencia conectada a portb.3(pin9),a continuacion de ella el led(siempre respetando la polaridad),el otro extremo del led conectado a Vss. He chekeado haciendo lucir el led conectado a la resitencia,el led funciona correctamente.
Pues bien,seguramente me he dejado algo por poner,asi que ojala quieran darme una ayudita para poder continuar.
Gracias y un saludo.
-
He mirado lo que has echo y solo encuentro una cosa:
en Vss, ¿has puesto -5 o 0?
vss debe de estar a 0V (masa)
no se si es eso, por lo demas esta bien
-
Hola misstreated,uso un pack de 4 pilas recargables 1.2V,en total 4.8V,imagino que será suficiente,¿o por el contrario tiene que ser 5V?
EL positivo lo pongo a Vdd y el negativo a Vss
Gracias y un saludo
-
Ok entonces eso esta bien, si estan bien cargadas las baterias no debes tener problemas , yo para probar uso tambien baterias (4,8 v).
¿estas seguro que grabas bien el pic? puede ser que no este bien grabado , de todas formas, comprueba en el programa que usas para grabar el pic usa la configuracion del pic (reloj interno , etc)
otra cosa, prueba a poner todos los pines como salida (el puerto A tambien) o a ponerle resistencias de 10k desde el pin a masa (una a cada pin de entrada).
-
Y el pin de MCLR esta con una resistencia de 10K? O has deshabilitado el uso de MCLR?
-
Y el pin de MCLR esta con una resistencia de 10K? O has deshabilitado el uso de MCLR?
Yo por lo que veo aqui "Define CONF_WORD = 0x3f50" el MCLR esta desabilitado lo mismo ye tiene habilitado el reloj interno del pic. Lo unico que me da por pensar es en el puerto A que esta como entrada y notiene puesto ninguna resistencia,.
-
Mejor prueba con el 16F628, porque el 16F877 no tiene la posibilidad de desactivar MCLR, ni oscilador interno.
Y prueba también cambiando la configuración por 3F11, para desactivar el BOR, por si estás teniendo problemas de tensión, y para sacar los pulsos de reloj por CLKOUT.
¿Puedes medir lo que hay en CLKOUT cuando el PIC está corriendo?
Por cierto, ¿de qué valor es la resistencia que conectas al LED?
-
He probado de poner todos los puertos como salidas.Carezco de tantas resistencias de 10k,en cuanto pueda ire a comprar unas cuantas para probar lo de poner los bits del puerto A como entradas con resistencias.
El mcrl lo tengo deshabilitado...creo,de tal manera que ese pin estaba como digital I/O
He probado dejando habilitado y deshabilitado mcrl teniendo una resistencia de 10k en el pin correspondiente,la R puesta a masa claro.
El valor de la resistencia es de 150 ohmios,utilizo un led verde.
Ahora me pondre a probar de cambiar la configuracion a 3f11 e intentare medir el clkout,mas tarde os comento.
-
Siiiiiiiiii......despues de 3 dias intentandolo,me habia desmoralizado un poco,ya funicona el dichoso led,que bieeen !!!!
Este es el programita:
Define CONF_WORD = 0x3f11
TRISA = %11111111
TRISB = %00000000
loop:
PORTB.3 = 1
WaitMs 500
PORTB.3 = 0
WaitMs 500
Goto loop
Aunque no termino de entender el por que de 0x3f11.
Gracias por la ayuda,de veras,ahora ya puedo continuar experimentando en este fascinante mundillo.
Gracias y saludos.
-
Lo que hemos desactivado al poner 3F11 es el fuse BOR (Brown Out Reset) que resetea el micro si la tensión de alimentación cae por debajo de determinado nivel durante determinado tiempo. Puedes verlo en el apartado 14.5.4 de la datasheet.
Al desactivarlo no desaparece tu problema de alimentación, simplemente lo ignoras, por lo que deberías revisarlo.
-
He leido la hoja de datos. He realizado un checkeo y efectivamente,la tension de trabajo se encontraba bastante baja,concretamente 4V. Es lo que ocurre por usar pilas recargables :(
Gracias de nuevo. :-)
-
Lo que hemos desactivado al poner 3F11 es el fuse BOR (Brown Out Reset) que resetea el micro si la tensión de alimentación cae por debajo de determinado nivel durante determinado tiempo. Puedes verlo en el apartado 14.5.4 de la datasheet.
Al desactivarlo no desaparece tu problema de alimentación, simplemente lo ignoras, por lo que deberías revisarlo.
no hay nada como leer a los que saben. buena informacion y gracias por ella