1 /******************************************************************************
2  *  Filename:       tempdiode.h
3  *
4  *  Description:    Defines and prototypes for reading the high accuracy temperature diode
5  *
6  *  Copyright (c) 2023, Texas Instruments Incorporated
7  *  All rights reserved.
8  *
9  *  Redistribution and use in source and binary forms, with or without
10  *  modification, are permitted provided that the following conditions are met:
11  *
12  *  1) Redistributions of source code must retain the above copyright notice,
13  *     this list of conditions and the following disclaimer.
14  *
15  *  2) Redistributions in binary form must reproduce the above copyright notice,
16  *     this list of conditions and the following disclaimer in the documentation
17  *     and/or other materials provided with the distribution.
18  *
19  *  3) Neither the name of the ORGANIZATION nor the names of its contributors may
20  *     be used to endorse or promote products derived from this software without
21  *     specific prior written permission.
22  *
23  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
27  *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33  *  POSSIBILITY OF SUCH DAMAGE.
34  *
35  ******************************************************************************/
36 
37 #ifndef __tempdiode_H__
38 #define __tempdiode_H__
39 
40 //*****************************************************************************
41 //
42 //! \addtogroup peripheral_group
43 //! @{
44 //! \addtogroup tempdiode_api
45 //! @{
46 //
47 //*****************************************************************************
48 
49 #include <stdint.h>
50 
51 //*****************************************************************************
52 //
53 // If building with a C++ compiler, make all of the definitions in this header
54 // have a C binding.
55 //
56 //*****************************************************************************
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
61 //*****************************************************************************
62 //
63 // API Functions and prototypes
64 //
65 //*****************************************************************************
66 
67 //*****************************************************************************
68 //
69 //! \brief Reads temperature from high accuracy temperature diode
70 //!
71 //! This function reads the temperature from the high-accuracy temperature diode
72 //! The returned result contains 4 fractional bits. For example:
73 //! 0x00000200 = +32.0000 degC
74 //! 0x0000020C = +32.7500 degC
75 //! 0xFFFFFEC3 = -19.8125 degC
76 //!
77 //! \warning This function uses the SoC ADC to measure the temperature. This
78 //! function must not be called while the ADC driver is active, or the SoC ADC
79 //! is open.
80 //!
81 //! \warning This function uses the internal test-bus (ATEST) to measure the
82 //! temperature. The test-bus must not be used when calling this function.
83 //!
84 //! \note Due to long and repeated ADC sampling, this function takes
85 //! roughly 8 milliseconds to execute.
86 //!
87 //! \return Ambient temperature in degrees Celcius, with 4 fractional bits
88 //
89 //*****************************************************************************
90 extern int32_t TempDiodeGetTemp(void);
91 
92 //*****************************************************************************
93 //
94 // Mark the end of the C bindings section for C++ compilers.
95 //
96 //*****************************************************************************
97 #ifdef __cplusplus
98 }
99 #endif
100 
101 //*****************************************************************************
102 //
103 //! Close the Doxygen group.
104 //! @}
105 //! @}
106 //
107 //*****************************************************************************
108 
109 #endif // __tempdiode_H__
110