Files
aqhomecontrol/avr/devices/r06/defs.asm
2025-08-18 18:47:13 +02:00

173 lines
4.4 KiB
NASM

; ***************************************************************************
; copyright : (C) 2025 by Martin Preuss
; email : martin@libchipcard.de
;
; ***************************************************************************
; * This file is part of the project "AqHome". *
; * Please see toplevel file COPYING of that project for license details. *
; ***************************************************************************
; ***************************************************************************
;
; AtTiny84
; --------
; VCC 1 14 GND
; LED0 PB0 2 13 PA0 COM-CLK0
; LED1 PB1 3 12 PA1 COM-CLK1
; /RESET PB3 4 11 PA2 COM-DATA0
; PB2 5 10 PA3 COM-DATA1
; PA7 6 9 PA4
; TWI-SDA PA6 7 8 PA5 TWI-SCL
; --------
;
; ***************************************************************************
.equ BOOTLOADER_ADDR = 0xd00
.equ FIRMWARE_VARIANT_BOOT = 0
.equ FIRMWARE_VARIANT_TEMP_WINDOW = 1
.equ DEVICEINFO_ID = 'R'
.equ DEVICEINFO_VERSION = 6
.equ DEVICEINFO_REVISION = 0
; ---------------------------------------------------------------------------
; LED module
.equ LED_SIMPLE_ONTIME = 1 ; shorter
.equ LED_SIMPLE_OFFTIME = 50 ; longer
.equ LED_SIMPLE_DDR = DDRB
.equ LED_SIMPLE_PORT = PORTB
.equ LED_SIMPLE_PORTIN = PINB
.equ LED_SIMPLE_PINNUM = PORTB0
; ---------------------------------------------------------------------------
; COM module
;.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
;.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
.equ COM_IRQ_ADDR_CLK = PCMSK0
.equ COM_IRQ_GIFR_CLK = PCIF0
.equ COM_IRQ_GIMSK_CLK = PCIE0
.equ COM_DATA_DDR = DDRA
.equ COM_DATA_INPUT = PINA
.equ COM_DATA_OUTPUT = PORTA
.equ COM_DATA_PIN = PORTA2
.equ COM_CLK_DDR = DDRA
.equ COM_CLK_INPUT = PINA
.equ COM_CLK_OUTPUT = PORTA
.equ COM_CLK_PIN = PORTA0
.equ COM_LED_DDR = DDRB
.equ COM_LED_INPUT = PINB
.equ COM_LED_OUTPUT = PORTB
.equ COM_LED_PIN = PORTB0
.equ COM_IRQ_ADDR_M_CLK = GIMSK
.equ COM_IRQ_BIT_M_CLK = PCIE0
.equ COM_IRQ_ADDR_F_CLK = GIFR
.equ COM_IRQ_BIT_F_CLK = PCIE0
.equ COM_PORTS = 2
.equ COM_MASK_CLK0 = (1<<PINA0)
.equ COM_MASK_DATA0 = (1<<PINA2)
.equ COM_MASK_IRQ0 = (1<<PCINT0)
.equ COM_MASK_CLK1 = (1<<PINA1)
.equ COM_MASK_DATA1 = (1<<PINA3)
.equ COM_MASK_IRQ1 = (1<<PCINT1)
; ---------------------------------------------------------------------------
; TWI master module
;.equ TWI_BIT_LENGTH = 10000 ; 100000 and 200000 works for display: 10000, 100000, 200000
.equ TWI_BIT_LENGTH = 1 ; 10, 100, 500, 100000 and 200000 works for display: 10000, 100000, 200000
.equ TWI_DDR_SCL = DDRA
.equ TWI_PORT_SCL = PORTA
.equ TWI_PIN_SCL = PINA
.equ TWI_PINNUM_SCL = PORTA4
.equ TWI_DDR_SDA = DDRA
.equ TWI_PORT_SDA = PORTA
.equ TWI_PIN_SDA = PINA
.equ TWI_PINNUM_SDA = PORTA6
; ---------------------------------------------------------------------------
; SI 7021
.equ SI7021_ADDR = 0x40
; ---------------------------------------------------------------------------
; SGB 30
.equ SGP30_ADDR = 0x58
; ---------------------------------------------------------------------------
; SGB 40
.equ SGP40_ADDR = 0x59
; ---------------------------------------------------------------------------
; 1-Wire Master
;
.equ OWI_DDR = DDRB
.equ OWI_PORTOUT = PORTB
.equ OWI_PORTIN = PINB
.equ OWI_PINNUM = PORTB2
; ---------------------------------------------------------------------------
; Motion Sensor
;
.equ MOTION_DDR = DDRB
.equ MOTION_INPUT = PINB
.equ MOTION_OUTPUT = PORTB
.equ MOTION_PIN = PORTB1
; ---------------------------------------------------------------------------
; CCS 811
;
.equ CCS811_ADDR = 0x5a ; or 0x5b
; ---------------------------------------------------------------------------
; Brightness
.equ BRIGHTNESS_ADC_PORT = PORTA ; adc0
.equ BRIGHTNESS_ADC_DDR = DDRA
.equ BRIGHTNESS_ADC_PIN = PORTA0
.equ BRIGHTNESS_ADC_MUX = 0