Skip to content

Latest commit

 

History

History
146 lines (84 loc) · 9.12 KB

README.md

File metadata and controls

146 lines (84 loc) · 9.12 KB

bf504f_Burn

Старая сейсмостанция 2012г. Для поддержки . BF504f+ADS1282+MagicXtal. Bare metal. w/out OS версия 114 а) Добавил чтение статуса в компасе и акселерометре. Изменил data rate для обоих: 10 и 7.5. Данные остаются в регистрах до чтения.

b) Изменил функцию расчета углов - заменил на tan2. Переделать по типу iNemo от STM!

c) Угол поворота от 0..180 0..-180

d) Убрал определения частот генератора. Частота генератора передается параметром при компиляции.

e) Падение напряжения при котором выключаем питание - повышено до 8.5 вольт!

f) Добавил настройку тактов для FLASH

g) Сделал возможность подачи "своего" пережига после отработки модемного

h) Изменил название check_magnet_request на check_magnet_and_power_request по смыслу

i) уменьшил в 2 раза время включения и переключения магнитом

j) Исправил ошибку в опросе статуса компаса/акселерометра

k) FLASH init перенес в начало программы

l) Перетаскиваю параметры в файл config.h - сейчас POWER_DROP_MIN

m) выключение регистратора при напряжении ниже 7.5 В

n) Добавил получение "Продолжительность внутреннего пережига"

o) Добавил частоту 125 Гц - децимация на 2 от 250

p) добавил вывод времени пережига внутреннего и внешнего. Отмечается в логе: [[[[[[[[[[[ ****** ]]]]]]]]]]]

q) Добавил какой генератор используется - печатается в начале лога

r) Моргание светодиодами при втором пережиге не изменяет текущего моргания.

s) Проверка готовности АЦП. Если есть готовность - при тесте считает количество прерываний. Если 0 - завершение с ошибкой.

Ver 115 a) Проверка готовности АЦП. Если есть готовность - при тесте считает количество прерываний. Если 0 - завершение с ошибкой.

b) При проверке АЦП оставались включенными прерывания. АЦП начинал сразу работать после инициализации, сейчас исправлено: ADS1282_stop_irq()

c) собрал проект в каталоги по смыслу: драйверы, периферия, логи, модем, sd - карта и пр

d) сделал один общий Makefile. Параметр - частота генератора передается при компиляции

e) - добавил в test.c, нужно разобраться почему!

/* пока не выходит на 8 МГц кварце - разобраться!!! */ #if QUARTZ_CLK_FREQ==(19200000) if (i < 50) { break; } #endif

f) расчитал частоты для 8.192 - проверить!

g) пересчитал коеффициенты для FLASH - ранее были неправильные

h) пересчитал коэффициенты для компаса-акселерометра

i) сделал смещение времен сразу после первого пережига. толко после 1-го. написал отдельную функцию, которую буду вызывать на след. ступени исправл2ений - когда станция пошла вверх.

j) поменял местами при окончании работы ацп: ADS1282_stop(); /* Выключаем АЦП и в Powerdown его / TIMER3_disable(); / Выключим 3-1 таймер */ иначе на 8 МГц плате не прочитать что записано в регистрах

k) вернул диапазон 0..360 градусов для поворота

l) убрал shift_all_times() - могло вызвать непредвиденый результат в работе (функция ставила запись на 5 минут) -
изменил название на check_start_time()

m) убрал 3 режима: пережиг, окончание пережига,подъем. реле просто включаю и выключаю по часам.
при внешнем пережиге - просто передвигаю назад время. Упоростил функцию отпрелделения поднесения магнита, выкинул лишнее.

n) убрал постояную регистрацию (до выключения). Никогда не использовалась. Осталось в log.c для совместимости

o) Режим аварийного ожидания начал писать. Желтый редко, красный редко

p) Выключение магнитом из командного режима

q) добавил test_irq_num - в модуле ads1282 так как при выключении количество прерываний сбрасывается

r) убрал папка common - теперь airlink берет заголовки прямо из папки gns504f_burn

s) убрал проверку RTC в utils.c временно.

t) Если не запускается АЦП - выход по ошибке в начале работа, сделано для обоих генераторов

u) Поменял названия папок: atmega_burn bf504f_burn bootloader и AirLink

м) Сделано! Если не запускается АЦП - выход по ошибке в начале работа, пока стоит заплатка для 8-ми МГц

ver 116 b) Добавил дефиниции вместо подсчета числа самплов в минуту в log.h

c) Добавил функцию "void TIMER3_change_freq()" в timer3.h

d) переписал функцию "void log_fill_adc_header(char sps, u8 bitmap, u8 size)"
теперь ConfigWord в заголовке соответсвует ADS1282_FreqEn

e) переписал в main.c запуск с параметрами частоты диксретизации АЦП

f) переписал в ads1282.c прием и разбор параметров в "bool ADS1282_config(void *arg)"

g) Пересчитал размеры буферов в ads1282.c для новых частот 62.5 и 125

h) исправил в utils.c: log_write_log_file("ERROR: Time now can't be less start time on one day! Check RTC\n");

i) Добавил exfat в библиотеках. Изменил log.c

j) Добавил опцию для генератора 19.2 - не будет работать с частотами 62.5 и 125

k) Изменил loader чтобы он мог работать с ExFat. Не прошивается через JTAG (я забыл как) - образец внешнего прошивальшика взял с более старых версий ~ver.109

l) Вся версия вместе с загрузчиком работает с ExFat. Fat32 не поддерживается этой прошивкой - перекомпиляция необходима!

m) Поправил AirLink - чтобы писал в ExFAT и не ругался. Плюс дополнительные частоты

n) поправил log.c функцию log_check_mount() - выдавала неправильный результат (всегда true)

o) закоментировал проверку get_scr_register - выдавало ошибку по таймауту /* Убрал проверку, узнать для чего она! */ #if 0 while (!(*pRSI_STATUS & DAT_BLK_END) && t0--); if (t0 <= 0) return CMD_TIMEOUT; #endif

p) добавил log_umount_fs() перед выключением

q) убрал красную лампу в вызовах и заменил на желтую. красная только на ошибку

r) изменил UTC offset на 18 секунд

s) Добавил время включения и выключения модема. файлы log.c, modem.c и main.c новая функция check_modem_on_off_timer() в main.c проверяет время модема каждую секунду