105 lines
2.9 KiB
NASM
105 lines
2.9 KiB
NASM
; ***************************************************************************
|
|
; copyright : (C) 2024 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. *
|
|
; ***************************************************************************
|
|
|
|
; ***************************************************************************
|
|
;
|
|
; AtTiny85
|
|
; --------
|
|
; /RESET PB5 1 8 VCC
|
|
; LED PB3 2 7 PB2 TWI-SDA
|
|
; COM-DATA PB4 3 6 PB1 TWI-SCL
|
|
; GND 4 5 PB0 COM-ATTN [PCINT0]
|
|
; --------
|
|
;
|
|
; ***************************************************************************
|
|
|
|
|
|
|
|
.equ BOOTLOADER_ADDR = 0xd00
|
|
|
|
|
|
.equ FIRMWARE_VARIANT_BOOT = 0
|
|
.equ FIRMWARE_VARIANT_MAIN = 1
|
|
|
|
|
|
.equ DEVICEINFO_ID = 'N'
|
|
.equ DEVICEINFO_VERSION = 19
|
|
.equ DEVICEINFO_REVISION = 0
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; LED module
|
|
|
|
.equ LED_SIMPLE_ONTIME = 2
|
|
.equ LED_SIMPLE_OFFTIME = 50
|
|
.equ LED_SIMPLE_DDR = DDRB
|
|
.equ LED_SIMPLE_PORT = PORTB
|
|
.equ LED_SIMPLE_PORTIN = PINB
|
|
.equ LED_SIMPLE_PINNUM = PORTB3
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; 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_DATA_DDR = DDRB
|
|
.equ COM_DATA_INPUT = PINB
|
|
.equ COM_DATA_OUTPUT = PORTB
|
|
.equ COM_DATA_PIN = PORTB4
|
|
|
|
.equ COM_ATTN_DDR = DDRB
|
|
.equ COM_ATTN_INPUT = PINB
|
|
.equ COM_ATTN_OUTPUT = PORTB
|
|
.equ COM_ATTN_PIN = PORTB0
|
|
|
|
.equ COM_IRQ_ADDR_ATTN = PCMSK
|
|
.equ COM_IRQ_BIT_ATTN = PCINT0 ; bit 0 in PCMSK0 (PCINT0)
|
|
.equ COM_IRQ_GIFR_ATTN = PCIF
|
|
.equ COM_IRQ_GIMSK_ATTN = PCIE
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; 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 = DDRB
|
|
.equ TWI_PORT_SCL = PORTB
|
|
.equ TWI_PIN_SCL = PINB
|
|
.equ TWI_PINNUM_SCL = PORTB1
|
|
|
|
.equ TWI_DDR_SDA = DDRB
|
|
.equ TWI_PORT_SDA = PORTB
|
|
.equ TWI_PIN_SDA = PINB
|
|
.equ TWI_PINNUM_SDA = PORTB2
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; SI 7021
|
|
|
|
.equ SI7021_ADDR = 0x40
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; CCS 811
|
|
;
|
|
|
|
.equ CCS811_ADDR = 0x5a ; or 0x5b
|
|
|
|
|
|
|
|
|