Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
},

"runArgs": [
"--device=/dev/ttyACM0",
"--privileged"

],

"settings": { "terminal.integrated.defaultProfile.linux": "bash" },
Expand Down
87 changes: 44 additions & 43 deletions solaris-v1/components/pressure_sensor_driver/bmp390.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,12 +225,12 @@ retval_t bmp390_read_raw_temp_coeffs(void *p_spi, bmp390_temp_calib_t *tcalib)
{
retval_t ret;

spp_uint8_t buf[10] = {
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 0)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 1)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 2)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 3)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 4)), EMPTY_MESSAGE
spp_uint8_t buf[15] = {
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 0)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 1)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 2)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 3)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_CALIB_REG_START + 4)), EMPTY_MESSAGE, EMPTY_MESSAGE
};

ret = SPP_HAL_SPI_Transmit(p_spi, buf, sizeof(buf));
Expand All @@ -239,11 +239,11 @@ retval_t bmp390_read_raw_temp_coeffs(void *p_spi, bmp390_temp_calib_t *tcalib)
}

spp_uint8_t raw[5];
raw[0] = buf[1];
raw[1] = buf[3];
raw[2] = buf[5];
raw[3] = buf[7];
raw[4] = buf[9];
raw[0] = buf[2];
raw[1] = buf[5];
raw[2] = buf[8];
raw[3] = buf[11];
raw[4] = buf[14];

tcalib->par_t1 = (spp_uint16_t)((raw[1] << 8) | raw[0]);
tcalib->par_t2 = (spp_int16_t)((raw[3] << 8) | raw[2]);
Expand Down Expand Up @@ -289,20 +289,20 @@ retval_t bmp390_read_raw_temp(void *p_spi, uint32_t *raw_temp)
{
retval_t ret;

spp_uint8_t buf[6] = {
(spp_uint8_t)(READ_OP | (BMP390_TEMP_RAW_REG + 0)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_RAW_REG + 1)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_RAW_REG + 2)), EMPTY_MESSAGE
spp_uint8_t buf[9] = {
(spp_uint8_t)(READ_OP | (BMP390_TEMP_RAW_REG + 0)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_RAW_REG + 1)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_TEMP_RAW_REG + 2)), EMPTY_MESSAGE, EMPTY_MESSAGE
};

ret = SPP_HAL_SPI_Transmit(p_spi, buf, sizeof(buf));
if (ret != SPP_OK) {
return ret;
}

spp_uint8_t xlsb = buf[1];
spp_uint8_t lsb = buf[3];
spp_uint8_t msb = buf[5];
spp_uint8_t xlsb = buf[2];
spp_uint8_t lsb = buf[5];
spp_uint8_t msb = buf[8];

*raw_temp = ((spp_uint32_t)msb << 16) | ((spp_uint32_t)lsb << 8) | (spp_uint32_t)xlsb;

Expand Down Expand Up @@ -363,31 +363,31 @@ retval_t bmp390_read_raw_press_coeffs(void *p_spi, bmp390_press_calib_t *pcalib)
{
retval_t ret;

spp_uint8_t buf[32] = {
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 0)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 1)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 2)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 3)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 4)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 5)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 6)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 7)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 8)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 9)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 10)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 11)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 12)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 13)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 14)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 15)), EMPTY_MESSAGE
spp_uint8_t buf[48] = {
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 0)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 1)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 2)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 3)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 4)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 5)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 6)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 7)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 8)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 9)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 10)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 11)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 12)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 13)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 14)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_CALIB_REG_START + 15)), EMPTY_MESSAGE, EMPTY_MESSAGE
};

ret = SPP_HAL_SPI_Transmit(p_spi, buf, sizeof(buf));
if (ret != SPP_OK) return ret;

spp_uint8_t raw[16];
for (int i = 0; i < 16; i++) {
raw[i] = buf[2 * i + 1];
raw[i] = buf[3 * i + 2];
}

pcalib->par_p1 = (spp_uint16_t)((raw[1] << 8) | raw[0]);
Expand Down Expand Up @@ -449,20 +449,20 @@ retval_t bmp390_read_raw_press(void *p_spi, spp_uint32_t *raw_press)
{
retval_t ret;

spp_uint8_t buf[6] = {
(spp_uint8_t)(READ_OP | (BMP390_PRESS_RAW_REG + 0)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_RAW_REG + 1)), EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_RAW_REG + 2)), EMPTY_MESSAGE
spp_uint8_t buf[9] = {
(spp_uint8_t)(READ_OP | (BMP390_PRESS_RAW_REG + 0)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_RAW_REG + 1)), EMPTY_MESSAGE, EMPTY_MESSAGE,
(spp_uint8_t)(READ_OP | (BMP390_PRESS_RAW_REG + 2)), EMPTY_MESSAGE, EMPTY_MESSAGE
};

ret = SPP_HAL_SPI_Transmit(p_spi, buf, sizeof(buf));
if (ret != SPP_OK) {
return ret;
}

spp_uint8_t xlsb = buf[1];
spp_uint8_t lsb = buf[3];
spp_uint8_t msb = buf[5];
spp_uint8_t xlsb = buf[2];
spp_uint8_t lsb = buf[5];
spp_uint8_t msb = buf[8];

*raw_press = ((spp_uint32_t)msb << 16) | ((spp_uint32_t)lsb << 8) | (spp_uint32_t)xlsb;

Expand Down Expand Up @@ -579,6 +579,7 @@ retval_t bmp390_get_altitude(void *p_spi, bmp_data_t *p_bmp, float *altitude)
}

*altitude = 44330.0f * (1.0f - powf(comp_press / 101325.0f, 1.0f / 5.255f));
SPP_LOGI(TAG, "Altitude: %.2f m, Pressure: %.2f Pa, Temperature: %.2f C", *altitude, comp_press, t_lin);

return ret;
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

//---------------------INIT------------------------------
#define BMP_INIT_PRIO 4
#define BMP_INIT_TASK_STACK_SIZE 1024
#define BMP_INIT_TASK_STACK_SIZE 4096
#define BMP390_EVT_DRDY (1u << 0)

typedef struct {
Expand Down
2 changes: 1 addition & 1 deletion solaris-v1/external/spp-ports
Submodule spp-ports updated 1 files
+20 −3 osal/freertos/task.c
54 changes: 27 additions & 27 deletions solaris-v1/main/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ static const char* TAG = "MAIN";
static bmp_data_t s_bmp;
static icm_data_t s_icm;

// static void bmp_init_task(void *arg)
// {
// BmpInit(arg);
// SPP_OSAL_TaskDelete(NULL);
// }
static void bmp_init_task(void *arg)
{
BmpInit(arg);
SPP_OSAL_TaskDelete(NULL);
}

void app_main(void)
{
Expand Down Expand Up @@ -77,13 +77,13 @@ void app_main(void)
}
}

// Step 8: Configure Interrupt Pin Settings
// s_bmp.int_pin = (spp_uint32_t)INT_GPIO;
// s_bmp.int_intr_type = (spp_uint32_t)GPIO_INTR_POSEDGE;
// s_bmp.int_pull = 0;
//Step 8: Configure Interrupt Pin Settings
s_bmp.int_pin = (spp_uint32_t)INT_GPIO;
s_bmp.int_intr_type = (spp_uint32_t)GPIO_INTR_POSEDGE;
s_bmp.int_pull = 0;

// Step 9: Create BMP Initialization Task
// xTaskCreate(bmp_init_task, "bmp_init", BMP_INIT_TASK_STACK_SIZE, &s_bmp, BMP_INIT_PRIO, NULL);
//Step 9: Create BMP Initialization Task
xTaskCreate(bmp_init_task, "bmp_init", BMP_INIT_TASK_STACK_SIZE, &s_bmp, BMP_INIT_PRIO, NULL);


SPP_LOGI("APP", "Application starting...");
Expand All @@ -97,27 +97,27 @@ void app_main(void)
// Core_Init();

// // Getting one SPP packet
// spp_packet_t *p_packet_1 = SPP_DATABANK_getPacket();
// p_packet_1->primary_header.version = 0xFA;
// ret = SPP_DATABANK_returnPacket(p_packet_1);
spp_packet_t *p_packet_1 = SPP_DATABANK_getPacket();
p_packet_1->primary_header.version = 0xFA;
ret = SPP_DATABANK_returnPacket(p_packet_1);

// // Following the logic this will have to return the same address of packet as p_packet_1
// spp_packet_t *p_packet_2 = SPP_DATABANK_getPacket();
// // We can check the new data is being written
// p_packet_2->primary_header.version = 0xFE;
// ret = SPP_DATABANK_returnPacket(p_packet_2);
// Following the logic this will have to return the same address of packet as p_packet_1
spp_packet_t *p_packet_2 = SPP_DATABANK_getPacket();
// We can check the new data is being written
p_packet_2->primary_header.version = 0xFE;
ret = SPP_DATABANK_returnPacket(p_packet_2);



// vTaskDelay(pdMS_TO_TICKS(100));
vTaskDelay(pdMS_TO_TICKS(100));

// // Step 10: Read Altitude Measurement
// float altitude = 0.0f;
// ret = bmp390_get_altitude(p_spi_bmp, &s_bmp, &altitude);
// if (ret != SPP_OK) {
// while (1) {}
// }
// Step 10: Read Altitude Measurement
float altitude = 0.0f;
ret = bmp390_get_altitude(p_spi_bmp, &s_bmp, &altitude);
if (ret != SPP_OK) {
SPP_LOGE(TAG, "Failed to read altitude from BMP390");
}

// vTaskDelay(pdMS_TO_TICKS(50));
vTaskDelay(pdMS_TO_TICKS(50));

}