martes, septiembre 30, 2008

Analizador digital (II) - Optoacoplar o no optoacoplar esa es la cuestión

Cuando empiezas ha hacer cosas de instrumentación siempre llega un momento en el que te tienes que plantear esta pregunta: ¿optoacoplo o no?

Es decir optoacoplar señales tiene sus ventajas, sobretodo creas aislamiento galvánico entre la entrada del optoacoplador y la salida que ofrece protección contra picos y evitas las corrientes de fuga por la tierra. Sin embargo los inconvenientes son tan importantes a veces que te planteas la necesidad de hacerlo: limitación en los tiempos de subida y bajada de las señales, retardo entre la entrada y la salida, incremento de los costes, etc.

Generalmente lo ideal es optoacoplar las señales de entrada (después de la correspondiente adaptación), sin embargo si necesitamos una gran calidad de señal o una gran velocidad esta opción puede quedar totalmente descartada. Optoacoplar los buses de salida (comunicación con el PC o con otros aparatos) también puede ser un problema sobretodo si las señales son bidireccionales y de alta velocidad (un USB por ejemplo). Así que optoacoplamos señales internas (generalmente buses de comunicación entre las distintas partes) o no lo hacemos y nos tenemos que asegurar que las señales de entradas vengan en flotante (el circuito de entrada esté en flotante).

Saludos

Ranganok Schahzaman

lunes, septiembre 29, 2008

Analizador digital (I) - Presentando el proyecto

El otro día me encontré con un problema, estaba utilizando un programa que no sabía que hacía (y el código empeoraba más la situación) y necesitaba conocer los protocolos de comunicación que estaba usando para comunicarse (por puerto serie). La solución más sencilla hubiera sido la de pinchar en otro puerto serie y abrir el hyperterminal para espiar la comunicación, pero me encontraba con un problema, sólo tenía un puerto COM. No me quedó más remedio que agenciarme otro PC y trabajar en paralelo con los dos (un engorro).

Claro pero si en vez de una comunicación serie hubiera tenido una paralelo, o un I2C o un SPI o incluso un USB no habría podido interpretar los datos de forma sencilla (ver las señales si porque tenemos un osciloscopio de señal mixta que para estas cosas va genial). Así que añadí a la lista de proyectos por hacer un Analizador lógico que además pueda interpretar protocolos.

Para esto voy a hacer un hardware dedicado que recoja las señales y las envíe al PC y un software que las visualice y las interprete.

En este caso la dificultad del proyecto radica más en dónde poner el límite, me explico, el proceso de funcionamiento es sencillo de entender, cuando hay un evento (generalmente una señal de trigger) se inicia una captura de muestras mediante un reloj externo o interno.

El método más sencillo de implementar esto es mediante un microcontrolador al que se le inyecta las señales directamente (bueno, directamente no que primero hay que adaptar los niveles de tensión)... pero aquí empiezan los problemas.

Si usamos con un PIC18F4550 (por coger un micro sencillo y rápido con comunicación USB y muchos puertos para leer) podríamos usar la interrupción de teclado (KIB) como reloj externo, y las interrupciones exteriores (INT0, INT1 e INT2) como disparadores. Podríamos usar la velocidad máxima del micro 12MIPS (a 48MHz), para leer y su 2K de RAM para guardar los datos.

Pero claro, cada interrupción consume como mínimo 10 ciclos de reloj más las operaciones de lectura de cada puerto puerto son 2 ciclos más, que en total por 4 puertos (el puerto C no lo contamos) son 2*4+10 = 18 ciclos lo cual nos deja una velocidad de captura de tan sólo 660kHz (12Mciclos/s / 18ciclos = 666666.66Hz aprox 660kHz), suficiente para el puerto serie, pero insuficiente para un I2C o un SPI. Eso sí tendríamos 26 señales de lectura de las cuales 4 podrían ser clocks y 3 disparadores con el clock interno (si usamos sólo el puerto B y el D tendríamos 16 señales a 850kHz también insuficientes).

Por otro lado el micro tiene 2Kb de RAM para guardar datos, si las usamos capturando únicamente los puertos B y D (2 bytes) a 660kHz obtendremos que hemos capturado únicamente 1.5ms (2Kb * 1captura/2bytes * 1s/660kcapturas = 1.5515e-3s aprox 1.5ms). Además los 2Kb de RAM no se van a usar exclusivamente para la captura de señales, también hay datos de programa que guardar, variables, etc.

La solución en sí no es mala (para alguien que sólo va a capturar señales lentas y cortas), simplemente que se aparta de las expectativas que yo tenía.

La opción cara sería señales de entrada optoacopladas, pudiéndose elegir los niveles de comparación para la decisión de un nivel alto y uno bajo, con una memória generosa, muestreo rápido y 32 señales de entrada cada una pudiéndose elegir como señal normal, disparador(trigger) o clock externo (lo que es un analizador lógico comercial).

Entre estas dos opciones hay para elegir una buena cantidad...

S2

Ranganok Schahzaman

miércoles, septiembre 24, 2008

