The ADXRS453 is an angular rate sensor (gyroscope) intended for industrial, instrumentation, and stabilization applications in high vibration environments. An advanced, differential, quad sensor design rejects the influence of linear acceleration, enabling the ADXRS453 to offer high accuracy rate sensing in harsh environments where shock and vibration are present.
The ADXRS453 uses an internal, continuous self-test architecture. The integrity of the electromechanical system is checked by applying a high frequency electrostatic force to the sense structure to generate a rate signal that can be differentiated from the base-band rate data and internally analyzed.
The ADXRS453 is capable of sensing an angular rate of up to ±300°/sec. Angular rate data is presented as a 16-bit word that is part of a 32-bit SPI message.
The ADXRS453 is available in a 16-lead plastic cavity SOIC (SOIC_CAV) and an SMT-compatible vertical mount package (LCC_V), and is capable of operating across a wide voltage range (3.3 V to 5 V).
The goal of this project (Microcontroller No-OS) is to be able to provide reference projects for lower end processors, which can't run Linux, or aren't running a specific operating system, to help those customers using microcontrollers with ADI parts. Here you can find a generic driver which can be used as a base for any microcontroller platform and also specific drivers for different microcontroller platforms.
The driver contains two parts:
The Communication Driver has a standard interface, so the ADXRS453 driver can be used exactly as it is provided.
There are three functions which are called by the ADXRS453 driver:
SPI driver architecture
The following functions are implemented in this version of ADXRS453 driver:
|char ADXRS453_Init(void)||Initializes the ADXRS453 and checks if the device is present.|
|unsigned short ADXRS453_GetRegisterValue(unsigned char regAddress)||Reads the value of a register.|
|void ADXRS453_SetRegisterValue(unsigned char regAddress, unsigned short regData)||Writes data into a register.|
|unsigned long ADXRS453_GetSensorData(void)||Reads the sensor data.|
|float ADXRS453_GetRate(void)||Reads the rate data and converts it to degrees/second.|
|float ADXRS453_GetTemperature(void)||Reads temperature from ADXRS453 and converts it to degrees Celsius.|