TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Trino en 15 de Febrero de 2007, 14:14:26

Título: Pic 18f45j10
Publicado por: Trino en 15 de Febrero de 2007, 14:14:26
Hola a todos soy nuevo en el foro y queria consultar una duda que tengo que me lleva ya varios dias con dolores de cabeza. Yo siempre he trabajado con los PIC's de la serie 16 y no me han dado practicamente ningún problema pero ahora tengo que trabajar con el 18f45j10 y tengo serios problemas para hacerlo funcionar. Ya he ojeado bastante bien el datasheet de microchip pero puede que me quede algo sin pulir. Para programar este PIC estoy utilizando el MPLAB ICD2 pero creo que no me lo programa bien ya que cuando estoy programandolo me saltan varios warnings pero que apesar de eso el programa indica que si que lo ha programado.
Si alguien me pudiera ayudar le estaria muy agradecido.
Saludos a todos.
Título: Re: Pic 18f45j10
Publicado por: vszener en 15 de Febrero de 2007, 14:20:33
Quizás sea problema de tú código, subelo para que se pueda revisar.



Suerte!!! ;)
Título: Re: Pic 18f45j10
Publicado por: Trino en 15 de Febrero de 2007, 14:37:39
Lo que estoy probando es la comunicacion entre dos pic's via I2C el programa lo realice anteriormente para un 16f877 y funcionaba pero al realizar los cambios necesarios quedo:
;PIC ESCLAVO
;PROGRAMA QUE REALIZA EL PROTOCOLO DE COMUNICACION I2C EN MODO ESCLAVO

   LIST P=PIC18F45J10
   #include P18F45J10.INC


         ORG      0000H      
         GOTO   INICIO   
         ORG      0008H

         CALL   INTERR
         MOVLW   B'11000000'
         MOVWF   INTCON      
         RETURN

      
INICIO

         
         MOVLW   B'00011000'      ;CONFIG COMO I2C_RC3,RC4
         MOVWF   TRISC      
         MOVLW   B'00001000'      ;HABILITA LA INTERR I2C
         CLRF   TRISB
         MOVWF   PIE1
         MOVLW   B'01000000'      ;DIRECCION DEL ESCLAVO
         MOVWF   SSP1ADD
         BSF   PORTB,7
         MOVLW   B'00110110'      ;HABILITA MODULO I2C
         MOVWF   SSP1CON1
         MOVLW   B'11000000'      ;HABILITA INTERR GLOBAL      
         MOVWF   INTCON
   
CICLO      GOTO   CICLO         



;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;SUBRUTINA DE INTERRUPCION POR LLEGADA DE DATOS EN I2C
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
INTERR      BTFSS   PIR1,3         ;PREGUNTA INTERR I2C
         RETURN   
         BCF      PIR1,3         ;PONE A 0 BANDERA DE INTERR I2C
         BTFSC   SSP1STAT,5
         GOTO   DATOS

DIRECCION   BCF      SSP1STAT,0      ;CLAREA LA BANDERA BF
         CLRF   SSP1BUF         ;CLAREA LA DIRECCION RECIBIDA
         BCF      SSP1CON1,6      ;CLAREA LA BANDEERA SSPOV
         RETURN


DATOS      BCF      SSPSTAT,0      ;CLAREA LA BANDERA BF
         MOVF   SSP1BUF,0      ;MUEVE EL DATO RECIBIDO AL WORK
         MOVWF   PORTB         ;MUESTRA EL DATO POR EL PUERTO B
         CLRF   SSP1BUF
         BCF      SSP1CON1,6      ;SE CLAREA LA BANDERA SSPOV
         RETURN


         END   


Y el codigo del maestro es similar si me lo pedis tambien lo subiré pero la cuestion es que no hace absolutamente nada a pesar de que yo indico que se encienda un LED del por RB7 de antemano antes de esperar la señal del maestro.

