Autor Tema: Algun modelo de PIC con 5 interrupciones por cambio de estado??  (Leído 6878 veces)

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

Desconectado Elena2000

  • PIC24F
  • *****
  • Mensajes: 722
Algun modelo de PIC con 5 interrupciones por cambio de estado??
« en: 09 de Junio de 2003, 05:12:00 »
Hola!

Quisiera preguntaros si alguno conoceis algun modelo de PIC que tenga CINCO o mas interrupciones por cambio de estado en los pines de alguno de sus puertos...

A ver, estaba usando el 16F84 con las cuatro interrupciones hardware por cambio de estado de sus pines RB4:RB7, y necesitaría habilitar una entrada mas que interrumpa el PIC de la misma manera, alguien conoce un modelo de PIC que tenga esos recursos?

Gracias!
Elena

Desconectado MarquesSalsero

  • PIC18
  • ****
  • Mensajes: 467
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #1 en: 11 de Junio de 2003, 05:46:00 »
Una solucion muy sencilla, economica y potente es poner una puerta EXOR externa a la que conectaras todas las entradas a memorizar.

Dado que la funcion EXOR da en su salida un nivel logico uno siempre que dispongamos en la entrada de un numero impar de "unos", cada vez que una de las entradas cambia de estado la salida hará lo mismo, no importando si la entrada cambia de uno a cero o al reves.

Esto es valido siempre que no vayan a cambiar de forma simultanea mas de una entrada, ya que si cambian dos entradas de forma simultanea, la salida no cambiará, esto no es problema si las entradas son, por ejemplo, de unos pulsadores ( desafio al humano mas rapido a conseguir pulsar dos botoncitos en el mismo microsegundo y ademas no producir rebotes ).

Otra soludion es usar chips que existen ( como el MAX 6818 ) que te hacen el debounce de hasta ocho entradas y ademas te generan un pulso de interrupcion ( normalmente es su tamaño, yo tengo varios de ellos y he sido incapaz de soldar sus patillas a nada )

Espero haberte ayudado
Hay 10 tipos de personas las que entienden binario y las que no

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #2 en: 11 de Junio de 2003, 10:45:00 »
El problema que le veo a lo de la OR-EXCLUSIVA es que no vas a poder diferenciar la entrada que ha producido la interrupción y en consecuencia el programa no podrá actuar de diferente manera dependiendo del tipo de entrada activada.

Lo de la OR-ECLUSIVA entiendo que funcionaría en el caso que la respuesta a todas las entradas conectadas a la XOR fuese la misma.

Saludos

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #3 en: 11 de Junio de 2003, 12:44:00 »
Mira, te dejo un ejemplo en el que uso algo parecido que quizás te sirva o te oriente.
Yo uso una puerta AND que va al pin RB0, que es donde está la INT. Al usar resistencias de pull-up (en este caso las internas) siempre estarán a 1, excepto cuando se pulse algún botón que pasará pues a cero. Esto crea que a la salida de la puerta AND haya un cero y salte la interrupción INT. Luego en la RSI compruebas que pin está a cero et voilá. Ese es el que creó la interrupción. Claro está, tiene la limitación que comentan más arriba. Si se pulsan dos a la vez... pero tu debes ver eso, si es posible y si te influye en tu programa.
Mira el esquemático que quizás esté más claro.

Un saludo.
Saludos desde Huelva (ESPAÑA)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #4 en: 11 de Junio de 2003, 13:46:00 »
Muy buena idea Cucaracha.

 Con las pull-up RB1-RB7 se conseguirían hasta 7 líneas de interrupción y si se quieren más se ponen resistencias externas en las 5 entradas del PORTA y hasta 12 líneas de interrupción que se podrían diferenciar por software al activarse la interrupción por flanco descendente en RB0 (habría que añadir más puertas AND claro).

Salu2

Desconectado pacalaconcurso

  • PIC24F
  • *****
  • Mensajes: 718
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #5 en: 12 de Junio de 2003, 04:15:00 »
tambien puedes usar un chip de entradas I2C (PCF...) que dispine de una salida de interrupcion cuando alguna de las 8 entradas cambia.....
la via de interrupcion la colocas a RB0 y cuando se produzca esta lees el byte de las entradas y mira cual la ha producido. de esta forma puedes tener controladas un monton de entradas via I2C con una sola interrupcion
ademas los PCF... son baratos...
saludos

Desconectado Elena2000

  • PIC24F
  • *****
  • Mensajes: 722
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #6 en: 12 de Junio de 2003, 05:25:00 »
Hola chicos!

Las soluciones para escalar la línea de interrupción usando una XOR o bien una AND, ya las había estudiado, pero... me temo que no puedo usarlas, porque efectivamente necesito discriminar QUE entrada ha cambiado de estado; porque en función de qué entrada esté a nivel alto se producirá un evento diferente...
Cucaracha... creo que tampoco me valdría usar las pull-ups.. aunque está muy bien saberlo para otros proyectos!

Creo que la idea de Felix para usar chip de entradas I2C (PCF...) estaría genial... expandiendo las entrdas... pero no quisiera complicar demasiado el diseño, añadiendo nuevos integrados, por eso pensé en pasar a un pic de gama media y ya está, ¡¡pero no se cúal!!.......... help....

