Nordic Semiconductor nRF5 AirFuel SDK  version 2.2.0
ptu_test_mux.c
Go to the documentation of this file.
1 /* Copyright (c) 2013 Nordic Semiconductor. All Rights Reserved.
2  *
3  * The information contained herein is property of Nordic Semiconductor ASA.
4  * Terms and conditions of usage are described in detail in NORDIC
5  * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
6  *
7  * Licensees are granted free, non-transferable use of the information. NO
8  * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
9  * the file.
10  *
11  */
12 
15 #include <stdbool.h>
16 #include <stdint.h>
17 #include <string.h>
18 
19 #include "ptu_test_mux.h"
20 #include "ptu_hal.h"
21 #include "nrf_assert.h"
22 #include "ptu_hw_config.h"
23 #include "app_error.h"
24 
25 /******************************************************************************/
28 /******************************************************************************/
29 
38 {
39  uint32_t err_code;
40 
41  if(set_mux_select == TMUX_SELECT_OVERRIDE)
42  {
43  err_code = ptu_hal_poweramp_enable_set(override_values.power_amp_enable);
44  APP_ERROR_CHECK(err_code);
45  err_code = ptu_hal_poweramp_level_set(override_values.power_amp_level);
46  APP_ERROR_CHECK(err_code);
47  }
48 }
49 
52 /******************************************************************************/
55 /******************************************************************************/
56 
57 uint32_t tmux_init(void)
58 {
59  override_values.itx = PTU_ITX_DEFAULT;
60  override_values.vtx = PTU_VTX_DEFAULT;
61  override_values.temperature = PTU_TEMPERATUR_DEFAULT;
62  override_values.power_amp_enable = false;
64  get_mux_select = TMUX_SELECT_NO_OVERRIDE;
65  set_mux_select = TMUX_SELECT_NO_OVERRIDE;
66  return ptu_hal_init();
67 }
68 
69 uint32_t ptu_tmux_poweramp_enable_set(bool enable)
70 {
72 }
73 
74 uint32_t ptu_tmux_poweramp_level_set(uint16_t level)
75 {
77 }
78 
79 uint32_t ptu_tmux_poweramp_enable_get(bool * enable)
80 {
81  if (enable == NULL)
82  return NRF_ERROR_INVALID_PARAM;
83  TMUX_GET(ptu_hal_poweramp_enable_get, enable, override_values.power_amp_enable);
84 }
85 
86 uint32_t ptu_tmux_poweramp_level_get(uint16_t * p_level)
87 {
88  if (p_level == NULL)
89  return NRF_ERROR_INVALID_PARAM;
90  TMUX_GET(ptu_hal_poweramp_level_get, p_level, override_values.power_amp_level);
91 }
92 
93 uint32_t ptu_tmux_itx_get(uint16_t * p_itx)
94 {
95  if (p_itx == NULL)
96  return NRF_ERROR_INVALID_PARAM;
97  TMUX_GET(ptu_hal_itx_get, p_itx, override_values.itx);
98 }
99 
100 uint32_t ptu_tmux_vtx_get(uint16_t * p_vtx)
101 {
102  if (p_vtx == NULL)
103  return NRF_ERROR_INVALID_PARAM;
104  TMUX_GET(ptu_hal_vtx_get, p_vtx, override_values.vtx);
105 }
106 
107 uint32_t ptu_tmux_ptx_get(uint16_t * p_ptx)
108 {
109  if (p_ptx == NULL)
110  return NRF_ERROR_INVALID_PARAM;
111  TMUX_GET(ptu_hal_ptx_get, p_ptx, override_values.ptx);
112 }
113 
114 uint32_t ptu_tmux_temperature_get(int16_t * p_temperature)
115 {
116  if (p_temperature == NULL)
117  return NRF_ERROR_INVALID_PARAM;
118  TMUX_GET(ptu_hal_temperature_get, p_temperature, override_values.temperature);
119 }
120 
123 /******************************************************************************
124  * Test API
125  ******************************************************************************/
126 
128 {
129  get_mux_select = select;
130 }
131 
133 {
134  set_mux_select = select;
136 }
137 
139 {
140  memcpy(&override_values, values, sizeof(ptu_tmux_override_t));
142 }
143 
145 {
146  memcpy(values, &override_values, sizeof(ptu_tmux_override_t));
147 }
static tmux_select_t get_mux_select
Definition: ptu_test_mux.c:30
void ptu_tmux_override_values_set(ptu_tmux_override_t *values)
Set override values.
Definition: ptu_test_mux.c:138
tmux_select_t
Enumerator used for configuring test multiplexer.
uint32_t ptu_tmux_itx_get(uint16_t *p_itx)
Test wrapper for ptu_hal_itx_get().
Definition: ptu_test_mux.c:93
uint32_t ptu_tmux_temperature_get(int16_t *p_temperature)
Test wrapper for ptu_hal_temperature_get().
Definition: ptu_test_mux.c:114
uint32_t ptu_hal_temperature_get(int16_t *p_temperature)
Read the board temperature.
static void m_update_hal_from_override_values(void)
Write all override values to **hal**set() functions if overriding of **set functions is enabled...
Definition: ptu_test_mux.c:37
uint32_t ptu_hal_poweramp_level_get(uint16_t *level)
Get output level setting of power amplifier.
Definition: ptu_hal_evkit.c:75
static ptu_tmux_override_t override_values
Definition: ptu_test_mux.c:32
uint32_t ptu_hal_vtx_get(uint16_t *p_vtx)
Read resonator voltage.
Definition: ptu_hal_evkit.c:91
uint32_t ptu_hal_poweramp_enable_set(bool enable)
Enable power amplifier output (resonator power on).
Definition: ptu_hal_evkit.c:55
uint32_t ptu_tmux_poweramp_enable_set(bool enable)
Test wrapper for ptu_hal_poweramp_enable_set().
Definition: ptu_test_mux.c:69
#define PTU_VTX_DEFAULT
void ptu_tmux_override_values_get(ptu_tmux_override_t *values)
Get ovveride values.
Definition: ptu_test_mux.c:144
#define PTU_POWERAMP_INPUT_DEFAULT
uint32_t ptu_tmux_ptx_get(uint16_t *p_ptx)
Test wrapper for ptu_hal_ptx_get().
Definition: ptu_test_mux.c:107
uint32_t ptu_hal_ptx_get(uint16_t *p_ptx)
Read resonator voltage.
Definition: ptu_hal_evkit.c:99
static tmux_select_t set_mux_select
Definition: ptu_test_mux.c:31
uint32_t ptu_tmux_vtx_get(uint16_t *p_vtx)
Test wrapper for ptu_hal_vtx_get().
Definition: ptu_test_mux.c:100
uint16_t power_amp_level
Definition: ptu_test_mux.h:38
uint32_t ptu_hal_poweramp_enable_get(bool *enable)
Get status of power amplifier output enable (resonator power on).
Definition: ptu_hal_evkit.c:61
uint32_t ptu_tmux_poweramp_level_set(uint16_t level)
Test wrapper for ptu_hal_poweramp_level_set().
Definition: ptu_test_mux.c:74
#define TMUX_SET(hal_fun, arg)
Macro for multiplexing **hal**set() functions.
uint32_t ptu_tmux_poweramp_level_get(uint16_t *p_level)
Test wrapper for ptu_hal_poweramp_level_get().
Definition: ptu_test_mux.c:86
uint32_t ptu_tmux_poweramp_enable_get(bool *enable)
Test wrapper for ptu_hal_poweramp_enable_get();.
Definition: ptu_test_mux.c:79
Collection of PTU HAL variables that can be overrided by test multiplexer.
Definition: ptu_test_mux.h:35
uint32_t ptu_hal_init(void)
Initialize the PTU's Hardware abstraction layer.
Definition: ptu_hal_evkit.c:44
uint32_t ptu_hal_poweramp_level_set(uint16_t level)
Set output level of power amplifier (resonator power).
Definition: ptu_hal_evkit.c:69
void tmux_get_select(tmux_select_t select)
Select source for all **tmux**get() functions.
Definition: ptu_test_mux.c:127
#define PTU_TEMPERATUR_DEFAULT
uint32_t ptu_hal_itx_get(uint16_t *p_itx)
Read the value of ITX.
Definition: ptu_hal_evkit.c:83
void tmux_set_select(tmux_select_t select)
Select whether override values shall be used when writing to **hal**set() functions.
Definition: ptu_test_mux.c:132
uint32_t tmux_init(void)
Initialize the PTU's test multiplexer.
Definition: ptu_test_mux.c:57
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
#define PTU_ITX_DEFAULT