Autor Tema: No puedo leer entradas digitales en PIC18F25K80 [Resuelto]  (Leído 5589 veces)

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

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
No puedo leer entradas digitales en PIC18F25K80 [Resuelto]
« en: 16 de Junio de 2012, 08:51:25 »
Debo estar pasando por alto algo muy simple porque no puedo leer las entradas digitales del del micro 18F25K80

Sólo consigo leer la entrada RC4.

No consigo leer ninguna RA, ni el resto de las entradas del puerto RC.

El programa que utilizo para probar el puerto RA es:

Código: C
  1. void main(void) {
  2.    ADCON0 = 0b00000000;
  3.    ADCON1 = 0b00000000;
  4.    
  5.    TRISA = 0x11111111;
  6.    TRISC = 0x11111111;
  7.    TRISB = 0x00000000;
  8.  
  9.  
  10.    while(1) {
  11.       LATBbits.LATB0 = PORTAbits.RA0;
  12.       LATBbits.LATB1 = PORTAbits.RA1;
  13.       LATBbits.LATB2 = PORTAbits.RA2;
  14.       LATBbits.LATB3 = PORTAbits.RA3;
  15.       LATBbits.LATB4 = PORTAbits.RA5;
  16.    }
  17. }

Para el puerto RC utilizo uno semejante cambiando A por C.


¿Qué puede estar mal?


Edito: [Resuelto]
   Las constantes binarias están definidas como hexadecimales
   TRISA = 0x11111111;   // MAL
   TRISA = 0b11111111;   // BIEN

   En el PIC18F25K80 hay que configurar también ANCON0 y ANCON1


Saludos.
« Última modificación: 16 de Junio de 2012, 14:07:01 por Picuino »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #1 en: 16 de Junio de 2012, 09:01:40 »
Creo que equivocaste los registros del conversor A/D que debes manejar...
Segun la hoja de datos:

Citar
The Analog-to-Digital (A/D) Converter module in the
PIC18F66K80 family of devices. It is a 13-bit differential
A/D with 12-bit single-ended compatibility. It has inputs
eight inputs for the 28-pin devices, 11 inputs for the
40/44-pin and 64-pin devices. This module allows conversion
of an analog input signal to a corresponding
12-bit digital number.
The module has these registers:
• A/D Control Register 0 (ADCON0)
• A/D Control Register 1 (ADCON1)
• A/D Control Register 2 (ADCON2)
• A/D Port Configuration Register 1 (ANCON0)
• A/D Port Configuration Register 2 (ANCON1)
• ADRESH (the upper, A/D Results register)
• ADRESL (the lower, A/D Results register)
The ADCON0 register, shown in Register 23-1, controls
the operation of the A/D module. The ADCON1
register, shown in Register 23-2, configures the voltage
reference and special trigger selection. The ADCON2
register, shown in Register 23-3, configures the A/D
clock source and programmed acquisition time and
justification.

deberias manejar ANCON0 y ANCON1...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #2 en: 16 de Junio de 2012, 09:07:32 »
Muchas gracias MGLSOFT.

Me aplicaré lo de "Read the F... Manual"

Cada vez que comienzo con un nuevo PIC me atasco en algún detalle tonto como este.

Saludos.


Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #3 en: 16 de Junio de 2012, 09:15:54 »
No te hagas problemas, yo estoy trabajando con un 26K80, tienen tantas opciones que es muy facil equivocarse...
En mi caso imprimi las 600 paginas del datasheet, porque voy viendo como usar cada modulo.
Justo ando con el A/D, por eso estoy al tanto... :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #4 en: 16 de Junio de 2012, 09:16:21 »
He conseguido leer la entrada RA0, pero no consigo leer el resto de entradas RA :huh:

Configuración:
Código: [Seleccionar]
  ADCON0 = 0;
   ADCON1 = 0;
   ANCON0 = 0;
   ANCON1 = 0;

Seguiré leyendo el manual.

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #5 en: 16 de Junio de 2012, 09:31:43 »
Las entradas están actuando como salidas  :shock:
RA1 = 1
RA2 = 0
RA3 = 0
RA5 = 0

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #6 en: 16 de Junio de 2012, 09:39:27 »
Ya lo encontré.

Había un error en la constante:
   TRISA = 0x1111111;  << ERROR

   TRISA = 0b1111111;  << OK
   TRISA = 0xFF;           << OK


