USART y samples

      18 Comments on USART y samples

Mis peripecias continúan, ultimamente con no demasiada fortuna. He tratado de instalar un precioso LCD azul que tenía por aquí, en una placa de pruebas para conectarlo al 16F84, pero utilicé un adaptador de molex para alimentarlo que me sacaba el voltaje de la línea de 12V de la fuente de alimentación y lo hacía con hilos de color rojo y negro. Eso me hizo confiar en que se trataba de 5V y la consecuencia nefasta es que ahora tengo un precioso LCD azul que no funciona, aunque si se enciende 🙂

Por otro lado me tome la libertad de poner en marcha una práctica muy habitual entre los electrónicos caseros (y de otros no tan caseros) de pedir muestras gratuitas a los fabricantes de integrados, que gentilmente las donan con la intención de que tus prototipos se conviertan en aparatos de producción masiva que lleven sus chips dentro. Le pedí a Microchip samples de 3 de sus PICs, el ya conocido 16F84A, su sucesor el 16F628A y otro con mas entradas y salidas el 16F873A. Y aqui están, me han llegado, gastos de envio incluidos, tan solo 4 días despues de pedirlos. ¡Mis primeros samples! A ver cuanto tardo en quemarlos.


Samples de Microchip

Entre tanto he seguido empapandome de información y he descubierto que una de las tareas que necesito realizar para mi proyecto no es tan trivial como creia al principio. Esa tarea es la de enviar datos por el puerto serie del ordenador al PIC para que este los reciba y los represente. Para realizarlo se necesita lo que en los PCs conocemos como una USART (Universal Synchronous/Asynchronous Receiver Transmitter) y para conseguir una podemos optar por una de estas 3 vias:

  • Programarla por software en el PIC para que con el timing adecuado sea capaz de decodificar los pulsos y convertirlos en bytes mediante técnicas llamadas de bit-banging o 1/3rd bit polling. (O bien usar la librería de USART virtual del compilador CCS, que ya trae el trabajo hecho).
  • Hacernos con un integrado que realice esta taréa y nos entregue los bytes en paralelo, como el 8251.
  • Usar un PIC que lleve incorporada una USART.

Dado que el 16F84 no tiene USART, y como era lo que yo tenía, en principio pensé en usar el método software para decodificar la señal serie. Este método presenta varios inconvenientes, y es que no solo te deja mucho menos espacio en la memoria de programa para tu propio software, sino que ademas es un proceso que demanda mucho tiempo y al PIC le queda muy poco para atender al resto de tareas que queramos tratar de ordenarle.
Conseguir una USART externa tampoco era una opción, demasiados chips para lo que trato de hacer.
Por eso mi pedido de samples incluia un 16F628, por que el sucesor del F84 SI lleva una USART incorporada, aunque desgraciadamente la linea RX de recepción de datos coincide con la misma patilla que el bit 2 del puerto de salida B (RB2), y necesito los 8 bits del puerto B para salida. Pero esto es algo que se puede arreglar.

Si alguien que entienda un poco de esto que estoy hablando me lee, que no me golpee, por favor. Ya se que necesito un MAX232 o 233 o similar para convertir a niveles TTL que usa el PIC lo que saca el puerto serie (TIA/EIA-232-F) o una alternativa mas engorrosa aunque mas barata. Pero no, no me golpeeis aún, que el enlace lo voy a hacer por infrarrojos 😉

