E lo mismo, pero no e igua

Para mi proyecto he decidido cambiar el 16F84 por un 16F628, que segun todo el mundo son iguales, compatibles, y de hecho uno es el heredero del otro. El 16F628 tiene USART hardware como ya he comentado anteriormente, tiene comparadores analógicos, un reloj interno medio decente, el doble de memoria y puede convertir, si es necesario, en entradas o salidas 16 de sus 18 patillas.
Lo que me costó comprender es que una de sus nuevas caracteristicas, la programación a bajo voltaje (LVP), inhabilita una de las patillas del puerto B.
No comprendía por que este chip, que se supone compatible con el 16F84, no funcionaba correctamente en mi circuito entrenador cuando le conectaba el LCD. Todo era por el LVP.
Esto se arregló poniendo en la directiva #fuses el parámetro NOLVP para que no usase la programación a bajo voltaje.

La otra decepción me ha surgido al comprobar que la USART hardware siempre usa las patillas B1 y B2 para la transmisión y recepción serie. Alguien me había comentado que se podian definir otras patillas, pero no es cierto. Si redefines las patillas el compilador se pone en modo USART por software y entonces dejan de funcionar las interrupciones que se generan cuando se reciben datos o cuando el buffer de salida está vacío.
Esto me impide usar el LCD de mi entrenador para probar el circuito de enlace por infrarrojos con la USART hardware ya que B1 y B2 se usan para manejar el LCD.
En fin, que tendré que rediseñar el circuito con el nuevo patillaje y ponerme a montar el circuito final rezando para que me funcione bien a la primera y sin contar con la inestimable ayuda debugeadora que proporciona el LCD.
Además, el hecho de que las 8 patillas de salida que necesito se dividan en diferentes puertos me van a complicar un poco la programación, pero supongo que los problemas de software siempre serán lo mas sencillo de solucionar para mi.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.