lunes, 11 de febrero de 2013

Sistema Microcontrolador

En esta práctica construiremos un Sistema Microcontrolador para el PIC18f4550 que más tarde nos pueda servir como entrenador didáctico con el que hacer pruebas y ensayos.


Esta entrada del blog contará con los siguientes apartados:

- PIC18f4550
-Reloj
-Reset
-RS-232
-LED's
-LCD gráfico
-ICSP
-Bus de expansión
-Fuente de alimentación





PIC18f4550

Este PIC es el que vamos a usar para que sea el cerebro de nuestro entrenador. Este PIC es de la gama alta por lo que nos dará grandes prestaciones y un sinfín de posibilidades para poder trabajar con total comodidad.

Características generales:

- Memoria Flash de 32K bytes
- Memoria SRAM de 2048 bytes
- Memoria EEPROM de 256 bytes
- I/O: 35
- Conversores A/D: 13
- Módulos ECCP: 1
- Soporta SPI
- Soporta I2C
- Soporta USB
- Temporizadores de 8bits: 1
- Temporizadores de 16bits: 3
-Reloj interno de 8Mhz

Una vez visto esto abrimos nuestro entorno de trabajo ISIS y sacamos el PIC. Para este tipo de proyectos que van a requerir un gran número de conexiones se recomienda trabajar con labels en vez de con cableado con el fin de no convertir nuestro proyecto en una maraña descontrolada de cables. Trabajar con labels nos proporcionará limpieza comodidad y facilidad a la hora de trabajar.



NOTA: Pese a que trabajar con labels nos ayudará, hay que tener especial cuidado a la hora de nombrarlos ya que puede dar lugar a malas conexiones o conexiones erróneas que nos pueden fastidiar todo el trabajo, lo digo por experiencia propia.

NOTA 2: También debemos tener cuidado en que TODOS los componentes que saquemos tengan la huella correcta que vamos a usar más tarde. Por ejemplo para este PIC nosotros usaremos la 40 pin PDIP y debemos asegurarnos de que la tenemos, sino deberemos de proporcionársela antes de pasar al layout.

RELOJ

 

Pese a que este PIC tiene un oscilador interno de 8Mhz nosotros vamos a añadirlo además uno externo de 20Mhz, con el fin de poder acceder a un oscilador de mayor velocidad de trabajo si nos fuera necesario y también con el fin de familiarizarnos con los dos modos de trabajo tanto interno como externo.

Para añadir este oscilador externo nos fijamos en el pequeño circuito que aparece en el datasheet del PIC18f4550 y que deberemos seguir.


Como podemos observar el circuito no tiene ninguna complicación. Nosotros además hemos añadido un jumper en la patilla OSC1 para habilitar y deshabilitar este oscilador externo cuando lo necesitemos. Para saber que valores debemos poner tanto en C1 como en C2 nos fijamos de nuevo en el datasheet donde nos lo especifica con la siguiente tabla:


De esta manera vemos que nosotros necesitaremos dos condensadores de 15pF para C1 y C2, que junto al jumper antes mencionado nos deja el circuito con el siguiente aspecto:


Reset

Es importante proporcionar un reset por hardware a nuestro entrenador ya que posiblemente necesitaremos reiniciar nuestro PIC en algún momento cuando estemos haciendo pruebas. Para hacer este pequeño circuito de reset nos volvemos a fijar en el datasheet.

En el datasheet también especifica que el diodo D no es totalmente necesario y nosotros lo hemos sustituido por un pulsador doble anti-rebotes con el que nos aseguramos de un buen funcionamiento. Los valores de RC y R1 también están especificados en el datasheet.

RC: Entre 1k y 10k
R1: Menor de 1k
C: Para estos casos lo más común es usar uno de 100nF


Como podemos observar en este circuito R1 es una pull-up puesto que la entrada de reset MCLR trabaja en bajo activo por lo que necesito un 1 continuamente para trabajar y nos hará el reset cuando le lleve un 0 al presionar el pulsador.

RS-232

