Vybhav Kadaba
/
EV-PRO-MW1001_Development
added wait_us(31) in admw_spi.cpp to support hibernation mode
Diff: inc/admw1001/admw1001_host_comms.h
- Revision:
- 5:0728bde67bdb
- Child:
- 6:9d393a9677f4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/admw1001/admw1001_host_comms.h Wed Jun 05 05:39:15 2019 +0000 @@ -0,0 +1,61 @@ +/* +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__ */ +