18 thoughts on “USART y samples

  1. Makinolo

    Gracias por las URLs, aunque como digo no voy a usar un MAX232.
    Por cierto he editado tu comentario por que me ha jodido el diseño de la pagina 😀
    La segunda dirección ya la conocia, es la que use para realizar mis primeras pruebas.
    El circuito que he hecho para probar el LCD es muy parecido a ese, solo que el mio controla el backlight tambien.. pero no me funciona.
    Y ese es mi problema, que no son los esquemas lo que me fallan, sino la construccion de los circuitos.. y eso no lo arregla un simulador, supongo que solo con tiempo y paciencia aprenderé.

  2. Fernando

    Una pregunta: ¿por qué no has pedido samples del MAX232?, total, por el mismo precio… 😉
    Eso no quiere decir que luego los utilices…

  3. Makinolo

    No queria abusar je,je,je
    En realidad es que cuando pedí los samples no sabia ni que era un MAX232. Ahora que voy aprendiendo mis pedidos serán mas nutridos 😀

  4. Fernando

    Ya me han llegado mis samples!
    Los pedi el pasado día 18 (han tardado 8 días) y este mañana me ha timbrado el cartero porque la caja no le cabia en el buzón 😉

    Creo que me voy a aficionar a esto de los samples… y de paso estoy desempolvando mis libros de electrónica…

  5. Fernando

    Animado por los experimentos del maki 😉 estoy de nuevo con mi vena de electrónico (para eso estudié 5 años de Electrónica Industrial…), asi que me he armado de Samples y (por vagancia) me compré un programador en Mediakit2010, en concreto el PIC-PG2C por unos 12 Euros… cuando me ha llegado he podico comprobar que la firma que lo fabrica es OLIMEX, y aqui está la página del programador, con sus instrucciones y esquema: muy sencillo y fácil de hacer 😉

  6. Makinolo

    Me alegro, a ver si bates mi record de quemar componentes por minuto 😀
    Mediakit es de un tipo que anda mucho por las news de electronica y que se llama KT88. Desde luego no es de lo mas barato, pero parece un tipo serio.
    Mejores precios tienen en micropik, aunque la web es mas caótica.
    Ya contarás lo que vas haciendo, y lo mismo te pregunto alguna cosita que otra.

  7. Fernando

    Pregunta lo que quieras maki, aparte de mis conocimientos, mis libros (tengo mi propia biblioteca particular de electrónica con más de 30 libros…) y mi experiencia, he estado estos dias bajandome pdf’s de las páginas de Vishay (Displays de 7 segmentos y otras cosas…), Fairchild (que amablemente me envio a casa sin cargos unos 24 displays ;-)) y la de Texas Instruments, esta última muy importante por el libro: “Digital Logic Pocket Data Book”, que en unas 710 páginas te muestra toda su gama de integrados digitales (desde las puertas básicas, contadores y un sinfin de elementos de electrónica digital “discreta”) con tablas de la verdad, esquemas simbólicos y patillaje: muy recomendable 😉
    De todas formas repito: estoy a tu disposición para ayudarte en lo que pueda

  8. Gandhi

    En esos ratos de ocio en los cuales se me ocurren diversas cosas, se me pasó por la cabeza el realizar una transmision de datos eriales con el USART pero por el puerto PS2 con el problema que no entiendo el protocolo de com por PS2, si una buena persona lograra sacarme de la duda se lo agradeceria un montón.

  9. Arturo

    Necesito encender y apagar una lampara, led o lo que sea a traves del puerto serie, usando lenguaje ensamblador, si alguien sabe por favor ayuda!!!!!!!

  10. Juan_Manuel

    pues resulta que yo tambien me aferre a la idea de enviar datos de la PC a un modulo LCD, usando un pic16f84 y un max232 y pues el software parece funcionar bien, pero… siempre hay un pero. pues la linea TxD(pin 3 del DB9)
    cuando no transmite esta a -12v y esto lo conecto a R1IN o a R2IN del MAX232 y pues obtengo 5v en R1OUT o R2OUT segun haya conectado, que es lo correcto,… el bit 3 del PORTA esta configurado como entrada, sin embargo cuando conecto R1IN o R2IN del MAX232 a este pin se genera una señal que no tiene nada que ver con RxD, cuando se supone que tienen el mismo comportamiento.

    Esto tambien me pasa con otras practicas endonde uso al PORTA como entrada, los pines configurados como entras empiezan a generar señales diferentes de las fuentes.

    Alguien sabe por que pasa eso??

  11. Dr. Gusman

    Juan_Manuel, el MAX232 tiene dos tipos de entrada, las de nivel +5v y las de +-12v (TTL y noseque :P)

    Tienes que conectar: R1In y T1Out al RS232, y R1Out y T1In al 16f84, y recuerda que el MAX232 necesita 5 condensadores de 1uf para poder generar los +-12v necesarios, revisa que esté todo bien (pero por lo que dices habías conectado R1IN al bit3 del PORTA).

    A demás de esto, creo recordar que PORTA, 3 es una patilla que funciona en modo pull-up, quiere decir que no es una entrada convencional, funciona de manera invertida, se le mete una resistencia de pull-up a VDD y cuando se quiere enviar una señal a la misma debes de hacer que el segundo dispositivo se convierta en una entrada para que se detecte la caída de consumo y se cambie el estado lógico.

  12. dmr

    SI ALGUIEN SABE LE PIDO PORFABOR QUE CONTESTE ¿QUE EMPRESA AUN DA MUESTRAS DEL MAX232?

  13. Juan Carlos

    Hola, no tengo muchos conocimientos de electrónica pero voy avanzando, mi pregunta es como consigo las muestras gratis (samples) de microchip, temporalmente estoy residiendo en usa. Gracias por su atención.

Comments are closed.