Ahora nos toca añadir la comunicación RS-232 que es una de las más utilizadas en la industria para comunicar dispositivos pese a que prácticamente ha quedado en desuso en los ordenadores personales.

Puesto que nuestro PIC es TTL y la comunicación RS-232 no trabaja a niveles TTL, si lo conectáramos directamente romperíamos nuestro PIC por lo que hay que añadir un integrado llamado "MAX232" que nos convertirá las señales y nos hará posible trabajar con una señal de +5V sin riesgo de romper ningún componente de nuestro entrenador.

Para saber cómo utilizar este dispositivo nos descargaremos el datasheet del MAX232 y tendremos cuidado de escoger nuestro modelo de MAX232 y no otro. En nuestro caso usaremos el MAX232A DIP16 por lo que seguiremos el siguiente esquema:

Como vemos en nuestro vamos deberemos usar siempre condensadores de 0,1 microfaradios o lo que es lo mismo de 100nF.

Por último solo queda añadir el conector que será un DB9. Además hay que tener en cuenta que para poder usar esta comunicación deberemos usar un cable modem nulo que cruza los cables RX y TX. Y puesto que lo más probable es que nuestro PC o portátil no tenga puerto RS-232 también tendremos que comprar un cable conversor RS-232 a USB.


LEDs

Lo siguiente será añadir cuatro LEDs que nos ayudarán a comprobar el tráfico de datos y si la comunicación es correcta.


LCD gráfico

Ahora añadiremos un LCD gráfico por si necesitamos mostrar algún tipo de dato por él. En nuestro caso hemos usado el modelo KS0108 con una resolución de 128x64 pixels. El potenciómetro RV1 sirve para controlar el contraste del LCD y el jumper a masa para habilitar y deshabilitar el LCD cuando queramos.


ICSP

Para poder programar nuestro PIC mediante ICD3 (para S.O. de 64bits) o ICD2 (para S.O. de 32bits) y así no tener que sacar el PIC de nuestro entrenador, añadiremos una conexión de RJ-11 personalizada para poder usar ICD3 e ICD2. Para ello crear nuestro propio componente tal y como explico en esta entrada del blog.


Bus de expansión

Para poder comunicarnos con el exterior necesitaremos un bus de expansión. Con esto tendremos a nuestra disposición todos y cada uno de los pines del PIC por lo que podremos conectar cualquier tipo de interfaz que queramos (como I2C y SPI) entre otras muchas opciones. Para ello usaremos un conector Ribbon de 40 pines puesto que nuestro PIC tiene 40 pines.


Fuente de alimentación

Por último añadiremos una fuente de alimentación. En este diseño hemos añadido dos opciones:

-La primera es la del conector Jack por el que meteremos una tensión de corriente continua de +5V que irá al componente 7805 que regulará la tensión eliminando picos que puedan afectar a los demás componentes del entrenador.

-La segunda opción es poder meter la tensión directamente sin que pase por el 7805 y por lo tanto sin tratar la señal. Por ello deberemos tener cuidado con lo que conectamos por aquí porque si la tensión no es la correcta podemos romper algún componente de la placa.

Además también hay un LED que nos avisará de que la tensión está llegando y una serie de condensadores de bypass con los que quitaremos posibles ruidos que afecten a los componentes de la placa.


Final

Con esto ya hemos terminado el diseño de nuestro entrenador. Aquí podemos ver una vista general:


El siguiente paso sería pasar a diseñar el layout mediante Ares, pero antes de dar ese paso podemos hacer algunas comprobaciones que nos ayuden a detectar algunos errores.

- Haciendo click en "Tool", despues "Bill of Materials" y escogemos la opción "HTML output" podremos ver un resumen de los componentes que hemos usado. Se mostrarán datos como el tipo de componente y el número de ellos que hemos usado.


- Haciendo click en "Design" y después en "Desing explorer" podremos ver si se nos ha quedado algún componente sin encapsulado. Si es así y queremos pasar nuestro diseño a Ares antes deberemos de proporcionarle un encapsulado.





