Демонстрационная прошивка отладочного комплекта МТС NB-IoT
board_support_api.h
См. документацию.
1 #ifndef BOARD_DRIVERS_H_INCLUDED
2 #define BOARD_DRIVERS_H_INCLUDED
3 
16 #include "stm32l1xx.h"
17 #include "board_pins.h"
18 #include "port_macros.h"
19 #include "uart_api.h"
20 #include "i2c_api.h"
21 #include "stdio.h"
22 #include "tmp75_driver.h"
23 #include "lis3dh_driver.h"
24 #include "at_cmd_support.h"
25 #include "awu_api.h"
26 #include "coap_essentials.h"
27 #include "gnss_support.h"
28 #include "string.h"
29 #include "stdlib.h"
30 #include "ds1721_driver.h"
31 
32 #define FIRMWARE_VERSION "2.4 beta 2, 22.01.2021"
33 
34 #define MTS_COAP_SERVER_IP "195.34.49.22"
35 #define MTS_COAP_SERVER_PORT 6683
36 
38 #define DEFAULT_CLOCK_FREQ 16000000UL
39 #define CONSOLE_BAUDRATE 115200UL
41 #define GNSS_BAUDRATE 9600UL
43 
47 #define ECHO_INPUT_CHARS 0
48 #define SARA_R410M_DEFAULT_BAUDRATE 115200UL
50 
52 #define LOCAL_TSENSOR_I2C_ADDR 0x48
53 #define LOCAL_ACCEL_I2C_ADDR 0x18
55 
60 #define USE_DS1721 1
61 
62 #define MCU_UNIQUE_IDENTIFIER_ADDRESS ((uint32_t *)0x1FF800CC)
63 
64 //Отладочная опция: настроить вывод сигнала тактирования на PA8 (D7 на Arduino-совместимом разъеме).
65 //#define CONFIGURE_CLOCK_OUT
66 
67 //Выводить на PA8 сигнал от генератора LSE
68 //#define OBSERVE_LSE
69 //Выводить на PA8 текущий основной тактовый сигнал контроллера
70 //#define OBSERVE_SYSCLK
71 
74 #define OSC_STARTUP_CYCLES_MAX 2000000UL
75 
80 #define TMR_PRESC 15
81 #define TMR_CNT_1MSEC 1000
83 #define BTN_POLL_PERIOD 50000
85 
87 #define LOGGER_MODE_VALUE 15
88 
90 #define SETTINGS_SIGNATURE_0 0xA5
91 #define SETTINGS_SIGNATURE_1 0x55
93 #define SETTINGS_SIGNATURE_2 0xAA
95 
99 typedef struct {
101  uint8_t target_server_IP[48];
103  uint8_t target_URL[128];
105  uint8_t NIDD_APN_name[64];
106  //60 32-bit words up to here
112  uint8_t use_NIDD;
128  uint8_t reserved[3];
130 
132 extern volatile uint8_t LSE_failed;
134 extern volatile uint32_t CYCLES_PER_1SEC;
135 
145 void init_board(void);
146 
152 uint32_t get_uptime_ms(void);
153 
155 void delay_ms(uint32_t N);
156 
168 uint32_t get_button_press(void);
169 
175 void switch_LED(uint8_t state);
176 
178 void SARA_R410_PWR_ON_pulse(void);
179 
180 #define EEPROM_START_ADDRESS ((uint32_t *)0x08080000)
181 
191 void FLASH_WriteEEPROM(volatile uint32_t *eeprom_ptr,uint32_t *data_ptr,uint16_t data_size_words);
192 
199 
206 
216 void apply_backspace(uint8_t *str,uint16_t max_length);
217 
222 #endif /* BOARD_DRIVERS_H_INCLUDED */
CYCLES_PER_1SEC
volatile uint32_t CYCLES_PER_1SEC
Калиброванное значение: количество итераций пустого цикла за 1 секунду при текущей тактовой частоте....
Definition: board_support_api.c:11
awu_api.h
device_setup_data_t::logger_mode_on_startup
uint8_t logger_mode_on_startup
Definition: board_support_api.h:120
ds1721_driver.h
device_setup_data_t::use_NIDD
uint8_t use_NIDD
Флаг использования технологии NIDD. Если записана единица, передача будет выполняться через NIDD,...
Definition: board_support_api.h:112
get_uptime_ms
uint32_t get_uptime_ms(void)
Возвращает время с момента начала работы прошивки
Definition: board_support_api.c:83
lis3dh_driver.h
at_cmd_support.h
FLASH_WriteEEPROM
void FLASH_WriteEEPROM(volatile uint32_t *eeprom_ptr, uint32_t *data_ptr, uint16_t data_size_words)
Запись в EEPROM.
Definition: board_support_api.c:143
LSE_failed
volatile uint8_t LSE_failed
В случае, если генератор LSE запустить не удалось, значение этой переменной будет ненулевым.
Definition: board_support_api.c:9
device_setup_data_t::gnss_privacy_mode
uint8_t gnss_privacy_mode
Если переменная отлична от нуля, в пакет телеметрии не будут включаться истинные данные,...
Definition: board_support_api.h:122
tmp75_driver.h
device_setup_data_t
Структура, хранящая настройки работы основного демонстрационного приложения
Definition: board_support_api.h:99
device_setup_data_t::target_server_port
uint16_t target_server_port
Номер порта на сервере для передачи телеметрии через IP.
Definition: board_support_api.h:110
recall_device_settings
void recall_device_settings(device_setup_data_t *data)
Загрузка настроек устройства из области EEPROM.
Definition: board_support_api.c:164
coap_essentials.h
init_board
void init_board(void)
Функция выполняет настройку тактирования и инициализацию периферии, используемой демонстрационным при...
Definition: board_support_api.c:207
delay_ms
void delay_ms(uint32_t N)
Приостанавливает выполнение программы на заданное время. Значение задержки задается в миллисекундах.
Definition: board_support_api.c:88
get_button_press
uint32_t get_button_press(void)
Возвращает время удержания кнопки нажатой с момента предыдущего вызова функции.
Definition: board_support_api.c:99
SARA_R410_PWR_ON_pulse
void SARA_R410_PWR_ON_pulse(void)
Генерирует импульс низкого уровня продолжительностью примерно 500 мс на линии PWR_ON радиомодуля.
Definition: board_support_api.c:129
i2c_api.h
uart_api.h
switch_LED
void switch_LED(uint8_t state)
Включает или выключает светодиод на плате.
Definition: board_support_api.c:117
port_macros.h
store_device_settings
void store_device_settings(device_setup_data_t *data)
Сохранение настроек устройства в область EEPROM.
Definition: board_support_api.c:158
board_pins.h
device_setup_data_t::telemetry_interval_ms
uint32_t telemetry_interval_ms
Интервал передачи телеметрии в миллисекундах
Definition: board_support_api.h:108
apply_backspace
void apply_backspace(uint8_t *str, uint16_t max_length)
Модифицирует строку с учетом символов backspace.
Definition: board_support_api.c:170
gnss_support.h