Gracias por la contestacion
Saludos
Título: Re: Pic 18f45j10
Publicado por: maunix en 15 de Febrero de 2007, 14:40:20
Trino, la migración no es tan simple como parece.  Una vez que hagas andar al pic ya el resto sí será más fácil pero precisamente es en esto de 'hacerlo andar' donde difieren más un 16F y un 18FxxJxx

¿usas el capacitor de Vddcore/vcap?  Si no es así, te sugiero leas en el datasheet la sección 20.3 On-Chip Voltage Regulator.

¿Has leído del registro OSCTUNE y OSCCON ?


Saludos

Título: Re: Pic 18f45j10
Publicado por: Trino en 16 de Febrero de 2007, 06:06:18
La verdad es que no, voy a echarle un vistazo y ya os comento.
Muchisimas gracias
Título: Re: Pic 18f45j10
Publicado por: Trino en 19 de Febrero de 2007, 07:02:36
Hola a todos, ya he revisado los registros OSCTUNE y OSCCON y ya uso el capacitor de Vddcore/vcap pero lo he probado con mi proyecto y sigue sin funcionas. He probado a hacer un programa muy sencillo para ver si me funciona el programador y los pic's, es un programa muy sencillo en el que enciendo unos LED's, es el siguiente:
   
                List P=PIC18F45J10
   #include P18F45J10.INC
   
         ORG      0000H      
         GOTO   INICIO   
         ORG      0018H

      
INICIO
   MOVLW   0xFF
   MOVWF   BSR
   MOVLW   B'00001010'
   MOVWF   OSCCON
   BCF      OSCTUNE,PLLEN
   MOVLW    B'01000000'
   MOVWF   TRISB
   BSF      PORTB,0
   BSF      PORTB,1
   BSF      PORTB,2
   BSF      PORTB,3
   BSF      PORTB,4
   BSF      PORTB,5

   END

Al cargarlo en el PIC sigue sin funcionar si alguien sabe a que se debe le agradecería muchisimo su ayuda.
Estoy utilizando un cristal de cuarzo de 4 Mhz con condensadores de 27 pF como dice en el datasheet y he confugurado para que trabaje solo con el oscilador primario.
Gracias por su ayuda y su tiempo.
Título: Re: Pic 18f45j10
Publicado por: maunix en 19 de Febrero de 2007, 11:41:22
Trino, he aquí un ejemplo que debiera funcionar.

Código: ASM
  1. List P=PIC18F45J10
  2.         #include "P18F45J10.INC"
  3.  
  4.  
  5.         config DEBUG   = OFF
  6.         config XINST   = OFF
  7.         config STVREN  = ON          ; Stack Overflow/Underflow Reset = encendido
  8.         config WDTEN   = OFF         ; Watchdog apagado
  9.         config CP0     = OFF         ; Code protection deshabilitados
  10.         config FCMEN   = OFF         ; fail safe clock monitor
  11.         config IESO    = OFF
  12.         config FOSC2   = ON
  13.         config FOSC    = HS          ; Osc section bits
  14.         config WDTPS   = 1
  15.         config CCP2MX  = DEFAULT
  16.  
  17.  
  18.  
  19.    
  20.         ORG     0000H      
  21.         GOTO    INICIO  
  22.  
  23.  
  24.         ORG     0100H
  25. INICIO
  26.         MOVLW   0xFF
  27.         MOVWF   BSR
  28.         MOVLW   B'00000000'        
  29.         MOVWF   OSCCON
  30.         movlw   b'00000000'         ;PLLen OFF
  31.         movwf   OSCTUNE
  32.         MOVLW   B'01000000'
  33.         MOVWF   TRISB
  34.        
  35.        
  36.         BSF     LATB,0
  37.         BSF     LATB,1
  38.         BSF     LATB,2
  39.         BSF     LATB,3
  40.         BSF     LATB,4
  41.         BSF     LATB,5
  42.  
  43. LOOP:
  44.         goto    LOOP
  45.  
  46.         END


Además, dejame explicarte qué cosas veo con algún que otro problema en tu código.

