From b775c9b6b2c2fee80fa594b5801acff17d7586be Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Thu, 15 May 2025 00:34:57 +0200 Subject: [PATCH] n23/n24: improved handling of some values. Removed old files. --- avr/devices/n23/0BUILD | 4 + .../nodes => avr/devices/n23}/aqua_n23.xml | 4 +- avr/devices/n23/main/main-old.asm | 476 ------------------ avr/devices/n23/main/main.asm | 6 +- avr/devices/n24/0BUILD | 4 + avr/devices/n24/aqua_n24.xml | 18 + avr/devices/n24/main/main.asm | 11 +- avr/modules/sgp30/send.asm | 4 +- avr/modules/sgp40/send.asm | 2 +- devices/nodes/0BUILD | 1 - 10 files changed, 43 insertions(+), 487 deletions(-) rename {devices/nodes => avr/devices/n23}/aqua_n23.xml (68%) delete mode 100644 avr/devices/n23/main/main-old.asm create mode 100644 avr/devices/n24/aqua_n24.xml diff --git a/avr/devices/n23/0BUILD b/avr/devices/n23/0BUILD index dc4c439..bed977a 100644 --- a/avr/devices/n23/0BUILD +++ b/avr/devices/n23/0BUILD @@ -7,6 +7,10 @@ main + + aqua_n23.xml + + defs.asm README diff --git a/devices/nodes/aqua_n23.xml b/avr/devices/n23/aqua_n23.xml similarity index 68% rename from devices/nodes/aqua_n23.xml rename to avr/devices/n23/aqua_n23.xml index a164acb..0d0d4c3 100644 --- a/devices/nodes/aqua_n23.xml +++ b/avr/devices/n23/aqua_n23.xml @@ -8,7 +8,9 @@ - + + + diff --git a/avr/devices/n23/main/main-old.asm b/avr/devices/n23/main/main-old.asm deleted file mode 100644 index 6cb705c..0000000 --- a/avr/devices/n23/main/main-old.asm +++ /dev/null @@ -1,476 +0,0 @@ -; *************************************************************************** -; 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. * -; *************************************************************************** - - - - -; *************************************************************************** -; Source file for temperature sensor node on AtTiny 84 -; -; This is for the full system (i.e. not the boot loader). -; -; All definitions and changes should go into this file. -; -; -; *************************************************************************** - - -.equ clock=1000000 ; Define the clock frequency -;.equ clock=8000000 ; Define the clock frequency - - - -.nolist -.include "include/tn84def.inc" ; Define device ATtiny84 -.list - -.include "../defs.asm" -.include "defs_all.asm" - - - -; *************************************************************************** -; defines - -; --------------------------------------------------------------------------- -; generic - - -.include "common/utils_wait.asm" - - -; --------------------------------------------------------------------------- -; firmware settings including list of modules used - -.equ FIRMWARE_VERSION_MAJOR = 0 -.equ FIRMWARE_VERSION_MINOR = 0 -.equ FIRMWARE_VERSION_PATCHLEVEL = 1 - - -#define MODULES_TIMER -#define MODULES_COM -#define MODULES_COM_WITH_ADDR_PROTO -#define MODULES_LED_SIMPLE -#define MODULES_TWI_MASTER -;#define MODULES_LCD -#define LCD_MINIMAL_FONT -#define MODULES_SI7021 -#define MODULES_STATS -;#define MODULES_OWI_MASTER -;#define MODULES_DS18B20 -#define MODULES_MOTION -;#define MODULES_CCS811 - -; --------------------------------------------------------------------------- -; defines for values - -.equ VALUE_ID_SI7021_TEMP = 0x01 -.equ VALUE_ID_SI7021_HUM = 0x02 - -.equ VALUE_ID_ADC = 0x03 -;.equ VALUE_ID_REED1 = 0x04 -;.equ VALUE_ID_REED2 = 0x05 -;.equ VALUE_ID_DS18B20_TEMP = 0x06 -.equ VALUE_ID_MOTION = 0x07 - -.equ VALUE_ID_CO2 = 0x08 -.equ VALUE_ID_TVOC = 0x09 - -;.equ VALUE_ID_REED_CONF = 0x81 - -.equ VALUE_ID_DEBUG = 0x7f - - - -; *************************************************************************** -; code segment - -.cseg -.org 000000 - - - -; --------------------------------------------------------------------------- -; Reset and interrupt vectors (will be removed as soon as we can flash data over COM) - -; rjmp main ; Reset vector - rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system - reti ; EXT_INT0 - rjmp uartBitbangIsrPcint0 ; PCI0 - reti ; PCI1 - reti ; WATCHDOG - reti ; ICP1 - reti ; OC1A - reti ; OC1B - reti ; OVF1 - rjmp baseTimerIrqOC0A ; OC0A - reti ; OC0B - reti ; OVF0 - reti ; ACI - reti ; ADCC - reti ; ERDY - reti ; USI_STR - reti ; USI_OVF - - -devInfoBlock: ; 12 bytes -devInfoManufacturer: .db 'A', 'Q', 'U', 'A' -devInfoId: .db DEVICEINFO_ID, 0 -devInfoVersion: .db DEVICEINFO_VERSION, DEVICEINFO_REVISION ; version, revision -firmwareVersion: .db FIRMWARE_VARIANT_TEMP_WINDOW, FIRMWARE_VERSION_MAJOR - .db FIRMWARE_VERSION_MINOR, FIRMWARE_VERSION_PATCHLEVEL - -firmwareStart: rjmp main - - -; *************************************************************************** -; includes - -.include "common/utils.asm" -.include "common/utils_wait_fixed.asm" -.include "common/utils_copy_from_flash.asm" -.include "common/utils_copy_sdram.asm" -.include "common/crc8.asm" - -.include "modules/basetimer/main.asm" - -#ifdef MODULES_TIMER - .include "modules/timer/main.asm" -#endif -#ifdef MODULES_LED -.include "modules/led/main.asm" -#endif -#ifdef MODULES_LED_SIMPLE -.include "modules/led_simple/main.asm" -#endif -#ifdef MODULES_COM - .include "modules/com2/defs.asm" - .include "modules/com2/main.asm" - .include "modules/com2/buffer.asm" - .include "modules/uart_bitbang/defs.asm" - .include "modules/uart_bitbang/main.asm" - .include "modules/uart_bitbang/bytelevel.asm" - .include "modules/uart_bitbang/packetlevel.asm" - #ifdef MODULES_COM_WITH_ADDR_PROTO - .include "modules/comproto/defs.asm" - .include "modules/comproto/main.asm" - .include "modules/comproto/addr.asm" - .include "modules/comproto/msg_recvstats.asm" - .include "modules/comproto/msg_sendstats.asm" - .include "modules/comproto/msg_sysstats.asm" - .include "modules/comproto/msg_memstats.asm" - .include "modules/comproto/msg_pong.asm" - .include "modules/comproto/msg_value.asm" - .include "modules/comproto/msg_device.asm" - .include "modules/comproto/msg_reboot.asm" - #endif - #ifdef MODULES_LCD - .include "modules/com2/screen.asm" - .include "modules/comproto/screen.asm" - #endif -#endif -#ifdef MODULES_TWI_MASTER - .include "modules/twimaster/main.asm" -#endif -#ifdef MODULES_OWI_MASTER - .include "modules/owimaster/main.asm" -#endif -#ifdef MODULES_LCD - .include "modules/lcd/main.asm" -#endif -#ifdef MODULES_SI7021 - .include "modules/si7021/main.asm" -#endif -#ifdef MODULES_DS18B20 - .include "modules/ds18b20/main.asm" -#endif -#ifdef MODULES_STATS - .include "modules/stats/main.asm" -#endif -#ifdef MODULES_CNY70 - .include "modules/cny70/main.asm" -#endif -#ifdef MODULES_REED - .include "modules/reed/main.asm" -#endif - -#ifdef MODULES_MOTION - .include "modules/motion/main.asm" -#endif - -#ifdef MODULES_CCS811 - .include "modules/ccs811/main.asm" -#endif - -; test -;#include "modules/uart_irq/defs.asm" -;#include "modules/uart_irq/iface.asm" -;#include "modules/uart_irq/iface1.asm" - - -; *************************************************************************** -; data in SRAM - -.dseg - -programRamBegin: -#ifdef MODULES_LCD - screenCounter: .byte 1 -#endif - -programRamEnd: - - - -#ifdef MODULES_LCD - sramTimerWriteStats: .byte 2 - sramTimerScreen: .byte 2 -#endif -#ifdef MODULES_SI7021 - sramTimerSI7021Measure: .byte 2 - sramTimerSI7021SendTemp: .byte 2 - sramTimerSI7021SendHumidity: .byte 2 -#endif -#ifdef MODULES_CNY70 - sramTimerCny70SendAdc: .byte 2 -#endif -#ifdef MODULES_LCD - sramPeriodicalLcdMark: .byte 2 -#endif -#ifdef MODULES_DS18B20 - sramDs18b20Timer: .byte 2 - sramSendDs18b20TempTimer: .byte 2 -#endif - -#ifdef MODULES_CCS811 - sramCcs811Timer: .byte 2 -#endif - - -; *************************************************************************** -; data in FLASH - -.cseg - - - -; --------------------------------------------------------------------------- -; timer list - - -timerList: -; SRAM variable/counter routine flags secs (0=don't start or restart) -#ifdef MODULES_COM_WITH_ADDR_PROTO - .dw cproAddresModeTimer, CPRO_Address_OnTimer, 0, 0 ; (no restart) -#endif -#ifdef MODULES_STATS - .dw statsSendTimer, Stats_Timer, TIMER_FLAGS_IF_ADDR, 9000 ; every 15m -#endif -#ifdef MODULES_LCD -; .dw sramPeriodicalLcdMark, periodicalLcdMark, 0, 20 ; every 2s -; .dw sramTimerWriteStats, writeStats, 0, 100 - .dw sramTimerScreen, printScreen, TIMER_FLAGS_IF_ADDR, 50 ; every 5s -#endif -#ifdef MODULES_SI7021 - .dw sramTimerSI7021Measure, SI7021_OnTimer, 0, 300 ; every 30s - .dw sramTimerSI7021SendTemp, sendSI7021Temp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s - .dw sramTimerSI7021SendHumidity, sendSI7021Humidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s -#endif -#ifdef MODULES_CNY70 - .dw sramTimerCny70SendAdc, CNY70_OnTimer, TIMER_FLAGS_IF_ADDR, 50 ; every 5s -#endif -#ifdef MODULES_DS18B20 - .dw sramDs18b20Timer, Ds18b20_OnTimer, 0, 300 ; every 30s - .dw sramSendDs18b20TempTimer, sendDs18b20Temp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s -#endif -#ifdef MODULES_CCS811 - .dw sramCcs811Timer, CCS811_OnTimer, 0, 10 ; every 1s -#endif - .dw 0 ; end of list - - - - - -.include "main_all.asm" - - - -systemSetSpeed: -.if clock == 8000000 - ldi r16, (1< + + aqua_n24.xml + + defs.asm README diff --git a/avr/devices/n24/aqua_n24.xml b/avr/devices/n24/aqua_n24.xml new file mode 100644 index 0000000..8ca6a5d --- /dev/null +++ b/avr/devices/n24/aqua_n24.xml @@ -0,0 +1,18 @@ + + + AQUA + N + 24 + + + + + + + + + + + + + diff --git a/avr/devices/n24/main/main.asm b/avr/devices/n24/main/main.asm index 4ae432e..eb7cf59 100644 --- a/avr/devices/n24/main/main.asm +++ b/avr/devices/n24/main/main.asm @@ -1,5 +1,5 @@ ; *************************************************************************** -; copyright : (C) 2024 by Martin Preuss +; copyright : (C) 2025 by Martin Preuss ; email : martin@libchipcard.de ; ; *************************************************************************** @@ -69,7 +69,8 @@ ;#define MODULES_LCD ;#define LCD_MINIMAL_FONT #define MODULES_SI7021 -#define MODULES_SGP40 +#define MODULES_SGP30 +;#define MODULES_SGP40 ;#define MODULES_STATS ;#define MODULES_OWI_MASTER ;#define MODULES_DS18B20 @@ -93,8 +94,10 @@ ;.equ VALUE_ID_DS18B20_TEMP = 0x06 .equ VALUE_ID_MOTION = 0x07 -.equ VALUE_ID_CO2 = 0x08 -.equ VALUE_ID_TVOC = 0x09 +.equ VALUE_ID_SGP40_TVOC = 0x08 + +.equ VALUE_ID_SGP30_TVOC = 0x09 +.equ VALUE_ID_SGP30_CO2 = 0x0a ;.equ VALUE_ID_REED_CONF = 0x81 diff --git a/avr/modules/sgp30/send.asm b/avr/modules/sgp30/send.asm index 1ddc85a..3225e6a 100644 --- a/avr/modules/sgp30/send.asm +++ b/avr/modules/sgp30/send.asm @@ -17,7 +17,7 @@ SGP30_SendTVOC: ldi r16, SGP30_VALUE_TVOC rcall SGP30_GetValue brcc SGP30_SendTVOC_end - ldi r17, VALUE_ID_TVOC ; VALUE ID + ldi r17, VALUE_ID_SGP30_TVOC ; VALUE ID ldi r22, AQHOME_VALUETYPE_TVOC ; VALUE TYPE rcall Main_SendValueReport SGP30_SendTVOC_end: @@ -33,7 +33,7 @@ SGP30_SendCO2: ldi r16, SGP30_VALUE_CO2 rcall SGP30_GetValue brcc SGP30_SendCO2_end - ldi r17, VALUE_ID_CO2 ; VALUE ID + ldi r17, VALUE_ID_SGP30_CO2 ; VALUE ID ldi r22, AQHOME_VALUETYPE_CO2 ; VALUE TYPE rcall Main_SendValueReport SGP30_SendCO2_end: diff --git a/avr/modules/sgp40/send.asm b/avr/modules/sgp40/send.asm index 6c5cd8e..2799dc9 100644 --- a/avr/modules/sgp40/send.asm +++ b/avr/modules/sgp40/send.asm @@ -16,7 +16,7 @@ SGP40_SendTVOC: rcall SGP40_GetValue brcc SGP40_SendTVOC_end - ldi r17, VALUE_ID_TVOC ; VALUE ID + ldi r17, VALUE_ID_SGP40_TVOC ; VALUE ID ldi r22, AQHOME_VALUETYPE_TVOC ; VALUE TYPE rcall Main_SendValueReport SGP40_SendTVOC_end: diff --git a/devices/nodes/0BUILD b/devices/nodes/0BUILD index dfce8a3..8ac8966 100644 --- a/devices/nodes/0BUILD +++ b/devices/nodes/0BUILD @@ -14,7 +14,6 @@ aqua_n20.xml aqua_n21.xml aqua_n22.xml - aqua_n23.xml aqua_t03.xml