/**\ * Copyright (c) 2022 Bosch Sensortec GmbH. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause **/ #include #include #include #include "bmp3.h" //#include "coines.h" #include "common.h" /*! BMP3 shuttle board ID */ #define BMP3_SHUTTLE_ID 0xD3 /* Variable to store the device address */ //uint8_t dev_addr; /*! * I2C read function map to COINES platform */ //BMP3_INTF_RET_TYPE bmp3_i2c_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr) //{ // uint8_t device_addr = *(uint8_t*)intf_ptr; // (void)intf_ptr; // return coines_read_i2c(COINES_I2C_BUS_0, device_addr, reg_addr, reg_data, (uint16_t)len); //} /*! * I2C write function map to COINES platform */ //BMP3_INTF_RET_TYPE bmp3_i2c_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr) //{ // uint8_t device_addr = *(uint8_t*)intf_ptr; // (void)intf_ptr; // return coines_write_i2c(COINES_I2C_BUS_0, device_addr, reg_addr, (uint8_t *)reg_data, (uint16_t)len); //} /*! * SPI read function map to COINES platform */ //BMP3_INTF_RET_TYPE bmp3_spi_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr) //{ // uint8_t device_addr = *(uint8_t*)intf_ptr; // (void)intf_ptr; // return coines_read_spi(COINES_SPI_BUS_0, device_addr, reg_addr, reg_data, (uint16_t)len); //} /*! * SPI write function map to COINES platform */ //BMP3_INTF_RET_TYPE bmp3_spi_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr) //{ // uint8_t device_addr = *(uint8_t*)intf_ptr; // (void)intf_ptr; // return coines_write_spi(COINES_SPI_BUS_0, device_addr, reg_addr, (uint8_t *)reg_data, (uint16_t)len); //} /*! * Delay function map to COINES platform */ //void bmp3_delay_us(uint32_t period, void *intf_ptr) //{ // (void)intf_ptr; // coines_delay_usec(period); //} void bmp3_check_rslt(const char api_name[], int8_t rslt) { switch (rslt) { case BMP3_OK: /* Do nothing */ break; case BMP3_E_NULL_PTR: printf("API [%s] Error [%d] : Null pointer\r\n", api_name, rslt); break; case BMP3_E_COMM_FAIL: printf("API [%s] Error [%d] : Communication failure\r\n", api_name, rslt); break; case BMP3_E_INVALID_LEN: printf("API [%s] Error [%d] : Incorrect length parameter\r\n", api_name, rslt); break; case BMP3_E_DEV_NOT_FOUND: printf("API [%s] Error [%d] : Device not found\r\n", api_name, rslt); break; case BMP3_E_CONFIGURATION_ERR: printf("API [%s] Error [%d] : Configuration Error\r\n", api_name, rslt); break; case BMP3_W_SENSOR_NOT_ENABLED: printf("API [%s] Error [%d] : Warning when Sensor not enabled\r\n", api_name, rslt); break; case BMP3_W_INVALID_FIFO_REQ_FRAME_CNT: printf("API [%s] Error [%d] : Warning when Fifo watermark level is not in limit\r\n", api_name, rslt); break; default: printf("API [%s] Error [%d] : Unknown error code\r\n", api_name, rslt); break; } } //BMP3_INTF_RET_TYPE bmp3_interface_init(struct bmp3_dev *bmp3, uint8_t intf) //{ // int8_t rslt = BMP3_OK; // struct coines_board_info board_info; // if (bmp3 != NULL) // { // int16_t result = coines_open_comm_intf(COINES_COMM_INTF_USB, NULL); // if (result < COINES_SUCCESS) // { // printf( // "\n Unable to connect with Application Board ! \n" " 1. Check if the board is connected and powered on. \n" " 2. Check if Application Board USB driver is installed. \n" // " 3. Check if board is in use by another application. (Insufficient permissions to access USB) \n"); // exit(result); // } // result = coines_get_board_info(&board_info); //#if defined(PC) // setbuf(stdout, NULL); //#endif // if (result == COINES_SUCCESS) // { // if ((board_info.shuttle_id != BMP3_SHUTTLE_ID)) // { // printf("! Warning invalid sensor shuttle \n ," "This application will not support this sensor \n"); // } // } // (void)coines_set_shuttleboard_vdd_vddio_config(0, 0); // coines_delay_msec(1000); // /* Bus configuration : I2C */ // if (intf == BMP3_I2C_INTF) // { // printf("I2C Interface\n"); // dev_addr = BMP3_ADDR_I2C_PRIM; // bmp3->read = bmp3_i2c_read; // bmp3->write = bmp3_i2c_write; // bmp3->intf = BMP3_I2C_INTF; // /* SDO pin is made low */ // (void)coines_set_pin_config(COINES_SHUTTLE_PIN_SDO, COINES_PIN_DIRECTION_OUT, COINES_PIN_VALUE_LOW); // (void)coines_config_i2c_bus(COINES_I2C_BUS_0, COINES_I2C_STANDARD_MODE); // } // /* Bus configuration : SPI */ // else if (intf == BMP3_SPI_INTF) // { // printf("SPI Interface\n"); // dev_addr = COINES_SHUTTLE_PIN_7; // bmp3->read = bmp3_spi_read; // bmp3->write = bmp3_spi_write; // bmp3->intf = BMP3_SPI_INTF; // (void)coines_config_spi_bus(COINES_SPI_BUS_0, COINES_SPI_SPEED_7_5_MHZ, COINES_SPI_MODE0); // } // coines_delay_msec(1000); // (void)coines_set_shuttleboard_vdd_vddio_config(3300, 3300); // coines_delay_msec(1000); // bmp3->delay_us = bmp3_delay_us; // bmp3->intf_ptr = &dev_addr; // } // else // { // rslt = BMP3_E_NULL_PTR; // } // return rslt; //} //void bmp3_coines_deinit(void) //{ // (void)fflush(stdout); // (void)coines_set_shuttleboard_vdd_vddio_config(0, 0); // coines_delay_msec(1000); // /* Coines interface reset */ // coines_soft_reset(); // coines_delay_msec(1000); // (void)coines_close_comm_intf(COINES_COMM_INTF_USB, NULL); //}