1) Has definido un estado en OSCCON que es algo que el micro va a setear, tu solo dejalo en 0.
2) En el datasheet habla del modo HS y no XT, es decir que le debes poner al menos un cristal de 8MHz.  Lo de 4Mhz creo que es algo que han copiado/pegado de otro datasheet pero no debieras tenerlo en cuenta, al menos no por ahora hasta que no estes seguro de que el pic funciona bien a 8MHz.
3) Has iniciado el código en 0x0018.  Si bien no producirá ningún problema en este código, es la posición donde irán las interrupciones de bajo nivel de prioridad por lo cual te recomiendo que no lo ubiques ahí al código.
4) No hay un bucle infinito en tu software, luego de la última instrucción.  El pic seguirá ejecutando lo que haya en la memoria como NOP's hasta que se haga un overflow del Program Counter y se reinicie el software. Esto no es equivalente a que se reinicie el pic pero sí verás que el programa se ejecuta una y otra vez y para ciertas aplicaciones (o para la mayoría de las aplicaciones) esto inducirá a errores.
5) Cuando uses un puerto como salida, usa el correspondiente registro LATx del mismo.
6) No dejes al azar los configuration bits, hazlo tú manualmente desde el código siempre.  Esto es una buena costumbre que te evitará muchos dolores de cabeza ya que estos pics tienen muchas más opciones de configuración y errar alguna puede producir un problema.

Saludos
Título: Re: Pic 18f45j10
Publicado por: Trino en 19 de Febrero de 2007, 13:36:48
Muchisimas gracias por tu ayuda mauricio, pero que diferencia hay entre los puertos LAT y los PORT ya que segun he visto hacen los mismo.
Saludos y gracias.
Título: Re: Pic 18f45j10
Publicado por: maunix en 19 de Febrero de 2007, 15:34:57
Muchisimas gracias por tu ayuda mauricio, pero que diferencia hay entre los puertos LAT y los PORT ya que segun he visto hacen los mismo.
Saludos y gracias.

Para no escribir lo mismo varias veces, ve a este link donde se trató el tema.  Puntualmente puedes leer mis explicaciones.

http://www.todopic.com.ar/foros/index.php?topic=11553.0

Si aún tienes dudas, vuelve a preguntar.

Título: Re: Pic 18f45j10
Publicado por: Trino en 21 de Febrero de 2007, 06:49:27
Hola a todos de nuevo, ya tengo bastante claro el funcionamiento y la configuración.
Estoy utilizando un cristal de 8 Mhz con los condensadores correspondientes lo que no tengo muy claro es el valor de la resistencia que se pone que sale de OSC2 ni del condensador de VDDCORE/Vcap, que supongo que no tendran mucha importancia.
He cargado el programa que me paso maunix y sigue sin funcionarme, creo que es problema del programador.
Yo utilizo el MBLAB ICD2 sin aplicarle el adaptador que me saca 5v le conecto directamente sobre Vdd los 3,2 Voltios y a la hora de programar el pic me da varios warnings que son los siguientes:

MPLAB ICD 2 Ready
Programming Target...
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make sure that the target device is connected and properly powered. Select "OK" to continue, or "CANCEL" to abort the operation
...Validating configuration fields
...Erasing Part
...Programming Program Memory (0x0 - 0x7FF7)
Verifying...
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make sure that the target device is connected and properly powered. Select "OK" to continue, or "CANCEL" to abort the operation
...Program Memory
...Verify Succeeded
Programming Configuration Bits
ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make sure that the target device is connected and properly powered. Select "OK" to continue, or "CANCEL" to abort the operation
.. Config Memory
...Verify Succeeded
...Programming succeeded
21-Feb-2007, 10:37:08

Si alguien puede ayudarme le estaria muy agradecido porque ya no se que hacer.
Muchas gracias a todos.
Título: Re: Pic 18f45j10
Publicado por: maunix en 21 de Febrero de 2007, 08:40:19
1) El capacitor de VddCore/Vcap usa uno de 2.2uF , es más que suficiente
2) En el pin de Vpp, pon un diodo en sentido directo hasta el pin Vpp de tu ICD2. 


                       diodo
   PIC_pin1 ----    >|   -----  Pin Vpp ICD2


                         
