User: alciro    User
 

Domótica sencilla, fácil y económica

Share |
 Introducción a la red domótica libre microHomeLan
 Aspectos económicos en las instalaciones domóticas

1. Unidad central CPU

La unidad central CPU representa la unidad de control con el microprocesador y los buses de comunicaciones para la red uHLan RS-485 y los elementos periféricos como sensores táctiles en el bus i2cBus o los sensores de temperatura 1-wire.

La CPU se ha diseñado en una placa independiente para poder interactuar con diferentes placas base, donde se pueden situar drivers de potencia de distinta índole según la necesidad. De esta forma una misma CPU se puede utilizar para distintos actuadotes cambiándole el firmware.

1.1. uHLan CPU 1.0

Prototipo de la unidad central CPU microHomeLan 1.0

Prototipo de unidad central uHLan CPU 1.0

1.1.1. Microcontrolador

Microcontrolador ATMEGA238 de la unidad central uHLan CPU 1.0

Para el desarrollo de la unidad central (CPU) se ha utilizado el conocido ATMEGA328, microcontrolador AVR de 8bits de la casa ATMEL de gran difusión en otros proyectos en la red.

Características del MEGA328:

  • High Performance, Low Power AVR® 8-Bit Microcontroller
  • Advanced RISC Architecture

- 131 Powerful Instructions - Most Single Clock Cycle Execution
- 32 x 8 General Purpose Working Registers
- Fully Static Operation
- Up to 20 MIPS Throughput at 20 MHz
- On-chip 2-cycle Multiplier

  • High Endurance Non-volatile Memory Segments

- 4/8/16/32K Bytes of In-System Self-Programmable Flash progam memory (ATmega48PA/88PA/168PA/328P)
- 256/512/512/1K Bytes EEPROM (ATmega48PA/88PA/168PA/328P)
- 512/1K/1K/2K Bytes Internal SRAM (ATmega48PA/88PA/168PA/328P)
- Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
- Data retention: 20 years at 85°C/100 years at 25°C(1)
- Optional Boot Code Section with Independent Lock Bits
    In-System Programming by On-chip Boot Program
    True Read-While-Write Operation
- Programming Lock for Software Security

  • Peripheral Features

- Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
- One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
- Real Time Counter with Separate Oscillator
- Six PWM Channels
- 8-channel 10-bit ADC in TQFP and QFN/MLF package
    Temperature Measurement
- 6-channel 10-bit ADC in PDIP Package
    Temperature Measurement
- Programmable Serial USART
- Master/Slave SPI Serial Interface
- Byte-oriented 2-wire Serial Interface (Philips I2C compatible)
- Programmable Watchdog Timer with Separate On-chip Oscillator
- On-chip Analog Comparator
- Interrupt and Wake-up on Pin Change

  • Special Microcontroller Features

- Power-on Reset and Programmable Brown-out Detection
- Internal Calibrated Oscillator
- External and Internal Interrupt Sources
- Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby, and Extended Standby

  • I/O and Packages

- 23 Programmable I/O Lines
- 28-pin PDIP, 32-lead TQFP, 28-pad QFN/MLF and 32-pad QFN/MLF

  • Operating Voltage:

- 1.8 - 5.5V for ATmega48PA/88PA/168PA/328P

  • Temperature Range:

- -40°C to 85°C

  • Speed Grade:

- 0 - 20 MHz @ 1.8 - 5.5V

  • Low Power Consumption at 1 MHz, 1.8V, 25°C for ATmega48PA/88PA/168PA/328P:

- Active Mode: 0.2 mA
- Power-down Mode: 0.1 μA
- Power-save Mode: 0.75 μA (Including 32 kHz RTC)

Oscilador (cristal del sistema)

El microcontrolador ATMEGA328 puede trabajar con un reloj interno o externo, se ha optado por utilizar un cristal de cuarzo externo para poder controlar la frecuencia de trabajo con más precisión. El rango de la frecuencia de trabajo es de unos pocos KHz hasta 20MHz, se ha elegido un cristal de 11,0592MHz para que proporcione una potencia de cálculo elevada y un consumo energético bajo.

Otro factor para la elección de este componente, es su estandarización y su gran utilización en muchos proyectos basados en microprocesadores industriales. Este cristal de 11,0592MHz está pensado para proporcionar una frecuencia de reloj múltiplo de las velocidades de trabajo de las UARs o USARs y proporcionar una velocidad de comunicación en BAUDs exacta.

El cristal de microcontrolador se utiliza para el funcionamiento de los TIMERs internos, para generar todas las secuencias de control temporal en las comunicaciones, temporizaciones, sensores y actuadores, por lo que la frecuencia de 11,0592MHz queda asociada al firmware del proyecto.

No se puede cambiar la frecuencia del cristal de cuarzo salvo que se cree un firmware específico para el cristal.

Programación del firmware, Icsp (In-Circuit Serial Programming)

El microcontrolador AT-MEGA328 tiene la capacidad de programarse en el circuito mediante una conexión ICSP por lo que se ha dotado de un conector para realizar la programación y poder actualizar el firmware directamente en la placa, sin necesidad de extraer chip.

Para su programación es necesario de un adaptador de RS-232 a ICSP o cualquier programador compatible con la familia MEGA de Atmel.

Indicadores de estado

Para indicar el estado de las comunicaciones entre dispositivos se utiliza el led LD1 de dos colores (rojo, verde) de cátodo común.

La corriente por el diodo led está determinada por las resistencias R5 y R6 de 1KΩ.

I_{led}\ =\ \frac{Vo-V_{led}}{R}\ =\ \frac{5v-1,5v}{1K\Omega }\ =  \ 3.5mA

La indicación del estrado de la comunicación se produce en la unidad emisora y la unidad destino, haciendo caso omiso el resto de unidades que forman la red.

  • LED Verde Transmisión correcta

Emisor: Se ha enviado el frame correcto y se ha recibido una respuesta (confirmación) correcta.
Receptor: Se ha recibido el frame y se ha identificado el proceso o la acción correctamente.

  • LED Naranja (a) Frame o comando incorrecto, (b) desbordamiento del tiempo de espera

(a)
Emisor: Si la respuesta del receptor es incorrecta.
Receptor: Si la petición del emisor es incorrecta o no se reconoce el proceso o la acción en esta unidad.
(b)
Emisor y Receptor: Cuando se envía un frame incompleto, cuando se esperan datos para completar un frame y no llegan o tardan mucho.

  • LED Rojo Colisión o error en la línea RS-485

Emisor y Receptor: Se produce en la transmisión de un frame, cuando el eco de la línea no coincide con los datos enviados. Esto puede suceder por que dos unidades intenten enviar datos al mismo tiempo o por que la línea de comunicación tenga algún problema.

Loading

copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |