Files
aqhomecontrol/avr/devices/c02/defs.asm
2025-06-01 19:26:31 +02:00

176 lines
4.8 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. *
; ***************************************************************************
; ***************************************************************************
;
; AtMega644
; --------
; DSPLED PB0 1 40 PA0 DEV0
; DC PB1 2 39 PA1 DEV1
; INT2 PB2 3 38 PA2 DEV2
; DSPRES PB3 4 37 PA3 PA3
; SS PB4 5 36 PA4 PA4
; MOSI PB5 6 35 PA5
; MISO PB6 7 34 PA6
; SCK PB7 8 33 PA7
; /RESET 9 32 AREF
; VCC 10 31 GND
; GND 11 30 AVCC
; XTAL2 12 29 PC7
; XTAL1 13 28 PC6
; RXD PD0 14 27 PC5
; TXD PD1 15 26 PC4
; ATTN PD2 16 25 PC3
; INT1 PD3 17 24 PC2
; LED PD4 18 23 PC1
; PD5 19 22 PC0
; PD6 20 21 PD7
; --------
;
; ***************************************************************************
.equ BOOTLOADER_ADDR = 0x7c00
.equ FIRMWARE_VARIANT_BOOT = 0
.equ FIRMWARE_VARIANT_TEMP_WINDOW = 1
.equ DEVICEINFO_ID = 'C'
.equ DEVICEINFO_VERSION = 2
.equ DEVICEINFO_REVISION = 0
; ---------------------------------------------------------------------------
; LED module
.equ LED_SIMPLE_ONTIME = 1 ; shorter
.equ LED_SIMPLE_OFFTIME = 50 ; longer
.equ LED_SIMPLE_DDR = DDRD
.equ LED_SIMPLE_PORT = PORTD
.equ LED_SIMPLE_PORTIN = PIND
.equ LED_SIMPLE_PINNUM = PORTD4
; ---------------------------------------------------------------------------
; 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 = DDRD
.equ COM_DATA_INPUT = PIND
.equ COM_DATA_OUTPUT = PORTD
.equ COM_DATA_PIN = PORTD0
.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 = EIMSK
.equ COM_IRQ_BIT_ATTN = INT0
.equ COM_IRQ_GIFR_ATTN = INTF0
;.equ COM_IRQ_GIMSK_ATTN = PCIE0
; ---------------------------------------------------------------------------
; SPI hardware module
.equ SPIHW_SS_DDR = DDRB
.equ SPIHW_SS_INPUT = PINB
.equ SPIHW_SS_OUTPUT = PORTB
.equ SPIHW_SS_PIN = PORTB4
.equ SPIHW_MOSI_DDR = DDRB
.equ SPIHW_MOSI_INPUT = PINB
.equ SPIHW_MOSI_OUTPUT = PORTB
.equ SPIHW_MOSI_PIN = PORTB5
.equ SPIHW_MISO_DDR = DDRB
.equ SPIHW_MISO_INPUT = PINB
.equ SPIHW_MISO_OUTPUT = PORTB
.equ SPIHW_MISO_PIN = PORTB6
.equ SPIHW_SCK_DDR = DDRB
.equ SPIHW_SCK_INPUT = PINB
.equ SPIHW_SCK_OUTPUT = PORTB
.equ SPIHW_SCK_PIN = PORTB7
.equ SPIHW_SS0_DDR = DDRA
.equ SPIHW_SS0_OUTPUT = PORTA
.equ SPIHW_SS0_INPUT = PORTA
.equ SPIHW_SS0_PIN = PORTA0
.equ SPIHW_SS1_DDR = DDRA
.equ SPIHW_SS1_OUTPUT = PORTA
.equ SPIHW_SS1_INPUT = PORTA
.equ SPIHW_SS1_PIN = PORTA1
.equ SPIHW_SS2_DDR = DDRA
.equ SPIHW_SS2_OUTPUT = PORTA
.equ SPIHW_SS2_INPUT = PORTA
.equ SPIHW_SS2_PIN = PORTA2
; ---------------------------------------------------------------------------
; ILI9341 module
.equ ILI9341_DEVICENUM = 0
.equ ILI9341_DSP_WIDTH = 320
.equ ILI9341_DSP_HEIGHT = 240
.equ ILI9341_RESET_DDR = DDRB
.equ ILI9341_RESET_OUTPUT = PORTB
.equ ILI9341_RESET_INPUT = PORTB
.equ ILI9341_RESET_PIN = PORTB3
.equ ILI9341_DC_DDR = DDRB
.equ ILI9341_DC_OUTPUT = PORTB
.equ ILI9341_DC_INPUT = PORTB
.equ ILI9341_DC_PIN = PORTB1
.equ ILI9341_LED_DDR = DDRB
.equ ILI9341_LED_OUTPUT = PORTB
.equ ILI9341_LED_INPUT = PORTB
.equ ILI9341_LED_PIN = PORTB0
; ---------------------------------------------------------------------------
; 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