Entrenadora - AVR de 40 pines

La primera colaboración del proyecto de la entrenadora (aka. sistema de prototipado rápido) ha entrado por la puerta grande. Gracias al amigo Beamspot del foro de ARDE tenemos ya listo el Módulo procesador para AVR de 40 pines totalmente compatible con el resto de módulos.

Ante todo darle las gracias a Beamspot por el trabajo realizado, y que lo disfrutéis...

S2

Ranganok Schahzaman

martes, septiembre 23, 2008

Entrenadora - I/O de 8 bits

Acabo de subir la versión beta 1 del módulo de Entradas Salidas de 8 bits.

Este módulo se ha creado como depurador (visualiza las señales de salida y puede actuar sobre las señales de entrada) y para poder elevar niveles de señal (de 3v3 a 5v o a 12v,...).

Espero que os sirva, y si veis algún error decidmelo y lo corregiré lo antes posible.

Podéis acceder a la wiki de ARDE donde está(*) toda la documentación: http://wiki.webdearde.com/index.php/Entrenadora:Módulo_I/O_digital_8_bits

S2

Ranganok Schahzaman

(*) La documentación la terminaré de subir durante estos días ya que al ser una beta todavía puede estar sujeta a revisiones importantes.

lunes, septiembre 22, 2008

Cosas que no conviene olvidar

Viene de un comentario en menéame de esta noticia, que por cierto está calificada como falsa:

Creo que ya lo puse pero estas cosas esta bien saberlas:

Constitucion Española ( por cierto en breves hace 30 añitos) :-P

Título I. De los derechos y deberes fundamentales
Capítulo II. Derechos y libertades.
Sección I. De los derechos fundamentales y de las libertades públicas.

Artículo 18.

1. Se garantiza el derecho al honor, a la intimidad personal y familiar y a la propia imagen.

2. El domicilio es inviolable. Ninguna entrada o registro podrá hacerse en él sin consentimiento del titular o resolución judicial, salvo en caso de flagrante delito.

3. Se garantiza el secreto de las comunicaciones y, en especial, de las postales, telegráficas y telefónicas, salvo resolución judicial.

4. La ley limitará el uso de la informática para garantizar el honor y la intimidad personal y familiar de los ciudadanos y el pleno ejercicio de sus derechos.

Y para reclamar la proteccion;

Capítulo IV: De las garantías de las libertades y derechos fundamentales.

Artículo 53.

1. Los derechos y libertades reconocidos en el Capítulo segundo del presente Título vinculan a todos los poderes públicos. Sólo por ley, que en todo caso deberá respetar su contenido esencial, podrá regularse el ejercicio de tales derechos y libertades, que se tutelarán de acuerdo con lo previsto en el artículo 161, 1, a)

2. Cualquier ciudadano podrá recabar la tutela de las libertades y derechos reconocidos en el artículo 14 y la Sección primera del Capítulo segundo ante los Tribunales ordinarios de preferencia y sumariedad y, en su caso, a través del recurso de amparo ante el Tribunal Constitucional. Este último recurso será aplicable a la objeción de conciencia reconocida en el artículo 30.

3. El reconocimiento, el respeto y la protección de los principios reconocidos en el Capítulo tercero informarán la legislación positiva, la práctica judicial y la actuación de los poderes públicos. Sólo podrán ser alegados ante la Jurisdicción ordinaria de acuerdo con lo que dispongan las leyes que los desarrollen.

Título IX. Del Tribunal Constitucional

Artículo 162.

1. Están legitimados:

a) Para interponer el recurso de inconstitucionalidad, el Presidente del Gobierno, el Defensor del Pueblo, 50 Diputados, 50 Senadores, los órganos colegiados ejecutivos de las Comunidades Autónomas y, en su caso, las Asambleas de las mismas.

b) Para interponer el recurso de amparo, toda persona natural o jurídica que invoque un interés legítimo, así como el Defensor del Pueblo y el Ministerio Fiscal.

2. En los demás casos, la ley orgánica determinará las personas y órganos legitimados.

Un saludo.


Saludos

Ranganok Schahzaman

jueves, septiembre 11, 2008

Entrenadora - Espía del puerto serie

De los proyectos que tengo abiertos, es en la entrenadora en el que más he avanzado últimamente, tengo en fase de diseño un PCB para el PIC18F4550, un display, un cursor y un módulo de entrada/salida digital (comprobador de puertos).

Sin embargo hoy voy a presentar un PCB sencillo pero tremendamente útil, un espía para el puerto serie.

En realidad es un dispositivo muy simple pero que nos servirá para ver la actividad en el puerto serie y ver si en realidad estamos mandando o no datos por el mismo. Además está pensado para que se le pueda conectar un DIP-18 con un cable plano y llevarlo a un analizador de protocolos (en un futuro).

Espero que os sirva...

S2

Ranganok Schahzaman

PD: Si le veis algún fallo o mejora posible hacermelo saber.

PD2: La licencia de este proyecto es
Creative Commons License

miércoles, septiembre 10, 2008