Autor Tema: duda baja / alta impedancia  (Leído 4496 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado xxopiumxx

  • PIC12
  • **
  • Mensajes: 82
duda baja / alta impedancia
« en: 26 de Febrero de 2014, 12:53:56 »
qué tal gente.

pregunta medio boluda, pero me maree.

primero que nada estoy trabajando con un pic18f2550 sobre el viejo mplab c18.

la cuestión es: estoy trabajando en la implementación de un protocolo one-wire. tengo que generar trenes de pulsos y tambien
poder detectarlos.
por el momento las pruebas las estoy haciendo sobre el pin a3 seteando trisa en 0 y variando lata de 0 a 1 segun sea necesario; visualizando todo
con el osciloscopio.

la duda viene en que en la especificación no habla directamente de high y low como existencia o no de tensión, sino como
tiempo en alta impedancia y tiempo en baja.
si mal no recuerdo del datasheet, el registro que cambia que entre en alta impedancia es el tris(A) siendo 0 alta y 1 baja (no es así?)

gracias de antemano.

entonces, sería correcto olvidarme del registro LAT o PORT y variar directamente sobre TRIS para cumplir con la especificación?

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: duda baja / alta impedancia
« Respuesta #1 en: 26 de Febrero de 2014, 13:58:58 »
qué tal gente.

pregunta medio boluda, pero me maree.

primero que nada estoy trabajando con un pic18f2550 sobre el viejo mplab c18.

la cuestión es: estoy trabajando en la implementación de un protocolo one-wire. tengo que generar trenes de pulsos y tambien
poder detectarlos.
por el momento las pruebas las estoy haciendo sobre el pin a3 seteando trisa en 0 y variando lata de 0 a 1 segun sea necesario; visualizando todo
con el osciloscopio.

la duda viene en que en la especificación no habla directamente de high y low como existencia o no de tensión, sino como
tiempo en alta impedancia y tiempo en baja.
si mal no recuerdo del datasheet, el registro que cambia que entre en alta impedancia es el tris(A) siendo 0 alta y 1 baja (no es así?)

gracias de antemano.

entonces, sería correcto olvidarme del registro LAT o PORT y variar directamente sobre TRIS para cumplir con la especificación?

  Un pin queda configurado con alta impedancia cuando está configurado como entrada, por lo tanto el valor del TRIS correspondiente debe estar en 1.

  Al estar configurado como salida (TRIS correspondiente a nivel 0), el pin queda en baja impedancia.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado xxopiumxx

  • PIC12
  • **
  • Mensajes: 82
Re: duda baja / alta impedancia
« Respuesta #2 en: 28 de Febrero de 2014, 09:14:54 »
qué tal gente.

pregunta medio boluda, pero me maree.

primero que nada estoy trabajando con un pic18f2550 sobre el viejo mplab c18.

la cuestión es: estoy trabajando en la implementación de un protocolo one-wire. tengo que generar trenes de pulsos y tambien
poder detectarlos.
por el momento las pruebas las estoy haciendo sobre el pin a3 seteando trisa en 0 y variando lata de 0 a 1 segun sea necesario; visualizando todo
con el osciloscopio.

la duda viene en que en la especificación no habla directamente de high y low como existencia o no de tensión, sino como
tiempo en alta impedancia y tiempo en baja.
si mal no recuerdo del datasheet, el registro que cambia que entre en alta impedancia es el tris(A) siendo 0 alta y 1 baja (no es así?)

gracias de antemano.

entonces, sería correcto olvidarme del registro LAT o PORT y variar directamente sobre TRIS para cumplir con la especificación?

  Un pin queda configurado con alta impedancia cuando está configurado como entrada, por lo tanto el valor del TRIS correspondiente debe estar en 1.

  Al estar configurado como salida (TRIS correspondiente a nivel 0), el pin queda en baja impedancia.

correcto, pero cómo lo visualizo? venía trabajando con el LAT 0 /1  y el TRIS en 0, en el osciloscopio se veía directo.
ahora lo que hago es variar TRIS 0/1 , dejando previamente LAT en 1. la forma de onda que se ve es fea, pero por lo menos puedo ver bien los tiempos.

me tiene medio mareado el tema, alguien hizo algo del estilo implementando especifiaciones?

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: duda baja / alta impedancia
« Respuesta #3 en: 28 de Febrero de 2014, 09:45:55 »
Coloco la resistencia de pull-up al bus?, es necesaria para para que la linea del bus vaya a 1 cuando coloca el pin de microcontrolador en alta impedancia.



Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado xxopiumxx

  • PIC12
  • **
  • Mensajes: 82
Re: duda baja / alta impedancia
« Respuesta #4 en: 28 de Febrero de 2014, 11:51:00 »
Coloco la resistencia de pull-up al bus?, es necesaria para para que la linea del bus vaya a 1 cuando coloca el pin de microcontrolador en alta impedancia.



Saludos

todavía no, porque no termino de entender cómo funciona.

puntualmente el tema es así:
la imagen es de la especificacion:


por otro lado, el protocolo CEC esta basado en AV.Link, que tiene las mismas especificaciones eléctricas.

lo siguiente es de la wiki de AV.Link:

Citar
AV.Link uses a single wire in an open collector configuration. It is passively pulled up to 3 or 3.3 V, and may be pulled down by any device on the bus.

o sea que la distinciones entre 1 y 0 se hacen midiendo los tiempos en low.

ahora bien, lo que no entiendo es como implementarlo.

  • pongo una pullup a 3.3 y hago los ceros y unos cambiando el TRIS ?  o sea poniendome en baja o alta impedancia ?
  • no pongo ninguna pullup ni nada, y simplemente vario el TRIS y de alguna forma magica se da cuenta de las variaciones?
  • dejo el TRIS en 0 y vario el LAT generando (con algun traductor de niveles) el 1 directamente con 3.3 y el 0 con 0 ?

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: duda baja / alta impedancia
« Respuesta #5 en: 28 de Febrero de 2014, 12:06:08 »
el término alta o baja impedancia se refiere al tercer estado que puede tomar una compuerta lógica, se utiliza para separar electricamente una etapa de una línea de comunicaciones o bus de datos.

en una compuerta lógica existen 3 estados, uno lógico, cero lógico y alta impedancia, en tu caso el uno y cero logico viene siendo el estado de baja impedancia y el pin del micro debe estar configurado como salida, mientras que el estado de alta impedancia, sería colocar el pin del micro como entrada, que de acuerdo a la datasheet de microchip, "aislaría" el pin del cable al cual está conectado..

si separas un cable de conexión de una etapa circuital, debes amarrarlo a un nivel de tensión (o estado logico) para que se mantenga el circuito cerrado en el resto de los circuitos que usan ese bus de transmisión.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado HJG

  • PIC12
  • **
  • Mensajes: 77
Re: duda baja / alta impedancia
« Respuesta #6 en: 28 de Febrero de 2014, 12:08:16 »
Como verás hace falta la resistencia de pull-up que te mencionó sander.

Te dejo dos enlaces donde explican el protocolo y hay incluso diagramas temporales y de flujo para el programa.

NA microchip 1-Wire

Otro mas...



Desconectado xxopiumxx

  • PIC12
  • **
  • Mensajes: 82
Re: duda baja / alta impedancia
« Respuesta #7 en: 28 de Febrero de 2014, 12:22:20 »
muchas gracias a todos. me pongo a estudiar!

Desconectado xxopiumxx

  • PIC12
  • **
  • Mensajes: 82
Re: duda baja / alta impedancia
« Respuesta #8 en: 10 de Marzo de 2014, 14:48:41 »
gente, vuelvo con nuevas dudas!

les comento lo que hice:

estoy usando la pata a3 para generar los pulsos y el timer0 para temporizarlos. configuré el registro LATA3 en 0, y genero los 1 y 0 variando el registro TRIS entre FF (high) y FB (low).
puse una resitencia pullup entre la pata a3 y vcc como me recomendaron. hasta ahí todo genial.

para simular el comportamiento de un dispositivo CEC y un TV (por ejemplo) utilizo dos PICs. como es 1wire, tengo los dos pines a3 puenteados.

el tema es el ACK!, en la especificación dice:



de forma que para darle ACK a un frame preciso poner la linea en baja (desde el follower) mientras el initiator la tiene en alta. y ese es justamente el tema que no termino de entender.
para que el initiator de cuenta del ACK del follower precisaría que la linea se vaya a low (cuando lo comande el follower), pero cuando lo hago no pasa nada.. las dos salidas se comportan igual y el bit en cuestión no aparece.
pero si lo aislo, es decir, desconecto el puente entre los a3, genero con uno y detecto con el otro, ahí sí veo que el follower reacciona correctamente en tiempo y forma.

alguna punta?

gracias de antemano.
« Última modificación: 10 de Marzo de 2014, 14:51:51 por xxopiumxx »

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: duda baja / alta impedancia
« Respuesta #9 en: 10 de Marzo de 2014, 16:56:42 »
  Si tienes los dos PIC unidos, en el PIC "dispositivo" dicho pin se hace salida y en 0, y en el PIC "maestro" dicho pin queda como entrada; en dicha entrada habrá un 0.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado xxopiumxx

  • PIC12
  • **
  • Mensajes: 82
Re: duda baja / alta impedancia
« Respuesta #10 en: 11 de Marzo de 2014, 09:16:00 »
sí, es lo que suponía, pero no pasa. evidentemente tengo algún bug en algún lado.

gracias :)

............

dicho y hecho, el ccp me estaba enconlando las interrupciones del timer0, voy entendiendo por qué usan métodos de polling en vez de captura.

gracias a todos.
« Última modificación: 11 de Marzo de 2014, 09:55:18 por xxopiumxx »


 

anything