3) Elige que el ICD2 no alimente el PCB sino que la alimentación esté en el pcb.

Me temo que si no elegiste bien estas opciones y si no tenías bien seleccionado tu 18F45j10 lo hayas quemado, por las siguientes razones.

a) No soportan 13V en el pin de Vpp cómo si lo hacen la mayoría de los pics
b) No soportan alimentación de 5V aunque sí toleran 5V en algunos de sus pines, incluyendo por supuesto los de programación.

Saludos


PD: no vendría mal que subieras un esquemático de cómo tienes armado tu circuito.  Saludos
Título: Re: Pic 18f45j10
Publicado por: Trino en 21 de Febrero de 2007, 12:31:35
Hola, el montaje que realizo os lo adjunto.

La opcion esa de que no alimente el ICD2 el PCB, no estoy seguro, pero si es la que esta en la barra de herramientas:
programmer-->settings y luego en la pestaña power, aparece un cuadro para seleccionarla que pone: Power target circuit from MPLAB ICD 2 (5V Vdd), que con el 18f45j10 no me deja seleccionarla si para otros pic de la serie 16 que he programado sin ningun problema.
No he encontrado en ningun sitio la opcion de la alimentacion para el VPP, ya que no se si sera la que he comentado antes.
Saludos y gracias
Título: Re: Pic 18f45j10
Publicado por: LABmouse en 21 de Febrero de 2007, 12:39:46
Trino el ICD2 que tienes es original? ya que si es asi, no es necesario colocar diodos en Vpp, hay que colocarlo directico a ICSP_VPP, tambien con el ICD2 original, debes "alimentar" tu con 3.3V el ICD2. digo alimentar entre comillas porque el realmente se alimenta del USB, pero necesita los 3.3v tuyos, para adecuar las señales de salida y para que el pueda sensar con cuanto estas alimentando el PIC.

A mi se me presentaron errores hasta el cansancio con un PIC 18LF254J10, hasta que encontre el error.

Midele el voltaje en el pin Vcore/Vcap. y nos comentas.



Quita el diodo 1n4148 y quita la resistencia de 100 en MCLR. El ICSP_VPP es de solo 3.3V, con eso le quitas voltaje.
Título: Re: Pic 18f45j10
Publicado por: Trino en 21 de Febrero de 2007, 12:49:31
El ICD2 que tengo si que es original, el esquema que he puesto es el del PIC ya puesto para trabajar.
Para programarlo lo conecto al programador universal y con una fuente aparte le introduzco los 3.3V por Vdd pero a la patilla Vddcore/Vcap no le pongo nada, esa patilla no la tengo conectada a la hora de programar el PIC.
Te refieres que tengo que alimentarla cuando estoy programando?
Yo he medido la tensión de Vddcore/Vcap una vez programado y obtengo 2.5V aproximadamente pero sigue sin funcionar nada.
Saludos y gracias a todos por su tiempo.
Título: Re: Pic 18f45j10
Publicado por: LABmouse en 21 de Febrero de 2007, 12:53:07
A un programador universal? eso quiere decir que le tienes una base para trabajar con el ICD2 con integrados Dip. Bueno pues en eso debe estar el problema. el capacitor de 2.2uF, debe estar en Vcap hasta cuando se va a programar. ahora la pregunta del millon.  Estas usando un 18F o un 18LF??

es posible saber el esquematico de esa base en la que colcoas el PIC para programarlo para ver si hay algun error en eso?
Título: Re: Pic 18f45j10
Publicado por: maunix en 21 de Febrero de 2007, 12:57:11
Trino, te propongo el siguiente esquema en el Pin1 (ver esquema).

El circuito de reset que usas es para un pic convencional, no para los 18Fxxjxx. 
La R20 tampoco es imperioso que esté allí.  Cambia el valor de tu R9 por 3k3.  Pon el diodo que te sugerí.

