Compare commits

..

2 commits

Author SHA1 Message Date
stephan
f0182fdb20 arm/avr: %.id, %.eeprom.eeprom
git-svn-id: svn+ssh://asterix.ieap.uni-kiel.de/home/subversion/stephan/solo/eda/arm/avr@8967 bc5caf13-1734-44f8-af43-603852e9ee25
2024-05-30 11:41:35 +00:00
stephan
9142aafa3a avr/chaos: read default conf from EEPROM
git-svn-id: svn+ssh://asterix.ieap.uni-kiel.de/home/subversion/stephan/solo/eda/arm/avr@8961 bc5caf13-1734-44f8-af43-603852e9ee25
2024-05-30 04:07:37 +00:00
2 changed files with 32 additions and 26 deletions

View file

@ -70,6 +70,9 @@ chaos.hex: chaos.eeprom
%.lfuse:
$(AD) -B 5 -U lfuse:w:$(lfuse_$*):m
%.id:
$(AD) -B 5 -U lfuse:v:$(lfuse_$*):m
clean:
rm -f *.hex *.o *.s *.map *.elf *.d
@ -78,7 +81,7 @@ lcd_CFLAGS = -I. -DDEBUG
lcd.o: lcd.c spi_slave.h lcd_routines.h lcd_routines.c uart_atmega16.c
.PHONY: eeprom.eeprom
eeprom.eeprom:
%.eeprom.eeprom: %.hex
$(AD) -U eeprom:r:$@
%.eeprom.burn: %.eeprom
$(AD) -U eeprom:v:$< || $(AD) -U eeprom:w:$<

View file

@ -127,20 +127,7 @@ struct conf {
unsigned char hvosc_freq;
unsigned char hvosc_dc;
unsigned char padding[3];
} conf = {
.magic = MAGIC,
.version = VERSION,
.wdt_timeout = 120, // 2 min
.tick_period = TICK_NS(10000000L), // 10ms ramp
.avradc = 0x7f, // off
.adcconf = 0x8500,// RST
.ddrc = 2, // OC1B HVOSC
.adcgain = ADC_GAINS,
.auxadc_n = 4,
.hvadc_ch = 1,
.hvadc_n = 4,
.hvadc_safe = 0x8100,
};
} conf;
enum {
FLAG_WDT = 1,
@ -157,26 +144,20 @@ enum {
};
__attribute__((section(".eeprom")))
const struct conf runconf[2] = {
[0] = { // SAFE
const struct conf runconf[] = {
[0] = { // Default
.magic = MAGIC,
.version = VERSION,
.safe = 1,
.flags = FLAG_WDT | FLAG_RAMP | FLAG_ADCCONF | FLAG_DACADC,
.flags2 = FLAG2_HVOSC | FLAG2_HVLED,
.wdt_timeout = 120, // 2 min
.tick_period = TICK_NS(10000000L), // 10ms ramp
.avradc = 0x7f, // off
.adcconf = 0x8500,// RST
.ddrc = 2, // OC1B HVOSC
.adcgain = ADC_GAINS,
.auxadc_n = 4,
.hvadc_ch = 1,
.hvadc_n = 4,
.hvadc_safe = 0x8100,
.ddrc = 2, // OC1B HVOSC
.hvosc_freq = 0,
.hvosc_dc = 0,
.dac_nominal = 0,
},
[1] = { // ON
.magic = MAGIC,
@ -196,7 +177,27 @@ const struct conf runconf[2] = {
.hvosc_freq = 64,
.hvosc_dc = 19,
.dac_nominal = 100,
}
},
[2] = { // SAFE
.magic = MAGIC,
.version = VERSION,
.safe = 1,
.flags = FLAG_WDT | FLAG_RAMP | FLAG_ADCCONF | FLAG_DACADC,
.flags2 = FLAG2_HVOSC | FLAG2_HVLED,
.wdt_timeout = 120, // 2 min
.tick_period = TICK_NS(10000000L), // 10ms ramp
.avradc = 0x7f, // off
.adcconf = 0x8500,// RST
.adcgain = ADC_GAINS,
.auxadc_n = 4,
.hvadc_ch = 1,
.hvadc_n = 4,
.hvadc_safe = 0x8100,
.ddrc = 2, // OC1B HVOSC
.hvosc_freq = 0,
.hvosc_dc = 0,
.dac_nominal = 0,
},
};
void conf_init()
@ -293,6 +294,8 @@ int main()
ads8688_init();
ltc1655_init();
hv_safe();
eeprom_load(0);
if (conf.magic == MAGIC || conf.version == VERSION)
conf_init();
while (1) {
unsigned char cmd[3];