Example program for EVAL-AD4696.
Dependencies: platform_drivers
app/ad4696_support.c@1:edd760d6380f, 2021-09-30 (annotated)
- Committer:
- Kjansen
- Date:
- Thu Sep 30 11:58:20 2021 +0100
- Revision:
- 1:edd760d6380f
AD4696 IIO Application- Initial Revision
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kjansen |
1:edd760d6380f | 1 | /*************************************************************************//** |
Kjansen |
1:edd760d6380f | 2 | * @file ad4696_support.c |
Kjansen |
1:edd760d6380f | 3 | * @brief AD469x device No-OS driver supports |
Kjansen |
1:edd760d6380f | 4 | ****************************************************************************** |
Kjansen |
1:edd760d6380f | 5 | * Copyright (c) 2021 Analog Devices, Inc. |
Kjansen |
1:edd760d6380f | 6 | * |
Kjansen |
1:edd760d6380f | 7 | * All rights reserved. |
Kjansen |
1:edd760d6380f | 8 | * |
Kjansen |
1:edd760d6380f | 9 | * This software is proprietary to Analog Devices, Inc. and its licensors. |
Kjansen |
1:edd760d6380f | 10 | * By using this software you agree to the terms of the associated |
Kjansen |
1:edd760d6380f | 11 | * Analog Devices Software License Agreement. |
Kjansen |
1:edd760d6380f | 12 | *****************************************************************************/ |
Kjansen |
1:edd760d6380f | 13 | |
Kjansen |
1:edd760d6380f | 14 | /******************************************************************************/ |
Kjansen |
1:edd760d6380f | 15 | /***************************** Include Files **********************************/ |
Kjansen |
1:edd760d6380f | 16 | /******************************************************************************/ |
Kjansen |
1:edd760d6380f | 17 | |
Kjansen |
1:edd760d6380f | 18 | #include <stdint.h> |
Kjansen |
1:edd760d6380f | 19 | |
Kjansen |
1:edd760d6380f | 20 | #include "app_config.h" |
Kjansen |
1:edd760d6380f | 21 | #include "ad4696_support.h" |
Kjansen |
1:edd760d6380f | 22 | #include "error.h" |
Kjansen |
1:edd760d6380f | 23 | |
Kjansen |
1:edd760d6380f | 24 | /******************************************************************************/ |
Kjansen |
1:edd760d6380f | 25 | /********************** Macros and Constants Definition ***********************/ |
Kjansen |
1:edd760d6380f | 26 | /******************************************************************************/ |
Kjansen |
1:edd760d6380f | 27 | |
Kjansen |
1:edd760d6380f | 28 | /******************************************************************************/ |
Kjansen |
1:edd760d6380f | 29 | /********************** Variables and User Defined Data Types *****************/ |
Kjansen |
1:edd760d6380f | 30 | /******************************************************************************/ |
Kjansen |
1:edd760d6380f | 31 | |
Kjansen |
1:edd760d6380f | 32 | /******************************************************************************/ |
Kjansen |
1:edd760d6380f | 33 | /************************ Functions Definitions *******************************/ |
Kjansen |
1:edd760d6380f | 34 | /******************************************************************************/ |
Kjansen |
1:edd760d6380f | 35 | /*! |
Kjansen |
1:edd760d6380f | 36 | * @brief Enter Manual Trigger mode |
Kjansen |
1:edd760d6380f | 37 | * @param device[in] - device instance |
Kjansen |
1:edd760d6380f | 38 | * @return SUCCESS in case of success, negative error code otherwise. |
Kjansen |
1:edd760d6380f | 39 | */ |
Kjansen |
1:edd760d6380f | 40 | int32_t ad4696_enable_manual_trigger_mode(struct ad469x_dev *device) |
Kjansen |
1:edd760d6380f | 41 | { |
Kjansen |
1:edd760d6380f | 42 | do |
Kjansen |
1:edd760d6380f | 43 | { |
Kjansen |
1:edd760d6380f | 44 | if (ad469x_spi_reg_write(device, |
Kjansen |
1:edd760d6380f | 45 | AD469x_REG_SETUP, |
Kjansen |
1:edd760d6380f | 46 | AD469x_REG_SETUP_RESET) != SUCCESS) { |
Kjansen |
1:edd760d6380f | 47 | break; |
Kjansen |
1:edd760d6380f | 48 | } |
Kjansen |
1:edd760d6380f | 49 | |
Kjansen |
1:edd760d6380f | 50 | if (ad469x_spi_reg_write(device, |
Kjansen |
1:edd760d6380f | 51 | AD469x_REG_SEQ_CTRL, |
Kjansen |
1:edd760d6380f | 52 | AD469x_REG_SEQ_CTRL_RESET) != SUCCESS) { |
Kjansen |
1:edd760d6380f | 53 | break; |
Kjansen |
1:edd760d6380f | 54 | } |
Kjansen |
1:edd760d6380f | 55 | |
Kjansen |
1:edd760d6380f | 56 | return SUCCESS; |
Kjansen |
1:edd760d6380f | 57 | } while (0); |
Kjansen |
1:edd760d6380f | 58 | |
Kjansen |
1:edd760d6380f | 59 | return FAILURE; |
Kjansen |
1:edd760d6380f | 60 | } |
Kjansen |
1:edd760d6380f | 61 | |
Kjansen |
1:edd760d6380f | 62 | /*! |
Kjansen |
1:edd760d6380f | 63 | * @brief Select between polarity modes |
Kjansen |
1:edd760d6380f | 64 | * @param device[in] - device instance |
Kjansen |
1:edd760d6380f | 65 | * @return SUCCESS in case of success, negative error code otherwise. |
Kjansen |
1:edd760d6380f | 66 | */ |
Kjansen |
1:edd760d6380f | 67 | int32_t ad4696_polarity_mode_select(struct ad469x_dev *device) |
Kjansen |
1:edd760d6380f | 68 | { |
Kjansen |
1:edd760d6380f | 69 | uint8_t data = 0; |
Kjansen |
1:edd760d6380f | 70 | |
Kjansen |
1:edd760d6380f | 71 | for (uint8_t i = 0; i < AD469x_CHANNEL_NO;i++) |
Kjansen |
1:edd760d6380f | 72 | { |
Kjansen |
1:edd760d6380f | 73 | if (ad469x_spi_reg_read(device, |
Kjansen |
1:edd760d6380f | 74 | AD469x_REG_CONFIG_IN(i), |
Kjansen |
1:edd760d6380f | 75 | &data) != SUCCESS) { |
Kjansen |
1:edd760d6380f | 76 | return FAILURE; |
Kjansen |
1:edd760d6380f | 77 | } |
Kjansen |
1:edd760d6380f | 78 | |
Kjansen |
1:edd760d6380f | 79 | #if defined(PSEUDO_BIPOLAR_MODE) |
Kjansen |
1:edd760d6380f | 80 | data |= (AD469x_REG_CONFIG_IN_PAIR(AD469x_PSEUDO_BIPOLAR_MODE) |
Kjansen |
1:edd760d6380f | 81 | | AD469x_REG_CONFIG_IN_MODE(AD469x_INx_COM)); |
Kjansen |
1:edd760d6380f | 82 | #else |
Kjansen |
1:edd760d6380f | 83 | data |= (AD469x_REG_CONFIG_IN_PAIR(AD469x_UNIPOLAR_MODE) |
Kjansen |
1:edd760d6380f | 84 | | AD469x_REG_CONFIG_IN_MODE(AD469x_INx_REF_GND)); |
Kjansen |
1:edd760d6380f | 85 | #endif |
Kjansen |
1:edd760d6380f | 86 | |
Kjansen |
1:edd760d6380f | 87 | if (ad469x_spi_reg_write(device, |
Kjansen |
1:edd760d6380f | 88 | AD469x_REG_CONFIG_IN(i), |
Kjansen |
1:edd760d6380f | 89 | data) != SUCCESS) { |
Kjansen |
1:edd760d6380f | 90 | return FAILURE; |
Kjansen |
1:edd760d6380f | 91 | } |
Kjansen |
1:edd760d6380f | 92 | } |
Kjansen |
1:edd760d6380f | 93 | return SUCCESS; |
Kjansen |
1:edd760d6380f | 94 | } |