117 lines
3.2 KiB
NASM
117 lines
3.2 KiB
NASM
; ***************************************************************************
|
|
; copyright : (C) 2026 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
|
|
; RAM_CS PB0 2 13 PA0
|
|
; EEPROM_CS PB1 3 12 PA1 COM_DATA
|
|
; /RESET PB3 4 11 PA2
|
|
; PB2 5 10 PA3 LED
|
|
; COM_CLK PA7 6 9 PA4 SPI_CLK
|
|
; SPI_MOSI PA6 7 8 PA5 SPI_MISO
|
|
; --------
|
|
;
|
|
; ***************************************************************************
|
|
|
|
|
|
|
|
.equ BOOTLOADER_ADDR = 0xd00
|
|
|
|
.equ FIRMWARE_VARIANT_BOOT = 0
|
|
.equ FIRMWARE_VARIANT_TEMP_WINDOW = 1
|
|
|
|
.equ DEVICEINFO_ID = 'E'
|
|
.equ DEVICEINFO_VERSION = 5
|
|
.equ DEVICEINFO_REVISION = 0
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; LED module
|
|
|
|
.equ LED1_DEFAULT_ONTIME = 1 ; shorter
|
|
.equ LED1_DEFAULT_OFFTIME = 99 ; longer
|
|
.equ LED1_DEFAULT_REPEATS = 0 ; continous
|
|
.equ LED1_DDR = DDRA
|
|
.equ LED1_PORT = PORTA
|
|
.equ LED1_PORTIN = PINA
|
|
.equ LED1_PINNUM = PORTA3
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; 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 = DDRA
|
|
.equ COM_DATA_INPUT = PINA
|
|
.equ COM_DATA_OUTPUT = PORTA
|
|
.equ COM_DATA_PIN = PORTA1
|
|
|
|
.equ COM_CLK_DDR = DDRA
|
|
.equ COM_CLK_INPUT = PINA
|
|
.equ COM_CLK_OUTPUT = PORTA
|
|
.equ COM_CLK_PIN = PORTA7
|
|
|
|
.equ COM_IRQ_ADDR_CLK = PCMSK0
|
|
.equ COM_IRQ_BIT_CLK = PCINT7 ; bit 7 in PCMSK0
|
|
.equ COM_IRQ_GIFR_CLK = PCIF0
|
|
.equ COM_IRQ_GIMSK_CLK = PCIE0
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; software SPI module
|
|
|
|
|
|
.equ SPISW_MOSI_DDR = DDRA
|
|
.equ SPISW_MOSI_INPUT = PINA
|
|
.equ SPISW_MOSI_OUTPUT = PORTA
|
|
.equ SPISW_MOSI_PIN = PORTA6
|
|
|
|
.equ SPISW_MISO_DDR = DDRA
|
|
.equ SPISW_MISO_INPUT = PINA
|
|
.equ SPISW_MISO_OUTPUT = PORTA
|
|
.equ SPISW_MISO_PIN = PORTA5
|
|
|
|
.equ SPISW_SCK_DDR = DDRA
|
|
.equ SPISW_SCK_INPUT = PINA
|
|
.equ SPISW_SCK_OUTPUT = PORTA
|
|
.equ SPISW_SCK_PIN = PORTA4
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; SPI RAM
|
|
|
|
.equ RAMCS_DDR = DDRB
|
|
.equ RAMCS_INPUT = PINB
|
|
.equ RAMCS_OUTPUT = PORTB
|
|
.equ RAMCS_PIN = PORTB0
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; SPI EEPROM
|
|
|
|
|
|
.equ EEPROMCS_DDR = DDRB
|
|
.equ EEPROMCS_INPUT = PINB
|
|
.equ EEPROMCS_OUTPUT = PORTB
|
|
.equ EEPROMCS_PIN = PORTB1
|
|
|
|
|
|
|