8 comentarios:

  1. Una pregunta men ud tuvo que descargar librerias para que le saliera el encapsulado de todos los componentes x ej el pulsador que normalmente no viene asi?

    ResponderEliminar
  2. Hola Mauricio,

    La librería de proteus para isis/ares es algo que vas a tener que ir engordando con el tiempo y con el uso. Puedes buscar por internet librerías (pero son difíciles de encontrar) y también algunos fabricantes o distribuidores ponen a tu disposición los encapsulados en sus páginas Web.

    Pero al final casi por fuerza vas a tener que crear tus propios encapsulados porque seguro que te vas a encontrar con componentes que tienes que usar y de los que ni dispones ni encuentras el encapsulado.

    Te dejo los enlaces de dos tutoriales de Proteus tanto para ISIS como para Ares y espero que te sirvan en un futuro:

    http://apuntes-electronicos.blogspot.com.es/2013/01/como-crear-un-componente-en-isis.html

    http://apuntes-electronicos.blogspot.com.es/2013/04/creacion-de-un-componente-con-ares.html

    Un saludo!

    ResponderEliminar
  3. Men muchas gracias x tu respuesta de verdad me sirvio mucho, pero te tengo otra pregunta necesito saber como haces para mostrar todos los pines de los integrados en isis (Y)

    ResponderEliminar
  4. Hola Mauricio,

    Estoy encantado de poder ayudarte así que no te cortes con cualquier otra duda que puedas tener. Si lo que quieres es únicamente mostrar los pines ocultos haz lo siguiente:

    Template --> Set Design Defaults... Una vez aquí se te abrirá un menú, en la parte inferior izquierda marca la opción "Show hidden pins?

    Pero con esto solo se mostrarán pero no podrás usarlos ni conectarlos a nada. Si solo quieres verlos y saber a qué están conectados haz clic derecho en el componente, luego en propiedades y en el menú que te sale dale a "Hidden Pins" para ver a qué potencial están conectados.

    Pero si lo que quieres es que te salgan pero además poder conectarlos tú a donde quieras, tienes primero que hacer click derecho en el componente, después en "Descompose".

    Ahora te aparecerán los pines ocultos, tienes que hacer doble click en cada uno de ellos y poner la opción "Draw body?" Una vez lo tienes así tienes que volver a montar el componente tal y como explico en el tutorial de crear un componente para ISIS.

    Con este segundo método además de aparecer en el esquema podrás usarlos como tú quieras.

    Espero haberte ayudado. Un saludo!

    ResponderEliminar
  5. Gracias de nuevo viejo he aprendido bastante con lo que he visto aqui, pero tengo otras 2 preguntas, el conector jack para dc y los condensadores bypass los creaste o lo sacaste de una libreria o que pasa si uno usa otro tipo de condensador? y quisiera saber xq colocaste un conector D9M que es macho y nombras un conector DB9 que es hembra cual fue el motivo?

    ResponderEliminar
  6. Hola de nuevo,

    El conector jack para dc creo que me lo pasó un compañero de clase. Los condensades de bypass lo standar es que se usen de 100nf y el encapsulado que uses es indiferente. Nosotros usamos SMD 1206 en clase pero se puede usar el que quieras. Solo estate seguro de que la huella que uses y el condensador que compres sean de la misma medida.

    Lo del conector DB9 es porque la comunicación RS-232 usa 3 líneas GND, RX(recibir) y TX(enviar). Entonces el dispositivo que ENVÍA usa el cable RX y el que RECIBE usa el TX, que son EL MISMO cable pero se cruzan los pines. Hay un cable RS-232 que hace ya esto (se llama modem nulo) y el dibujo que hay es solo a modo explicativo.

    ResponderEliminar
  7. Umm ya con eso me queda todo claro, ya lo estoy haciendo con algunas modificaciones pero gracias x tu gran ayuda!

    ResponderEliminar
  8. hola me podrias decir como obtener el conector jack en el proteus porque no lo tengo gracias .

    ResponderEliminar