Trino el ICD2 que tienes es original? ya que si es asi, no es necesario colocar diodos en Vpp, hay que colocarlo directico a ICSP_VPP, tambien con el ICD2 original, debes "alimentar" tu con 3.3V el ICD2. digo alimentar entre comillas porque el realmente se alimenta del USB, pero necesita los 3.3v tuyos, para adecuar las señales de salida y para que el pueda sensar con cuanto estas alimentando el PIC.

El diodo tal cual como lo coloqué evitará que si por error elige otro micro en el MPLAB, no le aplicará 13v directo al pin.  Tan solo hará que conmute de 3.3V a 0V cuando la señal se ponga en bajo.

Creo que no siempre hay que confiar en que uno nunca cometerá un error, más aún si la solución es simplemente colocar un diodo que sale centavos ;)




Título: Re: Pic 18f45j10
Publicado por: LABmouse en 21 de Febrero de 2007, 13:00:42
Hola maunix, pero ahora lo que veo es que el no esta progrmando IN-CIRCUIT, el retira el pic de la tajeta donde trabajara, para programarlo, es por ello, que el problema debe estar es en la base donde se coloca el PIC para programarlo.  :-)
Título: Re: Pic 18f45j10
Publicado por: Trino en 21 de Febrero de 2007, 13:01:06
Estoy usando un 18f45j10, sin L,
La base que utilizo es muy simple, es un zocalo donde se introduce el PIC y solo se conectan las patas: VDD, GND, VPP, PGD y PGC mediante unos cables que trae que se puedes modificar. La alimentación que le llega a cada pata no lo se, solo se la de Vdd que se la introduzco yo con una fuente aparte que es de 3.3v de lo demás no se que tension llega y el VDDcore/Vcap no se conecta a nada.
Título: Re: Pic 18f45j10
Publicado por: Trino en 21 de Febrero de 2007, 13:07:54
Creo que el problema esta en mi programador, por lo que me estais diciendo, ya que estoy usando el programador universal que venia con el ICD2.
Me podriais pasar un esquemático de como deberia conectar mi pic a traves del ICD2 para programarlo sin problemas?
Muchisimas gracias a todos que sois los mejores
Título: Re: Pic 18f45j10
Publicado por: LABmouse en 21 de Febrero de 2007, 13:13:15
Prueba con el circuito que propuso maunix.

