iLLD_TC27xC
1.0
IfxHssl.h
Go to the documentation of this file.
1
/**
2
* \file IfxHssl.h
3
* \brief HSSL basic functionality
4
* \ingroup IfxLld_Hssl
5
*
6
* \version iLLD_0_1_0_10
7
* \copyright Copyright (c) 2013 Infineon Technologies AG. All rights reserved.
8
*
9
*
10
* IMPORTANT NOTICE
11
*
12
*
13
* Infineon Technologies AG (Infineon) is supplying this file for use
14
* exclusively with Infineon's microcontroller products. This file can be freely
15
* distributed within development tools that are supporting such microcontroller
16
* products.
17
*
18
* THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
19
* OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
20
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
21
* INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
22
* OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
23
*
24
*
25
* \defgroup IfxLld_Hssl HSSL
26
* \ingroup IfxLld
27
* \defgroup IfxLld_Hssl_Std Standard Driver
28
* \ingroup IfxLld_Hssl
29
* \defgroup IfxLld_Hssl_Std_Enumerations Enumerations
30
* \ingroup IfxLld_Hssl_Std
31
* \defgroup IfxLld_Hssl_Std_ModuleFunctions Module Functions
32
* \ingroup IfxLld_Hssl_Std
33
*/
34
35
#ifndef IFXHSSL_H
36
#define IFXHSSL_H 1
37
38
/******************************************************************************/
39
/*----------------------------------Includes----------------------------------*/
40
/******************************************************************************/
41
42
#include "
_Impl/IfxHssl_cfg.h
"
43
44
/******************************************************************************/
45
/*--------------------------------Enumerations--------------------------------*/
46
/******************************************************************************/
47
48
/** \addtogroup IfxLld_Hssl_Std_Enumerations
49
* \{ */
50
/** \brief channel selection
51
*/
52
typedef
enum
53
{
54
IfxHssl_ChannelId_0
,
/**< \brief Channel 0 */
55
IfxHssl_ChannelId_1
,
/**< \brief Channel 1 */
56
IfxHssl_ChannelId_2
,
/**< \brief Channel 2 */
57
IfxHssl_ChannelId_3
,
/**< \brief Channel 3 */
58
}
IfxHssl_ChannelId
;
59
60
/** \brief SysClk / Reference Clock Frequency rate
61
* Definition in Ifx_HSCT.INIT.B.SRCF
62
*/
63
typedef
enum
64
{
65
IfxHssl_ClockFrequencyRate_20Mhz
= 0,
/**< \brief SysClk/ RefClk is 20 MHz (Divider 1/1) */
66
IfxHssl_ClockFrequencyRate_10Mhz
= 1
/**< \brief SysClk/ RefClk is 10 MHz (Divider 1/2) */
67
}
IfxHssl_ClockFrequencyRate
;
68
69
/** \brief communication command selection
70
* Definition in Ifx_HSSL.I.ICON.B.RWT
71
*/
72
typedef
enum
73
{
74
IfxHssl_Command_noAction
= 0,
/**< \brief command no action */
75
IfxHssl_Command_readFrame
= 1,
/**< \brief command read frame */
76
IfxHssl_Command_writeFrame
= 2,
/**< \brief command write frame */
77
IfxHssl_Command_triggerFrame
= 3
/**< \brief command trigger frame */
78
}
IfxHssl_Command
;
79
80
/** \brief predefined control command payload values
81
*/
82
typedef
enum
83
{
84
IfxHssl_ControlCommand_ping
= 0,
/**< \brief ping (send by master. Slave sends back a fixed 32-bit payload result.) */
85
IfxHssl_ControlCommand_highSpeedClockStart
= 2,
/**< \brief slave interface clock multiplier start (in preparation for high speed mode) */
86
IfxHssl_ControlCommand_highSpeedClockStop
= 4,
/**< \brief slave interface clock multiplier stop (after fallback from high speed mode) */
87
IfxHssl_ControlCommand_lowSpeedTransmission
= 8,
/**< \brief select low speed mode for transfers from the Master to the Slave */
88
IfxHssl_ControlCommand_highSpeedTransmission
= 16,
/**< \brief select high speed mode for transfers from the Master to the Slave */
89
IfxHssl_ControlCommand_lowSpeedReception
= 32,
/**< \brief select low speed mode for transfers from the Slave to the Master */
90
IfxHssl_ControlCommand_mediumSpeedReception
= 64,
/**< \brief select medium speed mode for transfers from the Slave to the master */
91
IfxHssl_ControlCommand_highSpeedReception
= 128,
/**< \brief select high speed mode for transfers from the Slave to the master */
92
IfxHssl_ControlCommand_enableReception
= 49,
/**< \brief enable Slave interface transmitter */
93
IfxHssl_ControlCommand_disableReception
= 50,
/**< \brief disable Slave interface transmitter */
94
IfxHssl_ControlCommand_turnOnClockTestMode
= 52,
/**< \brief turn on clock test mode */
95
IfxHssl_ControlCommand_turnOffClockTestMode
= 56,
/**< \brief turn off clock test mode */
96
IfxHssl_ControlCommand_turnOnPayloadLoopback
= 255
/**< \brief turn on payload loopback */
97
}
IfxHssl_ControlCommand
;
98
99
/** \brief Defines the length of the data in bits of the write and read command.
100
* Definition in Ifx_HSSL.I.ICON.B.DATLEN
101
*/
102
typedef
enum
103
{
104
IfxHssl_DataLength_8bit
= 0,
/**< \brief 8 bit */
105
IfxHssl_DataLength_16bit
= 1,
/**< \brief 16 bit */
106
IfxHssl_DataLength_32bit
= 2
/**< \brief 32 bit */
107
}
IfxHssl_DataLength
;
108
109
/** \brief interface mode (master IF /slave IF)
110
* Definition in Ifx_HSCT.INIT.B.IFM
111
*/
112
typedef
enum
113
{
114
IfxHssl_InterfaceMode_master
= 0,
/**< \brief master IF mode */
115
IfxHssl_InterfaceMode_slave
= 1
/**< \brief slave IF mode */
116
}
IfxHssl_InterfaceMode
;
117
118
/** \brief master mode receive speed
119
* Definition in Ifx_HSCT.IFCTRL.B.MRXSPEED
120
*/
121
typedef
enum
122
{
123
IfxHssl_MasterModeRxSpeed_lowSpeed
= 0,
/**< \brief low speed */
124
IfxHssl_MasterModeRxSpeed_mediumSpeed
= 1,
/**< \brief medium speed */
125
IfxHssl_MasterModeRxSpeed_highSpeed
= 2
/**< \brief high speed */
126
}
IfxHssl_MasterModeRxSpeed
;
127
128
/** \brief master mode transmit speed
129
* Definition in Ifx_HSCT.IFCTRL.B.MTXSPEED
130
*/
131
typedef
enum
132
{
133
IfxHssl_MasterModeTxSpeed_lowSpeed
= 0,
/**< \brief low speed */
134
IfxHssl_MasterModeTxSpeed_highSpeed
= 2
/**< \brief high speed */
135
}
IfxHssl_MasterModeTxSpeed
;
136
137
/** \brief PLL reference clock
138
* Definition in Ifx_HSCT.CONFIGPHY.B.OSCCLKEN
139
*/
140
typedef
enum
141
{
142
IfxHssl_PllReferenceClock_hsctSystemClockInput
= 0,
/**< \brief hsct system clock input (HSCT SysClk_i) */
143
IfxHssl_PllReferenceClock_oscillatorInput
= 1
/**< \brief oscillator input */
144
}
IfxHssl_PllReferenceClock
;
145
146
/** \brief streaming mode ( single / continuous )
147
* Definition in Ifx_HSSL.CFG.B.SMT/SMR
148
*/
149
typedef
enum
150
{
151
IfxHssl_StreamingMode_continuous
= 0,
/**< \brief streaming mode continuous (with two memory blocks) */
152
IfxHssl_StreamingMode_single
= 1
/**< \brief streaming mode single (with one memory block) */
153
}
IfxHssl_StreamingMode
;
154
155
/** \} */
156
157
/** \addtogroup IfxLld_Hssl_Std_ModuleFunctions
158
* \{ */
159
160
/******************************************************************************/
161
/*-------------------------Global Function Prototypes-------------------------*/
162
/******************************************************************************/
163
164
/** \brief Enables hsct module
165
* \param hsct pointer to HSCT registers
166
* \return None
167
*/
168
IFX_EXTERN
void
IfxHssl_enableHsctModule
(Ifx_HSCT *hsct);
169
170
/** \brief Enables the hssl module
171
* \param hssl pointer to HSSl registers
172
* \return None
173
*/
174
IFX_EXTERN
void
IfxHssl_enableHsslModule
(Ifx_HSSL *hssl);
175
176
/** \} */
177
178
#endif
/* IFXHSSL_H */
home
mclld
Libraries
release
iLLD_0_1_0_10
src
ifx
TC27xC
Hssl
Std
IfxHssl.h
Generated by
1.8.4