lunes, 7 de junio de 2010

Sterilizer's imminent end

After lot of work, the end of the first version of the Sterilizer's Control is at it's end stage. The PCBs are all working now, also the GLCD is perfectly working. After many delays due to the amplifying stage and the VHDL code (for this amplifying stage), all have been corrected.
Still, the final PCBs are not done. I already have the solder mask, but haven't made the PCBs again for being applied with the mask. Also, there are a few bugs on the code which I'll fix probably tomorrow.
Seems that this week or next we'll install our control at the hospital. I really hope so because I'm out of money!!!!
I'll put some pics of all the work we've done so far, but not today!!!!

domingo, 16 de mayo de 2010

Puertos Bidireccionales en FPGAs (Continuación 2)

Para definir puertos bidireccionales, se utiliza el concepto de tres estados. Bajo esta definición, la salida es deshabilitada colocandola en alta impedancia, y, así, la lectura es independiente. El código se muestra en la siguiente figura:
Al igual que el ejemplo anterior. SWITCH, SWITCH2 y ENTRADA son definidos como in, SALIDA es out y LED es inout. El funcionamiento es basicamente el mismo: cuando SWITCH es '1', LED, funcionando como salida, tendra lo que tiene ENTRADA, sin embargo, cuando SWITCH es '0', LED se pondrá en alta impedancia. Esta condición provocará que el ISE infiera que se trata de un puerto bidireccional de tres estados. Siguiendo la explicación, cuando SWITCH2 es '1', entonces SALIDA tendrá lo que tiene LED funcionando como entrada.
Como se observa en la imagen inferior. Al igual que el ejemplo anterior, LED se encuentra en '1' siendo ENTRADA '1' y SWTICH '1'.

Sin embargo, en la siguiente imagen se muestra como, cuando SWITCH es '0', colocando en alta impedancia a LED (como salida), y SWITCH2 es '1', entonces SALIDA tendrá lo que tiene LED.


Concluyendo, si queremos utilizar puertos bidireccionales en un FPGA, entonces debemos colocar la condición de alta impedancia cuando el puerto funciona como entrada, provocando que el ISE lo defina como un puerto de tres estados bidireccinal.

viernes, 14 de mayo de 2010

Puertos Bidireccionales en FPGAs (Continuación 1)

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.

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.

viernes, 30 de abril de 2010

PCBs

The PCBs are almost done!! Today the solder mask arrives, so when finished I'll post a new picture.

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




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.