Gracias a todos y un besote
Elena.

Desconectado Elena2000

  • PIC24F
  • *****
  • Mensajes: 722
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #7 en: 23 de Junio de 2003, 07:25:00 »
Hola chicos!

Por si alguien sigue mosca sobre el tema de ampliar las líneas de interrupción de un 16XXX; os aconsejo que miréis el pdf que adjunto. Es un ejemplo de Microchip para implementar una interfaz entre el pic y una matriz de switches 4x4, usando por cierto las resistencia pull-ups internas sobre los pines RB7:RB4, tal y como sugirió cucaracha. Con esto se consiguen hasta 16 líneas de interrupción..... genial.
Lo estoy probando en mi circuito de alarma; os contaré cóm va en breve y os pasaré todo, por si lo queréis mejorar.

Un besote!
Elena

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #8 en: 23 de Junio de 2003, 08:06:00 »
Elena:
Creo que podes programar una parte del portb para recibir interrupciones,y un pin del porta.
Cuando saltas a la rutina de interrupciones, debes diferenciar de que pin vino la interrupcion haciendo una lectura del puerto, teniendo en cuenta que cualquier cambio dura mas tiempo que esta lectura.-
Saludos
Jorge

Desconectado Elena2000

  • PIC24F
  • *****
  • Mensajes: 722
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #9 en: 24 de Junio de 2003, 07:50:00 »
Hola Jorge!

No hace falta hacer un rastreo en el puerto para saber de dónde me vino la interrupción, basta con aplicar una máscara al registro de interrupciones INTCON justo después de entrar el pic en la rutina de interrupción.

Oye, una preguntilla, ¿tú sabes cómo habilitar las resistencias de pull-up internas a través del código asm??
.... creo que para un 16F8X, como están en el puerto B, debe ponerse algo así..
OPTION_REG.7=0
... pero no estoy segura...

Bueno, un besote y gracias!
Elena

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #10 en: 24 de Junio de 2003, 10:02:00 »
Hola Elena.

Creo que es así:

Activación:        BCF    OPTION_REG,7      o bien     BCF    OPTION_REG, NOT_RBPU

Desactivación:       BSF    OPTION_REG,7      o bien     BSF    OPTION_REG, NOT_RBPU


Esto es para el bit individual de las pull-up, como ya sabrás también puedes programar el registro entero, en el cual además se programan los restantes 7 bits:

MOVLW 0x00                           ;las activarías
MOVWF OPTION_REG

MOVLW 0x10                           ;las desactivarías
MOVWF OPTION_REG

Un saludo




Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #11 en: 24 de Junio de 2003, 10:11:00 »
Elena:

Por un lado,para activar las pullup, creo que es como dice porcher,no tengo amano los registros del pic,pero luego los busco para confirmar el bit.-
Por otro lado,el tema de las interrupciones, efectivamente cuando tengas una interrupcion ,en el registro de interrupciones te dice de donde vino (desbordamiento de tmr0,cambio en portb,etc),pero creo que tenes que testear el puerto para saber de  que pin vino efectivamente (en el caso que leas varias entradas del portb)
Espero que se entienda
saludos
jorge

Desconectado pacalaconcurso

  • PIC24F
  • *****
  • Mensajes: 718
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #12 en: 24 de Junio de 2003, 12:52:00 »
BUeno, con el multiplexado como el que se usa para el teclado puedes tener tantas lineas de interrupcion como lineas *4 tengas...(suponiendo 4 columnas)...el problema de este metodo es que el soft tiene que estar constantemente "leyendo" las entradas y esto puede no ser demasiado interesante para algunas cosas......

en fin,para los teclados va de lujo...

saludos

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #13 en: 24 de Junio de 2003, 14:06:00 »
No tiene necesariamente que estar constantemente leyendo. Las columnas las comandas con las 4 entradas que tienen interrupción en cambio, consiguiendo una interrupción cada vez que se pulse una tecla. No se si es casualidad que sean 4...
Un saludo.
Saludos desde Huelva (ESPAÑA)

Desconectado Elena2000

  • PIC24F
  • *****
  • Mensajes: 722
RE: Algun modelo de PIC con 5 interrupciones por cambio de estado??
« Respuesta #14 en: 25 de Junio de 2003, 07:00:00 »
hola chicos,

Lo primero: Jorge,... pues tienes toda la razón...... y perdona la confusión, please... , es que me estoy planteando meter todas la entradas susceptibles de interrupción a un sólo pin del micro, en paralelo, y tratarlas a todas de forma similar, sin necesidad de discriminar qué entrada produjo la interrupción... En este caso las metería en la externa, RA0, y entonces bastaría con mirar el registro INTCON y no tendría que investigar mucho más.... No me expliqué como es debido, lo siento Jorge.

Pero por si acaso me empeño en discriminar entradas, estoy mirando lo de las resistencias de pull-up. Voy a probar lo que me habéis comentado para activarlas y desactivarlas. También tiene razón Pacala... este método para teclados va genial, pero para entradas que no vengan de pulsadores.... no se yo... es un jaleo.

Bueno, mil gracias, bonitos, y por favor Jorge disculpa la confusión.
Un besote
Elena


 

anything