Autor Tema: Problema con PIC 16F84A- No funciona  (Leído 4316 veces)

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

Desconectado Lucho08

  • PIC10
  • *
  • Mensajes: 24
Problema con PIC 16F84A- No funciona
« en: 27 de Agosto de 2008, 18:42:48 »
Estoy retomando el tema de los PIC luego de  hace algun tiempo, por lo que agradecere su ayuda. El problemita que tengo es el siguiente; hice mi programa que hace que mi circuito reciba datos  digitales a 2400 bps por una entrada y los muestre los mismos datos por 5 salidas. Hice el programa en asembler, en el MPLAB y lo queme con el IC-PROG y el circuito quemador de Pablin II. Arme el circuito y lo probe y funciono a las mil maravillas. Pero cuando fui a comprar otro PIC del mismo tipo y lo quemo igual, lo pongo al circuito y no me funciona. Compre otro en otro lugar, al verle la serigrafia era diferente por lo que parecio mas confiable, lo queme y nada, tampoco funciona. El primer PIC que use (el que funciono) era mio que lo compre hace 6 años y su codigo exacto dice: PIC16F84A-04/P y los otros 2 su codigo dice: PIC16F84A-04/P E3.  Lo de la E3 no es muy notorio o claro, pareciera una marca. Al quemar el PIC noto que lo hace bien ya que al leerlo y compararlo me da igual al original.
Cualquier ayuda sera bien recibida. Disculpen si ya fue tratado este tema, es que no lo encontre al buscarlo.

Cordiales saludos

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Problema con PIC 16F84A- No funciona
« Respuesta #1 en: 27 de Agosto de 2008, 20:43:40 »
los codigos que tienen E3 solo los he identificado en las muestras que envia microchip -en los samples- en los que compro jamas tare ese E3 pero no por ello quiere decir que no funcionen, revisa el pin de mclr quiza es por ahi.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Lucho08

  • PIC10
  • *
  • Mensajes: 24
Re: Problema con PIC 16F84A- No funciona
« Respuesta #2 en: 28 de Agosto de 2008, 13:42:41 »
Gracias Navaismo por tu respuesta, revise el voltaje de MCLR y nada lo veo bien en nivel alto. Por las dudas cambie de Cristal a 2Mhz (el original era de 4MHZ) pero la cosa sigue igual. ¿ Que de diferente tendran los PIC de este codigo que fueron fabricados hace 6 años con los de ahora ? No encuentro la respuesta. Seguire investigando. Cualquier sugerencia sera bienvenida
Saludos

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Problema con PIC 16F84A- No funciona
« Respuesta #3 en: 29 de Agosto de 2008, 19:41:02 »
Hola

Se me ocurre que cuando programaste el PIC que sí funciona programaste los fusibles "a mano" ya que no venían indicados en el archivo .hex.

Ahora que estás programando un pic idéntico con el mismo .hex talvez te esté haciendo falta programar los fusibles...

bit 13-4 CP: Code Protection bit
1 = Code protection disabled
0 = All program memory is code protected

bit 3 PWRTE: Power-up Timer Enable bit
1 = Power-up Timer is disabled
0 = Power-up Timer is enabled

bit 2 WDTE: Watchdog Timer Enable bit
1 = WDT enabled
0 = WDT disabled

bit 1-0 FOSC1:FOSC0: Oscillator Selection bits
11 = RC oscillator
10 = HS oscillator
01 = XT oscillator
00 = LP oscillator

... los cuales talvez no venían incluídos en el hex.

Dale una revisada especialmente al oscilador, debe estar en XT si es para 4MHz.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: Problema con PIC 16F84A- No funciona
« Respuesta #4 en: 30 de Agosto de 2008, 17:46:36 »
El codigo E3 en muchos semiconductores lo están colocando los fabricantes para identificar los componentes que cumplen con la normativa ROHS.
No se si será eso.

Fermín
Todos los días se aprende algo nuevo.

Desconectado Lucho08

  • PIC10
  • *
  • Mensajes: 24
Re: Problema con PIC 16F84A- No funciona
« Respuesta #5 en: 01 de Septiembre de 2008, 11:12:34 »
Gracias migsantiago y Fer_Taca por sus aportes; les cuento que la configuracion la hice desde el editor de programa de asembler en MPLAB; el archivo Hex que se genera tiene la configuracion de los fusibles, ya que cuando cargo este archivo en el ic-prog me muestra WDT desactivado, CP desactivado, PWRTE activado, oscilador en XT tal como lo configure en el programa.  Tambien hice la siguiente prueba, lei el programa de mi PIC que si funciona con el IC-PROG y el archivo hex tiene todos los fusibles como los queme, luego esa misma data la quemo en los PIC nuevos y nada , no funcionan.
Para salir de dudas lleve los PICs nuevos a una tienda donde los queman, tuve que pagar, lleve mi programa en una memoria y los queme. Los probe y siguen igualito (lo hice para descartar mi quemador).
Lo de la normativa ROHS que apunta el amigo, no la conozco, pero si involucra un cambio de operacion del PIC, pienso que Microchip lo indicaria en sus datasheets, lo cual no encontre. Si alguien tiene algun dato sobre esa normativa y la comparte seria de gran ayuda.
Aca les comparto el programa, para ver si tiene algun error, que yo no pude ver, esta en asembler. Inicialmente prendo y apago un led 2 veces, le doy el temporizado para que se note y luego escaneo la entrada y la muestro en las 5 salidas. Inverti la salida en un puerto para que me maneje un led y me muestre actividad.

