El código mostrado en anteriormente no funcionará como puerto bidireccional. Como se muestra en las figuras siguientes, el puerto de salida estará conectado directamente al puerto de entrada. Es decir, el puerto inout lee (in) lo que tiene a la salida (out) y es útil cuando se desea monitorear el valor que se envía al puerto, sin embargo, definido unicamente como tal, no sirve como puerto bidireccional.
La figura anterior muestra el código cargado en el FPGA. Dado que SWITCH es '1', LED tendrá el valor de ENTRADA (ambos '1' en la fotografía). Hasta aqui, el código trabaja como se desea.
Sin embargo, como muestra la figura anterior, cuando queremos que LED funcione como entrada, es cuando el código deja de funcionar como se desea. Cuando SWITCH2 es '1', SALIDA debe tener lo que tiene LED, que ahora debería ser de entrada. Sin embargo, se observa como SALIDA siempre es '1' sin importar que valor tenga LED.
En conclusión, el ejemplo anterior muestra como la definición inout no define un puerto como bidireccional. Puertos bidireccionales son comunes en memorias, protocolos seriales, pantallas, entre otros.
En la siguiente entrada, explicaré como hacer puertos direccionales a partir de un concepto llamado en VHDL Three State Inference.
viernes, 14 de mayo de 2010
miércoles, 12 de mayo de 2010
Puertos Bidireccionales en FPGAs
Los puertos bidireccionales en los FPGAs pueden ser un tanto confusos. No estamos hablando de definirlos como inout, sino de definirlos de tal forma que puedan enviar y recibir información.
Un puerto inout es normalmete utilizado para monitorear el valor de salida de un puerto, es decir, leer lo que estan enviando ó enviar a alguna otra salida lo que estan recibiendo, sin embargo, si desean leer y escribir información, esta única definición no será suficiente.
La imagen muestra un código utilizando la definición inout. Como mostraré en las imágenes del día de mañana, esto no funciona como se desea. El puerto LED es definido como inout, SWITCH, SWITCH2 y ENTRADA como in y SALIDA como out.
Un puerto inout es normalmete utilizado para monitorear el valor de salida de un puerto, es decir, leer lo que estan enviando ó enviar a alguna otra salida lo que estan recibiendo, sin embargo, si desean leer y escribir información, esta única definición no será suficiente.
La imagen muestra un código utilizando la definición inout. Como mostraré en las imágenes del día de mañana, esto no funciona como se desea. El puerto LED es definido como inout, SWITCH, SWITCH2 y ENTRADA como in y SALIDA como out.
viernes, 30 de abril de 2010
lunes, 26 de abril de 2010
GLCD Screen

After a lot of work, we are finishing the sterilizer's control. The image shows the GLCD screen with the temperature sensor connected. The FPGA is already managing all the valves and their periods along with the temperature's control. There's still work on the GLCD and on almost all the PCBs. Hopefully we'll finish this week!!!!
jueves, 11 de febrero de 2010

.jpg)

That's it. I took real values measuring the resistance and the voltage. The images show the real values and the theoretical values(left bottom corner on the first image) predicted by the mathematical model. Of course, I have to rise the temperature and read several values.
The current is on the order of hundreds of uA which is good because it prevents the self-heating.
miércoles, 10 de febrero de 2010
Sterilizer's bridge

Researching, I found that the Wheatstone bridge it's the most common mode for obtaining a change of voltage due to a change of resistance. After a few elementary maths I've reached the resistance vs voltage equation. If I didn't make any mistakes, then the picture shows this plot. If I did have mistakes, then I will apologise (again) and re-do the job. Of course, being the plot positive or negative is just a matter of how the voltage is being measured.
martes, 9 de febrero de 2010
Sterilizer's Temperature(Update)
Suscribirse a:
Entradas (Atom)