VPP en donde el dice la imagen .
(PGD)SDA=B7 
(PGC)SCl=B6
Vcap de 2.2Uf
3.3V en vdd
GND
Título: Re: Pic 18f45j10
Publicado por: Trino en 21 de Febrero de 2007, 13:39:33
Ahora lo estoy programando como indica el siguiente dibujo:
y sigue sin funcionarme, puede que el PiC este estropeado?
dentro de un rato me traeran mas pero estoy probando con 2 y sigue sin funcionarme.
Gracias
Título: Re: Pic 18f45j10
Publicado por: LABmouse en 21 de Febrero de 2007, 13:58:03
nooo Trino tienes un error. coloca la resistencia de 2.2K entre MCLR y VDD.
Título: Re: Pic 18f45j10
Publicado por: Trino en 21 de Febrero de 2007, 14:09:41
ok, ya he añadido pero sigue sin funcionar :(
Título: Re: Pic 18f45j10
Publicado por: LABmouse en 21 de Febrero de 2007, 14:16:37
Trino, pos no se. lo minimo que debe tener el PIC para programarlo es eso. Mi problema estaba en que yo usaba un 18LF y este no tiene un regulador interno, y tocaba colocarle 2.5V externamente en el pin VCore. Pero la version que no es LF, no la necesita.

Trino, lo unico que te puedo decir es que revises en MPLab, en la parte CONFIGURE - SELECT DEVICES, y verifica que diga bien la referencia que estas programando.

luegp de eso, conecta el PIC al ICD2, luego dale en PROGRAMMER-SETTINGS

POWER y me dices que te muestra

Título: Re: Pic 18f45j10
Publicado por: Trino en 21 de Febrero de 2007, 14:45:18
Hola, en la parte CONFIGURE - SELECT DEVICES tengo seleccionado mi pic 18f45j10 en el cual me aparece un circulo verde para el MPLAB ICD 2 tanto en el apartado de programmers como en debuggers.
En PROGRAMMER-SETTINGS justo antes de programarle me aparece:
En la pestaña de status:
Connected Status-----> connected
activado-->Automatically connect at startup.
activado-->Automatically download firmware if need.
desactivad-->Output to debug file
y el apartado Self test todo Pass.

En la pestaña comunication
USB

En la pestaña Limitations me aparece el pic que estoy usando pero no puedo modificar nada de aqui.

En la pestaña power:
Target VDD  3.28
Target Vpp  3.12
MPLAB ICD 2 Vpp  14.54
y la opcion de abajo no puedo seleccionarla

En la pestaña de Program
Tengo seleccionado: Allow ICD 2 to select memories and ranges

En la pestaña version tengo:
version: 0.7.50.00.08
Firmware: ICD2
Firmware Type: 18fj
Firmware version: 02.00.02.00
Boot loader version: 01.01.01.00
Debug Exec version: Esta en blanco

Por último enla pestaña warnings los tengo todos seleccionados.
Título: Re: Pic 18f45j10
Publicado por: LABmouse en 21 de Febrero de 2007, 14:52:57
Con lo que dice en power hace referencia que esta bien la conexion entre el ICD2 y el PIC. 

Citar
En la pestaña power:
Target VDD  3.28
Target Vpp  3.12
MPLAB ICD 2 Vpp  14.54
y la opcion de abajo no puedo seleccionarla

esperate te pinto una imagen de como lo conectaria yo y me dices si esta igual.




Título: Re: Pic 18f45j10
Publicado por: maunix en 21 de Febrero de 2007, 22:50:52
nooo Trino tienes un error. coloca la resistencia de 2.2K entre MCLR y VDD.

Asi es, adjunto un esquemático extraído del datasheet que explica cómo debe ser el conexionado y las razones. 

El diodo D de la imagen, no debe confundirse con el que puse yo para el Vpp del ICD2.

Saludos
Título: Re: Pic 18f45j10
Publicado por: Trino en 22 de Febrero de 2007, 13:45:10
Muchisimas gracias ya con este montaje ya me programa sin ningun error, pero el programa que me pasaste, con los registros osccon y osctune todo a cero no lo acabo de entender ya que no deberia tener algun tipo de configuración.
Gracias otra vez
Título: Re: Pic 18f45j10
Publicado por: Trino en 22 de Febrero de 2007, 14:10:27
Perdon por responder dos veces pero también quisiera saber de que capacidad es el condensador que pones en el dibujo. Gracias.
Título: Re: Pic 18f45j10
Publicado por: LABmouse en 22 de Febrero de 2007, 14:21:07
Bueno, a mi me salta una duda. Segun el manual del ICD2, dice que no se recomienda colocar un Capacitor en VPP. Se recomienda colocarlo durante el funcionamiento normal, pero no al programarlo.

Felicidades Trino que ya te funciona.  :-/
Título: Re: Pic 18f45j10
Publicado por: Trino en 23 de Febrero de 2007, 06:57:45
Muchisimas gracias a todos de nuevo no creo que hubiera conseguido programarlo sin vuestra ayuda.
El programa que me paso Maunix funciona de maravilla, pero ahora he añadido un pulsador que cuando esta pulsado enciende los LED's y cuando no que se apaguen pero parece que no funciona el pulsador, el codigo que uso es el siguiente:

     LIST P=PIC18F45J10
       include   <p18F45J10.inc>

config DEBUG   = OFF
config XINST   = OFF
config STVREN  = ON          ; Stack Overflow/Underflow Reset = encendido       
config WDTEN   = OFF         ; Watchdog apagado
config CP0     = OFF         ; Code protection deshabilitados       
config FCMEN   = OFF         ; fail safe clock monitor
config IESO    = OFF
config FOSC2   = ON
config FOSC    = HS          ; Osc section bits
config WDTPS   = 1
config CCP2MX  = DEFAULT

   org     0000H
   goto    INICIO
   org      0100H

      
INICIO
   MOVLW   0xFF
   MOVWF   BSR
   MOVLW   B'00000000'
   MOVWF   OSCCON
   MOVLW   B'00000000
   MOVWF   OSCTUNE
   MOVLW    B'10000000'
   MOVWF   TRISB
   BSF      TRISB,7

LOOP

   BTFSS   TRISB,7
   GOTO    DESACTIVAR
   GOTO   ACTIVAR

ACTIVAR
   BSF      LATB,0
   BSF      LATB,1
   BSF      LATB,2
   BSF      LATB,3
   BSF      LATB,4
   BSF      LATB,5
   BSF      LATB,5
   GOTO   LOOP

DESACTIVAR
   BCF      LATB,0
   BCF      LATB,1
   BCF      LATB,2
   BCF      LATB,3
   BCF      LATB,4
   BCF      LATB,5
   BCF      LATB,5
   GOTO   LOOP

   END

Perdon por no comentarlo pero es bastante simple.
Y el esquema que tengo montado es el siguiente:

Muchas gracias a todos.
Título: Re: Pic 18f45j10
Publicado por: maunix en 23 de Febrero de 2007, 08:49:48
Me alegro que te funcione.  El capacitor para el reset, es para fuentes lentas, y si usarás un pulsador no le veo la máxima importancia de todas formas es una relación entre R (10K en tu esquema) y C, con eso fijas una constante de tiempo para el retardo en caso de fuentes que tardan algo más para lograr máxima tensión.  En estos casos puede que el pic no resetee bien porque no esté alimentado el mismo cuando recibe el pulso de reset, con lo cual su lógica no se reinicia.

Con este RC, se logra mantener la tensión en MCLR en 0V durante una fracción de tiempo más  permitiendo que el PIC esté con tensión mientras el MCLR está en 0V produciéndose de esa forma el reset.

Si usas R=10K . usa C=.1u

yendo al código, recuerda usar los marcos [ code=asm ] y [ /code ] para tus códigos antes de subirlos.


Código: ASM
  1. MOVLW      B'10000000'
  2.     MOVWF      TRISB
  3.     BSF        TRISB,7

Fíjate que no tiene mayor sentido hacer BSF TRISB,7 si antes ya lo habías dejado en 1, cuando hiciste el MOVWF hacia el TRIS con el bit7 en 1.


Código: ASM
  1. LOOP
  2.     BTFSS      TRISB,7
  3.     GOTO       DESACTIVAR
  4.     GOTO       ACTIVAR

Aquí estas leyendo el TRISB, y debes leer PORTB.  Cambia BTFSS TRISB,7 por BTFSS PORTB,7

Saludos
Título: Re: Pic 18f45j10
Publicado por: Trino en 23 de Febrero de 2007, 14:53:35
Vaya tela  :shock: que fallo más tonto el agotamiento y el dolor de cabeza que me ha dado hasta ahora el PIC  no me deja pensar bien, jejejej.
Bueno muchas gracias por tus aclaraciones espero que a partir de ahora vaya todo mejor.
Gracias y un saludo para todo el foro que soys los mejores.
Título: Re: Pic 18f45j10
Publicado por: maunix en 24 de Febrero de 2007, 10:26:14
Vaya tela  :shock: que fallo más tonto el agotamiento y el dolor de cabeza que me ha dado hasta ahora el PIC  no me deja pensar bien, jejejej.
Bueno muchas gracias por tus aclaraciones espero que a partir de ahora vaya todo mejor.
Gracias y un saludo para todo el foro que soys los mejores.

De nada, "a veces cuando el automóvil no funciona, antes de abrir el capot hay que fijarse si tiene nafta" jeje. 

Lo que quiero decir es que en ocasiones algo no anda y pensamos que es lo más complejo y tal vez sea algo simple.

Me alegro que tu pic funcione y a no desesperarse si algo no sabes como esperas, ten paciencia, trata de buscar las causas y verás cómo aprendes en el proceso!

Saludos