Gracias por su colaboracion
Bendiciones

   list      p=16F84A             ; list directive to define processor
    #include <p16F84a.inc>         ; processor specific variable definitions

    __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

; '__CONFIG' directive is used to embed configuration data within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.

;***** VARIABLE DEFINITIONS
w_temp        EQU     0x0C        ; variable used for context saving
status_temp   EQU     0x0D        ; variable used for context saving

;**********************************************************************
RESET_VECTOR      CODE    0x0000  ; processor reset vector
        goto    start             ; go to beginning of program

ISR               CODE    0x0004  ; interrupt vector location

Interrupt:

        movwf  w_temp             ; save off current W register contents
        movf   STATUS,w           ; move status register into W register
        movwf  status_temp        ; save off contents of STATUS register

;  Place ISR Here

        movf   status_temp,w      ; retrieve copy of STATUS register
        movwf  STATUS             ; restore pre-isr STATUS register contents
        swapf  w_temp,f
        swapf  w_temp,w           ; restore pre-isr W register contents
        retfie                    ; return from interrupt

MAIN_PROGRAM    CODE

start:       bsf 0x03,5;
         movlw 0xff;
         movwf 0x05;
         movlw 0x00;
         movwf 0x06;
         bcf 0x03,5;
arranque   movlw 0xff;
         movwf 0x06;encendemos led indicador ON RB6
         movlw 0x0f;temporizamos por un seg
         movwf 0x10;
aa         movlw 0xff;
         movwf 0x11;
bb         decfsz 0x11;
         goto bb;
         decfsz 0x10;
         goto aa;
         movlw 0xbf;
         movwf 0x06;apagamos led indicador RB6
         movlw 0xff;temporizamos por 3 seg.
         movwf 0x10;
cc         movlw 0xff;
         movwf 0x11;
dd         decfsz 0x11;
         goto dd;
         decfsz 0x10;
         goto cc;
arranque2   movlw 0xff;
         movwf 0x06;encendemos led indicador ON RB6
         movlw 0x0f;temporizamos por un seg
         movwf 0x10;
ee         movlw 0xff;
         movwf 0x11;
ff         decfsz 0x11;
         goto ff;
         decfsz 0x10;
         goto ee;
         movlw 0xbf;
         movwf 0x06;apagamos led indicador RB6
         movlw 0xff;temporizamos por 3 seg.
         movwf 0x10;
gg         movlw 0xff;
         movwf 0x11;
hh         decfsz 0x11;
         goto hh;
         decfsz 0x10;
         goto gg;
scan      btfss 0x05,0; Rutina de Scan de In para Out
          goto scan1;
         movlw 0xbf;
         movwf 0x06;
         goto scan;
scan1      movlw 0x40;
         movwf 0x06;
         goto scan;
         end;
; remaining code goes here

        goto $

        END                       ; directive 'end of program'

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: Problema con PIC 16F84A- No funciona
« Respuesta #6 en: 01 de Septiembre de 2008, 12:06:28 »
La normativa ROHs se aplica a los materiales con que se fabrican los componentes(libres de plomo principalmente).
No deben implicar ningun cambio de funcionamiento.
Todos los días se aprende algo nuevo.

Desconectado Lucho08

  • PIC10
  • *
  • Mensajes: 24
Re: Problema con PIC 16F84A- No funciona
« Respuesta #7 en: 02 de Septiembre de 2008, 20:00:06 »
Gracias Fer_Taca por tu aclaracion. Resulta que pude solucionar el problema o por lo menos haber encontrado la causa.  Probe los nuevos PICs grabados en un protoboard con una sola salida conectada y me funciono a la perfeccion, estos PIC que fabrican ahora no tienen la capacidad de manejar igual carga que los antiguos. Al probarlo en mi tarjeta me di cuenta que puede manejar hasta 4 salidas (en realidad hice una interface con un transistor) en mi circuito, al ponerle la quinta carga se bloqueaba y no trabajaba bien. En el circuito no habian cruces ni nada por el estilo, los circuitos de las 5 salidas son iguales. Con el PIC antiguo trabaja a la perfeccion con las 5 salidas. Voy a tener que rediseñar mis buffers o interfaces.
Por alli escuche a un colega decir "las cosas ya no las hacen como antes" ; parece cierto; je je je . Gracias por su apoyo.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Problema con PIC 16F84A- No funciona
« Respuesta #8 en: 02 de Septiembre de 2008, 22:10:30 »
Suena raro que antes los pics fueran capaces de entregar más de 25mA por terminal.

Aquí las características por terminal del 16f84a.



 

anything