Habi Hablóg
Declaro:
XML válidoXHTML válido800x600 +
RSS válidoCSS válidoNavegador digno
  Blog   Archivo   Contacto   Administración  

Acerca de

Matemático, informático, aficionado a la electrónica, friki... y otras cosas que no vienen a cuento ni pasan los filtros de palabras.

¿Queríais un blog? Ahí va.

Red antisocial

¡Me van a volver loca! 2.0
La Fragata Portuguesa

Z
¡Me van a volver loca!

Últimos posts

El expediente X que nadie pidió
eNigma
La cuadratura del píxel
Portando desde Spectrum
Inexorable

Últimos comentarios

Habi
NoSupoResolverLaFuncion
Edu
Habi
EnriqueGG

Calendario

No hay fechas.

Categorías

Chorradas
Paranoias
Posts lúcidos
Tecnoesoterismo
Yuyus

Cenas de Abj

Abj debe 7 cenas.

Frase célebre

Azahara dice: habi ayudame, que yo con el francés no doy para más!

Marchando otro doble

Habi - 11/02/2007 0:48:39 - Tecnoesoterismo

Me he propuesto hacerme esos controladores domésticos que mencioné en el post nº 4 (si no lo has visto, mira el archivo, que para eso está).

El paso esencial es el interconectar el ordenador a la red montada por los cables de la luz, para lo cual pensaba usar un PIC que tuviese UART (USART) para comunicarse con el PC, y llevar por software el protocolo que tuviese esa red (en otro post os contaré el que he diseñado, porque X10 es una guarrería).

De nuevo hoy he ido a comprar mis chucherías, incluyendo un PIC 16F628A (más barato que el 16F84A, y con un montón de mejoras y cosas extras), y un MAX233 (para convertir los niveles de voltaje TTL - RS232) por el que me han clavado un poco más del doble del precio del PIC. En fin, al menos no necesita condensadores externos, como el MAX232.

El programa ha llevado un poco, debido al sistema de interrupciones del PIC para el envío. Al final, sólo uso interrupciones para la recepción; recepción asíncrona y envío síncrono. Más que de sobra para lo que necesito. Hacer que haga un saludo al principio, y un eco de los caracteres recibidos, invirtiendo las mayúsculas y minúsculas para saber que está funcionando, y a correr.

El código es algo así:

;Esto es una prueba del USART para el pic 16F628A

  list  p=16f628a
  include <p16f628a.inc>
 
SalvaW  equ 0x20

  org   0x00
  goto  Inicio

  org   0x04
  btfsc PIR1, RCIF
  call  RxInt
;Otras interrupciones
  retfie

RxInt:
  movwf SalvaW
  movfw RCREG
  xorlw 0x20
  call  Envia
  movfw SalvaW
  return

;--------------------------------------------

Envia:
  bsf   STATUS, RP0
EsperaEnvio:
  btfss TXSTA, TRMT
  goto  EsperaEnvio
  bcf   STATUS, RP0
  movwf TXREG
  return

;--------------------------------------------

Inicio:
  bsf   STATUS, RP0
  movlw B'00100100' ;TXSTA: TXEN, BRGH
  movwf TXSTA
  movlw D'25'   ;SPBRG: 9600 baudios
  movwf SPBRG
  bsf   PIE1, RCIE  ;PIE1: RCIE
  bcf   STATUS, RP0
  movlw B'10010000' ;RCSTA: SPEN, CREN
  movwf RCSTA
  movlw B'11000000' ;INTCON: Hablito interrupciones (general) y periféricas
  movwf INTCON

  movlw 'H'
  call  Envia
  movlw 'o'
  call  Envia
  movlw 'l'
  call  Envia
  movlw 'a'
  call  Envia
  movlw D'13'
  call  Envia
Bucle:
  goto  Bucle

  end

El circuito de prueba y el resultado:

 

Sale "Holala" en el HyperTerminal porque intenta emular un terminal con protocolo definido y se hace un lío con los caracteres de control (retorno de carro en este caso). Oh lalá, es una señal.

Ya falta menos…


Cuando cuento que hago tal o cual cosa pareciera como si esta se hiciese siempre a la primera, como si nunca me equivocase. Nada más lejos de la realidad.

Hoy por ejemplo, tras probar el programa del PIC en el emulador (MPLAB SIM), apañar el tema de las interrupciones, probarlo en el Proteus (Isis), y montar cuidadosamente todas las conexiones en la placa de prototipos, no funcionaba. Y del software no podía ser, ni de la configuración del PIC.

Metí el polímetro y vi unos valores raros de entrada / salida en las patas TX y RX, así que pensé que el problema era del MAX233. Poco después descubrí con horror que no era eso, gracias al olfato. Había cometido uno de los peores errores: había confundido Vdd y Vss en el PIC (le había invertido el voltaje). Afortunadamente son duros y tienen diodos protectores, no se que les hace la gente esa que dice que se los carga. En cualquier caso, una vez subsanado funcionó todo perfectamente.

La única secuela ha sido esta:

Del calor de la corriente disipada se ha fundido un poco el plástico de la placa de prototipos, ese era el olor que detecté.

Por si alguien quiere hacer cosas con la electrónica, os daré unos consejos:


Z - 12/02/2007 11:50:38

¡Ánimo, Habisoft, de esta logras emanciparte! 
 
Y eso que me consta que hay gente que osa irse a vivir sola sin tener acabados los controladores domésticos caseros de ia integrada... 
 
Besos, 
Z. 
 
P(t) Alguien va a ganar una apuesta...



Habi - 12/02/2007 15:30:03

A ver si es verdad que me emancipo ya, está un poco difícil el tema de los lofts. 
 
A mi me consta algo peor, que hay gente que se va a vivir sola sin tener siquiera cama o fogones. 
 
P(t): Alguien va a ganar una apuesta, en efecto; y no eres tú.



Z - 12/02/2007 17:17:40

Comer y dormir... Mariconadas! 
 
 
 
Z.



L - 13/02/2007 1:07:39

Vaaamos, vamos. Alguien va a ganar una apuesta, y soy yo. 
 
Y os recuerdo que algunos se emancipan sin tener siquiera ADSL. Son unos pringaos, sí, pero ahí están. 
 




Post cerrado