También se tiene que configurar ANCONx = 0; como comentaba MGLSOFT.


Saludos.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #7 en: 16 de Junio de 2012, 09:42:14 »
Justo estaba por escribirte que leyeras la hoja 175 de la hoja de datos, donde trata sobre :
PORTA, TRISA and LATA Registers
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: No puedo leer entradas digitales en PIC18F25K80 [Resuelto]
« Respuesta #8 en: 16 de Junio de 2012, 11:13:56 »
Gracias MGLSOFT.
En los proyectos nuevos el problema está en que no se sabe dónde comenzar y es verdad que un manual de 600 páginas no ayuda.

Deberíamos hacer algún día un manual para detectar los errores más comunes. La primera prueba debería ser ¿Está enchufado? y de ahí en adelante.

Saludos.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #9 en: 16 de Junio de 2012, 11:51:51 »
Ya les va tocar un micro que tiene registros alternos, no van a saber porque no se configura el bendito registro hasta que lean el datasheet detalladamente!  :x  :D


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #10 en: 16 de Junio de 2012, 12:15:19 »
Si te referis a modulos que pueden configurarse en diferentes pines, este micro ya los tiene, el Can y Usart son intercambiables, entre otros... :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #11 en: 16 de Junio de 2012, 12:22:45 »
Si te referis a modulos que pueden configurarse en diferentes pines, este micro ya los tiene, el Can y Usart son intercambiables, entre otros... :D :D :D

Nop, los registros tienen la misma dirección a otros y hay que seleccionar sobre cual trabajar  :D El tema de los RPn, son espectaculares, lo he trabajado bastante en los PIC24H.
No contesto mensajes privados, las consultas en el foro

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #12 en: 16 de Junio de 2012, 13:05:24 »
Pues si, yo desde que descubri los RPn no quiero otra cosa, eso de poder organizar los pines como quieras es lo mejor que tiene

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: No puedo leer entradas digitales en PIC18F25K80
« Respuesta #13 en: 16 de Junio de 2012, 18:18:40 »
Si te referis a modulos que pueden configurarse en diferentes pines, este micro ya los tiene, el Can y Usart son intercambiables, entre otros... :D :D :D

Nop, los registros tienen la misma dirección a otros y hay que seleccionar sobre cual trabajar  :D El tema de los RPn, son espectaculares, lo he trabajado bastante en los PIC24H.

Y los registros con la misma direccion supongo deben corresponderse con la seleccion de funciones del hardware, no??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: No puedo leer entradas digitales en PIC18F25K80 [Resuelto]
« Respuesta #14 en: 16 de Junio de 2012, 18:38:58 »
Bueno, el tema trataba de resolver un pequeño problema de configuración, no de plantear problemas más difíciles.

En mi caso la dificultad del problema consistía en que no sabía si tenía un problema de programa (que sí lo tenía) o si era una configuración de vete tu a saber qué otro periférico (DAC, CTMU, Comparadores, Timers, etc) que interfería con las entradas digitales. La mayoría de las veces las entradas/salidas digitales están habilitadas por defecto sin hacer nada después del reset, por eso me extrañaba.

Además había tenido un pequeño percance con el micro alimentándole a 8.5 voltios durante un momento y no sabía si se habrían fundido las entradas salidas (el nucleo va por otro lado a 3.3 voltios).

Cuando se juntan 3 problemas en un micro nuevo y no sabes qué puede ser, la opción de estudiarte el manual puede llevar mucho tiempo y no solucionar las cosas. Al final cuatro o diez ojos ven mejor que dos y muchas veces me ha pasado que yo mismo veo mejor las cosas después de postear el problema.

El que quiera problemas difíciles porque crea que este es sencillo aquí le posteo uno con el que estoy ahora para que se estruje las neuronas:

¿Cuál es el valor de resistencias más bajo que hay que colocar en un conversor digital-analógico de 6 bits de tipo R-2R para que el error sea menor del 1.5%?
Tener en cuenta que se utilizan resistencias de 1% y que la resistencia a nivel alto de una salida de pic es de 60 ohm y la resistencia a nivel bajo es de 20 Ohm.
Generalizar el método para otros valores de bits.

Saludos
« Última modificación: 16 de Junio de 2012, 18:42:25 por Picuino »