109 lines
3.4 KiB
NASM
109 lines
3.4 KiB
NASM
; ***************************************************************************
|
|
; copyright : (C) 2023 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. *
|
|
; ***************************************************************************
|
|
|
|
|
|
; ***************************************************************************
|
|
;
|
|
; AtMega8515
|
|
; --------
|
|
; DEV0 (T0) PB0 1 40 VCC
|
|
; DEV1 (T1) PB1 2 39 PA0 (AD0) SRAM
|
|
; DEV2 (AIN0) PB2 3 38 PA1 (AD1) SRAM
|
|
; D_RES (AIN1) PB3 4 37 PA2 (AD2) SRAM
|
|
; SPI (SS) PB4 5 36 PA3 (AD3) SRAM
|
|
; SPI (MOSI) PB5 6 35 PA4 (AD4) SRAM
|
|
; SPI (MISO) PB6 7 34 PA5 (AD5) SRAM
|
|
; SPI (SCK) PB7 8 33 PA6 (AD6) SRAM
|
|
; /RESET 9 32 PA7 (AD7) SRAM
|
|
; UART (RXD) PD0 10 31 PE0 (INT2)
|
|
; UART (TXD) PD1 11 30 PE1 (ALE) SRAM
|
|
; ATTN (INT0) PD2 12 29 PE2 (OC1B) LED
|
|
; T-IRQ (INT1) PD3 13 28 PC7 (A15) SRAM
|
|
; D-DC (XCK) PD4 14 27 PC6 (A14) SRAM
|
|
; D_BACKLIGHT (OC1A) PD5 15 26 PC5 (A13) SRAM
|
|
; SRAM (/WR) PD6 16 25 PC4 (A12) SRAM
|
|
; SRAM (/RD) PD7 17 24 PC3 (A11) SRAM
|
|
; XTAL2 18 23 PC2 (A10) SRAM
|
|
; XTAL1 19 22 PC1 (A9) SRAM
|
|
; GND 20 21 PC0 (A8) SRAM
|
|
; --------
|
|
;
|
|
; ***************************************************************************
|
|
|
|
|
|
|
|
.equ BOOTLOADER_ADDR = 0xc00
|
|
|
|
.equ FIRMWARE_VARIANT_BOOT = 0
|
|
.equ FIRMWARE_VARIANT_TEMP_WINDOW = 1
|
|
|
|
.equ DEVICEINFO_ID = 'C'
|
|
.equ DEVICEINFO_VERSION = 1
|
|
.equ DEVICEINFO_REVISION = 0
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; LED module
|
|
|
|
.equ LED_SIMPLE_ONTIME = 1 ; shorter
|
|
.equ LED_SIMPLE_OFFTIME = 50 ; longer
|
|
.equ LED_SIMPLE_DDR = DDRE
|
|
.equ LED_SIMPLE_PORT = PORTE
|
|
.equ LED_SIMPLE_PORTIN = PINE
|
|
.equ LED_SIMPLE_PINNUM = PORTE2
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; 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_ATTN_DDR = DDRD
|
|
.equ COM_ATTN_INPUT = PIND
|
|
.equ COM_ATTN_OUTPUT = PORTD
|
|
.equ COM_ATTN_PIN = PORTD2
|
|
|
|
.equ COM_IRQ_ADDR_ATTN = GICR
|
|
.equ COM_IRQ_BIT_ATTN = INT0
|
|
.equ COM_IRQ_GIFR_ATTN = INTF0
|
|
;.equ COM_IRQ_GIMSK_ATTN = PCIE0
|
|
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; ComOnUart module
|
|
|
|
.equ USART0_DATAREG = UDR
|
|
.equ UCSR0A = UCSRA
|
|
.equ UCSR0B = UCSRB
|
|
.equ UCSR0C = UCSRC
|
|
.equ UBRR0L = UBRRL
|
|
.equ UBRR0H = UBRRH
|
|
|
|
.equ UCSZ00 = UCSZ0
|
|
.equ UCSZ01 = UCSZ1
|
|
.equ UDRE0 = UDRE
|
|
.equ RXC0 = RXC
|
|
.equ TXC0 = TXC
|
|
.equ FE0 = FE
|
|
.equ DOR0 = DOR
|
|
.equ UPE0 = UPE
|
|
.equ RXEN0 = RXEN
|
|
.equ TXEN0 = TXEN
|
|
.equ USBS0 = USBS
|
|
.equ RXCIE0 = RXCIE
|
|
.equ UDRIE0 = UDRIE
|
|
|
|
|