Vybhav Kadaba
/
EV-PRO-MW1001_Development
added wait_us(31) in admw_spi.cpp to support hibernation mode
inc/admw1001/admw1001_host_comms.h
- Committer:
- Vkadaba
- Date:
- 2019-06-05
- Revision:
- 5:0728bde67bdb
- Child:
- 6:9d393a9677f4
File content as of revision 5:0728bde67bdb:
/* Copyright (c) 2018 by ADI. This model is the confidential and proprietary property of ADI and the possession or use of this file requires a written license. */ #ifndef __ADMW1001_HOST_COMMS_H__ #define __ADMW1001_HOST_COMMS_H__ #include "admw_types.h" /* * The host is expected to transfer a 16-bit command, followed by data bytes, in 2 * separate transfers delineated by the CS signal and a short delay in between. * * The 16-bit command contains a right-justified 11-bit register address (offset), * and the remaining upper 5 bits are reserved as command bits assigned as follows: * [15:11] 10000b = write command, 01000b = read command, anything else is invalid * [10:0] register address (0-2047) */ /* Register address space is limited to 2048 bytes (11 bit address) */ #define ADMW1001_HOST_COMMS_CMD_MASK 0xF800 #define ADMW1001_HOST_COMMS_ADR_MASK 0x07FF /* * The following commands are currently supported, anything else is treated * as an error */ #define ADMW1001_HOST_COMMS_WRITE_CMD 0x8000 #define ADMW1001_HOST_COMMS_READ_CMD 0x4000 /* * The following bytes are sent back to the host when a command is recieved, * to be used by the host to verify that we were ready to receive the command. */ #define ADMW1001_HOST_COMMS_CMD_RESP_0 0xF0 #define ADMW1001_HOST_COMMS_CMD_RESP_1 0xE1 /* * The following minimum delay, in microseconds, must be inserted after each SPI * transfer to allow time for it to be processed by the device */ #define ADMW1001_HOST_COMMS_XFER_DELAY (60) /*! ADMW1001 Sensor Result bit field structure */ typedef struct _ADMW1001_Sensor_Result_t { union { struct { float32_t Sensor_Result; /**< Linearized and compensated sensor result */ uint32_t Channel_ID : 4; /**< Indicates which channel this result corresponds to */ uint32_t Ch_Error : 1; /**< Indicates Error on channel */ uint32_t Ch_Alert : 1; /**< Indicates Alert on channel */ uint32_t Ch_Raw : 1; /**< Indicates if Raw sensor data field is valid */ uint32_t Ch_Valid : 1; /**< Indicates if this Result structure is valid */ uint32_t Raw_Sample : 24; /**< Raw sensor data value */ }; uint64_t VALUE64; }; } ADMW1001_Sensor_Result_t; #endif /* __ADMW1001_HOST_COMMS_H__ */