Bee项目文档规范 RTL8762C Peripheral Manual EN

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 264

DownloadBee项目文档规范 RTL8762C Peripheral Manual EN
Open PDF In BrowserView PDF
Re

RTL8762C Peripheral Manual

ek

alt
Co
al
nti

de

2018/06/28

nfi

V1.2

RTL8762C Peripheral Manual

Revision History
Date

Version

Description

2018/6/8

V1.0

First Release version

2018/6/26

V1.1

Update PINMUX chapter

2018/6/28

V1.2

Add Peripheral User Flow chapter

2018/6/28

V1.3

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
2

RTL8762C Peripheral Manual

Contents

Revision History ................................................................................................................................................ 2
Illustration List ................................................................................................................... 错误!未定义书签。
Table List ............................................................................................................................ 错误!未定义书签。
1 Overview of Peripheral Firmware ................................................................................................................ 15
2 Analog-Digital Converter (ADC) ................................................................................................................. 16

Re

2. 1 ADC Register Structure ........................................................................................................................ 16
2. 2 ADC Library Functions ........................................................................................................................ 17

alt

2. 2. 1 Function ADC_Init ....................................................................................................................... 18
2. 2. 2 Function ADC_DeInit .................................................................................................................. 21

ek

2. 2. 3 Function ADC_StructInit ............................................................................................................. 22
2. 2. 4 Function ADC_INTConfig ........................................................................................................... 22
2. 2. 5 Function ADC_Read .................................................................................................................... 23

Co

2. 2. 6 Function ADC_Cmd ..................................................................................................................... 23
2. 2. 7 Function ADC_GetIntFlagStatus.................................................................................................. 24

nfi

2. 2. 8 Function ADC_ClearINTPendingBit ........................................................................................... 25
2. 2. 9 Function ADC_SchTableConfig .................................................................................................. 25

de

2. 2. 10 Function ADC_GetFifoData....................................................................................................... 26
2. 2. 11 Function ADC_ReadFifoData .................................................................................................... 26

al
nti

2. 2. 12 Function ADC_GetFifoLen ........................................................................................................ 27
2. 2. 13 Function ADC_HighBypassCmd ............................................................................................... 27
2. 2. 14 Function ADC_GetHighBypassRes ........................................................................................... 28
2. 2. 15 Function ADC_GetRes ............................................................................................................... 28
3 COder-DECoder(CODEC) ........................................................................................................................... 30
3. 1 Codec Register Architecture................................................................................................................. 30
3. 2 Codec Library Functions ...................................................................................................................... 31
3. 2. 1 Function CODEC_DeInit ............................................................................................................. 31

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
3

RTL8762C Peripheral Manual

3. 2. 2 Function CODEC_Init .................................................................................................................. 32
3. 2. 3 Function CODEC_StructInit ........................................................................................................ 35
3. 2. 4 Function CODEC_EQInit............................................................................................................. 36
3. 2. 5 Function CODEC_EQStructInit ................................................................................................... 37
3. 2. 6 Function CODEC_Reset............................................................................................................... 38
3. 2. 7 Function CODEC_SetMicMute ................................................................................................... 38
3. 2. 8 Function CODEC_SetADCDigitalVolume .................................................................................. 39
3. 2. 9 Function CODEC_SetMICBIAS .................................................................................................. 39

Re

3. 2. 10 Function CODEC_MICBIASCmd ............................................................................................. 40
4 Direct Memory Access Controller (GDMA) ................................................................................................ 40

alt

4. 1 GDMA Register Architecture ............................................................................................................... 40
4. 2 GDMA Library Functions .................................................................................................................... 45

ek

4. 2. 1 Function GDMA_DeInit............................................................................................................... 46
4. 2. 2 Function GDMA_Init ................................................................................................................... 47
4. 2. 3 Function GDMA_StructInit .......................................................................................................... 53

Co

4. 2. 4 Function GDMA_Cmd ................................................................................................................. 53
4. 2. 5 Function GDMA_INTConfig ....................................................................................................... 54

nfi

4. 2. 6 Function GDMA_ClearINTPendingBit........................................................................................ 54
4. 2. 7 Function GDMA_GetChannelStatus ............................................................................................ 55

de

4. 2. 8 Function GDMA_GetTransferINTStatus ..................................................................................... 55
4. 2. 9 Function GDMA_ClearAllTypeINT ............................................................................................ 56

al
nti

4. 2. 10 Function GDMA_SetSourceAddress.......................................................................................... 56
4. 2. 11 Function GDMA_SetDestinationAddress .................................................................................. 57
4. 2. 12 Function GDMA_SetBufferSize ................................................................................................ 57
4. 2. 13 Function GDMA_SuspendCmd ................................................................................................. 58
4. 2. 14 Function GDMA_GetFIFOStatus............................................................................................... 58
4. 2. 15 Function GDMA_GetTransferLen ............................................................................................. 59
4. 2. 16 Function GDMA_SetLLPAddress ............................................................................................. 59
5 General-Purpose Input/Output (GPIO) ......................................................................................................... 61

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
4

RTL8762C Peripheral Manual

5. 1 GPIO Register Structure ....................................................................................................................... 61
5. 2 GPIO Library Functions ....................................................................................................................... 62
5. 2. 1 Function GPIO_DeInit ................................................................................................................. 63
5. 2. 2 Function GPIO_GetPin................................................................................................................. 63
5. 2. 3 Function GPIO_Init ...................................................................................................................... 63
5. 2. 4 Function GPIO_StructInit............................................................................................................. 66
5. 2. 5 Function GPIO_INTConfig .......................................................................................................... 66
5. 2. 6 Function GPIO_ClearINTPendingBit .......................................................................................... 68

Re

5. 2. 7 Function GPIO_MaskINTConfig ................................................................................................. 68
5. 2. 8 Function GPIO_ReadInputDataBit ............................................................................................... 69

alt

5. 2. 9 Function GPIO_ ReadInputData................................................................................................... 69
5. 2. 10 Function GPIO_ReadOutputDataBit .......................................................................................... 70

ek

5. 2. 11 Function GPIO_ ReadOutputData .............................................................................................. 70
5. 2. 12 Function GPIO_ SetBits ............................................................................................................. 71
5. 2. 13 Function GPIO_ ResetBits ......................................................................................................... 71

Co

5. 2. 14 Function GPIO_ WriteBit ........................................................................................................... 72
5. 2. 15 Function GPIO_Write................................................................................................................. 72

nfi

5. 2. 16 Function GPIO_GetINTStatus.................................................................................................... 73
5. 2. 17 Function GPIO_GetNum ............................................................................................................ 73

de

5. 2. 18 Function GPIO_Debounce_Time ............................................................................................... 74
5. 2. 19 Function GPIO_DBClkCmd ....................................................................................................... 74

al
nti

6 Inter-Integrated Circuit (I2C) ....................................................................................................................... 75
6. 1 I2C Register Architecture ..................................................................................................................... 75
6. 2 I2C Library Functions .......................................................................................................................... 77
6. 2. 1 Function I2C_DeInit ..................................................................................................................... 78
6. 2. 2 Function I2C_Init ......................................................................................................................... 78
6. 2. 3 Function I2C_StructInit ................................................................................................................ 79
6. 2. 4 Function I2C_Cmd ....................................................................................................................... 80
6. 2. 5 Function I2C_MasterWrite ........................................................................................................... 80

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
5

RTL8762C Peripheral Manual

6. 2. 6 Function I2C_MasterRead ............................................................................................................ 81
6. 2. 7 Function I2C_RepeatRead ............................................................................................................ 81
6. 2. 8 Function I2C_INTConfig ............................................................................................................. 82
6. 2. 9 Function I2C_ClearINTPendingBit .............................................................................................. 83
6. 2. 10 Function I2C_SetSlaveAddress .................................................................................................. 84
6. 2. 11 Function I2C_SendCmd ............................................................................................................. 84
6. 2. 12 Function I2C_ReceiveData ......................................................................................................... 85
6. 2. 13 Function I2C_GetRxFIFOLen .................................................................................................... 85

Re

6. 2. 14 Function I2C_GetTxFIFOLen .................................................................................................... 86
6. 2. 15 Function I2C_ClearAllINT ......................................................................................................... 86

alt

6. 2. 16 Function I2C_GetFlagState ........................................................................................................ 87
6. 2. 17 Function I2C_CheckEvent ......................................................................................................... 87

ek

6. 2. 18 Function I2C_GetINTStatus ....................................................................................................... 89
6. 2. 19 Function I2C_GDMACmd ......................................................................................................... 89
7 QDEC ........................................................................................................................................................... 91

Co

7. 1 QDEC Register Architecture ................................................................................................................ 91
7. 2 QDEC Library Functions ..................................................................................................................... 92

nfi

7. 2. 1 Function QDEC_Init..................................................................................................................... 92
7. 2. 2 Function QDEC_DeInit ................................................................................................................ 93

de

7. 2. 3 Function QDEC_StructInit ........................................................................................................... 96
7. 2. 4 Function QDEC_Cmd .................................................................................................................. 96

al
nti

7. 2. 5 Function QDEC_INTConfig ........................................................................................................ 97
7. 2. 6 Function QDEC_GetFlagState ..................................................................................................... 98
7. 2. 7 Function QDEC_INTMask........................................................................................................... 99
7. 2. 8 Function QDEC_ClearINTPendingBit ......................................................................................... 99
7. 2. 9 Function QDEC_GetAxisDirection ............................................................................................ 100
7. 2. 10 Function QDEC_GetAxisCount ............................................................................................... 101
7. 2. 11 Function QDEC_CounterPauseCmd ........................................................................................ 102
8 Pin Allocation Difinition (PAD)................................................................................................................. 103

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
6

RTL8762C Peripheral Manual

8. 1 PAD Library Functions ...................................................................................................................... 103
8.1.1 Function Pad_Config .................................................................................................................... 103
8.1.2 Function Pad_OutputEnableValue ............................................................................................... 106
8.1.3 Function Pad_OutputControlValue .............................................................................................. 106
8.1.4 Function Pad_PullEnableValue .................................................................................................... 107
8.1.5 Function Pad_PullUpOrDownValue ............................................................................................ 107
8.1.6 Function Pad_PullUpResistanceConfig........................................................................................ 108
8.1.7 Function Pad_ControlSelectValue ............................................................................................... 109

Re

8.1.8 Function Pad_PowerOrShutDownValue ...................................................................................... 109
8.1.9 Function System_WakeUpPinEnable ........................................................................................... 110

alt

8.1.10 Function System_WakeUpPinDisable........................................................................................ 110
8.1.11 Function System_WakeUpDebounceTime ................................................................................ 111

ek

8.1.12 Function System_WakeUpInterruptValue.................................................................................. 112
8.1.13 Function Pad_GetWakeUpDebouceStatus ................................................................................. 112
8.1.14 Function Pad_ClearWakeUpDebounceStatus ............................................................................ 113

Co

8.1.15 Function Pad_ClearAllWakeupINT ........................................................................................... 113
8.1.16 Function System_WakeUpPinEnable ......................................................................................... 114

nfi

8.1.17 Function System_WakeUpPinDisable........................................................................................ 114
9 Pin Multiplexing (PINMUX)...................................................................................................................... 116

de

9. 1 PINMUX Library Functions ............................................................................................................... 116
9. 1. 1 Function Pinmux_Config ........................................................................................................... 116

al
nti

9. 1. 2 Function Pinmux_Deinit ............................................................................................................. 120
9. 1. 3 Function Pinmux_Reset .............................................................................................................. 121
10 Low power comparator(LPC) ................................................................................................................... 122
10. 1 LPC Register Structures ................................................................................................................... 122
10. 2 LPC LIBRARY FUNCTIONS ......................................................................................................... 122
10. 2. 1 Function LPC_Init .................................................................................................................... 123
10. 2. 2 Function LPC_StructInit........................................................................................................... 126
10. 2. 3 Function LPC_Cmd .................................................................................................................. 127

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
7

RTL8762C Peripheral Manual

10. 2. 4 Function LPC_CounterCmd ..................................................................................................... 127
10. 2. 5 Function LPC_CounterReset .................................................................................................... 128
10. 2. 6 Function LPC_WriteComparator.............................................................................................. 128
10. 2. 7 Function LPC_ReadComparator .............................................................................................. 128
10. 2. 8 Function LPC_ReadCounter ..................................................................................................... 129
10. 2. 9 Function LPC_INTConfig ........................................................................................................ 129
10. 2. 10 Function LPC_ClearINTPendingBit ...................................................................................... 130
10. 2. 11 Function LPC_GetINTStatus ................................................................................................. 131

Re

11 Real-Time Clock (RTC) ........................................................................................................................... 132
11. 1 RTC Register Structure .................................................................................................................... 132

alt

11. 2 RTC Library Functions ..................................................................................................................... 132
11. 2. 1 Function RTC_DeInit ............................................................................................................... 133

ek

11. 2. 2 Function RTC_SetPrescaler ..................................................................................................... 134
11. 2. 3 Function RTC_SetComp .......................................................................................................... 134
11. 2. 4 Function RTC_RunCmd ........................................................................................................... 135

Co

11. 2. 5 Function RTC_MaskINTConfig............................................................................................... 135
11. 2. 6 Function RTC_CompINTConfig .............................................................................................. 136

nfi

11. 2. 7 Function RTC_TickINTConfig ................................................................................................ 137
11. 2. 8 Function RTC_GetINTStatus ................................................................................................... 137

de

11. 2. 9 Function RTC_SystemWakeupConfig ..................................................................................... 138
11. 2. 10 Function RTC_GetCounter ..................................................................................................... 138

al
nti

11. 2. 11 Function RTC_ResetCounter ................................................................................................. 138
11. 2. 12 Function RTC_GetComp ........................................................................................................ 139
11. 2. 13 Function RTC_ClearCompINT .............................................................................................. 139
11. 2. 14 Function RTC_ClearOverFlowINT ........................................................................................ 140
11. 2. 15 Function RTC_ClearTickINT ................................................................................................. 140
11. 2. 16 Function RTC_SleepModeClkConfig .................................................................................... 141
12 Serial Peripheral Interface(SPI) ................................................................................................................ 143
12.1 SPI Register Architecture .................................................................................................................. 143

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
8

RTL8762C Peripheral Manual

12.2 SPI SPI Library Functions ................................................................................................................. 144
12.2.1 Function SPI_DeInit ................................................................................................................... 145
12.2.2 Function SPI_Init........................................................................................................................ 146
12.2.3 Function SPI_StructInit .............................................................................................................. 151
12.2.4 Function SPI_Cmd ..................................................................................................................... 151
12.2.5 Function SPI_SendBuffer ........................................................................................................... 152
12.2.5 Function SPI_SendWord ............................................................................................................ 152
12.2.5 Function SPI_SendHalfWord ..................................................................................................... 153

Re

12.2.6 Function SPI_INTConfig ........................................................................................................... 153
12.2.7 Function SPI_ClearINTPendingBit ............................................................................................ 154

alt

12.2.8 Function SPI_SendData .............................................................................................................. 155
12.2.9 Function SPI_ReceiveData ......................................................................................................... 155

ek

12.2.10 Function SPI_GetRxFIFOLen .................................................................................................. 156
12.2.11 Function SPI_GetTxFIFOLen .................................................................................................. 156
12.2.12 Function SPI_ChangeDirection ................................................................................................ 157

Co

12.2.13 Function SPI_SetReadLen ........................................................................................................ 157
12.2.14 Function SPI_SetCSNumber .................................................................................................... 158

nfi

12.2.15 Function SPI_GetFlagState ...................................................................................................... 158
12.2.16 Function SPI_GetINTStatus ..................................................................................................... 159

de

12.2.17 Function SPI_GDMACmd ....................................................................................................... 160
13 3-Wire SPI ................................................................................................................................................ 161

al
nti

13.1 SPI3WIRE Register Structure ........................................................................................................... 161
13.2 SPI3WIRE Library Functions ........................................................................................................... 161
13.2.1 Function SPI3WIRE_ DeInit ...................................................................................................... 162
13.2.2 Function SPI3WIRE_Init ........................................................................................................... 163
13.2.3 Function SPI3WIRE_StructInit .................................................................................................. 165
13.2.4 Function SPI3WIRE_Cmd ......................................................................................................... 165
13.2.5 Function SPI3WIRE_SetResyncTime ........................................................................................ 166
13.2.6 Function SPI3WIRE_ResyncSignalCmd ................................................................................... 166

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
9

RTL8762C Peripheral Manual

13.2.7 Function SPI3WIRE_INTConfig ............................................................................................... 167
13.2.8 Function SPI3WIRE_GetFlagStatus .......................................................................................... 167
13.2.9 Function SPI3WIRE_ClearINTPendingBit ................................................................................ 168
13.2.10 Function SPI3WIRE_GetRxDataLen ....................................................................................... 168
13.2.11 Function SPI3WIRE_ClearRxFIFO ......................................................................................... 169
13.2.12 Function SPI3WIRE_ClearRxDataLen .................................................................................... 169
13.2.13 Function SPI3WIRE_StartWrite .............................................................................................. 169
13.2.14 Function SPI3WIRE_StartRead ............................................................................................... 170

Re

13.2.15 Function SPI3WIRE_ReadBuf ................................................................................................. 170
14 Timer & PWM .......................................................................................................................................... 172

alt

14.1 TIM Register Structure ...................................................................................................................... 172
14.2 TIM Library Functions ...................................................................................................................... 172

ek

14. 2. 1 Function TIM_DeInit ............................................................................................................... 173
14.2.2 Function TIM_TimeBaseInit ...................................................................................................... 173
14.2.3 Function TIM_StructInit............................................................................................................. 176

Co

14.2.4 Function TIM_Cmd .................................................................................................................... 177
14.2.5 Function TIM_ChangePeriod ..................................................................................................... 177

nfi

14.2.6 Function TIM_INTConfig .......................................................................................................... 178
14.2.7 Function TIM_GetCurrentValue ................................................................................................ 178

de

14.2.8 Function TIM_GetINTStatus ..................................................................................................... 179
14.2.9 Function TIM_ClearINT ............................................................................................................ 179

al
nti

14.2.10 Function TIM_PWMChangeFreqAndDuty .............................................................................. 180
14.2.11 Function PWM_Deadzone_EMStop ........................................................................................ 180
15 Universal Asynchronous Receiver Transmitter (UART) ......................................................................... 182
15. 1 UART Register Architecture ............................................................................................................ 182
15. 2 UART Library Functions.................................................................................................................. 183
15. 2. 1 Function UART_Init................................................................................................................. 183
15. 2. 2 Function UART_DeInit ............................................................................................................ 186
15. 2. 3 Function UART_StructInit ....................................................................................................... 187

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
10

RTL8762C Peripheral Manual

15. 2. 4 Function UART_ReceiveData .................................................................................................. 187
15. 2. 5 Function UART_SendData....................................................................................................... 188
15. 2. 6 Function UART_INTConfig .................................................................................................... 188
15. 2. 7 Function UART_GetFlagState ................................................................................................. 189
15. 2. 8 Function UART_ClearTxFifo .................................................................................................. 190
15. 2. 9 Function UART_ClearRxFifo .................................................................................................. 191
15. 2. 10 Function UART_ReceiveByte ................................................................................................ 192
15. 2. 11 Function UART_SendByte..................................................................................................... 193

Re

15. 2. 12 Function UART_GetIID ......................................................................................................... 193
16 KEYSCAN ............................................................................................................................................... 194

alt

16. 1 KEYCAN Register Architecture ...................................................................................................... 194
16. 2 KEYSCAN Library Functions.......................................................................................................... 194

ek

16. 2. 1 Function KeyScan_Init ............................................................................................................. 195
16. 2. 2 Function KeyScan_DeInit ........................................................................................................ 197
16. 2. 3 Function KeyScan_StructInit ................................................................................................... 198

Co

16. 2. 4 Function KeyScan_INTConfig ................................................................................................. 198
16. 2. 5 Function KeyScan_INTMask ................................................................................................... 199

nfi

16. 2. 6 Function KeyScan_Read .......................................................................................................... 200
16. 2. 7 Function KeyScan_Cmd ........................................................................................................... 200

de

16. 2. 8 Function KeyScan_GetFifoDataNum ....................................................................................... 201
16. 2. 9 Function KeyScan_ClearINTPendingBit ................................................................................. 201

al
nti

16. 2. 10 Function KeyScan_ClearFlags ............................................................................................... 202
16. 2. 11 Function KeyScan_GetFlagState ............................................................................................ 202
16. 2. 12 Function KeyScan_debounceConfig ...................................................................................... 203
16. 2. 13 Function KeyScan_FilterDataConfig ..................................................................................... 204
16. 2. 14 Function KeyScan_ReadFifoData .......................................................................................... 204
17 Infrared Radiation(IR) .............................................................................................................................. 205
17.1 IR Register Architecture .................................................................................................................... 205
17.2 IR Library Functions ......................................................................................................................... 206

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
11

RTL8762C Peripheral Manual

17.2.1 Function IR_ DeInit .................................................................................................................... 207
17.2.2 Function IR_Init ......................................................................................................................... 207
17.2.3 Function IR_StructInit ................................................................................................................ 211
17.2.4 Function IR_Cmd ....................................................................................................................... 211
17.2.5 Function IR_StartManualRxTrigger ........................................................................................... 212
17.2.6 Function IR_SetRxCounterThreshold ........................................................................................ 212
17.2.7 Function IR_SendBuf ................................................................................................................. 213
17.2.8 Function IR_ReceiveBuf ............................................................................................................ 214

Re

17.2.9 Function IR_INTConfig ............................................................................................................. 214
17.2.10 Function IR_MaskINTConfig .................................................................................................. 215

alt

17.2.11 Function IR_GetINTStatus ....................................................................................................... 216
17.2.12FunctionIR_ClearINTPendingBit .............................................................................................. 216

ek

17.2.13FunctionIR_GetTxFIFOFreeLen ............................................................................................... 217
17.2.14FunctionIR_GetRxDataLen ....................................................................................................... 217
17.2.15FunctionIR_SendData ............................................................................................................... 218

Co

17.2.16FunctionIR_ReceiveData........................................................................................................... 218
17.2.17 Function IR_SetTxThreshold ................................................................................................... 219

nfi

17.2.18 Function IR_SetRxThreshold ................................................................................................... 219
17.2.19 Function IR_ClearTxFIFO ....................................................................................................... 220

de

17.2.19 Function IR_ClearRxFIFO ....................................................................................................... 220
17.2.20 Function IR_GetFlagStatus ...................................................................................................... 221

al
nti

17.2.21 Function IR_SetTxInverse ........................................................................................................ 221
17.2.22 Function IR_TxOutputInverse .................................................................................................. 222
17.2.23 Function IR_ConfigCompenParam .......................................................................................... 223
17.2.24 Function IR_SendCompenBuf ................................................................................................. 223
18 Inter-IC Sound(I2S) .................................................................................................................................. 225
18.1 I2S Register Architecture .................................................................................................................. 225
18.2 I2S Library Functions ........................................................................................................................ 225
18.2.1 Function I2S_ DeInit .................................................................................................................. 226

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
12

RTL8762C Peripheral Manual

18.2.2 Function I2S_Init ........................................................................................................................ 227
18.2.3 Function I2S_StructInit .............................................................................................................. 231
18.2.4 Function I2S_Cmd ...................................................................................................................... 231
18.2.5 Function I2S_INTConfig ............................................................................................................ 232
18.2.6 Function I2S_GetINTStatus ....................................................................................................... 233
18.2.7 Function I2S_SendData .............................................................................................................. 233
18.2.8 Function I2S_ReceiveData ......................................................................................................... 234
18.2.9 Function I2S_GetTxFIFOFreeLen ............................................................................................. 234

Re

18.2.10 Function I2S_GetRxFIFOLen .................................................................................................. 235
18.2.11 Function I2S_GetTxErrCnt ...................................................................................................... 235

alt

18.2.12 Function I2S_GetRxErrCnt ...................................................................................................... 236
18.2.13 Function I2S_SwapBytesForSend ............................................................................................ 236

ek

18.2.14 Function I2S_SwapBytesForRead ............................................................................................ 237
18.2.15 Function I2S_SwapLRChDataForSend .................................................................................... 237
18.2.16 Function I2S_SwapLRChDataForRead.................................................................................... 238

Co

19 Liquid Crystal Display Controller(LCD) ................................................................................................. 239
19.1 LCD Register Structure ..................................................................................................................... 239

nfi

19.2 LCD Library Functions ..................................................................................................................... 240
19.2.1 Function LCD_ DeInit ................................................................................................................ 240

de

19.2.2 Function LCD_PinGroupConfig ................................................................................................ 241
19.2.3 Function LCD_Init ..................................................................................................................... 241

al
nti

19.2.4 Function LCD_StructInit ............................................................................................................ 244
19.2.5 Function LCD_Cmd ................................................................................................................... 245
19.2.6 Function LCD_SendCommand .................................................................................................. 245
19.2.7 Function LCD_SendData ........................................................................................................... 245
19.2.8 Function LCD_ReceiveData ....................................................................................................... 246
19.2.9 Function LCD_Write .................................................................................................................. 246
19.2.10 Function LCD_Read ................................................................................................................. 247
19.2.11 Function LCD_SetCmdSequence ............................................................................................. 248

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
13

RTL8762C Peripheral Manual

19.2.12 Function LCD_MaskINTConfig .............................................................................................. 248
19.2.13 Function LCD_GetINTStatus ................................................................................................... 249
19.2.14 Function LCD_GetFlagStatus .................................................................................................. 250
19.2.15 Function LCD_SwitchMode..................................................................................................... 250
19.2.16 Function LCD_GDMACmd ..................................................................................................... 251
19.2.17 Function LCD_SetCS ............................................................................................................... 251
19.2.18 Function LCD_ResetCS ........................................................................................................... 252
19.2.19 Function LCD_ClearINTPendingBit ........................................................................................ 252

Re

19.2.20 Function LCD_SetTxDataLen .................................................................................................. 253
19.2.21 Function LCD_GetTxDataLen ................................................................................................. 253

alt

19.2.22 Function LCD_GetDataCounter ............................................................................................... 254
19.2.23 Function LCD_ClearDataCounter ............................................................................................ 254

ek

19.2.24 Function LCD_ClearFIFO ........................................................................................................ 255
20 Peripheral User Flow Guide ..................................................................................................................... 256
20.1 Peripheral Initialization flow ............................................................................................................. 256

Co

20.1.1 Clock Configuration ................................................................................................................... 256
20.1.2 PinMux Configuration ................................................................................................................ 256

nfi

20.1.3 PAD Configuration ..................................................................................................................... 258
20.1.4 Interrupt Configuration ............................................................................................................... 258

de

20.1.5 GPIO Initialization ..................................................................................................................... 258
20.2 PINMUX and PAD User Flow .......................................................................................................... 260

al
nti

20.2.1 Overview .................................................................................................................................... 260
20.2.2 PAD wake up Setting ................................................................................................................. 261
22.2.3 Flow of Switching PAD upon Entry to/Exit from DLPS ........................................................... 262
22.2.4 Method to Maintain Pin Output in DLPS Mode ......................................................................... 263
22.2.5 Leakage Protection Setting in DLPS .......................................................................................... 264

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
14

RTL8762C Peripheral Manual

1 Overview of Peripheral Firmware
Table 1. 1 All Abbreviations and Definitions for peripherals
Description

ADC

Analog-to-Digital Converter

CODEC

COder-DECoder

GDMA

General Direct Memory Access Controller

GPIO

General Purpose Input/Output

I2C

Inter-Integrated Circuit

QDEC

Quadrature Demodulator

Re

Abbreviation

PAD

Chip Internal Pad

Pin Multiplexing

LPC

Low power comparator

RTC

Real-Time Clock

SPI

Serial Peripheral Interface

SPI3WIRE

Three-Wire SPI

TIM(PWM)

Universal Timer(Pulse Width Modulation)

UART

Universal Asynchronous Receiver Transmitter

KEYSCAN

Key Scan

IR

Infrared module

I2S

Inter-IC Sound

LCD

8080 interface for Liquid crystal display controller

ek

alt

PINMUX

Co

Table 1. 2 Function Description Format

al
nti

de

nfi

Functions are described in the following format.

Name

Description

Function Name

Name of firmware function

Function Prototype

Statement of function prototype

Function Description

Briefly describe functions to be performed by the function

Input Parameter

Description of input paramter

Output Parameter

Description of output paramter

Return Value

The value returned by the function

Prerequisite

The prerequisite for calling the function

Functions Called

Other firmware library function to be called by the function
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
15

RTL8762C Peripheral Manual

2 Analog-Digital Converter (ADC)
2. 1 ADC Register Structure
typedef struct
{
__O uint32_t FIFO;
__IO uint32_t CR;
__IO uint32_t INTCR;
__IO uint32_t SCHTAB0;
__IO uint32_t SCHTAB1;

alt

Re

__IO uint32_t SCHCR;

__IO uint32_t SCHTAB2;
__IO uint32_t SCHTAB3;
__IO uint32_t SCHTAB4;

ek

__IO uint32_t SCHTAB5;
__IO uint32_t SCHTAB6;
__IO uint32_t SCHTAB7;

Co

__IO uint32_t SCHD0;
__IO uint32_t SCHD1;
__IO uint32_t SCHD2;
__IO uint32_t SCHD3;

nfi

__IO uint32_t SCHD4;
__IO uint32_t SCHD5;
__IO uint32_t SCHD6;

de

__IO uint32_t SCHD7;
__IO uint32_t PWRDLY;
__IO uint32_t DATCLK;

al
nti

__IO uint32_t ANACTL;
} ADC_TypeDef;
} ADC_TypeDef;

All ADC registers are enumerated in Table 2.1.
Table 2. 1 ADC Registers
Register

Description

FIFO

ADC data FIFO

CR

ADC control register

SCHCR

ADC Schedule Table Mapping Control register
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
16

RTL8762C Peripheral Manual

ADC interrupt control register

SCHTAB0

ADC schedule table 0

SCHTAB1

ADC schedule table 1

SCHTAB2

ADC schedule table 2

SCHTAB3

ADC schedule table 3

SCHTAB4

ADC schedule table 4

SCHTAB5

ADC schedule table 5

SCHTAB6

ADC schedule table 6

SCHTAB7

ADC schedule table 7

SCHD0

ADC schedule table data register 0

SCHD1

ADC schedule table data register 1

SCHD2

ADC schedule table data register 2

SCHD3

ADC schedule table data register 3

SCHD4

ADC schedule table data register 4

SCHD5

ADC schedule table data register 5

SCHD6

ADC schedule table data register 6

SCHD7

ADC schedule table data register 7

DATCLK

ADC data and control register

ANACTL

ADC analog control register

ek

alt

Re

INTCR

Co

Table 2. 2 All ADC library functions
Function Name

Description

ADC_Init

Initialize ADC module

ADC_DeInit

Disable ADC clock source

ADC_StructInit

Set each parameter in ADC_InitStruct to the default value

ADC_INTConfig

Enable or disable external ADC interrupt

ADC_ReadByScheduleIndex

Read conversion result in specified schedule table

ADC_Cmd

Enable or disable ADC peripheral module

ADC_GetIntFlagStatus

Check whether specified ADC interrupt flag is set

ADC_ClearINTPendingBit

Clear suspended ADC interrupt

ADC_SchTableConfig

Configure specific convert mode to schedule table

ADC_GetFifoData

Get data from ADC FIFO.

al
nti

de

nfi

2. 2 ADC Library Functions

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
17

RTL8762C Peripheral Manual

ADC_ReadFifoData

Read data from ADC fifo once

ADC_GetFifoLen

Get ADC fifo data length

ADC_HighBypassCmd

Enable ADC high bypass mode

ADC_GetHighBypassRes

Convert raw data to voltage in adc high bypass mode

ADC_GetRes

Convert raw data to voltage in normal mode

2. 2. 1 Function ADC_Init
Table 2. 3 Function ADC_DeInit

Re

ADC_Init

Function Prototype

void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)

Function Description

Initialize ADC register based on parameters specified in ADC_InitStruct

Input Parameter 1

ADCx: Base Address of ADCx pointing to the ADC module selected

Input Parameter 2

ADC_InitStruct: A pointer to ADC_InitTypeDef, and configuration information is contained in
ADC_InitStruct
None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Output Parameter

ek

alt

Function Name

nfi

typedef struct
{
adcSamplePeriod;
adcFifoThd;

uint8_t

adcBurstSize;

uint16_t

adcFifoOverWritEn;
dataLatchEdge;

uint16_t

fifoOREn;

uint16_t

schIndex[16];

uint16_t

bitmap;

uint8_t

timerTriggerEn;

uint32_t

dataAligned;

uint8_t

dataWriteToFifo;

uint8_t

dataMinusEn;

uint8_t

dataMinusOffset;

uint32_t

pwrmode;

uint16_t

datalatchDly;

uint16_t

adcRG2X0Dly;

al
nti

uint16_t

de

uint8_t
uint8_t

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
18

RTL8762C Peripheral Manual

uint16_t

adcRG0X1Dly;

uint16_t

adcRG0X0Dly;

uint32_t

adcRefMode;

} ADC_InitTypeDef;

adcSamplePeriod:This parameter specifies the sample rate of ADC in continuous mode. The actual sample rate:
sample_rate = (adcSamplePeriod +1)/10K, where adcSamplePeriod ranges from 0~255.
adcFifoThd:This parameter set the threshold to trigger ADC interrupt, which ranges from 0 to 31. When data
length in FIFO reaches threshold, inturrpt will be triggered. Inturrpt should be enabled before activating this
funchtion.
adcBurstSize:This parameter specifies the threshold to trigger GDMA transfer data in dma mode.

Re

adcFifoOverWritEn:

This parameter specifies adc FIFO behavior when FIFO overflow occurs.

dataLatchEdge: This parameter specifies the way to latch adc data.

alt

adcRG2X0Dly / adcRG0X1Dly / adcRG0X0Dly:This parameter specifies the power on time of ADC analog circuit.
schIndex[16]:ADC schedule table that is used to seclect ADC channel. Table 2. 4 lists possible values.
Table 2. 4 schedule index

ek

schedule index

Description

ADC external channel 0

EXT_SINGLE_ENDED(1)

ADC external channel 1

EXT_SINGLE_ENDED(2)

ADC external channel 2

EXT_SINGLE_ENDED(3)

ADC external channel 3

EXT_SINGLE_ENDED(4)

ADC external channel 4

EXT_SINGLE_ENDED(5)

ADC external channel 5

EXT_SINGLE_ENDED(6)

ADC external channel 6

EXT_SINGLE_ENDED(7)

ADC external channel 7

EXT_DIFFERENTIAL (0)

ADC Diffential mode (Channel P: 0 Channel N: 1)

EXT_DIFFERENTIAL (1)

ADC Diffential mode (channel P: 1

channel N: 0)

EXT_DIFFERENTIAL (2)

ADC Diffential mode (channel P: 2

channel N: 3)

EXT_DIFFERENTIAL (3)

ADC Diffential mode (channel P: 3

channe lN: 2)

EXT_DIFFERENTIAL (4)

ADC Diffential mode (channel P: 4

channel N: 5)

EXT_DIFFERENTIAL (5)

ADC Diffential mode (channel P: 5

channel N: 4)

EXT_DIFFERENTIAL (6)

ADC Diffential mode (channel P: 6

channel N: 7)

EXT_DIFFERENTIAL(7)

ADC Diffential mode (channel P: 7

channel N: 6)

INTERNAL_VBAT_MODE

ADC V battery mode

INTERNAL_VDDCORE_MODE

ADC VDDCORE channel

Co

EXT_SINGLE_ENDED(0)

al
nti

de

nfi

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
19

RTL8762C Peripheral Manual

INTERNAL_VDD_DIGI_MODE

ADC VDD_DIGI channel

bitmap:This parameter specifies the converted schedule table. For example, 0x7 will convert schedule table
index 0, 1, 2.
timerTriggerEn:This parameter determines whether to use TIM7 to trigger ADC convert. Table 2. 5 lists possible
values:
Table 2. 5 timerTriggerEn:

timerTriggerEn

Description

ENABLE

ADC convert data when TIM7 toggle

DISABLE

ADC won’t convert data when TIM7 toggle

Re

dataAligned:ADC data aligned. Table 2. 6 give values available to this parameter.
Table 2. 6 dataAligned

Description

alt

dataAligned
ADC_DATA_LSB

Data starts from lsb

ADC_DATA_MSB

Data starts from msb

ek

dataWriteToFifo : This parameter specifies whether ADC converted data is synchronized to FIFO in
one-shot-mode. Table 2. 7 give values available to this parameter.
Table 2. 7 Value of dataWriteToFifo

Co

dataWriteToFifo

Description

ENABLE

ADC conversion values are synchronized to FIFO

DISABLE

ADC conversion values are not synchronized to FIFO

nfi

dataMinusEn:Enable or disable function of ADC conversion value automatically subtracting a particular
value.Table 2. 7 lists values available to this parameter.
Value of dataMinusEn

dataMinusEn

Description

de

Table 2. 8

The ADC conversion value automatically subtracts a particular value

ADC_DATA_MINUS_EN

The ADC conversion value does not automatically subtract a particular value

al
nti

ADC_DATA_MINUS_DIS

dataMinusOffset:ADC data offset value. The ADC conversion value automatically subtracts this value if function
is enabled.
pwrmode:ADC power supply mode. Table 2. 9 lists values available to this parameter.
Table 2. 9 Value of pwrmode

pwrmode

Description

ADC_POWER_MANNUAL

Manual power up

ADC_POWER_AUTO

Automatic power up

datalatchDly:Data latching delay time, unit is ADC sample clock. This parameter ranges from 1 to 7 (1 by default),
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
20

RTL8762C Peripheral Manual

generally don’t need to set.
adcRG2X0Dly / adcRG0X1Dly / adcRG0X0Dly:Control ADC analog circuit power-on time. Generally default value
is used and there’s no need to set.
adcRefMode:Configure ADC reference voltage mode.
表 2. 10 value of adcRefMode

描述

adcRefMode
ADC_Internal_Reference

Internal reference mode.

ADC_External_Reference

External reference mode.

Re

adcPowerAlwaysOnCmd:Configure if ADC analog power should be always on.
表 2. 11 value of adcPowerAlwaysOnCmd

adcPowerAlwaysOnCmd

描述

alt

ADC_POWER_ALWAYS_ON_ENABLE

Analog power always on.

ADC_POWER_ALWAYS_ON_DISABLE

Shut down power after ADC conversion is completed in

ek

one-shot mode.

ADC_InitTypeDef adcInitStruct;
ADC_StructInit(&adcInitStruct);
adcInitStruct.schIndex[0]

= EXT_SINGLE_ENDED(0);

/* schedule table 1: external differential mode, P: 2 N: 3 */
= EXT_DIFFERENTIAL(2);

/* adc convert schedule table 0 & 1 */
= 0x03;

adcInitStruct.adcSamplePeriod

= 9;

adcInitStruct.timerTriggerEn

= DISABLE;

adcInitStruct.adcFifoThd

= 8;

al
nti

adcInitStruct.bitmap

de

adcInitStruct.schIndex[1]

nfi

/* schedule table 0: external single-ended 0 channel */

Co

Examples:

ADC_Init(ADC, &adcInitStruct);

2. 2. 2 Function ADC_DeInit
Table 2. 12 Function ADC_DeInit
Function Name

ADC_DeInit

Function Prototype

void ADC_DeInit(void)

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
21

RTL8762C Peripheral Manual

Function Description

Disable ADC clock source

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd Function

Examples:
/* Reset ADC */
ADC_DeInit(ADC);

Re

2. 2. 3 Function ADC_StructInit

alt

Table 2. 13 Function ADC_StructInit
ADC_StructInit

Function Prototype

void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct)

Function Description

Set each parameter in ADC_InitStruct to the default value

Input Parameter

ADC_InitStruct: A pointer points to structure ADC_InitTypeDef, which contains

ek

Function Name

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Configure the ADC Init Structure parameter */
ADC _InitTypeDef

ADC _InitStruct;

ADC_ StructInit (&ADC _InitStruct);

2. 2. 4 Function ADC_INTConfig
Table 2. 14 Function ADC_INTConfig

al
nti

de

nfi

Output Parameter

Co

configuration information about peripheral ADC.

Function Name

ADC_INTConfig

Function Prototype

ADC_INTConfig(ADC_TypeDef* ADCx, uint32_t ADC_IT, FunctionalState newState)

Function Description

Enable or disable external ADC interrupt

Input Parameter 1

ADCx: Base Address of ADCx pointing to the ADC module selected

Input Parameter 2

ADC_IT: Specify enabled interrupt type
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
22

RTL8762C Peripheral Manual

Input Parameter 3

newState: Enable or disable the interrupt specified in Parameter 2.
Optional parameters: ENABLE, DISABLE

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ADC_IT: Permitted ADC interrupt types are as shown in Table 2. 15. Mutiple interrupts can be enabled at one
time by using operator "|".

Re

Table 2. 15 Values of ADC_IT
ADC_IT

Description

ADC Read request interrupt

ADC_INT_FIFO_RD_ERR

ADC Read error interrupt

ADC_INT_FIFO_TH

ADC FIFO reach threshold interrupt

ADC_INT_FIFO_FULL

ADC FIFO full interrupt

ADC_INT_ONE_SHOT_DONE

ADC one_shot mode done interrupt

ek

alt

ADC_INT_FIFO_RD_REQ

Examples:
ADC_INTConfig(ADC, ADC_INT_ONE_SHOT_DONE, ENABLE);

Table 2. 16 Function ADC_ ReadByScheduleIndex

de

nfi

2. 2. 5 Function ADC_ ReadByScheduleIndex

Co

/* Enable ADC one shot done interrupt */

ADC_ReadByScheduleIndex

Function Prototype

uint16_t ADC_ReadByScheduleIndex(ADC_TypeDef *ADCx, uint8_t ScheduleIndex)

Function Description

Read converted result from corresponding channel according to schedule table index.

Input Parameter 1

ADCx:Base Address of ADCx pointing to the ADC module selected

Input Parameter 2

ScheduleIndex:The specified adc schedule table index, ranging from 0 to 15.

Output Parameter

None

Return Value

12-bit converted ADC data

Prerequisite

None

Functions Called

NOne

al
nti

Function Name

Examples:
/* Read data by schedule index */
uint16_t value = 0;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
23

RTL8762C Peripheral Manual

value = ADC_ReadByScheduleIndex (ADC, 0);

2. 2. 6 Function ADC_Cmd
Table 2. 17 Function ADC_Cmd
ADC_Cmd

Function Prototype

void ADC_Cmd(ADC_TypeDef* ADCx, uint8_t adcMode, FunctionalState NewState)

Function Description

Enable or disable ADC peripheral.

Input Parameter 1

ADCx: Base Address of ADCx pointing to the ADC module selected

Input Parameter 2

adcMode: ADC mode select.

Re

Function Name

ADC_One_Shot_Mode: one shot mode.
ADC_Auto_Sensor_Mode: Continuous mode.

alt

Input Parameter 3

NewState: new state of the ADC peripheral.
Possible value: ENABLE and DISABLE

None

Prerequisite

None

Functions Called

None

Examples:
/* Enable ADC */

Table 2. 18 Function ADC_GetIntFlagStatus

de

2. 2. 7 Function ADC_GetIntFlagStatus

nfi

ADC_Cmd(ADC, ADC_One_Shot_Mode, ENABLE);

Co

None

Return Value

ek

Output Parameter

ADC_GetIntFlagStatus

Function Prototype

FlagStatus ADC_GetIntFlagStatus(ADC_TypeDef* ADCx, uint32_t ADC_INT_FLAG)

Function Description

Check specified interrupt flag is set or not.

Input Parameter 1

ADCx: Base Address of ADCx pointing to the ADC module selected

Input Parameter 2

ADC_INT_FLAG: The specified ADC interrupt flag bit. For more details refer to description

al
nti

Function Name

of ADC_IT in 2. 2. 4.
Output Parameter

None

Return Value

None

Prerequisite

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
24

RTL8762C Peripheral Manual

Functions Called

None

Examples:
/*wait for adc sample ready*/
while (ADC_GetIntFlagStatus(ADC, ADC_INT_ONE_SHOT_DONE) != SET);

2. 2. 8 Function ADC_ClearINTPendingBit
Table 2. 19 Function ADC_ClearINTPendingBit
ADC_ClearINTPendingBit

Function Prototype

void ADC_ClearINTPendingBit(ADC_TypeDef* ADCx, uint32_t ADC_IT)

Function Description

Clear ADC interrupt suspended

Input Parameter 1

ADCx: Base Address of ADCx pointing to the ADC module selected

Input Parameter 2

ADC_IT: The specified ADC interrupt. For more details refer to description of ADC_IT in 2.

alt

Re

Function Name

2. 4.

Return Value

None

Prerequisite

None

Functions Called

None

Co

None

ek

Output Parameter

Examples:
/* Clear ADC interrupt */

nfi

ADC_ClearINTPendingBit(ADC, ADC_INT_ONE_SHOT_DONE);

de

2. 2. 9 Function ADC_SchTableConfig
Table 2. 20 Function ADC_SchTableConfig
ADC_SchTableConfig

Function Prototype

void ADC_SchTableConfig(ADC_TypeDef *ADCx, uint16_t Index,

Function Description

Config specified ADC channel to ADC schedule table

Input Parameter 1

ADCx: Base Address of ADCx pointing to the ADC module selected

Input Parameter 2

Index: ADC schedule table index, ranging from 0 to 15.

Input Parameter 3

adcMode: specified ADC channel. For detailed information refer to Section 2.2.1

uint8_t adcMode)

al
nti

Function Name

channelMap.
Output Parameter

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
25

RTL8762C Peripheral Manual

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Enable ADC specific channel */
ADC_ChannelConfig(ADC,0, EXT_SINGLE_ENDED(0));

2. 2. 10 Function ADC_GetFifoData

Re

Table 2. 21 Function ADC_GetFifoData
ADC_GetFifoData

Function Prototype

void ADC_GetFifoData(ADC_TypeDef *ADCx, uint16_t *outBuf, uint16_t count)

Function Description

Get specific amount of data from ADC FIFO.

Input Parameter 1

ADCx: Base Address of ADCx pointing to the ADC module selected

Input Parameter 2

outBuf: address of buffer to store converted data.

Input Parameter 3

Count: length of data to be read

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Function Name

Co

/* Get ADC data */
ADC_GetFifoData(ADC,data,5);

Table 2. 22 Function ADC_ReadFifoData
Function Name

ADC_ReadFifoData

Function Prototype

uint16_t ADC_ReadFifoData(ADC_TypeDef *ADCx)

Function Description

Read data from ADC peripheral once.

Input Parameter 1

ADCx: Base Address of ADCx pointing to the ADC module selected

Output Parameter

None

Return Value

ADC converted data.

Prerequisite

None

al
nti

2. 2. 11 Function ADC_ReadFifoData

de

nfi

Examples:

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
26

RTL8762C Peripheral Manual

Functions Called

None

Examples:
/* Receive one half word*/
Uint16_t data = ADC_ReadFifoData (ADC);

2. 2. 12 Function ADC_GetFifoLen
Table 2. 23 Function ADC_GetFifoLen
ADC_GetFifoLen

Function Prototype

uint8_t ADC_GetFifoLen(ADC_TypeDef *ADCx)

Function Description

Get ADC FIFO available data length

Input Parameter 1

ADCx: Base Address of ADCx pointing to the ADC module selected

Output Parameter

None

Return Value

ADC FIFO data length

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Name

Examples:

Co

/* Get ADC fifo number */
Uint8_t length = ADC_GetFifoLen (ADC);

de

Table 2. 24 Function ADC_HighBypassCmd

nfi

2. 2. 13 Function ADC_HighBypassCmd
ADC_HighBypassCmd

Function Prototype

void ADC_HighBypassCmd(uint8_t channelNum, FunctionalState NewState)

Function Description

Configure specified ADC external channel to high impedence mode

Input Parameter 1

channelNum: external channel index, ranging from 0~7.

Input Parameter 2

NewState:

al
nti

Function Name

ENABLE: configure to high bypass resistance mode. Convertion range: 0 to 1 Volt.
DISABLE: configure to common mode. Convertion range: 0 to 3.3 Volts.
Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
27

RTL8762C Peripheral Manual

Examples:
/* Get ADC external channel 3 high bypass mode*/
ADC_HighBypassCmd(3,ENABLE);

2. 2. 14 Function ADC_GetHighBypassRes
Table 2. 25 Function ADC_GetHighBypassRes
ADC_GetHighBypassRes

Function Prototype

uint16_t ADC_GetHighBypassRes(uint16_t RawData, uint8_t adcMode)

Function Description

Get ADC result in high bypass resistance mode.

Input Parameter 1

RawData: ADC raw data.

Input Parameter 2

adcMode: The specified ADC mode. Can be EXT_SINGLE_ENDED(index)

Output Parameter

None

Return Value

Actual ADC data

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Name

Examples:

Co

/*Convert ADC raw data to actual voltage*/

uint16_t vol = ADC_GetHighBypassRes (0x88, EXT_SINGLE_ENDED(0));

ADC_GetRes

Function Prototype

uint16_t ADC_GetRes(uint16_t RawData, uint8_t adcMode)

Function Description

Convert raw data obtained in ADC normal mode to actual value

Input Parameter 1

RawData: ADC raw data.

Input Parameter 2

adcMode: Specified ADC mode.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Function Name

de

Table 2. 26 Function ADC_GetRes

nfi

2. 2. 15 Function ADC_GetRes

Examples:
/*Convert ADC raw data to actual voltage*/
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
28

RTL8762C Peripheral Manual

Uint16_t vol = ADC_GetRes (0x88, EXT_SINGLE_ENDED(0));

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
29

RTL8762C Peripheral Manual

3 COder-DECoder(CODEC)
3. 1 Codec Register Architecture
typedef struct
{
uint32_t CR1;

__IO

uint32_t CR2;

__IO

uint32_t RESV0;

__IO

uint32_t CR3;

__IO

uint32_t I2S_CTRL;

__IO

uint32_t AUDIO_CTRL;

__IO

uint32_t CLK_CTRL;

__IO

uint32_t DAC_CTRL;

__IO

uint32_t ADC_CTRL;

} CODEC_TypeDef;

All Codec registers are enumerated in Table 3. 1.
Table 3. 1 Codec Register

ek

alt

uint32_t CR0;

__IO

Re

__IO

Co

Register

Description

CODEC Control Register 1

CR2

CODEC Control Register 2

RSVD0

Reserved

CR3

CODEC Control Register 3

I2S_CTRL

I2S Control Register

AUDIO_CTRL

Audio Control Register

CLK_CTRL

Clock Control Register

DAC_CTRL

DAC Control Register

ADC_CTRL

ADC Control Register

typedef struct

al
nti

CR1

de

CODEC Control Register 0

nfi

CR0

{
__IO uint32_t EQ_H0;

/*!< 0x40 */

__IO uint32_t EQ_B1;

/*!< 0x44 */

__IO uint32_t EQ_B2;

/*!< 0x48 */

__IO uint32_t EQ_A1;

/*!< 0x4C */

__IO uint32_t EQ_A2;

/*!< 0x50 */
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
30

RTL8762C Peripheral Manual

}CODEC_EQTypeDef;
All EQ registers are enumerated in Table 3. 2.

Table 3. 2 CODEC EQ Register
Register

Description

EQ_H0

EQ Control Register H0

EQ_B1

EQ Control Register B1

EQ_B2

EQ Control Register B2

EQ_A1

EQ Control Register A1

EQ_A2

EQ Control Register A2

Re

3. 2 Codec Library Functions
Function Name

alt

Table 3. 3 All Codec library functions.

Description

Disable Codec clock

CODEC_Init

Initialize Codec registers based on parameters specified in CODEC_InitStruct

CODEC_StructInit

Set each parameter in CODEC_InitStruct to the default value

CODEC_EQInit

Initialize Codec EQ registers based on parameters specified in CODEC_EQInitStruct

CODEC_EQStructInit

Set each parameter in CODEC_EQInitStruct to the default value

CODEC_Reset

Reset CODEC peripheral

CODEC_SetMicMute

Mute microphone

CODEC_SetADCDigitalVolume

Set volume of ADC digital circuit

CODEC_SetMICBIAS

Set voltage range of MICBIAS

CODEC_MICBIASCmd

Enable or disable MICBIAS

ek

CODEC_DeInit

Co

Table 3. 4 Function CODEC_DeInit
Function Name

CODEC_DeInit

Function Prototype

void CODEC_DeInit(CODEC_TypeDef* CODECx)

Function Description

Disable Codec clock

Input Parameter 1

CODECx: Base Address of CODEC pointing to the Codec module selected

Output Parameter

None

Return Value

None

al
nti

de

nfi

3. 2. 1 Function CODEC_DeInit

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
31

RTL8762C Peripheral Manual

Prerequisite

None

Functions Called

RCC_PeriphClockCmd Function

Examples:
/* Close codec */
CODEC_DeInit(CODEC);

3. 2. 2 Function CODEC_Init
Table 3. 5 Function CODEC_Init
CODEC_Init

Function Prototype

CODEC_Init(CODEC_TypeDef* CODECx, CODEC_InitTypeDef* CODEC_InitStruct)

Function Description

Initialize CODEC register based on parameters specified in CODEC_InitStruct

Input Parameter 1

CODECx: Base Address of CODEC pointing to the Codec module selected

Input Parameter 2

CODEC_InitStruct: A pointer to CODEC_InitTypeDef, and related configuration

alt

Re

Function Name

None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Output Parameter

ek

information is contained in CODEC_InitStruct

typedef struct
{

nfi

uint32_t CODEC_MicType;

/*!< Specifies the mic type, which can be dmic or amic */

uint32_t CODEC_SampleRate;

/*!< Specifies the sample rate */

/* I2S parameters section */

/*!< Specifies the I2S format of codec port */

uint32_t CODEC_I2SDataWidth;

/*!< Specifies the I2S data width of codec port */

/* Input: ADC parametes section */
uint32_t CODEC_MicBIAS;

/*!< Specifies the MICBIAS voltage */

uint32_t CODEC_AdGain;

/*!< Specifies the ADC digital volume */

uint32_t CODEC_BoostGain;

/*!< Specifies the boost gain */

al
nti

de

uint32_t CODEC_I2SFormat;

uint32_t CODEC_AdcZeroDetTimeout;

/*!< Specifies the mono ADC zero detection timeout control */

uint32_t CODEC_MICBstGain;

/*!< Specifies the MICBST gain */

uint32_t CODEC_MICBstMode;

/*!< Specifies the MICBST mode */

/* Input: Dmic parametes section */
uint32_t CODEC_DmicClock;

/*!< Specifies the dmic clock */

uint32_t CODEC_DmicDataLatch;

/*!< Specifies the dmic data latch type */

/* Output: DAC control */
uint32_t CODEC_DaMute;

/*!< Specifies the DAC mute status */

uint32_t CODEC_DaGain;

/*!< Specifies the DAC gain control */
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
32

RTL8762C Peripheral Manual

uint32_t CODEC_DacZeroDetTimeout;

/*!< Specifies the mono DAC zero detection timeout control */

}CODEC_InitTypeDef;

CODEC_MicType: The defined microphone type, indicating analog or digital microphone, which can be set to
either CODEC_AMIC or CODEC_DMIC.
CODEC_SampleRate: Configure microphone sample rate. Table 3. 6 lists available values..
Table 3. 6 Values of CODEC_SampleRate

CODEC_SampleRate

Description
Sample rate is 8KHz

SAMPLE_RATE_16KHz

Sample rate is 16KHz

Re

SAMPLE_RATE_8KHz

CODEC_I2SFormat: Configure I2S data format. Table 3. 7 lists available values.
Table 3. 7 Values of CODEC_I2SFormat

alt

CODEC_I2SFormat

I2S format

CODEC_I2S_DataFormat_LeftJustified

Left justified format

CODEC_I2S_DataFormat_PCM_A

PCM A format

CODEC_I2S_DataFormat_PCM_B

PCM B format

ek

CODEC_I2S_DataFormat_I2S

Description

Co

CODEC_I2SDataWidth: Configure I2S data width. Table 3. 8 lists available values.
Table 3. 8 Values of CODEC_I2SDataWidth

CODEC_I2SDataWidth
16bit data width

CODEC_I2S_DataWidth_24Bits

24bit data width

CODEC_I2S_DataWidth_8Bits

8bit data width

CODEC_MicBIAS: Configure MICBIAS voltage. Table 3. 9 lists available values.

CODEC_MicBIAS

Description

MICBIAS_VOLTAGE_1_507

1.507v

MICBIAS_VOLTAGE_1_62

1.62v

MICBIAS_VOLTAGE_1_705

1.705v

MICBIAS_VOLTAGE_1_8

1.8v

MICBIAS_VOLTAGE_1_906

1.906v

MICBIAS_VOLTAGE_2_025

2.025v

MICBIAS_VOLTAGE_2_16

2.16v

al
nti

Table 3. 9 Values of CODEC_MicBIAS

de

CODEC_I2S_DataWidth_16Bits

nfi

Description

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
33

RTL8762C Peripheral Manual

MICBIAS_VOLTAGE_2_314

2.314v

CODEC_ AdGain: Set microphone volume. The available value ranges from 0x00 to 0x7f, among which, 0x00 is
-17. 625dB, 0x2f is 0dB, and 0x7f is 30dB.
CODEC_BoostGain: Configure boost gain. Table 3. 10 lists available values.
Table 3. 10 Values of CODEC_BoostGain

CODEC_BoostGain

Description
0dB

Boost_Gain_12dB

12dB

Boost_Gain_24dB

24dB

Re

Boost_Gain_0dB

Boost_Gain_36dB

36dB

CODEC_AdcZeroDetTimeout: Configure ADC zero point detection timeout time. Table 3. 11 lists available values.

CODEC_AdcZeroDetTimeout

Description

ek

alt

Table 3. 11 Values of CODEC_AdcZeroDetTimeout

1024*16 sample times

ADC_Zero_DetTimeout_1024_32_Sample

1024*32 sample times

ADC_Zero_DetTimeout_1024_64_Sample

1024*64 sample times

ADC_Zero_DetTimeout_64_Sample

64 sample times

Co

ADC_Zero_DetTimeout_1024_16_Sample

CODEC_MICBstGain: Configure the MICBST gain.Table 3. 12 lists available values.

CODEC_MICBstGain

nfi

Table 3. 12 Values of CODEC_MICBstGain

Description

MICBST_Gain_20dB

20dB

MICBST_Gain_30dB

30dB

MICBST_Gain_40dB

40dB

CODEC_DmicClock: Set the DMIC clock.Table 3. 13 lists available values.
Table 3. 13 Values of CODEC_DmicClock

CODEC_DmicClock

Description

DMIC_Clock_4MHz

DMIC clock is 4MHz

DMIC_Clock_2MHz

DMIC clock is 2MHz

DMIC_Clock_1MHz

DMIC clock is 1MHz

DMIC_Clock_500KHz

DMIC clock is 0.5MHz

al
nti

0dB

de

MICBST_Gain_0dB

CODEC_DmicDataLatch: Set the DMIC data latch mode.Table 3. 14 lists available values.
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
34

RTL8762C Peripheral Manual

Table 3. 14 Values of CODEC_DmicDataLatch

CODEC_DmicDataLatch

Description

DMIC_Rising_Latch

Rising edge latch

DMIC_Falling_Latch

Falling edge latch

CODEC_DaMute: Enable or disable DAC output.Table 3. 15 lists available values.
Table 3. 15 Values of CODEC_DaMute

CODEC_DaMute

Description

Enable DAC output

DAC_Mute

Disable DAC output

Re

DAC_UuMute

CODEC_DaGain: Set DAC output volume. The available value ranges between 0x00 and 0xff, among which, 0x00
is -65.625dB, 0xaf is 0dB. Each step is 0.375dB.

alt

CODEC_DacZeroDetTimeout: Set the DAC zero point detection timeout time.Table 3. 16 Table lists values
available to this parameter.

ek

Table 3. 16 Values of CODEC_DacZeroDetTimeout

CODEC_DacZeroDetTimeout

Description

1024*16 sample times

DAC_Zero_DetTimeout_1024_32_Sample

1024*32 sample times

DAC_Zero_DetTimeout_1024_64_Sample

1024*64 sample times

DAC_Zero_DetTimeout_256_Sample

256 sample times

Co

DAC_Zero_DetTimeout_1024_16_Sample

= CODEC_DMIC;
= DMIC_Clock_2MHz;
= DMIC_Rising_Latch;
= SAMPLE_RATE_16KHz;
= CODEC_I2S_DataFormat_I2S;
= CODEC_I2S_DataWidth_16Bits;

CODEC_Init(CODEC, &CODEC_InitStruct);

al
nti

/* Initialize codec */
CODEC_InitTypeDef CODEC_InitStruct;
CODEC_StructInit(&CODEC_InitStruct);
CODEC_InitStruct.CODEC_MicType
CODEC_InitStruct.CODEC_DmicClock
CODEC_InitStruct.CODEC_DmicDataLatch
CODEC_InitStruct.CODEC_SampleRate
CODEC_InitStruct.CODEC_I2SFormat
CODEC_InitStruct.CODEC_I2SDataWidth

de

nfi

Examples:

3. 2. 3 Function CODEC_StructInit
Table 3. 17 Function CODEC_StructInit
Function Name

CODEC_StructInit

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
35

RTL8762C Peripheral Manual

Function Prototype

void CODEC_StructInit(CODEC_InitTypeDef* CODEC_InitStruct)

Function Description

Set each parameter in CODEC_InitStruct to the default value

Input Parameter

CODEC_InitStruct: A pointer points to structure CODEC_InitTypeDef, which contains
configuration information about peripheral CODEC.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
CODEC_InitTypeDef CODEC_InitStruct;
CODEC_StructInit(&CODEC_InitStruct);

3. 2. 4 Function CODEC_EQInit

ek

alt

Re

/* Initialize codec */

Table 3. 18 Function CODEC_EQInit
Function Name

CODEC_EQInit

Function Prototype

void CODEC_EQInit(CODEC_EQTypeDef* CODEC_EQx, CODEC_EQInitTypeDef*

Co

CODEC_EQInitStruct)

Initialize CODEC EQ register based on parameters specified in CODEC_EQInitStruct

Input Parameter 1

CODEC_EQx: Base Address of CODEC EQ pointing to the Codec EQ module selected

Input Parameter 2

CODEC_EQInitStruct: A pointer to CODEC_EQInitTypeDef, and related configuration
information is contained in CODEC_EQInitStruct

Return Value

None

Prerequisite

None

Functions Called

None

typedef struct
{

al
nti

None

de

Output Parameter

nfi

Function Description

uint32_t CODEC_EQChCmd;

/*!< Specifies the EQ channel status */

uint32_t CODEC_EQCoefH0;

/*!< Specifies the EQ coef.h0. This value can be 0 to 0x7FFFF,

uint32_t CODEC_EQCoefB1;

/*!< Specifies the EQ coef.b1. This value can be 0 to 0x7FFFF,

uint32_t CODEC_EQCoefB2;

/*!< Specifies the EQ coef.b2. This value can be 0 to 0x7FFFF,

uint32_t CODEC_EQCoefA1;

/*!< Specifies the EQ coef.a1. This value can be 0 to 0x7FFFF,

whose physical meaning represents a range of-8 to 7.99 */
whose physical meaning represents a range of-8 to 7.99 */
whose physical meaning represents a range of-8 to 7.99 */

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
36

RTL8762C Peripheral Manual

whose physical meaning represents a range of-8 to 7.99 */
uint32_t CODEC_EQCoefA2;

/*!< Specifies the EQ coef.a2. This value can be 0 to 0x7FFFF,
whose physical meaning represents a range of-8 to 7.99 */

}CODEC_EQInitTypeDef;

CODEC_EQChCmd: Enable or disable EQ channel. Table 3. 19 Table lists values available to this parameter.
Table 3. 19 Values of CODEC_EQChCmd

CODEC_EQChCmd

Description

EQ_CH_Cmd_ENABLE

Enable the specified EQ channel function

EQ_CH_Cmd_DISABLE

Disable the specified EQ channel function

Re

CODEC_EQCoefH0: Set EQ H0. The available value ranges from 0x00 to 0x7ffff, among which, 0x00 is -8, 0x2f is 0dB,

and 0x7ffff is 7.99.

CODEC_EQCoefB1: Set EQ B1. The available value ranges from 0x00 to 0x7ffff, among which, 0x00 is -8, 0x2f is 0dB,

alt

and 0x7ffff is 7.99.

CODEC_EQCoefB2: Set EQ B2. The available value ranges from 0x00 to 0x7ffff, among which, 0x00 is -8, 0x2f is 0dB,

ek

and 0x7ffff is 7.99.

CODEC_EQCoefA1: Set EQ A1. The available value ranges from 0x00 to 0x7ffff, among which, 0x00 is -8, 0x2f is 0dB,

and 0x7ffff is 7.99.

Co

CODEC_EQCoefA2: Set EQ A2. The available value ranges from 0x00 to 0x7ffff, among which, 0x00 is -8, 0x2f is 0dB,

and 0x7ffff is 7.99.
Examples:
CODEC_EQInitTypeDef

CODEC_EQInitStruct;

CODEC_StructInit(&CODEC_EQInitStruct);
CODEC_EQInitStruct.CODEC_EQCoefH0 = 0xFF;
= 0xFF;

CODEC_EQInitStruct.CODEC_EQCoefB2

= 0xFF;

CODEC_EQInitStruct.CODEC_EQCoefA1 = 0xFF;
CODEC_EQInitStruct.CODEC_EQCoefA2 = 0xFF;
CODEC_EQInit(CODEC_EQ1, CODEC_EQInitStruct);

3. 2. 5 Function CODEC_EQStructInit

al
nti

CODEC_EQInitStruct.CODEC_EQCoefB1

de

CODEC_EQInitStruct. CODEC_EQChCmd = EQ_CH_Cmd_ENABLE;

nfi

/* Initialize codec EQ1 */

Table 3. 20 Function CODEC_EQStructInit
Function Name

CODEC_EQStructInit

Function Prototype

void CODEC_EQStructInit(CODEC_EQInitTypeDef* CODEC_EQInitStruct)

Function Description

Set each parameter in CODEC_EQInitStruct to the default value
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
37

RTL8762C Peripheral Manual

Input Parameter

CODEC_EQInitStruct: A pointer points to structure CODEC_EQInitTypeDef, which contains
configuration information about peripheral CODEC EQ.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Initialize EQ */
CODEC_EQInitTypeDef CODEC_EQInitStruct;

Re

CODEC_EQStructInit(&CODEC_EQInitStruct);

Table 3. 21 Function CODEC_Reset

alt

3. 2. 6 Function CODEC_Reset
CODEC_Reset

Function Prototype

void CODEC_Reset(CODEC_TypeDef* CODECx)

Function Description

Reset CODEC peripheral

Input Parameter 1

CODECx: Base Address of CODEC pointing to the Codec module selected

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

Function Name

Co

nfi

/* Reset codec */
CODEC_Reset(CODEC);

3. 2. 7 Function CODEC_SetMicMute
Table 3. 22 Function CODEC_SetMicMute

al
nti

de

Examples:

Function Name

CODEC_SetAmicMute

Function Prototype

void CODEC_SetAmicMute(CODEC_TypeDef* CODECx, FunctionalState newState)

Function Description

Mute analog microphone.

Input Parameter 1

CODECx: Base Address of CODEC pointing to the Codec module selected

Input Parameter 2

newState: It can be set to either ENABLE or DISABLE.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
38

RTL8762C Peripheral Manual

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Set Mic mute */
CODEC_SetMicMute (CODEC, ENABLE);

3. 2. 8 Function CODEC_SetADCDigitalVolume

Re

Table 3. 23 Function CODEC_SetADCDigitalVolume

CODEC_SetADCDigitalVolume

Function Prototype

void CODEC_SetADCDigitalVolume(CODEC_TypeDef* CODECx, uint16_t volume)

Function Description

Set ADC digital volume

Input Parameter 1

CODECx: Base Address of CODEC pointing to the Codec module selected

Input Parameter 2

volume: Volume of microphone. The available value ranges from 0x00 to 0x7f, among

ek

alt

Function Name

which, 0x00 is -17. 625dB, 0x2f is 0dB, and 0x7f is 30dB

Return Value

None

Prerequisite

None

Functions Called

None

nfi

None

Co

Output Parameter

Examples:
/* Set Mic volume to 0 dB*/

3. 2. 9 Function CODEC_SetMICBIAS
Table 3. 24 Function CODEC_SetMICBIAS
Function Name

CODEC_SetMICBIAS

Function Prototype

void CODEC_SetMICBIAS(CODEC_TypeDef* CODECx,

Function Description

Set voltage range of MICBIAS

Input Parameter 1

CODECx: Base Address of CODEC pointing to the Codec module selected

Input Parameter 2

data:MICBIAS voltage value,The available values are listed below:
MICBIAS_VOLTAGE_1_507:

Vref voltage is 1.507V.

MICBIAS_VOLTAGE_1_62:

Vref voltage is 1.62V.

MICBIAS_VOLTAGE_1_705:

Vref voltage is 1.705V.

uint16_t data)

al
nti

de

CODEC_SetADCDigitalVolume (CODEC, 0x2f);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
39

RTL8762C Peripheral Manual

MICBIAS_VOLTAGE_1_8:

Vref voltage is 1.8V.

MICBIAS_VOLTAGE_1_906:

Vref voltage is 1.906V.

MICBIAS_VOLTAGE_2_025:

Vref voltage is 2.025V.

MICBIAS_VOLTAGE_2_16:

Vref voltage is 2.16V.

MICBIAS_VOLTAGE_2_314:

Vref voltage is 2.314V.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:

Re

/* Set MICBIAS */

CODEC_SetMICBIAS (CODEC, MICBIAS_VOLTAGE_1_8);

alt

3. 2. 10 Function CODEC_MICBIASCmd

ek

Table 3. 25 Function CODEC_MICBIASCmd
CODEC_MICBIASCmd

Function Prototype

void CODEC_MICBIASCmd(CODEC_TypeDef* CODECx, FunctionalState NewState)

Function Description

Enable or disable MICBIAS

Input Parameter 1

CODECx: Base Address of CODEC pointing to the Codec module selected

Input Parameter 2

newState: new state of MICBIAS

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Enable MICBIAS */
CODEC_MICBIASCmd (CODEC, ENABLE);

4 Direct Memory Access Controller (GDMA)

al
nti

de

Output Parameter

nfi

Optional parameters: ENABLE, DISABLE

Co

Function Name

4. 1 GDMA Register Architecture
typedef struct
{
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
40

RTL8762C Peripheral Manual

__I uint32_t
uint32_t

__I uint32_t
uint32_t

RAW_DST_TRAN;

RSVD3;

__I uint32_t
uint32_t

RAW_SRC_TRAN;

RSVD2;

__I uint32_t
uint32_t

RAW_BLOCK;

RSVD1;

__I uint32_t
uint32_t

RAW_TFR;

RSVD0;

RAW_ERR;

RSVD4;

uint32_t

RSVD5;

__I uint32_t STATUS_BLOCK;
uint32_t

RSVD6;

uint32_t

RSVD7;

__I uint32_t STATUS_DST_TRAN;

ek

uint32_t

RSVD8;

__I uint32_t STATUS_ERR;
uint32_t

RSVD9;

uint32_t

nfi
de
al
nti

CLEAR_DST_TRAN;

RSVD18;

__O uint32_t
uint32_t

CLEAR_SRC_TRAN;

RSVD17;

__O uint32_t
uint32_t

CLEAR_BLOCK;

RSVD16;

__O uint32_t
uint32_t

CLEAR_TFR;

RSVD15;

__O uint32_t
uint32_t

MASK_ERR;

RSVD14;

__O uint32_t
uint32_t

MASK_DST_TRAN;

RSVD13;

__IO uint32_t
uint32_t

MASK_SRC_TRAN;

RSVD12;

__IO uint32_t
uint32_t

MASK_BLOCK;

RSVD11;

__IO uint32_t
uint32_t

MASK_TFR;

RSVD10;

__IO uint32_t
uint32_t

Co

__IO uint32_t

alt

__I uint32_t STATUS_SRC_TRAN;

Re

__I uint32_t STATUS_TFR;

CLEAR_ERR;

RSVD19;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
41

RTL8762C Peripheral Manual

__O uint32_t
uint32_t

StatusInt;

RSVD191;

__IO uint32_t
uint32_t

__IO uint32_t
uint32_t

SglReqSrcReg;

RSVD22;

__IO uint32_t
uint32_t

ReqDstReg;

RSVD21;

__IO uint32_t
uint32_t

ReqSrcReg;

RSVD20;

SglReqDstReg;

RSVD23;

uint32_t

Re

__IO uint32_t LstSrcReg;
RSVD24;

__IO uint32_t LstDstReg;
uint32_t

RSVD25;

alt

__IO uint32_t DmaCfgReg;
uint32_t

RSVD26;

ek

__IO uint32_t ChEnReg;
uint32_t

RSVD27;

__I uint32_t DmaIdReg;
RSVD28;

Co

uint32_t

__IO uint32_t DmaTestReg;
uint32_t

RSVD29;

} GDMA_TypeDef;

Table 4. 1 GDMA Registers
Register

Description

de

nfi

All GDMA registers are enumerated in Table 4. 1.

Transfer completion interrupt status register before mask

RSVD0

Reserved

RAW_BLOCK

Block completion transfer interrupt status register before mask

RSVD1

Reserved

RAW_SRC_TRAN

Source end transfer completion interrupt status register before mask

RSVD2

Reserved

RAW_DST_TRAN

Destination end transfer completion interrupt status register before mask

RSVD3

Reserved

RAW_ERR

Transfer error interrupt status register before mask

RSVD4

Reserved

al
nti

RAW_TFR

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
42

RTL8762C Peripheral Manual

Transfer completion interrupt status register

RSVD5

Reserved

STATUS_BLOCK

Block transfer completion interrupt status register

RSVD6

Reserved

STATUS_SRC_TRAN

Source end transfer completion interrupt status register

RSVD7

Reserved

STATUS_DST_TRAN

Destination end transfer completion interrupt status register

RSVD8

Reserved

STATUS_ERR

Transfer error interrupt status register

RSVD9

Reserved

MASK_TFR

Transfer completion interrupt status mask register

RSVD10

Reserved

MASK_BLOCK

Block transfer completion interrupt status mask register

RSVD11

Reserved

MASK_SRC_TRAN

Source end transfer completion interrupt status mask register

RSVD12

Reserved

MASK_DST_TRAN

Destination end transfer completion interrupt status mask register

RSVD13

Reserved

MASK_ERR

Transfer error interrupt status mask register

RSVD14

Reserved

CLEAR_TFR

Transfer completion interrupt status clear register

RSVD15

Reserved

CLEAR_BLOCK

Block transfer completion interrupt status clear register

RSVD16

Reserved

CLEAR_SRC_TRAN

Source end transfer completion interrupt status clear register

RSVD17

Reserved

CLEAR_DST_TRAN

Destination end transfer completion interrupt status clear register

RSVD18

Reserved

CLEAR_ERR

Transfer error interrupt status clear register

RSVD19

Reserved

StatusInt

All interrupt type status register

RSVD191

Reserved

ReqSrcReg

Source end transmission request register

ek

alt

Re

STATUS_TFR

Co
al
nti

de

nfi

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
43

RTL8762C Peripheral Manual

Reserved

ReqDstReg

Destination end transmission request register

RSVD21

Reserved

SglReqSrcReg

Single source end transmission request register

RSVD22

Reserved

SglReqDstReg

Single destination end transmission request register

RSVD23

Reserved

LstSrcReg

Last source end transmission request register

RSVD24

Reserved

LstDstReg

Last destination end transmission request register

RSVD25

Reserved

DmaCfgReg

GDMA configuration register

RSVD26

Reserved

ChEnReg

Channel enable register

RSVD27

Reserved

DmaIdReg

GDMA ID register

RSVD28

Reserved

DmaTestReg

DMA test register

RSVD29

Reserved

ek

alt

Re

RSVD20

Co

typedef struct

nfi

{
__IO uint32_t SAR;
uint32_t RSVD0;

de

__IO uint32_t DAR;
uint32_t RSVD1;
__IO uint32_t LLP;

al
nti

uint32_t RSVD2;
__IO uint32_t CTL_LOW;
__IO uint32_t CTL_HIGH;
__IO uint32_t SSTAT;
uint32_t RSVD4;
__IO uint32_t DSTAT;
uint32_t RSVD5;
__IO uint32_t SSTATAR;
uint32_t RSVD6;
__IO uint32_t DSTATAR;
uint32_t RSVD7;
__IO uint32_t CFG_LOW;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

44

RTL8762C Peripheral Manual

__IO uint32_t CFG_HIGH;
__IO uint32_t SGR;
uint32_t RSVD9;
__IO uint32_t DSR;
uint32_t RSVD10;
} GDMA_ChannelTypeDef;

All GDMA_Channel registers are enumerated in Table 4. 2.
Table 4. 2 GDMA_Channel Register
Register

Description
GDMA source address register

RSVD0

Reserved

DAR

GDMA destination address register

RSVD1

Reserved

LLP

GDMA linked list pointer register

RSVD2

Reserved

CTL_LOW

GDMA control register (L)

CTL_HIGH

GDMA control register (H)

SSTAT

GDMA source status register

RSVD4

Reserved

DSTAT

GDMA destination status register

RSVD5

Reserved

SSTATAR

GDMA source status address register

RSVD6

Reserved

DSTATAR

GDMA destination status address register

RSVD7

Reserved

CFG_LOW

GDMA configuration register (L)

CFG_ HIGH

GDMA configuration register (H)

SGR

GDMA channel Source Gather Register

RSVD9

Reserved

DSR

GDMA channel Destination Scatter Register

RSVD10

Reserved

ek

alt

Re

SAR

Co
al
nti

de

nfi

4. 2 GDMA Library Functions
Table 4. 3 All GDMA library functions
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
45

RTL8762C Peripheral Manual

Function Name

Description

GDMA_DeInit

Disable GDMA clock source.

GDMA_Init

Initialize GDMA register based on parameters specified in GDMA_InitStruct.

GDMA_StructInit

Set each parameter in GDMA_InitStruct to the default value.

GDMA_Cmd

Enable or disable the specified GDMA channel.

GDMA_INTConfig

Enable or disable the specified GDMA channel interrupt.

GDMA_ClearINTPendingBit

Clear specified suspended interrupts.

GDMA_GetChannelStatus

Check whether the specified GDMA channel is in use.

GDMA_GetTransferINTStatus

Check total transfer completion interrupt status of the specified GDMA

Re

channel.

Clear all GDMA interrupt statuses of specified channels.

GDMA_SetSourceAddress

Set source address of the specified GDMA channel.

GDMA_SetDestinationAddress

Set destination address of the specified GDMA channel.

GDMA_SetBufferSize

Set length of data to be transferred through specified GDMA channel.

GDMA_SuspendCmd

Suspend GDMA channel transmission

GDMA_GetFIFOStatus

Get GDMA channel FIFO status

GDMA_GetTransferLen

Get length of transmitted data

GDMA_SetLLPAddress

Setting the GDMA channel linked list pointer address

GDMA_GetSuspendChannelStatus

Get status of specified suppended channel

GDMA_GetSuspendCmdStatus

Get command status of specified suppended channel

ek

alt

GDMA_ClearAllTypeINT

Co

Table 4. 4 Function GDMA_DeInit
Function Name

GDMA_DeInit

Function Prototype

void GDMA_DeInit(void)

Function Description

Disable GDMA clock source

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd Function

al
nti

de

nfi

4. 2. 1 Function GDMA_DeInit

Examples:
/* Close GDMA peripheral clock */
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
46

RTL8762C Peripheral Manual

GDMA_DeInit();

4. 2. 2 Function GDMA_Init
Table 4. 5 Function GDMA_Init
Function Name

GDMA_Init

Function Prototype

void GDMA_Init(GDMA_ChannelTypeDef* GDMA_Channelx, GDMA_InitTypeDef*
GDMA_InitStruct)
Initialize GDMA register based on parameters specified in GDMA_InitStruct

Input Parameter 1

GDMA_Channelx: select corresponding GDMA channel, ranging from 0 to 5.

Input Parameter 2

GDMA_InitStruct: A pointer to GDMA_InitTypeDef, and related configuration information

Re

Function Description

is contained in GDMA_InitStruct

Return Value

None

Prerequisite

None

Functions Called

None

ek

None

alt

Output Parameter

Co

typedef struct
{
uint8_t GDMA_ChannelNum;
uint8_t GDMA_DIR;

nfi

uint32_t GDMA_BufferSize;
uint8_t GDMA_SourceInc;
uint8_t GDMA_DestinationInc;

de

uint32_t GDMA_SourceDataSize;
uint32_t GDMA_DestinationDataSize;
uint32_t GDMA_SourceMsize;

al
nti

uint32_t GDMA_DestinationMsize;
uint32_t GDMA_SourceAddr;
uint32_t GDMA_DestinationAddr;
uint32_t GDMA_ChannelPriority;
uint32_t GDMA_Multi_Block_Struct;
uint8_t GDMA_Multi_Block_En;
uint8_t GDMA_Scatter_En;
uint8_t GDMA_Gather_En;
uint32_t GDMA_GatherCount;
uint32_t GDMA_GatherInterval;
uint32_t GDMA_ScatterCount;
uint32_t GDMA_ScatterInterval;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

47

RTL8762C Peripheral Manual

uint32_t GDMA_Multi_Block_Mode;
uint8_t GDMA_SourceHandshake;
uint8_t GDMA_DestHandshake;
}GDMA_InitTypeDef;

ChannelNum: Index of the specified GDMA peripheral carrying channel, ranging from 0 to 5.
GDMA_DIR: GDMA_DIR specifies whether the peripheral is used as the destination or source of data. Table 4. 6
lists the available values of this parameter.
Table 4. 6 Values of GDMA_DIR
GDMA_DIR

Description

Re

GDMA_DIR_MemoryToMemory

Memory-to-memory transfer

GDMA_DIR_MemoryToPeripheral

Memory-to peripheral transfer

GDMA_DIR_PeripheralToMemory

Peripheral-to-memory transfer

alt

GDMA_DIR_PeripheralToPeripheral

Peripheral-to-peripheral transfer

ek

GDMA_BufferSize: Specify size of the data to be transferred in one GDMA transfer. The transmission is divided
into several GDMA burst transmission.

GDMA_SourceInc: Specify whether the source addresses to be oeprated by GDMA is ascending or descending.

Table 4. 7 Values of GDMA_SourceInc
GDMA_SourceInc

Co

Table 4. 7 lists the available values for this parameter.

Description

DMA_SourceInc_Dec

Source address register is descending

DMA_SourceInc_Fix

Source address register is fixed

de

Source address register is ascending

nfi

DMA_SourceInc_Inc

GDMA_DestinationInc: Specify whether the destination addresses to be operated by GDMA is ascending or

Table 4. 8 Values of GDMA_DestinationInc
GDMA_DestinationInc

Description

DMA_DestinationInc_Inc

Destination address register is ascending

DMA_DestinationInc_Dec

Destination address register is descending

DMA_DestinationInc_Fix

Destination address register is fixed

al
nti

descending. Table 4. 8 lists the available values for this parameter.

GDMA_SourceDataSize: Specify source data width. Table 4. 9 lists the available values for this parameter..
Table 4. 9 Values of GDMA_SourceDataSize
GDMA_SourceDataSize

Description

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
48

RTL8762C Peripheral Manual

GDMA_DataSize_Byte

Data width of source address is 8 bits

GDMA_DataSize_HalfWord

Data width of source address is 16 bits

GDMA_DataSize_Word

Data width of source address is 32 bits

GDMA_DestinationDataSize: Specify source data width. Table 4. 10 lists the available values for this parameter.
Table 4. 10 Values of GDMA_DestinationDataSize
GDMA_DestinationDataSize

Description
Data width of destination address is 8 bits

GDMA_DataSize_HalfWord

Data width of destination address is 16 bits

GDMA_DataSize_Word

Data width of destination address is 32 bits

Re

GDMA_DataSize_Byte

GDMA_SourceMsize: Specify length of the data at source end in each burst transmission. The minimum data
unit is set in parameter GDMA_SourceDataSize. Table 4. 11 lists the available values for this parameter.

GDMA_ SourceMsize

alt

Table 4. 11 Values of GDMA_SourceMsize

Description

ek

Number of the data transferred in a single burst transfer is 1.

GDMA_Msize_4

Number of the data transferred in a single burst transfer is 4.

GDMA_Msize_8

Number of the data transferred in a single burst transfer is 8.

GDMA_Msize_16

Number of the data transferred in a single burst transfer is 16.

GDMA_Msize_32

Number of the data transferred in a single burst transfer is 32.

GDMA_Msize_64

Number of the data transferred in a single burst transfer is 64.

GDMA_Msize_128

Number of the data transferred in a single burst transfer is 128.

GDMA_Msize_256

Number of the data transferred in a single burst transfer is 256.

Co

GDMA_Msize_1

de

nfi

GDMA_DestinationMsize: Specify length of the data at destination in each burst transfer. The minimum data

for this parameter.
Table 4. 12 Values of GDMA_DestinationMsize
GDMA_DestinationMsize

Description

al
nti

unit in it is the data width as set in parameter GDMA_DestinationDataSize.Table 4. 12 lists the available values

GDMA_Msize_1

Number of the data transferred in a single burst transfer is 1.

GDMA_Msize_4

Number of the data transferred in a single burst transfer is 4.

GDMA_Msize_8

Number of the data transferred in a single burst transfer is 8.

GDMA_Msize_16

Number of the data transferred in a single burst transfer is 16.

GDMA_Msize_32

Number of the data transferred in a single burst transfer is 32.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
49

RTL8762C Peripheral Manual

GDMA_Msize_64

Number of the data transferred in a single burst transfer is 64.

GDMA_Msize_128

Number of the data transferred in a single burst transfer is 128.

GDMA_Msize_256

Number of the data transferred in a single burst transfer is 256.

Note: Configuration of the parameters GDMA_SourceDataSize , GDMA_SourceMsize,
GDMA_DestinationDataSize, GDMA_DestinationMsize shall meet the following formula:
GDMA_SourceDataSize* GDMA_SourceMsize = GDMA_DestinationDataSize* GDMA_DestinationMsize.
GDMA_SourceAddr: Set source end address for GDMA transmission.
GDMA_DestinationAddr: Set destination end address for GDMA transmission.

Re

GDMA_ChannelPriority: Specify software priority for GDMA channel transmission. This value ranges between
0~5, with 0 indicating the highest priority. Priority of channel 0 is fixed to highest priority 0 and channel 5 is fixed

alt

at lowest priority 5.

GDMA_Multi_Block_Struct: Set the address of the LLI data type structure in Multi-block transmission.
GDMA_Multi_Block_En: Enable or disable multi-block transmission.

GDMA_Gather_En: Enable or disable gather transmission.

ek

GDMA_Scatter_En: Enable or disable scatter transmission.

GDMA_GatherCount: Set the data length for GDMA to fetch data continuously in gather transmission.

Co

GDMA_GatherInterval: Set the address interval length of GDMA in gather transmission.

GDMA_ScatterCount: Set the data length for GDMA to write data continuously in scatter transmission.
GDMA_ScatterInterval: Set the address interval length of GDMA in scatter transmission.

nfi

GDMA_Multi_Block_Mode: Configure the GDMA multi-block transmission type. After each block transmission, it
can be chosen to automatically load the initial value, load the corresponding value in the LLI structure or load the
current value of the corresponding register. Table 4. 13 lists the available values for this parameter.

GDMA_Multi_Block_Mode

Description

The initial value of the source address and current value in

al
nti

AUTO_RELOAD_WITH_CONTIGUOUS_SAR

de

Table 4. 13 value of GDMA_Multi_Block_Mode

destination address register are automatically loaded after each
block transmission.
AUTO_RELOAD_WITH_CONTIGUOUS_DAR

The initial value of the destination address and current value in
source address register are automatically loaded after each block
transmission.

AUTO_RELOAD_TRANSFER

The initial value of the source address and destination address are
automatically loaded after each block transmission.

LLI_WITH_CONTIGUOUS_SAR

Current value of source address register and the destination

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
50

RTL8762C Peripheral Manual

address value of the LLI structure are automatically loaded after
each block transmission.
LLI_WITH_AUTO_RELOAD_SAR

The initial value of the source address and the destination address
value of the LLI structure are automatically loaded after each block
transmission.

LLI_WITH_CONTIGUOUS_DAR

Current value of destination address register and the source
address value of the LLI structure are automatically loaded after
each block transmission.

LLI_WITH_AUTO_RELOAD_DAR

The initial value of the destination address and the source address

Re

value of the LLI structure are automatically loaded after each block
transmission.

LLI_TRANSFER

The source address and destination address value of the LLI

alt

structure are automatically loaded after each block transmission.
GDMA_SourceHandshake: Set the GDMA source address end handshake index value. Table 4. 14 lists the

Table 4. 14 value of GDMA_SourceHandshake

GDMA_SourceHandshake

ek

available values for this parameter.

Description

Co

UART0 is used as the source address to receive data.

GDMA_Handshake_UART2_RX

UART2 is used as the source address to receive data.

GDMA_Handshake_SPI0_RX

SPI0 is used as the source address to receive data.

GDMA_Handshake_SPI1_RX

SPI1 is used as the source address to receive data.

GDMA_Handshake_I2C0_RX

I2C0 is used as the source address to receive data.

GDMA_Handshake_I2C1_RX

I2C1 is used as the source address to receive data.

GDMA_Handshake_ADC

ADC is used as the source address to receive data.

GDMA_Handshake_AES_RX

AES is used as the source address to receive data.

GDMA_Handshake_SPORT0_RX

I2S0 is used as the source address to receive data.

GDMA_Handshake_SPORT1_RX

I2S1 is used as the source address to receive data.

GDMA_Handshake_SPIC_RX

SPIC is used as the source address to receive data.

GDMA_Handshake_UART1_RX

UART is used as the source address to receive data.

al
nti

de

nfi

GDMA_Handshake_UART0_RX

GDMA_DestHandshake: Set the GDMA destination address end handshake index value. Table 4. 15 lists the
available values for this parameter.
Table 4. 15 value of GDMA_DestHandshake

GDMA_DestHandshake
GDMA_Handshake_UART0_TX

Description
UART0 is used as the destination address to send data.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
51

RTL8762C Peripheral Manual

GDMA_Handshake_UART2_TX

UART2 is used as the destination address to send data.

GDMA_Handshake_SPI0_TX

SPI0 is used as the destination address to send data.

GDMA_Handshake_SPI1_TX

SPI1 is used as the destination address to send data.

GDMA_Handshake_I2C0_TX

I2C0 is used as the destination address to send data.

GDMA_Handshake_I2C1_TX

I2C1 is used as the destination address to send data.

GDMA_Handshake_AES_TX

AES is used as the destination address to send data.

GDMA_Handshake_UART1_TX

UART1 is used as the destination address to send data.

GDMA_Handshake_SPORT0_TX

I2S0 is used as the destination address to send data.

GDMA_Handshake_SPORT1_TX

I2S1 is used as the destination address to send data.

Re

GDMA_Handshake_SPDIF_TX

SPDIF is used as the destination address to send data.

GDMA_Handshake_LCD

LCD 8080 interface is used as the destination address to send data.
TIM0 is used for GPIO to output data.

alt

GDMA_Handshake_TIM0

TIM1 is used for GPIO to output data.

GDMA_Handshake_TIM2

TIM2 is used for GPIO to output data.

GDMA_Handshake_TIM3

TIM3 is used for GPIO to output data.

GDMA_Handshake_TIM4

TIM4 is used for GPIO to output data.

GDMA_Handshake_TIM5

TIM5 is used for GPIO to output data.

GDMA_Handshake_TIM6

TIM6 is used for GPIO to output data.

GDMA_Handshake_TIM7

TIM7 is used for GPIO to output data.

ek

GDMA_Handshake_TIM1

Co

/* Initialize GDMA */
GDMA_InitTypeDef GDMA_InitStruct;
GDMA_StructInit(&GDMA_InitStruct);

= AudioTrans_GDMA_Channel_NUM;

GDMA_InitStruct.GDMA_DIR

= GDMA_DIR_MemoryToPeripheral;

GDMA_InitStruct.GDMA_BufferSize

= 0;

GDMA_InitStruct.GDMA_SourceInc

= DMA_SourceInc_Inc;

GDMA_InitStruct.GDMA_DestinationInc

= DMA_DestinationInc_Fix;

GDMA_InitStruct.GDMA_SourceDataSize

= GDMA_DataSize_Word;

GDMA_InitStruct.GDMA_DestinationDataSize

= GDMA_DataSize_Word;

GDMA_InitStruct.GDMA_SourceMsize

= GDMA_Msize_16;

GDMA_InitStruct.GDMA_DestinationMsize

= GDMA_Msize_16;

GDMA_InitStruct.GDMA_SourceAddr

= 0;

GDMA_InitStruct.GDMA_DestinationAddr

= (uint32_t)(&(I2S_USR->TX_DR));

GDMA_InitStruct.GDMA_DestHandshake

= GDMA_Handshake_I2S_USR_TX;

al
nti

GDMA_InitStruct.GDMA_ChannelNum

de

nfi

Examples:

批注 [张一凡1]: 需和中文手册一并确认

GDMA_Init(AudioTrans_GDMA_Channel, &GDMA_InitStruct);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
52

RTL8762C Peripheral Manual

4. 2. 3 Function GDMA_StructInit
Table 4. 16 Function GDMA_StructInit
Function Name

GDMA_StructInit

Function Prototype

void GDMA_StructInit(GDMA_InitTypeDef* GDMA_InitStruct)

Function Description

Set each parameter in GDMA_InitStruct to the default value

Input Parameter

GDMA_InitStruct: A pointer points to structure GDMA_InitTypeDef, which contains
configuration information about peripheral GDMA.

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Configure the GDMA Init Structure parameter */
GDMA _StructInit(&GDMA _InitStruct);

ek

GDMA_InitTypeDef GDMA _InitStruct;

alt

None

Re

Output Parameter

Co

4. 2. 4 Function GDMA_Cmd
Table 4. 17 Function GDMA_Cmd
GDMA_Cmd

Function Prototype

void GDMA_Cmd(uint8_t GDMA_ChannelNum, FunctionalState NewState)

Function Description

Enable or disable the specified GDMA channel.

Input Parameter 1

GDMA_ ChannelNum: index of GDMA channel, ranging from 0 to 5.

Input Parameter 2

newState: Enable or disable GDMA channel.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

nfi

Function Name

Examples:
/* Enable specify GDMA channel */
GDMA_Cmd(1, ENABLE);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
53

RTL8762C Peripheral Manual

4. 2. 5 Function GDMA_INTConfig
Table 4. 18 Function GDMA_INTConfig
Function Name

GDMA_INTConfig

Function Prototype

void GDMA_INTConfig(uint8_t GDMA_ChannelNum, uint32_t GDMA_IT, FunctionalState
NewState)
Enable or disable the specified GDMA channel interrupt

Input Parameter 1

GDMA_ ChannelNum: index of GDMA channel, ranging from 0 to 5.

Input Parameter 2

GDMA _IT: Specify enabled interrupt type, as shown in Table 4. 19.

Input Parameter 3

newState: Enable or disable the interrupt specified in Parameter 2.

Re

Function Description

Optional parameters: ENABLE, DISABLE

Return Value

None

Prerequisite

None

Functions Called

None

ek

None

alt

Output Parameter

GDMA _IT: Permitted GDMA interrupt types are as shown in Table 4. 19. Mutiple interrupts can be selected as

Table 4. 19 Values of GDMA_IT

Co

values of the parameter at one time by using operator "|".

Description

GDMA_INT_Transfer

GDMA total transmission completion interrupt

GDMA_INT_Block

GDMA block transmission completion interrupt (same as GDMA total transmission
completion interrupt)

GDMA_INT_SrcTransfer

Source address end transmission completion interrupt

GDMA_INT_DstTransfer

Destination address end transmission completion interrupt

GDMA_INT_Error

transmission error interrupt

Examples:
/* Enable specify GDMA interrupt */
GDMA_ INTConfig (1, GDMA_INT_Transfer, ENABLE);

al
nti

de

nfi

GDMA_IT

4. 2. 6 Function GDMA_ClearINTPendingBit
Table 4. 20 Function GDMA_ClearINTPendingBit
Function Name

GDMA_ClearINTPendingBit

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
54

RTL8762C Peripheral Manual

Function Prototype

void GDMA_ClearINTPendingBit(uint8_t GDMA_ChannelNum, uint32_t GDMA_IT)

Function Description

Clear suspended interrupts of the specified type

Input Parameter 1

GDMA_ChannelNum: index of GDMA channel, ranging from 0 to 5

Input Parameter 2

GDMA _IT: Specify enabled interrupt type, as shown in Table 4. 20Table 4. 19.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:

Re

/* Clear specify GDMA interrupt */

GDMA_ClearINTPendingBit (1, GDMA_INT_Transfer);

alt

4. 2. 7 Function GDMA_GetChannelStatus

ek

Table 4. 21 Function GDMA_GetChannelStatus
GDMA_GetChannelStatus

Function Prototype

FlagStatus GDMA_GetChannelStatus(uint8_t GDMA_Channel_Num)

Function Description

Check whether the specified GDMA channel is in use.

Input Parameter 1

GDMA_ ChannelNum: index of GDMA channel, ranging from 0 to 5.

Output Parameter

None

Return Value

Status flag

Prerequisite

None

Functions Called

None

Co

Function Name

/* Check GDMA channel status before use it */
BOOL useGDMAChannel = FALSE;
useGDMAChannel = GDMA_ GetChannelStatus (1);

4. 2. 8 Function GDMA_GetTransferINTStatus
Table 4. 22 Function GDMA_GetTransferINTStatus

al
nti

de

nfi

Examples:

Function Name

GDMA_GetTransferINTStatus

Function Prototype

ITStatus GDMA_GetTransferINTStatus(uint8_t GDMA_Channel_Num)

Function Description

Check total transfer completion interrupt status of the specified GDMA channel.

Input Parameter 1

GDMA_ ChannelNum: index of GDMA channel, ranging from 0 to 5.
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
55

RTL8762C Peripheral Manual

Output Parameter

None

Return Value

Status flag

Prerequisite

None

Functions Called

None

Examples:
/* Check GDMA transfer finish or not */
BOOL isTransfer= FALSE;
isTransfer = GDMA_GetTransferINTStatus (1);

Re

4. 2. 9 Function GDMA_ClearAllTypeINT
Table 4. 23 Function GDMA_ClearAllTypeINT

GDMA_ClearAllTypeINT

Function Prototype

void GDMA_ClearAllTypeINT(uint8_t GDMA_Channel_Num)

Function Description

Clear all GDMA interrupt statuses of the specified channel.

Input Parameter 1

GDMA_ ChannelNum: index of GDMA channel, ranging from 0 to 5.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Function Name

Co

/* Clear all interrupt */
GDMA_ ClearAllTypeINT(1);

4. 2. 10 Function GDMA_SetSourceAddress

al
nti

Table 4. 24 Function GDMA_SetSourceAddress

de

nfi

Examples:

Function Name

GDMA_SetSourceAddress

Function Prototype

void GDMA_SetSourceAddress(GDMA_ChannelTypeDef* GDMA_Channelx, uint32_t
Address)

Function Description

Set source address of the specified GDMA channel.

Input Parameter 1

GDMA_Channelx: Symbol of GDMA channel, in which x ranges from 0 to 5.

Input Parameter 2

Source address of the specified GDMA channel to be set.

Output Parameter

None

Return Value

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
56

RTL8762C Peripheral Manual

Prerequisite

None

Functions Called

None

Examples:
/* Configure source address */
uint8_t transferBuffer[256];
GDMA_SetSourceAddress(GDMA_Channel1, transferBuffer);

4. 2. 11 Function GDMA_SetDestinationAddress

Re

Table 4. 25 Function GDMA_SetDestinationAddress
Function Name

GDMA_SetDestinationAddress

Function Prototype

void GDMA_SetDestinationAddress(GDMA_ChannelTypeDef* GDMA_Channelx, uint32_t

alt

Address)

Set destination address of the specified GDMA channel.

Input Parameter 1

GDMA_Channelx: Symbol of GDMA channel, in which x ranges from 0 to 5.

Input Parameter 2

Source address of the specified GDMA channel to be set.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

Function Description

Co

/* Configure destination address */
uint8_t transferBuffer[256];

4. 2. 12 Function GDMA_SetBufferSize

al
nti

de

GDMA_ SetDestinationAddress(GDMA_Channel1, transferBuffer);

nfi

Examples:

Table 4. 26 Function GDMA_SetBufferSize
Function Name

GDMA_SetBufferSize

Function Prototype

void GDMA_SetBufferSize(GDMA_ChannelTypeDef* GDMA_Channelx, uint32_t
buffer_size)

Function Description

Set GDMA buffer size.

Input Parameter 1

GDMA_Channelx: Symbol of GDMA channel, in which x ranges from 0 to 5.

Input Parameter 2

Source address of the specified GDMA channel to be set.

Output Parameter

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
57

RTL8762C Peripheral Manual

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Configure totoal number of transfer */
GDMA_ SetDestinationAddress (GDMA_Channel1, 256);

4. 2. 13 Function GDMA_SuspendCmd

Re

Table 4. 27 Function GDMA_SuspendCmd
Function Name

GDMA_SuspendCmd

Function Prototype

void GDMA_SuspendCmd(GDMA_ChannelTypeDef *GDMA_Channelx,

alt

FunctionalState NewState)

Suspend GDMA transmission.

Input Parameter 1

GDMA_Channelx: Symbol of GDMA channel, in which x ranges from 0 to 5.

Input Parameter 2

newState: Enable or disable suspend GDMA transmission.
Available value: ENABLE, DISABLE

Return Value

None

Prerequisite

None

Functions Called

None

Examples:

Table 4. 28 Function GDMA_GetFIFOStatus

al
nti

4. 2. 14 Function GDMA_GetFIFOStatus

de

/* Abort GDMA channel transfer*/
GDMA_SuspendCmd(GDMA_Channel0, ENABLE);

nfi

None

Co

Output Parameter

ek

Function Description

Function Name

GDMA_GetFIFOStatus

Function Prototype

FlagStatus GDMA_GetFIFOStatus(GDMA_ChannelTypeDef *GDMA_Channelx)

Function Description

Get GDMA FIFO status.

Input Parameter

GDMA_Channelx: Symbol of GDMA channel, in which x ranges from 0 to 5.

Output Parameter

None

Return Value

Status flag: SET: empty, RESET: not empty.

Prerequisite

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
58

RTL8762C Peripheral Manual

Functions Called

None

Examples:
/* Check GDMA channel FIFO status*/
BOOL GDMAChannelFIFOStatus= FALSE;
GDMAChannelFIFOStatus = GDMA_GetFIFOStatus (GDMA_Channel0);

4. 2. 15 Function GDMA_GetTransferLen
Table 4. 29 Function GDMA_GetTransferLen

GDMA_GetTransferLen

Function Prototype

uint16_t GDMA_GetTransferLen (GDMA_ChannelTypeDef *GDMA_Channelx)

Function Description

Get the transmitted data length of the GDMA channel

Input Parameter

GDMA_Channelx: Symbol of GDMA channel, in which x ranges from 0 to 5.

Output Parameter

None

Return Value

The transmitted data length of the GDMA channel

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Name

Examples:
uint16_t datalenth= 0;
datalenth = GDMA_ GetTransferLen (GDMA_Channel0);

Co

/* Get GDMA channel transfer data lenth*/

de

Table 4. 30 Function GDMA_SetLLPAddress

nfi

4. 2. 16 Function GDMA_SetLLPAddress
GDMA_SetLLPAddress

Function Prototype

void GDMA_SetLLPAddress(GDMA_ChannelTypeDef *GDMA_Channelx, uint32_t
Address)

Function Description

Setting the GDMA channel list pointer address.

Input Parameter 1

GDMA_Channelx: x can be set to 0 to 5 for number of DMA channels.

Input Parameter 2

Address: linked list pointer address

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Function Name

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
59

RTL8762C Peripheral Manual

Examples:
/* Set GDMA channel LLP address*/
GDMA_LLIDef

GDMA_LLIStruct[16] ;

GDMA_ SetLLPAddress (GDMA_Channel0, GDMA_LLIStruct);

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
60

RTL8762C Peripheral Manual

5 General-Purpose Input/Output (GPIO)
5. 1 GPIO Register Structure
typedef struct
{
__IO uint32_t

DATAOUT;
DATADIR;

__IO uint32_t

DATASRC;

uint32_t

RSVD0[9];

__IO uint32_t

INTEN;

__IO uint32_t

INTMASK;

__IO uint32_t

INTTYPE;

__IO uint32_t

INTPOLARITY;

__IO uint32_t

INTSTATUS;
RAWINTSTATUS;

__IO uint32_t

DEBOUNCE;

__O

uint32_t

__I uint32_t

__I

uint32_t

__IO uint32_t

INTCLR;
DATAIN;
RSVD1[3];

Co

uint32_t
__IO uint32_t

ek

__IO uint32_t

alt

Re

__IO uint32_t

LSSYNC;
IDCODE;
INTBOTHEDGE;

All GPIO registers are enumerated in Table 5. 1.
Table 5. 1 GPIO Registers
Register

Description
Data output register

DATADIR

Data direction register

DATASRC

Data source register

RSVD0[9]

Reserved

INTEN

Interrupt control register

INTMASK

Interrupt mask register

INTTYPE

Interrupt type control register

INTPOLARITY

Interrupt polarity control register

INTSTATUS

Interrupt status register

al
nti

DATAOUT

de

nfi

} GPIO_TypeDef;

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
61

RTL8762C Peripheral Manual

RAWINTSTATUS

Raw interrupt status register (not masked by interrupt mask register)

DEBOUNCE

Debounce enable register

INTCLR

Interrupt clear register

DATAIN

External level input register

RSVD1[3]

Reserved

LSSYNC

Level-sensive synchronization enable register

IDCODE

ID register

INTBOTHEDGE

Bilateral edge triggered interrupt register

Re

5. 2 GPIO Library Functions

All GPIO library functions are enumerated in Table 5. 2.

Function Name

alt

Table 5. 2 GPIO Library Functions

Description

ek

Disable GPIO clock source.

GPIO_GetPin

Acquire GPIO pin value.

GPIO_Init

Initialize GPIO register based on parameters specified in GPIO_InitStruct.

GPIO_StructInit

Set each parameter in GPIO_InitStruct to the default value.

GPIO_INTConfig

Enable or disable external GPIO interrupt.

GPIO_ClearINTPendingBit

Clear GPIO interrupt flag.

GPIO_MaskINTConfig

Mask or not mask external GPIO interrupt.

GPIO_ReadInputDataBit

Read input from specified pin.

GPIO_ReadInputData

Read input from all GPIO ports.

GPIO_ReadOutputDataBit

Read output from specified pin.

GPIO_ReadOutputData

Read output from all GPIO ports.

GPIO_SetBits

Set specified pin to high level.

GPIO_ResetBits

Set specified pin to low level.

GPIO_WriteBit

Set or clear voltage level of specified pin.

GPIO_Write

Set or clear voltage level of all GPIO ports.

GPIO_GetINTStatus

Read interrupt flag from specified GPIO pin.

GPIO_GetNum

Get the GPIO sequence number value corresponding to the pin

GPIO_Debounce_Time

Set GPIO debounce time

GPIO_DBClkCmd

Enable or disable GPIO Debounce Clock

Co

GPIO_DeInit

al
nti

de

nfi

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
62

RTL8762C Peripheral Manual

5. 2. 1 Function GPIO_DeInit
Table 5. 3 Function GPIO_DeInit
GPIO_DeInit

Function Prototype

void GPIO_DeInit(void)

Function Description

Disable GPIO clock source

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

Re

Function Name

/* Close GPIO clock */
GPIO_DeInit();

ek

alt

Examples:

5. 2. 2 Function GPIO_GetPin

Co

Table 5. 4 Function GPIO_ GetPin
GPIO_GetPin

Function Prototype

uint32_t GPIO_GetPin(uint8_t Pin_num)

Function Description

Acquire value of the initialized parameter GPIO_Pin

Input Parameter

Pin_Num: External pin value, which can be set to: P0_0 to P3_6, P4_0 to P4_3 or H0 to

H2.

Return Value

Value of the parameter GPIO_Pin

Prerequisite

None

Functions Called

None

al
nti

None

Examples:
/* Get specified GPIO Pin value*/
uint32_t

de

Output Parameter

nfi

Function Name

GPIO_UsePin = GPIO_GetPin(P0_2);

5. 2. 3 Function GPIO_Init
Table 5. 5 Function GPIO_Init
Function Name

GPIO_Init
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
63

RTL8762C Peripheral Manual

Function Prototype

void GPIO_Init(GPIO_InitTypeDef* GPIO_InitStruct)

Function Description

Initialize GPIO register based on parameters specified in GPIO_InitStruct

Input Parameter

GPIO_InitStruct: A pointer points to structure GPIO_InitTypeDef, which contains
configuration information about peripheral GPIO.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

GPIO _InitTypeDef structure
{
uint32_t

GPIO_Pin;

GPIOMode_TypeDef

GPIO_Mode;

GPIO_ITCmd;

GPIOIT_LevelType

GPIO_ITTrigger;

GPIOIT_PolarityType

GPIO_ITPolarity;

GPIOIT_DebounceType

GPIO_ITDebounce;

GPIOControlMode_Typedef

GPIO_ControlMode;

uint32_t

GPIO_DebounceTime;

ek

FunctionalState

alt

Re

typedef struct

Co

}GPIO_InitTypeDef;

GPIO_Pin: This parameter is used to select GPIO pins. Multiple pins can be selected at one time by using
operator "|". This parameter can be acquired through function GPIO_GetPin. For more details refer to

nfi

description of function GPIO_GetPin.

GPIO_Mode: This parameter is used to set operation mode of selected pin. Table 5.6 lists available values.

GPIO_Mode

Description
Input mode

GPIO_Mode_OUT

Output mode

GPIO_Mode_AF

Standby function mode

GPIO_Mode_AN

Analog input/output mode

al
nti

GPIO_Mode_IN

de

Table 5. 6 Values of GPIO_Mode

GPIO_ITCmd: This parameter is used to set operation mode of of selected pin. Table 5.6 lists available values.
Table 5. 7 Values of GPIO_ITCmd
GPIO_ITCmd
DISABLE

Description
Not configure GPIO interrupt mode
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
64

RTL8762C Peripheral Manual

ENABLE

Configure GPIO interrupt mode

GPIO_ITTrigger: This parameter is used to set operation state of selected pin in interrupt mode. Table 5.6 lists
available values.
Table 5. 8 Values of GPIO_ITTrigger
GPIO_ITTrigger

Description

GPIO_INT_Trigger_LEVEL

Level trigger interrupt

GPIO_INT_Trigger_EDGE

Edge trigger interrupt

available values.
Table 5. 9 Values of GPIO_ITPolarity

alt

Re

GPIO_ITPolarity: This parameter is used to set operation state of selected pin in interrupt mode. Table 5.6 lists

GPIO_ITPolarity

Description

Low level trigger or falling edge trigger

GPIO_INT_POLARITY_ACTIVE_HIGH

Edge trigger or rising edge trigger

ek

GPIO_INT_POLARITY_ACTIVE_LOW

GPIO_ITDebounce: This parameter is used to set operation state of selected pin in interrupt mode. Table 5.6
lists available values.

Co

Table 5. 10 Values of GPIO_ITDebounce
GPIO_ITPolarity

Description

Disable interrupt debouncing

GPIO_INT_DEBOUNCE_ENABLE

Enable interrupt debouncing

nfi

GPIO_INT_DEBOUNCE_DISABLE

lists values available to this parameter.
Table 5. 11 lists values available to this parameter.
Table 5. 11 Value of GPIO_ControlMode
GPIO_ControlMode

Description

al
nti

de

GPIO_ControlMode:This parameter is used to set up the GPIO mode of work. Table 5. 11 lists available values.

GPIO_SOFTWARE_MODE

Software mode, general operation.

GPIO_HARDWARE_MODE

Hardware mode for GDMA timing control GPIO pins

GPIO_DebounceTime:This parameter is used to set the GPIO debouncing time in millisecond. The parameter
ranges from 1 to 64.
Examples:
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_StructInit(&GPIO_InitStruct);
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
65

RTL8762C Peripheral Manual

GPIO_InitStruct.GPIO_Pin

= GPIO_GetPin(P0_0);

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStruct.GPIO_ITCmd = ENABLE;
GPIO_InitStruct.GPIO_ITTrigger = GPIO_INT_Trigger_EDGE;
GPIO_InitStruct.GPIO_ITPolarity = GPIO_INT_POLARITY_ACTIVE_LOW;
GPIO_InitStruct.GPIO_ITDebounce = GPIO_INT_DEBOUNCE_ENABLE;
GPIO_InitStruct.GPIO_DebounceTime = 30;
GPIO_Init(&GPIO_InitStruct);

5. 2. 4 Function GPIO_StructInit

Re

Table 5. 12 Function GPIO_StructInit
GPIO_StructInit

Function Prototype

void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)

Function Description

Set each parameter in GPIO_InitStruct to the default value

Input Parameter

GPIO_InitStruct: A pointer points to structure GPIO_InitTypeDef, which contains

ek

alt

Function Name

configuration information about peripheral GPIO.
None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Output Parameter

Member

Default
GPIO_Pin_All

GPIO_Mode

GPIO_Mode_IN

GPIO_ITCmd

DISABLE

GPIO_ITTrigger

GPIO_INT_Trigger_LEVEL

GPIO_ITPolarity

GPIO_INT_POLARITY_ACTIVE_LOW

GPIO_ITDebounce

GPIO_INT_DEBOUNCE_DISABLE

Examples:
/* Configure the GPIO Init Structure parameter */

al
nti

de

GPIO_Pin

nfi

Table 5. 13 Default Values of GPIO_InitStruct

GPIO_InitTypeDef GPIO_InitStruct;
GPIO_StructInit(&GPIO_InitStruct);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
66

RTL8762C Peripheral Manual

5. 2. 5 Function GPIO_INTConfig
Table 5. 14 Function GPIO_INTConfig
Function Name

GPIO_INTConfig

Function Prototype

void GPIO_INTConfig(uint32_t GPIO_Pin, FunctionalState NewState)

Function Description

Enable or disable external GPIO interrupt

Input Parameter 1

GPIO_Pin: Acquired through return value of function GPIO_GetPin.

Input Parameter 2

newState: new state of GPIO_Pin interrupt
Optional parameters: ENABLE, DISABLE

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

Examples:

ek

/* Enable P0_2 interrupt */
GPIO_INTConfig(GPIO_GetPin(P0_2), ENABLE);

Co

Table 5.15 Pin and GPIO interrupt handler mapping

GPIO interrupt handler function

P0_0

Gpio0IntrHandler

P0_1

Gpio1IntrHandler

P0_2

Gpio2IntrHandler

P0_3

Gpio3IntrHandler

P0_4

Gpio4IntrHandler

P0_5

Gpio5IntrHandler

P0_6

Gpio6IntrHandler

P0_7

Gpio7IntrHandler

P1_0

Gpio8IntrHandler

P1_1

Gpio9IntrHandler

P1_2

Gpio10IntrHandler

P1_3

Gpio11IntrHandler

P1_4

Gpio12IntrHandler

P1_5

Gpio13IntrHandler

P1_6

Gpio14IntrHandler

al
nti

de

nfi

Pin_Num

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
67

RTL8762C Peripheral Manual

P1_7

Gpio15IntrHandler

P2_0

Gpio16IntrHandler

P2_1

Gpio17IntrHandler

P2_2

Gpio18IntrHandler

P2_3

Gpio19IntrHandler

P2_4

Gpio20IntrHandler

P2_5

Gpio21IntrHandler

P2_6

Gpio22IntrHandler

P2_7

Gpio23IntrHandler

Re

P3_0

Gpio24IntrHandler

P3_1

Gpio25IntrHandler
Gpio26IntrHandler

alt

P3_2
P3_3

Gpio27IntrHandler

P4_0

Gpio28IntrHandler

ek

P4_1

Gpio29IntrHandler

P4_2

Gpio30IntrHandler

P4_3

Gpio31IntrHandler

Co

Table 5. 15 Function GPIO_ClearINTPendingBit

nfi

5. 2. 6 Function GPIO_ClearINTPendingBit
GPIO_ClearINTPendingBit

Function Prototype

void GPIO_ClearINTPendingBit(uint32_t GPIO_Pin)

Function Description

Clear interrupt flag of GPIO_Pin

Input Parameter 1

GPIO_Pin: Acquired through return value of function GPIO_GetPin.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

Function Name

Examples:
/* Clear P0_2 interrupt */
GPIO_ClearINTPendingBit (GPIO_GetPin(P0_2));

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
68

RTL8762C Peripheral Manual

5. 2. 7 Function GPIO_MaskINTConfig
Table 5. 17 Function GPIO_MaskINTConfig
Function Name

GPIO_MaskINTConfig

Function Prototype

void GPIO_MaskINTConfig(uint32_t GPIO_Pin, FunctionalState NewState)

Function Description

Mask or not mask external GPIO interrupt.

Input Parameter 1

GPIO_Pin: Acquired through return value of function GPIO_GetPin.

Input Parameter 2

newState: new state of GPIO_Pin
Optional parameters: ENABLE(mask), DISABLE(not mask)

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* mask P0_2 interrupt */
GPIO_MaskINTConfig (GPIO_GetPin(P0_2), ENABLE);

ek

alt

None

Re

Output Parameter

Table 5. 18 Function GPIO__ReadInputDataBit

Co

5. 2. 8 Function GPIO_ReadInputDataBit
GPIO_ReadInputDataBit

Function Prototype

uint8_t GPIO_ReadInputDataBit(uint32_t GPIO_Pin)

Function Description

Read input from specified pin.

Input Parameter

GPIO_Pin: acquired through return value of function GPIO_GetPin.

Output Parameter

None

Return Value

Input voltage level: 0 - low level; 1 - high level

Prerequisite

None

Functions Called

None

al
nti

/* Get specified GPIO Pin value */

de

Examples:

nfi

Function Name

uint8_t read_value = GPIO_ReadInputDataBit (GPIO_GetPin(P0_2));

5. 2. 9 Function GPIO_ ReadInputData
Table 5. 19 Function GPIO_ReadInputData
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
69

RTL8762C Peripheral Manual

Function Name

GPIO_ReadInputData

Function Prototype

uint32_t GPIO_ReadInputData(void)

Function Description

Read input from all GPIO ports.

Input Parameter

None

Output Parameter

None

Return Value

All GPIO input voltage level.

Prerequisite

None

Functions Called

None

Examples:

Re

/* Get all GPIO Pin value */
uint32_t

read_value = GPIO_ReadInputData ();

alt

5. 2. 10 Function GPIO_ReadOutputDataBit

ek

Table 5. 20 Function GPIO_ ReadOutputDataBit
GPIO_ReadOutputDataBit

Function Prototype

uint8_t GPIO_ReadOutputDataBit(uint32_t GPIO_Pin)

Function Description

Read output from specified pin.

Input Parameter

GPIO_Pin: Acquired through return value of function GPIO_GetPin.

Output Parameter

None

Return Value

GPIO input port value

Prerequisite

None

Functions Called

None

Co

Function Name

/* Get specified GPIO Pin value */
read_value = GPIO_ReadOutputDataBit (GPIO_GetPin(P0_2));

5. 2. 11 Function GPIO_ ReadOutputData
Table 5. 21 Function GPIO_ReadOutputData
Function Name

GPIO_ReadOutputData

Function Prototype

uint32_t GPIO_ReadOutputData (void)

Function Description

Read output from all GPIO ports

Input Parameter

None

Output Parameter

None

al
nti

uint8_t

de

nfi

Examples:

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
70

RTL8762C Peripheral Manual

Return Value

All GPIO output pin voltage level

Prerequisite

None

Functions Called

None

Examples:
/* Get all GPIO Pin value */
uint32_t

read_value = GPIO_ReadOutputData ();

5. 2. 12 Function GPIO_ SetBits

Re

Table 5. 22 Function GPIO_ SetBits
GPIO_SetBits

Function Prototype

void GPIO_SetBits (uint32_t GPIO_Pin)

Function Description

Set specified pin to high level.

Input Parameter

GPIO_Pin: Acquired through return value of function GPIO_GetPin.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Function Name

/* Configure specified GPIO Pin output high level */
GPIO_SetBits (GPIO_GetPin(P0_2));

Co

Examples:

Table 5. 23 Function GPIO_ResetBits
Function Name

GPIO_ ResetBits

Function Prototype

void GPIO_ResetBits (uint32_t GPIO_Pin)

Function Description

Set specified pin to low level.

Input Parameter

GPIO_Pin: Acquired through return value of function GPIO_GetPin.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

nfi

5. 2. 13 Function GPIO_ ResetBits

Examples:
/* Configure specified GPIO Pin output low level */
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
71

RTL8762C Peripheral Manual

GPIO_ ResetBits (GPIO_GetPin(P0_2));

5. 2. 14 Function GPIO_ WriteBit
Table 5. 24 Function GPIO_WriteBit
GPIO_WriteBit

Function Prototype

void GPIO_WriteBit(uint32_t GPIO_Pin, BitAction BitVal)

Function Description

Set or clear voltage level of a specified pin.

Input Parameter 1

GPIO_Pin: acquired through return value of function GPIO_GetPin.

Input Parameter 2

BitVal: this parameter specifies the value to be written, and must be set to one of the

Re

Function Name

values enumerated in BitAction.
Bit_RESET: clear data port bit

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

Output Parameter

alt

Bit_SET: set data port bit

Co

Examples:
/*Set specified GPIO Pin */
GPIO_WriteBit (GPIO_GetPin(P0_2), Bit_SET);

Table 5. 25 Function GPIO_Write
GPIO_Write

Function Prototype

void GPIO_Write(uint32_t PortVal)

Function Description

Set or clear voltage level of specified pin.

Input Parameter

PortVal: value to be written to port data register

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Function Name

de

nfi

5. 2. 15 Function GPIO_Write

Examples:
/* Get all GPIO Pin value */
uint32_t read_value = GPIO_ReadOutputData ();
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
72

RTL8762C Peripheral Manual

/* Configure GPIO_Pin_2 output high level */
GPIO_WriteBit (read_value | BIT(2));

5. 2. 16 Function GPIO_GetINTStatus
Table 5. 26 Function GPIO_GetINTStatus
GPIO_GetINTStatus

Function Prototype

ITStatus GPIO_GetINTStatus(uint32_t GPIO_Pin)

Function Description

Check whether interrupt of specified pin occurs

Input Parameter

GPIO_Pin: Acquired through returned value of GPIO_GetPin.

Output Parameter

None

Return Value

Value of interrupt flag at the specified pin, which shall be one of the values enumerated

alt

in ITStatus.

Re

Function Name

RESET: Interrupt does not occur.

Prerequisite

None

Functions Called

None

ek

SET: Interrupt occurs

/* Check if the specified pin interrupt has occurred or not */
ITStatus Status;
Status = GPIO_GetINTStatus (GPIO_GetPin(P0_2));

Co

Examples:

de

nfi

5. 2. 17 Function GPIO_GetNum
Table 5. 27 Function GPIO_GetNum
GPIO_GetNum

Function Prototype

uint8_t GPIO_GetNum(uint8_t Pin_num)

Function Description

Get the GPIO sequence number value corresponding to the pin

Input Parameter

Pin_num: The external pin value can be selected from P0_0 to P3_6 or P4_0 to P4_3
or H_0 to H_2.

Output Parameter

None

Return Value

GPIO sequence number

Prerequisite

None

Functions Called

None

al
nti

Function Name

Examples:
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
73

RTL8762C Peripheral Manual

/* Get specified GPIO Num value*/
uint8_t GPIO_Num = GPIO_GetNum(P0_2);

5. 2. 18 Function GPIO_Debounce_Time
Table 5. 28 Function GPIO_Debounce_Time
GPIO_Debounce_Time

Function Prototype

void GPIO_Debounce_Time(uint32_t DebounceTime)

Function Description

Set GPIO debounce time

Input Parameter

DebounceTime:debounce time in millisecond. The value ranges from 1 to 64.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

alt

Re

Function Name

ek

Examples:
/* Set GPIO debounce value*/
GPIO_Debounce_Time(10);

Table 5. 29 Function GPIO_DBClkCmd

Co

5. 2. 19 Function GPIO_DBClkCmd

Function Prototype

void GPIO_DBClkCmd(FunctionalState NewState)

Function Description

Enable or disable GPIO Debounce Clock

Input Parameter

NewState: Enable or GPIO Debounce Clock.

Optional parameters: ENABLE or DISABLE
None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

de

GPIO_DBClkCmd

nfi

Function Name

Examples:
/* EnableGPIO debounce clock*/
GPIO_DBClkCmd(ENABLE);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
74

RTL8762C Peripheral Manual

6 Inter-Integrated Circuit (I2C)
6. 1 I2C Register Architecture
typedef struct
{
__IO uint32_t IC_CON;
__IO uint32_t IC_TAR;
__IO uint32_t IC_SAR;
__IO uint32_t IC_DATA_CMD;
__IO uint32_t IC_SS_SCL_HCNT;
__IO uint32_t IC_SS_SCL_LCNT;
__IO uint32_t IC_FS_SCL_HCNT;
__IO uint32_t IC_FS_SCL_LCNT;
__IO uint32_t IC_HS_SCL_HCNT;
__I uint32_t IC_INTR_STAT;
__IO uint32_t IC_INTR_MASK;

ek

__IO uint32_t IC_HS_SCL_LCNT;

alt

Re

__IO uint32_t IC_HS_MADDR;

Co

__I uint32_t IC_RAW_INTR_STAT;
__IO uint32_t IC_RX_TL;
__IO uint32_t IC_TX_TL;
__I uint32_t IC_CLR_INTR;

nfi

__I uint32_t IC_CLR_RX_UNDER;
__I uint32_t IC_CLR_RX_OVER;
__I uint32_t IC_CLR_TX_OVER;

de

__I uint32_t IC_CLR_RD_REQ;
__I uint32_t IC_CLR_TX_ABRT;
__I uint32_t IC_CLR_RX_DONE;

al
nti

__I uint32_t IC_CLR_ACTIVITY;
__I uint32_t IC_CLR_STOP_DET;
__I uint32_t IC_CLR_START_DET;
__I uint32_t IC_CLR_GEN_CALL;
__IO uint32_t IC_ENABLE;
__I uint32_t IC_STATUS;
__I uint32_t IC_TXFLR;
__I uint32_t IC_RXFLR;
__IO uint32_t IC_SDA_HOLD;
__I uint32_t IC_TX_ABRT_SOURCE;
__IO uint32_t IC_SLV_DATA_NACK_ONLY;
__IO uint32_t IC_DMA_CR;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

75

RTL8762C Peripheral Manual

__IO uint32_t IC_DMA_TDLR;
__IO uint32_t IC_DMA_RDLR;
__IO uint32_t IC_SDA_SETUP;
__IO uint32_t IC_ACK_GENERAL_CALL;
__IO uint32_t IC_ENABLE_STATUS;
} I2C_TypeDef;

All I2C registers are enumerated in Table 6. 1.
Table 6. 1 I2C Registers
Register

Description
I2C Control Register

IC_TAR

I2C Target Address Register

IC_SAR

I2C Slave Address Register

IC_HS_MADDR

I2C HS Master Mode Code Address

IC_DATA_CMD

I2C Rx/Tx Data Buffer and Command

IC_SS_SCL_HCNT

Standard speed I2C Clock SCL High Count

IC_SS_SCL_LCNT

Standard speed I2C Clock SCL Low Count

IC_FS_SCL_HCNT

Fast speed I2C Clock SCL High Count

IC_FS_SCL_LCNT

Fast speed I2C Clock SCL Low Count

IC_HS_SCL_HCNT

High speed I2C Clock SCL High Count

IC_HS_SCL_LCNT

High speed I2C Clock SCL Low Count

IC_INTR_STAT

I2C Interrupt Status Register

IC_INTR_MASK

I2C Interrupt Mask Register

IC_RAW_INTR_STAT

I2C Raw Interrupt Status(cannot be masked by IC_INTR_STAT)

IC_RX_TL

I2C Receive FIFO Threshold

IC_TX_TL

I2C Transmit FIFO Threshold

IC_CLR_INTR

Clear Combined and Individual Interrupts Register

IC_CLR_RX_UNDER

Clear RX_UNDER Interrupt

IC_CLR_RX_OVER

Clear RX_OVER Interrupt

IC_CLR_TX_OVER

Clear TX_OVER Interrupt

IC_CLR_RD_REQ

Clear RD_REQ Interrupt

IC_CLR_TX_ABRT

Clear TX_ABRT Interrupt

IC_CLR_RX_DONE

Clear RX_DONE Interrupt

IC_CLR_ACTIVITY

Clear ACTIVITY Interrupt

IC_CLR_STOP_DET

Clear STOP_DET Interrupt

ek

alt

Re

IC_CON

Co
al
nti

de

nfi

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
76

RTL8762C Peripheral Manual

Clear START_DET Interrupt

IC_CLR_GEN_CALL

Clear GEN_CALL Interrupt

IC_ENABLE

I2C Enable Register

IC_STATUS

I2C Status Register

IC_TXFLR

Transmit FIFO Level Register

IC_RXFLR

Receive FIFO Level Register

IC_SDA_HOLD

SDA hold duration register

IC_TX_ABRT_SOURCE

I2C Transmit Abort Status Register

IC_SLV_DATA_NACK_ONLY

Generate SLV_DATA_NACK Register

IC_DMA_CR

DMA Control Register for transmit and receive handshaking interface

IC_DMA_TDLR

DMA Transmit Data Level

IC_DMA_RDLR

DMA Receive Data Level

IC_SDA_SETUP

I2C SDA Setup Register

IC_ACK_GENERAL_CALL

I2C ACK General Call Register

IC_ENABLE_STATUS

I2C Enable Status Register

ek

alt

Re

IC_CLR_START_DET

Co

6. 2 I2C Library Functions
Table 6. 2All I2C library functions
Function Name

Description

nfi

Disable I2C clock source.

I2C_Init

Initialize I2C module.

I2C_StructInit

Set each parameter in I2C_InitStruct to the default value.

I2C_Cmd

Enable or disable the specified I2C channel.

I2C_MasterWrite

Send data through I2C peripheral in master mode.

I2C_MasterRead

Read Data through I2C peripheral in master mode.

I2C_RepeatRead

Send and receive data consecutively through I2C peripheral in master mode.

I2C_INTConfig

Enable or disable I2C interrupt.

I2C_ClearINTPendingBit

Clear I2C interrupt suspend bit.

I2C_SetSlaveAddress

Set slave device address.

I2C_SendCmd

Send or read commands in master mode through I2C peripheral.

I2C_ReceiveData

Receive a datum through I2C peripheral.

I2C_GetRxFIFOLen

Get the length of received data in FIFO through I2C peripheral.

I2C_GetTxFIFOLen

Get the length of transmitted data in FIFO through I2C peripheral.

al
nti

de

I2C_DeInit

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
77

RTL8762C Peripheral Manual

I2C_ClearAllINT

Clear all interrupts suspended by I2C.

I2C_GetFlagState

Get specified flag status.

I2C_CheckEvent

Check specified transmission failure event status.

I2C_GetINTStatus

Get specified I2C interrupt status.

I2C_GDMACmd

Enable or disable specified GDMA data transfer function.

6. 2. 1 Function I2C_DeInit
Table 6. 3 Function I2C_DeInit

Re

I2C_DeInit

Function Prototype

void I2C_DeInit(I2C_TypeDef* I2Cx)

Function Description

Disable specified I2C clock

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

ek

alt

Function Name

Co

6. 2. 2 Function I2C_Init

nfi

Table 6. 4 Function I2C_Init
I2C_Init

Function Prototype

void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct)

Function Description

Initialize I2C register based on parameters specified in I2C_InitStruct

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

I2C _InitStruct: A pointer to I2C_InitTypeDef, and related configuration information is

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

contained in I2C_InitStruct.

de

Function Name

typedef struct
{
uint32_t I2C_ClockSpeed;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
78

RTL8762C Peripheral Manual

uint16_t I2C_DeviveMode;
uint16_t I2C_AddressMode;
uint16_t I2C_SlaveAddress;
uint16_t I2C_Ack;
} I2C_InitTypeDef;

I2C_ClockSpeed: Set clock rate on I2C bus.
I2C_DeviveMode: Set current operation mode of I2C peripheral. Table 6. 5 lists values available to this
parameter.
Table 6. 5 Values of I2C_DeviveMode

I2C_DeviveMode_Master

Master device

I2C_DeviveMode_Slave

Slave device

Description

alt

Re

I2C_DeviveMode

I2C_AddressMode: Set current operation mode of I2C peripheral. Table 6. 6 lists values available to this

ek

parameter.
Table 6. 6 Values of I2C_AddressMode
I2C_AddressMode

Description

7-bit address pattern

I2C_AddressMode_10BIT

10-bit address pattern

Co

I2C_AddressMode_7BIT

nfi

I2C_SlaveAddress: Address of the specified I2C slave, which can be set to a 7-bit or 10-bit address.

I2C_Ack: Enable or disable response signal when receiving ‘General all’, which can be set to I2C_Ack_Enable or

Examples:
/* Initialize I2C0 */
I2C_InitTypeDef

I2C_InitStructure;

I2C_InitStructure.I2C_ClockSpeed = 100000;
I2C_InitStructure.I2C_DeviveMode = I2C_DeviveMode_Master;
I2C_InitStructure.I2C_AddressMode = I2C_AddressMode_7BIT;
I2C_InitStructure.I2C_SlaveAddress = 0x50;

al
nti

de

I2C_Ack_Disable.

I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
I2C_Init(I2C0, &I2C_InitStructure);

6. 2. 3 Function I2C_StructInit
Table 6. 7 Function I2C_StructInit
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
79

RTL8762C Peripheral Manual

Function Name

I2C_StructInit

Function Prototype

void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct)

Function Description

Set each parameter in I2C_InitStruct to the default value

Input Parameter

I2C_InitStruct: A pointer points to structure I2C_InitTypeDef, which contains
configuration information about peripheral I2C.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

/* Initialize I2C */
I2C_InitTypeDef I2C_InitStruct;
I2C_StructInit(&I2C_InitStruct);

ek

6. 2. 4 Function I2C_Cmd

alt

Re

Examples:

Table 6. 8 Function I2C_Cmd
I2C_Cmd

Function Prototype

void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState)

Function Description

Enable or disable the specified I2C channel.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

NewState: new state of I2Cx peripheral

Co

Function Name

None

Prerequisite

None

Functions Called

None

al
nti

Return Value

de

None

nfi

This parameter can be set to: ENABLE, DISABLE
Output Parameter

Examples:
/* Enable I2C0 */
I2C_Cmd (I2C0, ENABLE);

6. 2. 5 Function I2C_MasterWrite
Table 6. 9 Function I2C_MasterWrite
Function Name

I2C_MasterWrite
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
80

RTL8762C Peripheral Manual

Function Prototype

void I2C_MasterWrite(I2C_TypeDef* I2Cx, uint8_t* pBuf, uint8_t len)

Function Description

Send data through I2C peripheral in master mode.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

pBuf: A pointer to the data to be sent

Input Parameter 3

len: Length of the data to be sent

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Re

Examples:
/* Send data */

uint8_t writeBuf[16] = {0x00,0x01,0x02,0x03};

Table 6. 10 Function I2C_MasterRead

ek

6. 2. 6 Function I2C_MasterRead

alt

I2C_MasterWrite (I2C0, writeBuf, 4);

I2C_MasterRead

Function Prototype

void I2C_MasterRead(I2C_TypeDef* I2Cx, uint8_t* pBuf, uint8_t len)

Function Description

Read Data through I2C peripheral in master mode.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

pBuf: A pointer to the data to be received

Input Parameter 3

len: Length of the received data

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Function Name

al
nti

de

nfi

Examples:
/* Receive data */
uint8_t receiveBuf[16] = {0};
I2C_ MasterRead (I2C0, receiveBuf, 4);

6. 2. 7 Function I2C_RepeatRead
Table 6. 11 Function I2C_RepeatRead

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
81

RTL8762C Peripheral Manual

Function Name

I2C_RepeatRead

Function Prototype

uint8_t I2C_RepeatRead(I2C_TypeDef* I2Cx, uint8_t* pWriteBuf, uint8_t Writelen,
uint8_t* pReadBuf, uint8_t Readlen)
Send and receive data consecutively through I2C peripheral in master mode.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

pWriteBuf: A pointer to the data to be sent

Input Parameter 3

Writelen: Length of the sent data

Input Parameter 4

pReadBuf: A pointer to the data to be received

Input Parameter5

Readlen: Length of the received data

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

alt

Re

Function Description

Examples:

ek

/* Repeat read data */
uint8_t I2C_WriteBuf[2] = {0x00,0x01};
uint8_t I2C_ReadBuf[4] = {0, 0 , 0, 0};

6. 2. 8 Function I2C_INTConfig

Co

I2C_RepeatRead(I2C0, I2C_WriteBuf, 2, I2C_ReadBuf, 4);

nfi

Table 6. 12 Function I2C_INTConfig
I2C_INTConfig

Function Prototype

void I2C_INTConfig(I2C_TypeDef* I2Cx, uint16_t I2C_IT, FunctionalState NewState)

Function Description

Enable or disable I2C interrupt

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral

Input Parameter 2

I2C_IT: Enable or disable I2C interrupt source. Refer to description of I2C_IT for more

Input Parameter 3

NewState: new state of I2C interrupt
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

details.

de

Function Name

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
82

RTL8762C Peripheral Manual

I2C_IT: Permitted I2C interrupt types are listed in Table 6. 13. Multiple interrupts can be selected at one time by
using operator "|".
Table 6. 13 Values of I2C_IT
I2C_IT

Description
This interrupt is raised when a common address call is received and is responded.

I2C_INT_START_DET

This interrupt is raised when start or restart signal is detected.

I2C_INT_STOP_DET

This interrupt is raised when stop signal is detected.

I2C_INT_ACTIVITY

This interrupt is raised when bus is detected to be in communication.

I2C_INT_RX_DONE

This interrupt is raised when device is detected to have finished sending data in slave
mode.

Re

I2C_INT_GEN_CALL

This interrupt is raised when bus communication exception is detected.

I2C_INT_RD_REQ

This interrupt is raised when device is in slave mode and master device is detected to

alt

I2C_INT_TX_ABRT

send a request to read data.

This interrupt is raised when number of data in transmit buffer is smaller than the

ek

I2C_INT_TX_EMPTY

threshold.

This interrupt is raised when overflow of transmit buffer is detected.

I2C_INT_RX_FULL

This interrupt is raised when number of data in receive buffer is larger than the
threshold value as set.

Co

I2C_INT_TX_OVER

This interrupt is raised when overflow of receive buffer is detected.

I2C_INT_RX_UNDER

This interrupt is raised when reading empty receive buffer.

Examples:
/* Detect stop signal */
I2C_INTConfig(I2C0, I2C_INT_STOP_DET, ENABLE);

Table 6. 14 Function I2C_ClearINTPendingBit

al
nti

6. 2. 9 Function I2C_ClearINTPendingBit

de

nfi

I2C_INT_RX_OVER

Function Name

I2C_ClearINTPendingBit

Function Prototype

void I2C_ClearINTPendingBit(I2C_TypeDef* I2Cx, uint16_t I2C_IT)

Function Description

Clear suspended I2C interrupt bit.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

I2C_IT: Interrupt source of the I2C peripheral to be checked. Refer to related description
of I2C_IT in 6. 2. 7 for more details.

Output Parameter

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
83

RTL8762C Peripheral Manual

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Clear stop signal interrupt */
I2C_ClearINTPendingBit(I2C0, I2C_INT_STOP_DET);

6. 2. 10 Function I2C_SetSlaveAddress

Re

Table 6. 15 Function I2C_SetSlaveAddress

I2C_SetSlaveAddress

Function Prototype

void I2C_SetSlaveAddress(I2C_TypeDef* I2Cx, uint16_t Address)

Function Description

Set target slave device address.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

Address: Slave device address

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Function Name

I2C_SetSlaveAddress (I2C0, 0x66);

Table 6. 16 Function I2C_SendCmd

al
nti

de

6. 2. 11 Function I2C_SendCmd

nfi

/* Configure new slave address which the communication is require */

Co

Examples:

Function Name

I2C_SendCmd

Function Prototype

void I2C_SendCmd(I2C_TypeDef *I2Cx, uint16_t command, uint8_t data,
uint16_t StopState)

Function Description

Send or read commands in master mode through I2C peripheral.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

command:command type. The parameter can be obtained as follows:
I2C_READ_CMD: Data read command
I2C_WRITE_CMD: Data write command

Input Parameter 3

data: data to be sent
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
84

RTL8762C Peripheral Manual

Input Parameter 4

StopState: to generate stop signal or not.
Optional parameters: ENABLE, DISABLE

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Send one byte and generate a stop signal */
I2C_SendCmd (I2C0, I2C_WRITE_CMD, 0x66, ENABLE);

Re

6. 2. 12 Function I2C_ReceiveData

alt

Table 6. 17 Function I2C_ReceiveData
I2C_ReceiveData

Function Prototype

uint8_t I2C_ReceiveData(I2C_TypeDef* I2Cx)

Function Description

Receive a datum through I2C peripheral.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Output Parameter

None

Return Value

Receive data from I2C bus as slave device.

Prerequisite

None

Functions Called

None

ek

Function Name

Co

/* Receive one byte */
uint8_t data = I2C_ReceiveData (I2C0);

Table 6. 18 Function I2C_GetRxFIFOLen
Function Name

I2C_GetRxFIFOLen

Function Prototype

uint8_t I2C_GetRxFIFOLen(I2C_TypeDef *I2Cx)

Function Description

Read the data length of receive FIFO

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Output Parameter

None

Return Value

data length of receive FIFO

Prerequisite

None

al
nti

6. 2. 13 Function I2C_GetRxFIFOLen

de

nfi

Examples:

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
85

RTL8762C Peripheral Manual

Functions Called

None

Examples:
/* Get data number in RX FIFO */
uint8_t number = 0;
number = I2C_ GetRxFIFOLen (I2C0);

6. 2. 14 Function I2C_GetTxFIFOLen
Table 6. 19 Function I2C_GetTxFIFOLen
I2C_GetTxFIFOLen

Function Prototype

uint8_t I2C_GetTxFIFOLen(I2C_TypeDef *I2Cx)

Function Description

Read the data length of transmit FIFO

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Output Parameter

None

Return Value

data length of transmit FIFO

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Name

Examples:

Co

/* Get data number inTX FIFO */
uint8_t number = 0;
number = I2C_ GetTxFIFOLen (I2C0);

Table 6. 20 Function I2C_ClearAllINT
I2C_ClearAllINT

Function Prototype

void I2C_ClearAllINT(I2C_TypeDef* I2Cx)

Function Description

Clear all I2C suspended interrupts.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Function Name

de

nfi

6. 2. 15 Function I2C_ClearAllINT

Examples:
/* Clear all interrupt state */
I2C_ClearAllINT(I2C0);
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
86

RTL8762C Peripheral Manual

6. 2. 16 Function I2C_GetFlagState
Table 6. 21 Function I2C_GetFlagState
I2C_GetFlagState

Function Prototype

FlagStatus I2C_GetFlagState(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG)

Function Description

Check whether the flag specified by I2C is set.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

I2C_FLAG: Flag to be checked

Output Parameter

None

Return Value

New state (SET or RESET) of the flag specified by I2C.

Prerequisite

None

Functions Called

None

alt

Re

Function Name

I2C_FLAG: Permitted I2C status flags are as shown in Table 6. 22.

ek

Table 6. 22 Values of I2C_FLAG
I2C_FLAG

Description

When device is in slave device mode and bus is in communication.

I2C_FLAG_MST_ACTIVITY

When device is in master device mode and bus is in communication.

I2C_FLAG_RFF

Receive buffer is full.

I2C_FLAG_RFNE

Receive buffer is not empty.

I2C_FLAG_TFE

Transmit buffer is empty.

I2C_FLAG_TFNF

Transmit buffer is not full.

I2C_FLAG_ACTIVITY

Bus state

Co

I2C_FLAG_SLV_ACTIVITY

/* Wait communication end as master. If SET, I2C0 have not finish transmission */
while(I2C_GetFlagState(I2C0, I2C_FLAG_MST_ACTIVITY) == 1);

6. 2. 17 Function I2C_CheckEvent
Table 6. 23 Function I2C_CheckEvent
Function Name

I2C_CheckEvent

Function Prototype

FlagStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT)

Function Description

Check the transmission failure event state specified by I2C.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

al
nti

de

nfi

Examples:

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
87

RTL8762C Peripheral Manual

Input Parameter 2

I2C_ EVENT: I2C transfer event flag to be checked. Refer to related description of
I2C_EVENT for more details.

Output Parameter

None

Return Value

new state (SET or RESET) of exception event specified by I2C.

Prerequisite

None

Functions Called

None

I2C_EVENT: Permitted I2C event flags are as shown in Table 6. 24.
Table 6. 24 Values of I2C_EVENT

Re

I2C_EVENT
ABRT_SLVRD_INTX

Description

Sending read command will trigger this exception when device is in slave device mode
and receives a read request from master device.

alt

ABRT_SLV_ARBLOST

Bus will trigger this exception when device is in slave device mode and sending data.

ABRT_SLVFLUSH_TXFIFO

When device is in slave device mode and receives a read request from master device,

ek

this exception will be triggered because overwriting the original data in buffer is.
ARB_LOST

This exception is triggered when device loses arbitration right.

ABRT_MASTER_DIS

This exception is triggered when the disabled master device mode is about to be

Co

started.
ABRT_10B_RD_NORSTRT

When a device is in master device mode and restart function is disabled, this exception
will be triggered if the device sends a read command in 10-bit addressing mode.

nfi

ABRT_SBYTE_NORSTRT

When a device is in master device mode and restart function is disabled, this exception
will be triggered if a startup command is sent to this device.

When a device which is in master device mode and whose restart function is

de

ABRT_HS_NORSTRT

disabled,this exception will be triggered if transmitting data in high speed mode(bus
rate larger than 400kHz).

This exception is triggered when a device which is in master device mode receives a
response signal after sending a startup command.

ABRT_HS_ACKDET

al
nti

ABRT_SBYTE_ACKDET

This exception is triggered when a device which is in master device mode and high
speed mode transmits data in high speed mode (bus rate larger than 400kHz).

ABRT_GCALL_READ

This exception is triggered when a device in master device mode sends a read
command after sending a common call command.

ABRT_GCALL_NOACK

This exception is triggered when a device in master device mode fails to receive a
response signal after sending a common call command.

ABRT_TXDATA_NOACK

This exception is triggered when a device in master device mode fails to receive a
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
88

RTL8762C Peripheral Manual

response signal after sending data.
ABRT_10ADDR2_NOACK

This exception is triggered when a device in master device mode and 10-bit addressing
fails to receives response signal after sending the second address datum.

ABRT_10ADDR1_NOACK

This exception is triggered when a device in master device mode and 10-bit addressing
fails to receives response signal after sending the first address datum.

ABRT_7B_ADDR_NOACK

This exception is triggered when a device in master device mode and 7-bit addressing
fails to receives response signal after sending address data.

Examples:
/* Check I2C receive acknowledgement or not after 7-bit address command to be sent */

Re

bool flag_state = I2C_CheckEvent(I2C0, ABRT_7B_ADDR_NOACK);

6. 2. 18 Function I2C_GetINTStatus

alt

Table 6. 25 Function I2C_ GetINTStatus
I2C_GetINTStatus

Function Prototype

ITStatus I2C_GetINTStatus(I2C_TypeDef* I2Cx, uint32_t I2C_IT)

Function Description

Get specified I2C interrupt state.

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

I2C_IT: target interrupt source. Refer to related description of I2C_IT in 6. 2. 7 for more

ek

Function Name

Co

details.

Return Value

New state (SET OR RESET) of the flag specified by I2C.

Prerequisite

None

Functions Called

None

Examples:
/* Check stop singal interrupt state */
Bool int_state = I2C_GetINTStatus(I2C0, I2C_INT_STOP_DET) ;

6. 2. 19 Function I2C_GDMACmd

al
nti

de

None

nfi

Output Parameter

Table 6. 26 Function I2C_GDMACmd
Function Name

I2C_GDMACmd

Function Prototype

void I2C_GDMACmd(I2C_TypeDef *I2Cx, uint16_t I2C_GDMAReq, FunctionalState
NewState)

Function Description

Enable or disable specified GDMA data transmission function.
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
89

RTL8762C Peripheral Manual

Input Parameter 1

I2Cx: x can be set to 0 or 1 to select the specified I2C peripheral.

Input Parameter 2

GDMAReq: data transmission type, available values listed below:
I2C_GDMAReq_Tx: GDMA data sending function
I2C_GDMAReq_Rx: GDMA data receiving function

Input Parameter 3

NewState: the new state of I2C data transmission
This parameter can be ENABLE or DISABLE
None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:

Re

Output Parameter

/* Enable I2C GDMA data transmission function */

ek

alt

I2C_GDMACmd (I2C0, I2C_GDMAReq_Tx, ENABLE);

Co
al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
90

RTL8762C Peripheral Manual

7 QDEC
7. 1 QDEC Register Architecture
typedef struct {
REG_DIV;

__IO uint32_t

REG_CR_X;

__IO uint32_t

REG_SR_X;

__IO uint32_t

REG_CR_Y;

__IO uint32_t

REG_SR_Y;

__IO uint32_t

REG_CR_Z;
REG_SR_Z;

__IO uint32_t

INT_MASK;

__IO uint32_t

INT_SR;

__IO uint32_t

INT_CLR;

__IO uint32_t

REG_DBG;

ek

__IO uint32_t

alt

__IO uint32_t

Re

__IO uint32_t

REG_VERSION;

} QDEC_TypeDef;

Table 7. 1 QDEC Registers

Description

REG_CR_X

X-axis control register

REG_SR_X

X-axis status register

REG_CR_Y

Y-axis control register

REG_SR_Y

Y-axis status register

REG_CR_Z

Z-axis control register

REG_SR_Z

Z-axis status register

INT_MASK

Interrupt mask register

INT_SR

Interrupt status register

INT_CLR

Interrupt clear register

REG_DBG

Debug register

REG_VERSION

Version register

al
nti

Frequency divider register

de

REG_DIV

nfi

Register

Co

All QDEC registers are enumerated in Table 7. 1.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
91

RTL8762C Peripheral Manual

7. 2 QDEC Library Functions
Table 7. 2 All QDEC library functions
Function Name

Description
Initialize QDEC register based on parameters specified in QDEC_InitStruct

QDEC_DeInit

Disable QDEC peripheral clock.

QDEC_StructInit

Set each parameter in QDEC_InitStruct to the default value.

QDEC_Cmd

Enable or disable specified QDEC channel.

QDEC_INTConfig

Enable or disable the interrupt source specified by QDEC.

QDEC_GetFlagState

Check whether the specified QDEC interrupt flag is set.

QDEC_INTMask

Mask the specified QDEC interrupt source.

QDEC_ClearINTPendingBit

Clear the interrupt flag suspended by QDEC peripheral.

QDEC_GetAxisDirection

Acquire motion direction of specified axis.

QDEC_GetAxisCount

Acquire acceleration value of Axis X , Y or Z.

QDEC_CounterPauseCmd

Pause the acceleration count of Axis X , Y or Z.

ek

alt

Re

QDEC_Init

Co

7. 2. 1 Function QDEC_Init
Table 7. 3 Function QDEC_Init
QDEC_Init

Function Prototype

void QDEC_Init(QDEC_TypeDef* QDECx, QDEC_InitTypeDef* QDEC_InitStruct)

Function Description

Initialize QDEC register based on parameters specified in QDEC_InitStruct.

Input Parameter 1

QDEC: Point to the selected QDEC module.

Input Parameter 2

QDEC_InitStruct: A pointer to QDEC_InitTypeDef, and related configuration information is

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

de

contained in QDEC_InitStruct

nfi

Function Name

typedef struct
{
uint16_t scanClockDiv;
uint16_t debounceClockDiv;
uint8_t axisConfigX;
uint8_t axisConfigY;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
92

RTL8762C Peripheral Manual

uint8_t axisConfigZ;
uint8_t autoLoadInitPhase;
uint16_t counterScaleX;
uint16_t debounceEnableX;
uint16_t debounceTimeX;
uint16_t initPhaseX;
uint16_t counterScaleY;
uint16_t debounceEnableY;
uint16_t debounceTimeY;
uint16_t initPhaseY;
uint16_t counterScaleZ;

Re

uint16_t debounceEnableZ;
uint16_t debounceTimeZ;
uint16_t initPhaseZ;
} QDEC_InitTypeDef;

alt

scanClock: Set frequency division factor of QDEC peripheral scan clock, ranging from 0 to 4095.

ek

scan frequency = peripheralClock/(scanClock + 1), where peripheralClock equals to 20MHz.
debounceClock: Set frequency division factor of QDEC peripheral debounce clock, ranging from 0 to 15.

Co

debounce frequency = scan frequency/(debounceClock + 1)

axisConfigX: Enable or disable the function of axis X. Available values are ENABLE and DISABLE.
debounceTimeX: Set the debounce duration of axis X of QDEC peripheral, ranging from 0 to 255.

nfi

counterScaleX: Set counter pattern of axis X. Available values are listed in table 7.4.

counterScaleX

Description
Counter updates every phase transition.

CounterScale_2_Phase

Counter updates every 2 phase transitions.

al
nti

CounterScale_1_Phase

de

Table 7. 4 Values of counterScaleX

debounceEnableX: Enable the debounce function of axis X. Available values are listed in table 7.5.
Table 7. 5 Values of debounceEnableX
debounceEnableX

Description

Debounce_Disable

Disable debounce function

Debounce_Enable

Enable debounce function

initPhaseX: Configure initial phase of axis X. Available values are listed in table 7.6.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
93

RTL8762C Peripheral Manual

Table 7. 6 Values of initPhaseX
initPhaseX

Description

phaseMode0

Initial phase is configured as 0

phaseMode1

Initial phase is configured as 1

phaseMode2

Initial phase is configured as 2

phaseMode3

Initial phase is configured as 3

axisConfigY: Enable or disable the function of axis Y. Available values are ENABLE and DISABLE.
debounceTimeY: Set the debounce duration of axis Y of QDEC peripheral, ranging from 0 to 255.

Re

counterScaleY: Set counter pattern of axis Y. Available values are listed in table 7.7.
Table 7. 7 Values of counterScaleY

alt

counterScaleY

Description

Counter updates every phase transition.

CounterScale_2_Phase

Counter updates every 2 phase transitions.

ek

CounterScale_1_Phase

debounceEnableY: Enable the debounce function of axis Y. Available values are listed in table 7.8.

debounceEnableY

Co

Table 7. 8 Values of debounceEnableY

Description

Disable debounce function

Debounce_Enable

Enable debounce function

nfi

Debounce_Disable

initPhaseY: Configure initial phase of axis Y. Available values are listed in table 7.9.

initPhaseY

Description
Initial phase is configured as 0

phaseMode1

Initial phase is configured as 1

phaseMode2

Initial phase is configured as 2

phaseMode3

Initial phase is configured as 3

al
nti

phaseMode0

de

Table 7. 9 Values of initPhaseY

axisConfigZ: Enable or disable the function of axis Z. Available values are ENABLE and DISABLE.
debounceTimeZ: Set the debounce duration of axis Z of QDEC peripheral, ranging from 0 to 255.
counterScaleZ: Set counter pattern of axis Z. Available values are listed in table 7.10.
Table 7. 10 Values of counterScaleZ
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
94

RTL8762C Peripheral Manual

counterScaleZ

Description

CounterScale_1_Phase

Counter updates every phase transition.

CounterScale_2_Phase

Counter updates every 2 phase transitions.

debounceEnableZ: Enable the debounce function of axis Z. Available values are listed in table 7.11.
Table 7. 11 Values of debounceEnableZ
debounceEnableZ

Description

Debounce_Disable

Disable debounce function

Debounce_Enable

Enable debounce function

Re

initPhaseZ: Configure initial phase of axis Z. Available values are listed in table 7.12.
Table 7. 12 Values of initPhaseZ

alt

initPhaseZ

Description

Initial phase is configured as 0

phaseMode1

Initial phase is configured as 1

phaseMode2

Initial phase is configured as 2

phaseMode3

Initial phase is configured as 3

ek

phaseMode0

Co

Examples:
QDEC_InitTypeDef qdecInitStruct;
= ENABLE;

qdecInitStruct.scanClock

= 38;

qdecInitStruct.debounceClock = 0xF;
qdecInitStruct.debounceTimeY = 80;
= counterScaleDisable;

qdecInitStruct.debounceEnableY
qdecInitStruct.initPhaseY

= Debounce_Enable;

= phase;

QDEC_Init(QDEC, &qdecInitStruct);

al
nti

qdecInitStruct.counterScaleY

de

qdecInitStruct.axisConfigY

nfi

/*Initialize qdecoder */

7. 2. 2 Function QDEC_DeInit
Table 7. 13 Function QDEC_DeInit
Function Name

QDEC_DeInit

Function Prototype

void QDEC_DeInit(QDEC_TypeDef* QDECx)
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
95

RTL8762C Peripheral Manual

Function Description

Disable QDEC peripheral clock.

Input Parameter 1

QDEC: Point to the selected QDEC module.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

Examples:
/* Close qdecoder clock */
QDEC_DeInit(QDEC);

Re

7. 2. 3 Function QDEC_StructInit

alt

Table 7. 14 Function QDEC_StructInit
QDEC_StructInit

Function Prototype

void QDEC_StructInit(QDEC_InitTypeDef* QDEC_InitStruct)

Function Description

Set each parameter in QDEC_InitStruct to the default value.

Input Parameter 1

QDEC_InitStruct: A pointer points to structure QDEC_InitTypeDef which needs to be

ek

Function Name

None

Return Value

None

Prerequisite

None

Functions Called

None

nfi

Output Parameter

Co

initialized.

Examples:

de

/* Initialize qdecoder by default parameter */
QDEC_InitTypeDef

QDEC_InitStruct;

QDEC_StructInit(&QDEC_InitStruct);

al
nti

7. 2. 4 Function QDEC_Cmd
Table 7. 15 Function QDEC_Cmd
Function Name

QDEC_Cmd

Function Prototype

void QDEC_Cmd(QDEC_TypeDef *QDECx, uint32_t QDEC_AXIS,
FunctionalState newState)

Function Description

Enable or disable specified QDEC channel.

Input Parameter 1

QDECx: x can be set to 0 or 1 to select the specified QDEC peripheral.
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
96

RTL8762C Peripheral Manual

Input Parameter 2

QDEC_AXIS: specified QDEC channel. Available values are:
QDEC_AXIS_X: Axis X channel
QDEC_AXIS_Y: Axis Y channel
QDEC_AXIS_Z: Axis Z channel

Input Parameter 3

newState: new state of specified QDEC peripheral channel.
ENABLE: Enable the specified axis.
DISABLE: Disable the specified axis.
None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Enable QDEC*/
QDEC_Cmd(QDEC, QDEC_AXIS_X, ENABLE);

7. 2. 5 Function QDEC_INTConfig

ek

alt

Re

Output Parameter

Co

Table 7. 16 Function QDEC_INTConfig
Function Name

QDEC_INTConfig

Function Prototype

void QDEC_INTConfig(QDEC_TypeDef* QDECx, uint32_t QDEC_IT, FunctionalState

nfi

newState)

Enable or disable the interrupt source specified by QDEC.

Input Parameter 1

QDECx: Point to the selected QDEC module.

Input Parameter 2

QDEC_IT: QDEC interrupt source to be enabled or disabled. Refer to related description of
QDEC_IT for more details.
newState: new state of interrupt
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Input Parameter 3

de

Function Description

QDEC_IT: Permitted QDEC interrupt types are as shown in Table 7. . Multiple interrupts can be selected at one
time by using operator "|".

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
97

RTL8762C Peripheral Manual

Table 7. 17 Values of QDEC_IT
QDEC_IT

Description

QDEC_X_INT_NEW_DATA

Interrupt is raised whenever new data are generated at axis X.

QDEC_X_INT_ILLEAGE

Interrupt is raised when phase exception occurs at axis X

QDEC_Y_INT_NEW_DATA

Interrupt is raised whenever new data are generated at axis Y.

QDEC_Y_INT_ILLEAGE

Interrupt is raised when phase exception occurs at axis Y

QDEC_Z_INT_NEW_DATA

Interrupt is raised whenever new data are generated at axis Z.

QDEC_Z_INT_ILLEAGE

Interrupt is raised when phase exception occurs at axis Z

Examples:

Re

/* Enable qdecoder specify interrupt */

QDEC_INTConfig(QDEC, QDEC_X_INT_NEW_DATA, ENABLE);

alt

7. 2. 6 Function QDEC_GetFlagState

ek

Table 7. 6 Function QDEC_GetFlagState
QDEC_GetFlagState

Function Prototype

FlagStatus QDEC_GetFlagState(QDEC_TypeDef* QDECx, uint32_t QDEC_FLAG)

Function Description

Check whether the specified QDEC interrupt flag is set.

Input Parameter 1

QDECx: Point to the selected QDEC module.

Input Parameter 2

QDEC_FLAG: Target flag

Output Parameter

None

Return Value

State of specified QDEC flag (SET or RESET)

Prerequisite

None

Functions Called

None

Co

Function Name

QDEC_IT

Description

QDEC_FLAG_ILLEGAL_STATUS_X

Flag sets when phase transition occurs at Axis X.

QDEC_FLAG_ILLEGAL_STATUS_Y

Flag sets when phase transition occurs at Axis Y.

QDEC_FLAG_ILLEGAL_STATUS_Z

Flag sets when phase transition occurs at Axis Z.

QDEC_FLAG_NEW_STATUS_X

Flag sets when new data is generated at Axis X.

QDEC_FLAG_NEW_STATUS_Y

Flag sets when new data is generated at Axis Y.

QDEC_FLAG_NEW_STATUS_Z

Flag sets when new data is generated at Axis Z.

al
nti

Table 7. 7 Values of QDEC_FLAG

de

nfi

QDEC_FLAG: Permitted QDEC state types are as shown in Table 7. 7.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
98

RTL8762C Peripheral Manual

Examples:
/* Check specify QDEC flag */
BOOL state = FALSE;
state = QDEC_GetFlagState(QDEC, QDEC_FLAG_OVERFLOW_X);

7. 2. 7 Function QDEC_INTMask
Table 7. 20 Function QDEC_INTMask
Function Name

QDEC_INTMask

Function Prototype

void QDEC_INTMask(QDEC_TypeDef* QDECx, uint32_t QDEC_AXIS, FunctionalState

Re

newState)

Mask the specified QDEC interrupt source.

Input Parameter 1

QDECx: Point to the selected QDEC module.

Input Parameter 2

QDEC_AXIS: Interrupt source to be masked

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Function Description

Co

QDEC_AXIS: Permitted QDEC interrupt types are as shown in Table 7. .
Table 7. 21 Values of QDEC_AXIS

nfi

QDEC_AXIS

Description

Mask the interrupt raised by new data at axis X.

QDEC_Y_CT_INT_MASK

Mask the interrupt raised by new data at axis Y.

QDEC_Z_CT_INT_MASK

Mask the interrupt raised by new data at axis Z.

QDEC_X_ILLEAGE_INT_MASK

Mask the interrupt raised by phase transition exception at axis X.

QDEC_Y_ILLEAGE_INT_MASK

Mask the interrupt raised by phase transition exception at axis Y.

QDEC_Z_ILLEAGE_INT_MASK

Mask the interrupt raised by phase transition exception at axis Z.

al
nti

de

QDEC_X_CT_INT_MASK

Examples:
/* Mask X axis of qdecoder */
QDEC_INTMask (QDEC, QDEC_X_CT_INT_MASK, ENABLE);

7. 2. 8 Function QDEC_ClearINTPendingBit
Table 7. 22 Function QDEC_ClearINTPendingBit
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.
99

RTL8762C Peripheral Manual

Function Name

QDEC_ClearINTPendingBit

Function Prototype

void QDEC_ClearINTPendingBit(QDEC_TypeDef *QDECx, uint32_t QDEC_CLR_INT)

Function Description

Clear the interrupt flag suspended by QDEC peripheral.

Input Parameter 1

QDECx: Point to the selected QDEC module.

Input Parameter 2

QDEC_INT_FLAG: Interrupt flag to be cleared

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Re

QDEC_INT_FLAG: Permitted QDEC interrupt types are as shown in Table 7. .
Table 7. 8 Values of QDEC_AXIS

alt

QDEC_CLEAR_FLAG

Description

Clear illegal phase counter at X-axis

QDEC_CLR_ILLEGAL_CT_Y

Clear illegal phase counter at Y-axis

QDEC_CLR_ILLEGAL_CT_Z

Clear illegal phase counter at Z-axis

QDEC_CLR_ACC_CT_X

Clear accumulated phase counter at X-axis

QDEC_CLR_ACC_CT_Y

Clear accumulated phase counter at Y-axis

QDEC_CLR_ACC_CT_Z

Clear accumulated phase counter at Z-axis

QDEC_CLR_ILLEGAL_INT_X

Clear phase transition exception interrupt at X-axis

QDEC_CLR_ILLEGAL_INT_Y

Clear phase transition exception interrupt at Y-axis

QDEC_CLR_ILLEGAL_INT_Z

Clear phase transition exception interrupt at Z-axis

QDEC_CLR_UNDERFLOW_X

Clear underflow interrupt at X-axis

QDEC_CLR_UNDERFLOW_Y

Clear underflow interrupt at Y-axis

QDEC_CLR_UNDERFLOW_Z

Clear underflow interrupt at Z-axis

QDEC_CLR_OVERFLOW_X

Clear overflow interrupt at X-axis

QDEC_CLR_OVERFLOW_Y

Clear overflow interrupt at Y-axis

QDEC_CLR_OVERFLOW_Z

Clear overflow interrupt at Z-axis

QDEC_CLR_NEW_CT_X

Clear new count interrupt at X-axis

QDEC_CLR_NEW_CT_Y

Clear new count interrupt at Y-axis

QDEC_CLR_NEW_CT_Z

Clear new count interrupt at Z-axis

ek

QDEC_CLR_ILLEGAL_CT_X

Co

All Rights Reserved.

100

al
nti

Copyright 2018 Realtek Semiconductor Corporation.

de

/* Clear specify QDEC interrupt */

nfi

Examples:

RTL8762C Peripheral Manual

QDEC_ClearINTPendingBit(QDEC, QDEC_CLR_NEW_CT_X);

7. 2. 9 Function QDEC_GetAxisDirection
Table 7. 9 Function QDEC_GetAxisDirection
QDEC_GetAxisDirection

Function Prototype

uint16_t QDEC_GetAxisDirection(QDEC_TypeDef* QDECx, uint32_t QDEC_AXIS)

Function Description

Acquire motion direction of specified axis.

Input Parameter 1

QDECx: Point to the selected QDEC module.

Input Parameter 2

QDEC_AXIS: Axis X, Y or Z as specified. Refer to related description of QDEC_AXIS in

Re

Function Name

section 7.2.6 for more details.
None

Return Value

Motion direction: The returned value is as shown below.

alt

Output Parameter

QDEC_AXIS_DIR_UP: Roll up

Prerequisite

None

Functions Called

None

ek

QDEC_AXIS_DIR_DOWN: Roll down

Co

Examples:
/* Wait for moving upward */

while(QDEC_AXIS_DIR_UP == QDEC_GetAxisDirection(QDEC, QDEC_AXIS_X));

de

nfi

7. 2. 10 Function QDEC_GetAxisCount
Table 7. 10 Function QDEC_GetAxisCount
QDEC_GetAxisCount

Function Prototype

uint16_t QDEC_GetAxisCount(QDEC_TypeDef *QDECx, uint32_t QDEC_AXIS)

Function Description

Acquire acceleration of Axis X , Y or Z.

Input Parameter 1

QDECx: Point to the selected QDEC module.

Input Parameter 2

QDEC_AXIS: Axis X, Y or Z as specified. Refer to related description of QDEC_AXIS in
section 7.2.6 for more details.

Output Parameter

None

Return Value

The acceleration of specified axis.

Prerequisite

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

101

al
nti

Function Name

RTL8762C Peripheral Manual

Functions Called

None

Examples:
/* Get data of specify axis */
uint16_t data = 0;
data = QDEC_GetAxisCount (QDEC, QDEC_AXIS_X);

7. 2. 11 Function QDEC_CounterPauseCmd
Table 7. 11 Function QDEC_CounterPauseCmd
QDEC_CounterPauseCmd

Function Prototype

void QDEC_CounterPauseCmd(QDEC_TypeDef *QDECx, uint32_t QDEC_AXIS,

Function Description

Pause the acceleration count of Axis X , Y or Z.

Input Parameter 1

QDECx: Point to the selected QDEC module.

Input Parameter 2

QDEC_AXIS: Axis X, Y or Z as specified.

Input Parameter 3

newState: can be the following value

Re

Function Name

FunctionalState newState)

ek

alt

ENABLE: Pause.

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Pause specify axis */
QDEC_CounterPauseCmd (QDEC, QDEC_AXIS_X, ENABLE);

al
nti

de

nfi

None

Co

DISABLE: Resume.
Output Parameter

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

102

RTL8762C Peripheral Manual

8 Pin Allocation Difinition (PAD)
8. 1 PAD Library Functions
All PINMUX library functions are enumerated in Table 8. 1.
Table 8. 1 PAD Library Functions
Function Name

Description

Pad_Config

Configure operation mode, peripheral circuit of specified pin and its output

Re

voltage level in software mode.
Configure the PAD output voltage level.

Pad_OutputEnableValue

Enable or disable the PAD output function.

Pad_PullEnableValue

Enable or disable PAD pull-up/pull-down resistor function.

Pad_ PullConfigValue

Configure PAD pull-up/pull-down resistor.

Pad_WakeupEnableValue

Enable or disable pin wakeup function.

Pad_WakeupPolarityValue

Configure wakeup polarity.

Pad_PowerOrShutDownValue

Configure PAD power supply mode.

Pad_ControlSelectValue

Configure PAD mode.

Pad_WKDebounceConfig

Enable or disable PAD wakeup debounce function.

Pad_ClearWakeupINTPendingBit

Clear PAD wakeup interrupt flag bit.

Pad_WakeupInterruptValue

Inspect PAD wakeup interrupt status.

System_WakeUpInterruptValue

Inspect system wakeup interrupt status.

System_WakeUpDebounceTime

Configure wakeup debounce time of specified pin

System_WakeUpPinEnable

Enable system wakeup function of specified pin.

System_WakeUpPinDisable

Disable system wakeup function of specified pin.

alt

Pad_OutputControlValue

批注 [陈杨洋2]: 函数名更新

ek
Co
al
nti

de

nfi

8.1.1 Function Pad_Config
Table 8. 2 Function Pad_Config
Function Name

Pad_Config

Function Prototype

void Pad_Config(uint8_t Pin_Num, BOOL AON_PAD_Mode, BOOL AON_PAD_PwrOn,
BOOL AON_PAD_Pull, BOOL AON_PAD_E, BOOL AON_PAD_O)

Function Description

Configure operation mode, peripheral circuit of specified pin and its output voltage level

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

103

RTL8762C Peripheral Manual

in software mode.
Input Parameter 1

Pin_Num: Pin to be configured. Refer to setion of Pin_Num for more details.

Input Parameter 2

AON_PAD_Mode: This parameter is used to select pin mode, available values are
enumerated in PAD_Mode.
PAD_SW_MODE: Software Mode.
PAD_PINMUX_MODE: PINMUX Mode.

Input Parameter 3

AON_PAD_PwrOn: Configure power mode of pin, available values are enumerated in
PAD_PWR_Mode.
PAD_NOT_PWRON: Shut down power supply.

Re

PAD_IS_PWRON: Enable power supply.
Input Parameter 4

AON_PAD_Pull: Configure peripheral circuit of pin, available values are enumerated in
PAD_Pull_Mode.

alt

PAD_PULL_NONE: Both pull-up or pull-down resistors are disconnected.
PAD_PULL_UP: Pull-up resistor is connected internally.

ek

PAD_PULL_DOWN: Pull-down resistor is connected internally.
Input Parameter 5

AON_PAD_E: Enable or disable pin output in software mode, available values are
enumerated in PAD_OUTPUT_ENABLE_Mode.

PAD_OUT_ENABLE: Output enabled
Input Parameter 6

Co

PAD_OUT_DISABLE: Output disabled

AON_PAD_O: Configure pin output voltage level in software mode, a available values are

PAD_OUT_LOW: Low level

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

de

PAD_OUT_HIGH: High level

nfi

enumerated in PAD_OUTPUT_VAL.

Pin_Num: All optional pin values are as shown in Table 8. 3. Refer to specific pin manual for more details.
Table 8. 3 Values of Pin_Num
Pin_Num

Description

P0_0

Selected pad 0

P0_1

Selected pad 1

P0_2

Selected pad 2
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

104

RTL8762C Peripheral Manual

Selected pad 3

P0_4

Selected pad 4

P0_5

Selected pad 5

P0_6

Selected pad 6

P0_7

Selected pad 7

P1_0

Selected pad 8

P1_1

Selected pad 9

P1_2

Selected pad 10

P1_3

Selected pad 11

P1_4

Selected pad 12

P1_5

Selected pad 13

P1_6

Selected pad 14

P1_7

Selected pad 15

P2_0

Selected pad 16

P2_1

Selected pad 17

P2_2

Selected pad 18

P2_3

Selected pad 19

P2_4

Selected pad 20

P2_5

Selected pad 21

P2_6

Selected pad 22 (MIC_N)

P2_7

Selected pad 23 (MIC_P)

P3_0

Selected pad 24

P3_1

Selected pad 25

P3_2

Selected pad 26

P3_3

Selected pad 27

P3_4

Selected pad 28

P3_5

Selected pad 29

P3_6

Selected pad 30

P4_0

Selected pad 32

P4_1

Selected pad 33

P4_2

Selected pad 34

P4_3

Selected pad 35

H_0

Selected pad 36 (MICBIAS)

ek

alt

Re

P0_3

Co
al
nti

de

nfi

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

105

RTL8762C Peripheral Manual

H_1

Selected pad 37 (32K_XI)

H_2

Selected pad 38 (32K_XO)

Examples:
/* Configure P0_5 for specified mode */
Pad_Config(P0_5,PAD_PINMUX_MODE,PAD_IS_PWRON,PAD_PULL_NONE, PAD_OUT_ENABLE, PAD_OUT_HIGH);

8.1.2 Function Pad_OutputEnableValue
Table8. 4Function Pad_OutputEnableValue

Pad_OutputEnableValue

Function

void Pad_OutputEnableValue(uint8_t Pin_Num, uint8_t value)

Re

Function Name

Prototype

Enable or disable the pad output function.

alt

Function
Description

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

AON_PAD_E: Enable or disable pin output in software mode, available values are enumerated in

ek

Input Parameter 1

PAD_OUTPUT_ENABLE_Mode.

PAD_OUT_ENABLE: Output enabled

None

Return Value

None

Prerequisite

None

Functions Called

None

8.1.3 Function Pad_OutputControlValue
Function Name

Pad_OutputControlValue

Function

void Pad_OutputControlValue (uint8_t Pin_Num, uint8_t value)

Prototype
Function

al
nti

Table8. 5Function Pad_OutputControlValue

de

nfi

Output Parameter

Co

PAD_OUT_DISABLE: Output disabled

Configure the pad output voltage level.

Description
Input Parameter 1

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

AON_PAD_O: Configure pin output voltage level in software mode, available values are
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

106

RTL8762C Peripheral Manual

enumerated in PAD_OUTPUT_VAL.
PAD_OUT_LOW: output low level.
PAD_OUT_HIGH: output high level.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples: Pad_OutputControlValue(P0_1, PAD_OUT_LOW );

Re

8.1.4 Function Pad_PullEnableValue

alt

Table8. 6Function Pad_PullEnableValue

Pad_PullEnableValue

Function

void Pad_PullEnableValue (uint8_t Pin_Num, uint8_t value)

ek

Function Name

Prototype
Function

Enable or disable PAD pull-up/pull-down function.

Co

Description
Input Parameter 1

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

value:This parameter specifies the pad pull Function , can be the following value

DISABLE: Disable PAD pull-up/pull-down function

None

Prerequisite

None

Functions Called

None

Examples: Pad_PullEnableValue(P0_1, ENABLE );

8.1.5 Function Pad_PullUpOrDownValue
Table8. 7Function Pad_PullUpOrDownValue

Function Name

Pad_PullUpOrDownValue

Function

void Pad_PullUpOrDownValue (uint8_t Pin_Num, uint8_t value)

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

107

al
nti

None

Return Value

de

Output Parameter

nfi

ENABLE: Enable PAD pull-up/pull-down function

RTL8762C Peripheral Manual

Prototype
Function

PAD pull-up/pull-down function selection.

Description
Input Parameter 1

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

value:Configure peripheral circuit of pin, available values are enumerated in PAD_Pull_Mode.
true: Configure Pull-down resistor.

false: Configure Pull-up resistor.
None

Return Value

None

Prerequisite

None

Functions Called

None

Examples: Pad_PullUpOrDownValue(P0_1, 1);

alt

Re

Output Parameter

批注 [陈杨洋3]: 函数名更新

8.1.6 Function Pad_ PullConfigValue

ek

Table8. 8Function Pad_PullUpResistanceConfig

Pad_PullUpResistanceConfig

Function

void Pad_PullUpResistanceConfig (uint8_t Pin_Num,PAD_PULL_VAL value)

Prototype
Function

Configuring the resistance for pull-up resistor.

Co

Function Name

nfi

Description

Pin_Num: Pin value to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

value: Configure resistance, available values are enumerated in PAD_OUTPUT_VAL.
PAD_WEAK_PULL: PAD weakly pull.
PAD_STRONG_PULL: PAD strongly pull.

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

de

Input Parameter 1

Examples:
Pad_PullUpResistanceConfig (P0_1, PAD_STRONG_PULL);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

108

RTL8762C Peripheral Manual

8.1.7 Function Pad_WakeupEnableValue
Table8. 9Function Pad_WakeupEnableValue

Function Name

Pad_WakeupEnableValue

Function

void Pad_WakeupEnableValue(uint8_t Pin_Num, uint8_t value)

Prototype
Function

Enable or disable pin wakeup function

Description
Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

value: Enable or disable wakeup function.

Re

Input Parameter 1

0: Disable.
1: Enable.

Return Value

None

Prerequisite

None

Functions Called

None

ek

None

alt

Output Parameter

Examples:

Co

/* Enable P0_2 wake up function*/
Pad_WakeupEnableValue (P0_2, 1);

Function Name

Pad_WakeupPolarityValue

Function

void Pad_WakeupPolarityValue(uint8_t Pin_Num, uint8_t value)

al
nti

Prototype
Function

de

Table8. 10Function Pad_WakeupPolarityValue

nfi

8.1.8 Function Pad_WakeupPolarityValue

Configure pin wakeup polarity.

Description
Input Parameter 1

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

Value: Configure wakeup polarity. Available values are enumerated in PAD_WAKEUP_POL_VAL
PAD_WAKEUP_POL_HIGH:High level wakeup
PAD_WAKEUP_POL_LOW:Low level wakeup

Output Parameter

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

109

RTL8762C Peripheral Manual

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Config P0_2 wake up polarity*/
Pad_ WakeupPolarityValue(P0_2, PAD_WAKEUP_POL_HIGH);

8.1.9 Function Pad_PowerOrShutDownValue

Re

Table8. 11 Function Pad_PowerOrShutDownValue

Function Name

Pad_PowerOrShutDownValue

Function

void Pad_PowerOrShutDownValue (uint8_t Pin_Num, uint8_t value)

Function

Configure pad power mode

ek

Description

alt

Prototype

Input Parameter 1

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

AON_PAD_PwrOn: This parameter is used to configure power mode of pin, available values are

PAD_NOT_PWRON: Shut down power supply.
PAD_IS_PWRON: Turn on power supply.

Return Value

None

Prerequisite

None

Functions Called

None

de

None

nfi

Output Parameter

Co

enumerated in _PAD_PWR_Mode.

Examples:

al
nti

/* Enable P0_2 power on function*/
Pad_PowerOrShutDownValue (P0_2, PAD_IS_PWRON);

8.1.10 Pad_ControlSelectValue
Table8. 12 Pad_ControlSelectValue

Function Name

Pad_ControlSelectValue

Function

void Pad_ControlSelectValue (uint8_t Pin_Num, uint8_t value)

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

110

RTL8762C Peripheral Manual

Prototype
Function

Cofigure pin mode.

Description
Input Parameter 1

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

value:used to configure pin mode, available values are enumerated in PAD_Mode:
PAD_SW_MODE: Software mode
PAD_PINMUX_MODE:PINMUX mode

None

Return Value

None

Prerequisite

None

Functions Called

None

/* Config P0_2 sw mode */
Pad_ControlSelectValue (P0_2, PAD_SW_MODE);

ek

alt

Examples:

Re

Output Parameter

8.1.11 Function Pad_WKDebounceConfig

Co

Table8. 13Function Pad_WKDebounceConfig

Function Name

Pad_WKDebounceConfig

Function

void Pad_WKDebounceConfig(uint8_t Pin_Num, uint8_t value)

nfi

Prototype
Function

Configure pin debounce function.

de

Description
Input Parameter 1

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

value: Enable or disable debounce function, available values are enumerated in

PAD_WK_DEBOUNCE_ENABLE: Enable
PAD_WK_DEBOUNCE_DISABLE: Diable

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

111

al
nti

_PAD_WAKEUP_DEBOUNCE_EN.

RTL8762C Peripheral Manual

/* Enable P0_2 debounce function */
Pad_WKDebounceConfig(P0_2, PAD_WK_DEBOUNCE_ENABLE);

8.1.12 Function System_WakeUpInterruptValue
Table8. 14Function System_WakeUpInterruptValue

Function Name

System_WakeUpInterruptValue

Function

uint8_t System_WakeUpInterruptValue(uint8_t Pin_Num)

Prototype

Re

Function

Inspect wake up interrupt status of the specific pin.

Description

Pin_Num: Pin to be inspected. Refer to related description of Pin_Num for more details.

Output Parameter

None

Return Value

Interrupt status of the specific pad.

Prerequisite

None

Functions Called

None

ek

alt

Input Parameter 1

Examples:

Uint8_t intvalue= System_WakeUpInterruptValue(P0_2);

Co

/* Read P0_2 interrupt value*/

Table8. 15 Function Pad_WakeupInterruptValue

Pad_WakeupInterruptValue

Function

Uint8_t Pad_WakeupInterruptValue(uint8_t Pin_Num)

Function

Inspect interrupt status of specified pin.

Description

al
nti

Prototype

de

Function Name

nfi

8.1.13 Function Pad_WakeupInterruptValue

Input Parameter 1

Pin_Num: Pin to be inspected. Refer to related description of Pin_Num for more details.

Output Parameter

None

Return Value

Interrupt status.

Prerequisite

None

Functions Called

None

Examples:
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

112

RTL8762C Peripheral Manual

/* Read P0_2 interrupt value*/
Uint8_t intvalue= Pad_WakeupInterruptValue (P0_2);

8.1.14 Function Pad_ClearWakeupINTPendingBit
Table8. 16Function Pad_ClearWakeupINTPendingBit

Function Name

Pad_ClearWakeupINTPendingBit

Function

void Pad_ClearWakeupINTPendingBit(uint8_t Pin_Num)

Prototype

Re

Function

Clear wakeup flag bit of specified pin.

Description

Pin_Num: Pin to be operated. Refer to related description of Pin_Num for more details.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Input Parameter 1

Examples:

Co

/* Clear P0_2 wake up interrupt flag bit*/
Pad_ClearWakeupINTPendingBit (P0_2);

Table8. 17 System_WakeUpDebounceTime

System_WakeUpDebounceTime

Function

void System_WakeUpDebounceTime(uint8_t time)

Function

Configure Pad wakeup debounce time

Description

al
nti

Prototype

de

Function Name

nfi

8.1.15 Function System_WakeUpDebounceTime

Input Parameter 1

time: configure PAD wakeup debounce time in millisecond, ranging from 1 to 64.

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

113

RTL8762C Peripheral Manual

Functions Called

None

Examples:
/* Configure all pin wake up debounce time */
System_WakeUpDebounceTime(10);//10ms

8.1.16 Function System_WakeUpPinEnable
Table8. 18 System_WakeUp_Pin_Enable

System_WakeUp_Pin_Enable

Function

void System_WakeUp_Pin_Enable(uint8_t Pin_Num, uint8_t Polarity, uint8_t DebounceEn)

Re

Function Name

Prototype
Function

Enable the system wake up function of the specified pin

alt

Description

Pin_Num: Pin value to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

Polarity: system wake up level polarity,This parameter can be 0 or 1

ek

Input Parameter 1

0:high level active
1:low level active

DebounceEn:Enable or disable PAD debounce function

Co

Input Parameter 3

1: Enable
0: Disable

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Configure P0_2 for low voltage wake up */
System_WakeUpPinEnable(P0_2, 1, 1);

8.1.17 Function System_WakeUpPinDisable
Table8. 19 System_WakeUpPinDisable

Function Name

System_WakeUpPinDisable

Function

void System_WakeUpPinDisable (uint8_t Pin_Num)

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

114

al
nti

de

None

nfi

Output Parameter

RTL8762C Peripheral Manual

Prototype
Function

Disable system wakeup function of specified pin

Description
Input Parameter

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:

System_WakeUpPinDisable (P0_2);

ek

alt

Re

/* Disable P0_2 for wake up system */

Co
al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

115

RTL8762C Peripheral Manual

9 Pin Multiplexing (PINMUX)
9. 1 PINMUX Library Functions
All PINMUX library functions are enumerated in Table 9. 1.
Table 9. 1 PINMUX Library Functions
Function Name

Description
Configure function of the pin specified to use

Pinmux_ Deinit

Set specified pins to idle mode (IDLE_MODE)

Pinmux_Reset

Set all pins to idle mode (IDLE_MODE)

9. 1. 1 Function Pinmux_Config

ek

Table 9. 2 Function Pinmux_Config

alt

Re

Pinmux_Config

Pinmux_Config

Function Prototype

void Pinmux_Config(uint8_t Pin_Num, uint8_t Pin_Func)

Function Description

Configure function of specified pin

Input Parameter 1

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Input Parameter 2

Pin_Func: This parameter is used to set specific functions of target pin.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Function Name

Table 9. 3 Values of Pin_Func
Pin_Func

Description

IDLE

Idle mode

HCI_UART_TX

HCI UART transmission

HCI_UART_RX

HCI UART reception

HCI_UART_CTS

HCI UART sending permitted

HCI_UART_RTS

HCI UART sending requested

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

116

al
nti

de

nfi

Pin_Func: All optional functions are as shown in Table 9. 3.

RTL8762C Peripheral Manual

I2C0_CLK

Clock line of I2C0

I2C0_DAT

Data line of I2C0

I2C1_CLK

Clock line of I2C1

I2C1_DAT

Data line of I2C1

PWM2_P

PWM2 complementary output channel P

PWM2_N

PWM2 complementary output channel N

PWM3_P

PWM3 complementary output channel P

PWM3_N

PWM3 complementary output channel N

PWM0

PWM Channel 0 output

PWM2

PWM4
PWM5

PWM Channel 1 output
PWM Channel 2 output
PWM Channel 3 output

alt

PWM3

Re

PWM1

PWM Channel 4 output
PWM Channel 5 output

ek

PWM Channel 6 output

PWM7

PWM Channel 7 output

qdec_phase_a_x

Axis X of QDEC channel a

qdec_phase_b_x

Axis X of QDEC channel b

qdec_phase_a_y

Axis Y of QDEC channel a

qdec_phase_b_y

Axis Y of QDEC channel b

qdec_phase_a_z

Axis Z of QDEC channel a

qdec_phase_b_z

Axis Z of QDEC channel b

UART2_TX

UART2 transmission

UART2_RX

UART2 reception

UART1_TX

UART1 transmission

UART1_RX

UART1 reception

UART1_CTS

UART1 transmmision permitted

UART1_RTS

UART1 transmmision requested

IRDA_TX

IR transmmision

IRDA_RX

IR reception

UART0_TX

UART0 transmmision

UART0_RX

UART0 reception

UART0_CTS

UART0 transmmision permitted

Co

PWM6

117

al
nti

All Rights Reserved.

de

nfi

Copyright 2018 Realtek Semiconductor Corporation.

RTL8762C Peripheral Manual

UART0_RTS

UART0 transmmision requested

SPI1_SS_N_0_MASTER

SPI1 chip select signal channel 0 in master mode

SPI1_SS_N_1_MASTER

SPI1 chip select signal channel 1 in master mode

SPI1_SS_N_2_MASTER

SPI1 chip select signal channel 2 in master mode

SPI1_CLK_MASTER

SPI1 clock line in master mode

SPI1_MO_MASTER

SPI1 MOSI line in master mode

SPI1_MI_MASTER

SPI1 MISO line in master mode

SPI0_SS_N_0_SLAVE

SPI0 chip select signal line in slave mode

SPI0_CLK_SLAVE

SPI0 clock line in slave mode

SPI0_SI_SLAVE

SPI0_CLK_MASTER
SPI0_MO_MASTER

SPI0 MISO line in slave mode
SPI0 MOSI line in slave mode
SPI0 chip select signal line in master mode

alt

SPI0_SS_N_0_MASTER

Re

SPI0_SO_SLAVE

SPI0 clock line in master mode
SPI0 MOSI line in master mode

ek

SPI0 MISO line in master mode

SPI2W_DATA_MASTER

Data line of two-wire/three-wire SPI in master mode

SPI2W_CLK_MASTER

Clock line of two-wire/three-wire SPI in master mode

SPI2W_CS_MASTER

Chip select line of two-wire/three-wire SPI in master
mode

Co

SPI0_MI_MASTER

Clock line of SWD

SWD_DIO

Data line of SWD

KEY_COL_0

Column 0 of Keyscan

KEY_COL_1

Column 1 of Keyscan

KEY_COL_2

Column 2 of Keyscan

KEY_COL_3

Column 3 of Keyscan

KEY_COL_4

Column 4 of Keyscan

KEY_COL_5

Column 5 of Keyscan

KEY_COL_6

Column 6 of Keyscan

KEY_COL_7

Column 7 of Keyscan

KEY_COL_8

Column 8 of Keyscan

KEY_COL_9

Column 9 of Keyscan

KEY_COL_10

Column 10 of Keyscan

KEY_COL_11

Column 11 of Keyscan

118

al
nti

All Rights Reserved.

de

Copyright 2018 Realtek Semiconductor Corporation.

nfi

SWD_CLK

RTL8762C Peripheral Manual

KEY_COL_12

Column 12 of Keyscan

KEY_COL_13

Column 13 of Keyscan

KEY_COL_14

Column 14 of Keyscan

KEY_COL_15

Column 15 of Keyscan

KEY_COL_16

Column 16 of Keyscan

KEY_COL_17

Column 17 of Keyscan

KEY_COL_18

Column 18 of Keyscan

KEY_COL_19

Column 19 of Keyscan

KEY_ROW_0

Row 0 of Keyscan

KEY_ROW_2

KEY_ROW_4
KEY_ROW_5

Row 1 of Keyscan
Row 2 of Keyscan
Row 3 of Keyscan

alt

KEY_ROW_3

Re

KEY_ROW_1

Row 4 of Keyscan
Row 5 of Keyscan

ek

Row 6 of Keyscan

KEY_ROW_7

Row 7 of Keyscan

KEY_ROW_8

Row 8 of Keyscan

KEY_ROW_9

Row 8 of Keyscan

KEY_ROW_10

Row 10 of Keyscan

KEY_ROW_11

Row 11 of Keyscan

DWGPIO

GPIO function

LRC_SPORT1

I2S1 Left/Right(Word select) line

BCLK_SPORT1

I2S1 BIT Clock line

ADCDAT_SPORT1

I2S1 Data input line

DACDAT_SPORT1

I2S1 Data output line

DMIC1_CLK

Clock line of Dmic 1

DMIC1_DAT

Data line of Dmic 1

LRC_I_CODEC_SLAVE

Codec I2S Slave Left/Right(Word select) line

BCLK_I_CODEC_SLAVE

I2S BIT clock line

SDI_CODEC_SLAVE

CODEC I2S input

SDO_CODEC_SLAVE

CODEC I2S output

LRC_I_PCM

PCM Left/Right(Word select) line

BCLK_I_PCM

PCM BIT clock line

Co

KEY_ROW_6

al
nti

119

de

All Rights Reserved.

nfi

Copyright 2018 Realtek Semiconductor Corporation.

RTL8762C Peripheral Manual

UART2_CTS

UART2 transmission permitted

UART2_RTS

UART2 transmission requested

BT_COEX_I_0

Reserved

BT_COEX_I_1

Reserved

BT_COEX_I_2

Reserved

BT_COEX_I_3

Reserved

BT_COEX_O_0

Reserved

BT_COEX_O_1

Reserved

BT_COEX_O_2

Reserved

Re

BT_COEX_O_3

Reserved

PTA_I2C_CLK_SLAVE

Reserved

PTA_I2C_DAT_SLAVE

alt

Reserved

PTA_I2C_INT_OUT

Reserved

EN_EXPA

Reserved

ek

Reserved

ANT_SW0

Reserved

ANT_SW1

Reserved

ANT_SW2

Reserved

ANT_SW3

Reserved

LRC_SPORT0

I2S0 Left/Right(Word select) line

BCLK_SPORT0

I2S0 bit clock line

ADCDAT_SPORT0

I2S0 input line

DACDAT_SPORT0

I2S0 output line

MCLK

I2S MCLK output line

Co

EN_EXLNA

al
nti

de

nfi

Examples:
/* Configure P0_2 for GPIO mode */
Pinmux_Config(P0_2, DWGPIO);

9. 1. 2 Function Pinmux_Deinit
Table 9. 4 Function Pinmux_Deinit
Function Name

Pinmux_Deinit

Function Prototype

void Pinmux_Deinit(uint8_t Pin_Num)

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

120

RTL8762C Peripheral Manual

Function Description

Set specified pin to idle mode (IDLE_MODE).

Input Parameter

Pin_Num: Pin to be configured. Refer to related description of Pin_Num for more details.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Configure P0_2 to idle mode */
Pinmux_Deinit (P0_2);

Re

9. 1. 3 Function Pinmux_Reset

alt

Table 9. 5 Function Pinmux_ Reset
Pinmux_Reset

Function Prototype

void Pinmux_Reset(void)

Function Description

Set all pins to idle mode (IDLE_MODE).

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

Function Name

Co
nfi

Examples:
/* Configure all pin for idle mode */

de

Pinmux_Reset ();

al
nti
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

121

RTL8762C Peripheral Manual

10 Low power comparator(LPC)
10. 1 LPC Register Structures
typedef struct
{
__IO uint32_t LPC_CR0;
__IO uint32_t LPC_SR;
__IO uint32_t LPC_CMP_LOAD;

Re

__IO uint32_t LPC_CMP_CNT;

__IO uint32_t LPC_SR_IN_SLEEP_MODE;
} LPC_TypeDef;

Table 10. 1 LPC Registers

Description

ek

Register

alt

All LPC registers are enumerated in Table 10. 1.

Control register 0

LPC_SR

Status register

LPC_CMP_LOAD

Comparator loader register

LPC_CMP_CNT

Comparator counter register

LPC_SR_IN_SLEEP_MODE

Status register in sleep mode

Co

LPC_CR0

All LPC library functions are enumerated in Table 10. 2.
Table 10. 2 LPC Library Functions
Description

al
nti

Function Name

de

nfi

10. 2 LPC LIBRARY FUNCTIONS

LPC_Init

Initialize LPC register based on parameters specified in LPC_InitStruct.

LPC_StructInit

Set each parameter in LPC_InitStruct to the default value

LPC_Cmd

Enable or disable LPC

LPC_CounterCmd

Enable or disable LPC counter

LPC_CounterReset

Reset LPC counter

LPC_WriteComparator

Configure LPC comparator value

LPC_ReadComparator

Read LPC comparator value

LPC_ReadCounter

Read LPC counter value
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

122

RTL8762C Peripheral Manual

LPC_INTConfig

Enable or disable specified LPC interrupt

LPC_ClearINTPendingBit

Clear specified suspended interrupt.

LPC_GetINTStatus

Acquire specified LPC interrupt status.

10. 2. 1 Function LPC_Init
Table 10. 3 Function LPC_Init

LPC_Init

Function Prototype

void LPC_Init(LPC_InitTypeDef *LPC_InitStruct)

Function Description

Initialize LPC register based on parameters specified in LPC_InitStruct.

Input Parameter

LPC_InitStruct: A pointer points to structure LPC_InitTypeDef, which contains

Re

Function Name

configuration information about peripheral LPC.

Return Value

None

Prerequisite

None

Functions Called

None

ek

None

alt

Output Parameter

LPC_InitTypeDef structure
{
uint16_t LPC_Channel;

/*!< Specifies the input pin. */

uint32_t LPC_Edge;

Co

typedef struct

/*!< Specifies the comparator output edge */

nfi

uint32_t LPC_Threshold;

/*!< Specifies the threshold value of comparator voltage. */

} LPC_InitTypeDef;

Table 10. 4 Values of LPC_Channel

LPC_Channel

Description

Select P2_0

LPC_CHANNEL_P2_1

Select P2_1

LPC_CHANNEL_P2_2

Select P2_2

LPC_CHANNEL_P2_3

Select P2_3

LPC_CHANNEL_P2_4

Select P2_4

LPC_CHANNEL_P2_5

Select P2_5

LPC_CHANNEL_P2_6

Select P2_6

LPC_CHANNEL_P2_7

Select P2_7

al
nti

LPC_CHANNEL_P2_0

de

LPC_Channel: Configure LPC channel. Table 10. 4 lists the available values of this parameter.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

123

RTL8762C Peripheral Manual

LPC_CHANNEL_VBAT

Select Vbat

LPC_Edge:Set the output polarity of the LPC comparator. Table 10. 5 lists the available values of this parameter.
Table 10. 5 Vaule of LPC_Edge

LPC_Edge

Description

LPC_Vin_Below_Vth

Trigger when channel voltage is lower than threshold

LPC_Vin_Over_Vth

Trigger when channel voltage is higher than threshold

LPC_Threshold:Set the voltage threshold of the LPC comparator. Table 10. 6 lists the available values of this
parameter.
Table 10. 6 Value of LPC_Threshold

LPC_80_mV

LPC_240_mV
LPC_320_mV

Description

The voltage threshold is 80mv
The voltage threshold is 160mv

alt

LPC_160_mV

Re

LPC_Threshold

The voltage threshold is 240mv
The voltage threshold is 320mv

ek

The voltage threshold is 400mv

LPC_480_mV

The voltage threshold is 480mv

LPC_560_mV

The voltage threshold is 560mv

LPC_640_mV

The voltage threshold is 640mv

LPC_680_mV

The voltage threshold is 680mv

LPC_720_mV

The voltage threshold is 720mv

LPC_760_mV

The voltage threshold is 760mv

LPC_800_mV

The voltage threshold is 800mv

LPC_840_mV

The voltage threshold is 840mv

LPC_880_mV

The voltage threshold is 880mv

LPC_920_mV

The voltage threshold is 920mv

LPC_960_mV

The voltage threshold is 960mv

LPC_1000_mV

The voltage threshold is 100mv

LPC_1040_mV

The voltage threshold is 1040mv

LPC_1080_mV

The voltage threshold is 1080mv

LPC_1120_mV

The voltage threshold is 1120mv

LPC_1160_mV

The voltage threshold is 1160mv

LPC_1200_mV

The voltage threshold is 1200mv

LPC_1240_mV

The voltage threshold is 1240mv

Co

LPC_400_mV

All Rights Reserved.

124

al
nti

de

nfi

Copyright 2018 Realtek Semiconductor Corporation.

RTL8762C Peripheral Manual

LPC_1280_mV

The voltage threshold is 1280mv

LPC_1320_mV

The voltage threshold is 1320mv

LPC_1360_mV

The voltage threshold is 1360mv

LPC_1400_mV

The voltage threshold is 1400mv

LPC_1440_mV

The voltage threshold is 1440mv

LPC_1480_mV

The voltage threshold is 1480mv

LPC_1520_mV

The voltage threshold is 1520mv

LPC_1560_mV

The voltage threshold is 1560mv

LPC_1600_mV

The voltage threshold is 1600mv

LPC_1680_mV

LPC_1760_mV
LPC_1800_mV

The voltage threshold is 1640mv
The voltage threshold is 1680mv
The voltage threshold is 1720mv

alt

LPC_1720_mV

Re

LPC_1640_mV

The voltage threshold is 1760mv
The voltage threshold is 1800mv

ek

The voltage threshold is 1840mv

LPC_1880_mV

The voltage threshold is 1880mv

LPC_1920_mV

The voltage threshold is 1920mv

LPC_1960_mV

The voltage threshold is 1960mv

LPC_2000_mV

The voltage threshold is 2000mv

LPC_2040_mV

The voltage threshold is 2040mv

LPC_2080_mV

The voltage threshold is 2080mv

LPC_2120_mV

The voltage threshold is 2120mv

LPC_2160_mV

The voltage threshold is 2160mv

LPC_2200_mV

The voltage threshold is 2200mv

LPC_2240_mV

The voltage threshold is 2240mv

LPC_2280_mV

The voltage threshold is 2280mv

LPC_2320_mV

The voltage threshold is 2320mv

LPC_2360_mV

The voltage threshold is 2360mv

LPC_2400_mV

The voltage threshold is 2400mv

LPC_2440_mV

The voltage threshold is 2440mv

LPC_2480_mV

The voltage threshold is 2480mv

LPC_2520_mV

The voltage threshold is 2520mv

LPC_2560_mV

The voltage threshold is 2560mv

Co

LPC_1840_mV

All Rights Reserved.

125

al
nti

de

nfi

Copyright 2018 Realtek Semiconductor Corporation.

RTL8762C Peripheral Manual

LPC_2640_mV

The voltage threshold is 2640mv

LPC_2720_mV

The voltage threshold is 2720mv

LPC_2800_mV

The voltage threshold is 2800mv

LPC_2880_mV

The voltage threshold is 2880mv

LPC_2960_mV

The voltage threshold is 2960mv

LPC_3040_mV

The voltage threshold is 3040mv

LPC_3120_mV

The voltage threshold is 3120mv

LPC_3200_mV

The voltage threshold is 3200mv

Re

Examples:
/* Initialize LPC */
LPC_InitTypeDef LPC_InitStruct;

= LPC_CAPTURE_PIN;

LPC_InitStruct.LPC_Edge

= LPC_Vin_Below_Vth;

LPC_InitStruct.LPC_Threshold

= LPC_1600_mV;

LPC_Init(&LPC_InitStruct);

ek

alt

LPC_InitStruct.LPC_Channel

10. 2. 2 Function LPC_StructInit

Co

Table 10. 7 Function LPC_StructInit

LPC_StructInit

Function Prototype

LPC_StructInit(LPC_InitTypeDef* LPC_InitStruct)

Function Description

Set each parameter in LPC_InitStruct to the default value

Input Parameter

LPC_InitStruct: A pointer points to structure LPC_InitTypeDef, which contains

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

None

Examples:
/* Initialize LPC */
LPC_InitTypeDef

de

configuration information about peripheral LPC.
Output Parameter

nfi

Function Name

LPC_InitStruct;

LPC_StructInit(&LPC_InitStruct);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

126

RTL8762C Peripheral Manual

10. 2. 3 Function LPC_Cmd
Table 10. 8 Function LPC_Cmd
Function Name

LPC_Cmd

Function Prototype

void LPC_Cmd(FunctionalState NewState)

Function Description

Enable or disable LPC

Input Parameter

NewState: New state of LPC channel. This parameter can be:
ENABLE: enable LPC channel
DISABLE: disable LPC channel

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

Examples:

ek

/* Enable LPC */
LPC_Cmd(ENABLE);

Co

10. 2. 4 Function LPC_CounterCmd
Table 10. 9 Function LPC_CounterCmd

LPC_CounterCmd

Function Prototype

void LPC_CounterCmd (FunctionalState NewState)

Function Description

Enable or disable LPC counter

Input Parameter

NewState: New state of LPC channel. This parameter can be:

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

DISABLE: disable LPC channel

de

ENABLE: enable LPC channel

nfi

Function Name

Examples:
/* Start LPC counter */
LPC_CounterCmd(ENABLE);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

127

RTL8762C Peripheral Manual

10. 2. 5 Function LPC_CounterReset
Table 10. 10 Function LPC_CounterReset

LPC_CounterReset

Function Prototype

void LPC_CounterReset(void)

Function Description

Reset LPC counter

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Re

Function Name

alt

Examples:
/* Reset LPC counter */
LPC_CounterReset();

ek

10. 2. 6 Function LPC_WriteComparator

Co

Table 10. 11 Function LPC_WriteComparator

LPC_WriteComparator

Function Prototype

void LPC_WriteComparator(uint32_t data)

Function Description

Configure LPC comparator value

Input Parameter

data: the new comparator value, which ranges from 0x0 to 0xFFF.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

Examples:
/*Configure LPC comparator value */
LPC_WriteComparator(0x200);

10. 2. 7 Function LPC_ReadComparator
Table 10. 12 Function LPC_ReadComparator
Function Name

nfi

Function Name

LPC_ReadComparator
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

128

RTL8762C Peripheral Manual

Function Prototype

uint16_t LPC_ReadComparator(void)

Function Description

Read LPC comparator value

Input Parameter

None

Output Parameter

None

Return Value

data: the comparator value, which ranges from 0x0 to 0xFFF.

Prerequisite

None

Functions Called

None

Examples:
uint16_t value = 0;

Re

/* Get LPC comparator value */
value = LPC_ReadComparator();

Table 10. 13 Function LPC_ReadCounter

ek

alt

10. 2. 8 Function LPC_ReadCounter
LPC_ReadComparator

Function Prototype

uint16_t LPC_ReadCounter (void)

Function Description

Read LPC counter value

Input Parameter

None

Output Parameter

None

Return Value

data: the counter value, which ranges from 0x0 to 0xFFF.

Prerequisite

None

Functions Called

None

Co

Function Name

de

nfi

Examples:
uint16_t value = 0;
/* Get LPC counter value */

al
nti

value = LPC_ReadCounter();

10. 2. 9 Function LPC_INTConfig
Table 10. 14 Function LPC_INTConfig
Function Name

LPC_INTConfig

Function Prototype

void LPC_INTConfig(uint32_t LPC_INT, FunctionalState NewState)

Function Description

Enable or disable specified LPC interrupt

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

129

RTL8762C Peripheral Manual

Input Parameter 1

LPC_INT: LPC interrupt source need to be enabled or disabled. Refer to related
description in Table 10. 15 for more details.

Input Parameter 2

NewState: new state of interrupt
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

LPC_INT: Permitted LPC interrupt types are as shown in Table 10. 15. Mutiple interrupts can be selected as values

Re

of the parameter at one time by using operator "|".
Table 10. 15 Value of LPC_INT

LPC_INT_VOLTAGE_COMP

The interrupt is triggered when the detected voltage meets the output polarity of
the LPC comparator.

ek

LPC_INT_COUNT_COMP

Description

alt

LPC_INT

The interrupt is triggered when the counter data equals to the comparator data,.

Examples:

/* Enable voltage detection interrupt.If Vin < Vth, cause this interrupt */

10. 2. 10 Function LPC_ClearINTPendingBit

Co

LPC_INTConfig(LPC_INT_VOLTAGE_COMP, ENABLE);

nfi

Table 10. 16 Function LPC_ClearINTPendingBit

LPC_ClearINTPendingBit

Function Prototype

void LPC_INTConfig(uint32_t LPC_INT, FunctionalState NewState)

Function Description

Clear specified suspended interrupt.

Input Parameter

LPC_INT: LPC Interrupt flag to be cleared. Refer to related description of Table 10. 17 for

al
nti

more details.
Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

de

Function Name

LPC_INT: The Permitted LPC interruption type is shown as shown in Table 10. 17.
Table 10. 17 Value of LPC_INT

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

130

RTL8762C Peripheral Manual

LPC_INT

Description

LPC_INT_COUNT_COMP

The interrupt triggered when the counter data equals to the comparator data.

Examples:
/* Clear comparator interrupt */
LPC_ClearINTPendingBit(LPC_INT_COUNT_COMP);

10. 2. 11 Function LPC_GetINTStatus
Table 10. 18 Function LPC_GetINTStatus

LPC_GetINTStatus

Function Prototype

ITStatus LPC_GetINTStatus(uint32_t LPC_INT)

Function Description

Acquire specified LPC interrupt status.

Input Parameter

LPC_INT : the specified interrupt.

Output Parameter

None

Return Value

New state (SET OR RESET) of the interrupt specified by LPC .

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Name

/* Get LPC the specified interrupt status */
ITStatus

LPC_Status = RESET;

LPC_Status = LPC_GetINTStatus(LPC_INT_COUNT_COMP);

Co

Examples:

al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

131

RTL8762C Peripheral Manual

11 Real-Time Clock (RTC)
11. 1 RTC Register Structure
typedef struct
{
__IO uint32_t CR0;
__IO uint32_t INT_MASK;

Re

__IO uint32_t INT_SR;
__IO uint32_t PRESCALER;
__IO uint32_t COMP0;
__IO uint32_t COMP1;
__IO uint32_t COMP3;
__I

uint32_t CNT;

ek

alt

__IO uint32_t COMP2;

} RTC_TypeDef;

All RTC registers are enumerated in Table 11. 1.
Table 11. 1 RTC Registers

Co

Register

Description

Interrupt mask register

INT_SR

Interrupt status register

PRESCALER

Prescaler register

COMP0

Comparator 0 register

COMP1

Comparator 1 register

COMP2

Comparator 2 register

COMP3

Comparator 3 register

CNT

Counter register

al
nti

INT_MASK

de

Control Register 0

nfi

CR0

11. 2 RTC Library Functions
All RTC library functions are enumerated in Table 11. 2.
Table 11. 2 RTC Library Functions
Function Name

Description
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

132

RTL8762C Peripheral Manual

Reset RTC.

RTC_SetPrescaler

Configure frequency division factor of RTC.

RTC_SetComp

Configure RTC comparator channel and value.

RTC_RunCmd

Start or stop RTC peripheral.

RTC_MaskINTConfig

Mask or unmask the specified interrupt.

RTC_CompINTConfig

Enabe or disable comparison interrupt of specified RTC channel.

RTC_TickINTConfig

Enable or disable RTC tick interrupt.

RTC_GetINTStatus

Get specified interrupt status.

RTC_SystemWakeupConfig

Enable or disable RTC system wakeup function.

RTC_GetCounter

Get RTC current counter value.

RTC_ResetCounter

Reset RTC counter.

RTC_GetComp

Get value from specified RTC channel.

RTC_ClearCompINT

Clear comparison interrupt of specified RTC channel.

RTC_ClearOverFlowINT

Clear overflow interrupt.

RTC_ClearTickINT

Clear tick interrupt.

RTC_SleepModeClkConfig

Configure clock source in sleep mode.

ek

alt

Re

RTC_DeInit

Co

11. 2. 1 Function RTC_DeInit
Table 11. 3 Function RTC_DeInit

Function Prototype

void RTC_DeInit(void)

Function Description

Reset RTC peripheral.

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

RTC_DeInit

nfi

Function Name

Examples:
/* Reset RTC */
RTC_DeInit ();

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

133

RTL8762C Peripheral Manual

11. 2. 2 Function RTC_SetPrescaler
Table 11. 4 Function RTC_SetPrescaler
Function Name

RTC_SetPrescaler

Function Prototype

void RTC_SetPrescaler(uint32_t PrescaleValue)

Function Description

Set frequency division factor of RTC.

Input Parameter

PrescaleValue:Prescaler value ranges from 0x00 to 0xfff.
counter frequency(Hz) = RTC clock frequency/(𝑃𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑉𝑎𝑙𝑢𝑒 + 1)
None

Return Value

None

Prerequisite

This function is only permitted to be called when RTC is stopped.

Functions Called

None

Examples:
/* Configure RTC prescaler */
RTC_ SetPrescaler (0);

ek

alt

Re

Output Parameter

11. 2. 3 Function RTC_SetComp

Co

Table 11. 5 Function RTC_SetComp

RTC_SetComp

Function Prototype

void RTC_SetComp(uint8_t index, uint32_t value)

Function Description

void RTC_SetComp(uint8_t index, uint32_t value)

Input Parameter 1

index: Index number of comparator channel, which can be set to 0 ~ 3.
0: Comparator 0
1: Comparator 1
2: Comparator 2
3: Comparator 3

Input Parameter 2

vaule: comparator value to be set, ranging from 0x00 to 0xffffff.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Configure RTC comparator 0 */
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

134

al
nti

de

nfi

Function Name

RTL8762C Peripheral Manual

RTC_SetCOMPValue(0, 32768);

11. 2. 4 Function RTC_RunCmd
Table 11. 6 Function RTC_RunCmd
Function Name

RTC_RunCmd

Function Prototype

void RTC_RunCmd(FunctionalState NewState)

Function Description

Start or stop RTC peripheral.

Input Parameter

NewState: New state of RTC peripheral. This parameter can be:

Re

ENABLE: Start RTC.

DISABLE: Stop RTC.

None

Prerequisite

None

Functions Called

None

ek

None

Return Value

alt

Output Parameter

Examples:
/* Start RTC */

11. 2. 5 Function RTC_MaskINTConfig

Co

RTC_RunCmd(ENABLE);

nfi

Table 11. 7 Function RTC_MaskINTConfig

RTC_MaskINTConfig

Function Prototype

void RTC_MaskINTConfig(uint32_t RTC_INT, FunctionalState NewState)

Function Description

Mask or unmask the specified RTC interrupt.

Input Parameter 1

RTC_INT: RTC interrupt source need to be masked or unmasked. Refer to related

al
nti

description in Table 11. 8 for more details.

de

Function Name

Input Parameter 2

NewState: New state of interrupt. This parameter can be ENALBE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

RTC_INT: Permitted RTC interrupt types are as shown in Table 11. 8. Mutiple interrupts can be selected at one time by
using operator "|".
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

135

RTL8762C Peripheral Manual

Table 11. 8 Values of RTC_INT
RTC_INT

Description

RTC_INT_TICK

Tick interrupt

RTC_INT_OVF

RTC counter overflow interrupt

RTC_INT_CMP0

Comparator Channel 0 count interrupt

RTC_INT_CMP1

Comparator Channel 1 count interrupt

RTC_INT_CMP2

Comparator Channel 2 count interrupt

RTC_INT_CMP3

Comparator Channel 3 count interrupt

Examples:

Re

/* Unmask RTC overflow interrupt */

RTC_MaskINTConfig(RTC_INT_OVF, DISABLE);

alt

11. 2. 6 Function RTC_CompINTConfig

ek

Table 11. 9 Function RTC_CompINTConfig
RTC_CompINTConfig

Function Prototype

void RTC_CompINTConfig(uint32_t RTC_INT, FunctionalState NewState)

Function Description

Enabe or disable RTC comparator interrupt.

Input Parameter 1

RTC_INT: RTC comparator interrupt source needed to be enabled or disabled. Refer to
related description in Table 11.

Co

Function Name

for more details.

nfi

NewState: New state of interrupt. This parameter can be ENALBE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

Input Parameter 2

RTC_INT: Permitted RTC interrupt types are as shown in Table 11. 8. Mutiple interrupts can be selected at one
time by using operator "|".
Table 11. 10

Value of RTC_INT

RTC_INT

Description

RTC_INT_CMP0

Comparator Channel 0 count interrupt

RTC_INT_CMP1

Comparator Channel 1 count interrupt

RTC_INT_CMP2

Comparator Channel 2 count interrupt

RTC_INT_CMP3

Comparator Channel 3 count interrupt
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

136

RTL8762C Peripheral Manual

Examples:
/* Enable RTC comparator 1 interrupt */
RTC_CompINTConfig(RTC_INT_CMP_1, ENABLE);

11. 2. 7 Function RTC_TickINTConfig
Table 11. 9 Function RTC_TickINTConfig

RTC_TickINTConfig

Function Prototype

void RTC_TickINTConfig(FunctionalState NewState)

Function Description

Enable or disable RTC tick interrupt.

Input Parameter

NewState: New state of interrupt. This parameter can be ENALBE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Name

Examples:
/* Enable RTC tick interrupt */
RTC_TickINTConfig(ENABLE);

Co

11. 2. 8 Function RTC_GetINTStatus

nfi

Table 11. 11 Function RTC_GetINTStatus
RTC_GetINTStatus

Function Prototype

ITStatus RTC_GetINTStatus(uint32_t RTC_INT)

Function Description

Get the specified interrupt status

Input Parameter

RTC_INT: the specified RTC interrupt source. Refer to related description in Table 11. 8

None

Return Value

New state (SET OR RESET) of the interrupt specified by RTC .

Prerequisite

None

Functions Called

None

Examples:
/* Get RTC comparator 1 interrupt status */
ITStatus status = RESET;
status = RTC_GetINTStatus(RTC_INT_CMP_1);
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

137

al
nti

for more details.
Output Parameter

de

Function Name

RTL8762C Peripheral Manual

11. 2. 9 Function RTC_SystemWakeupConfig
Table 11. 10 Function RTC_SystemWakeupConfig

RTC_SystemWakeupConfig

Function Prototype

void RTC_SystemWakeupConfig(FunctionalState NewState)

Function Description

Enable or disable RTC system wakeup function

Input Parameter

NewState: New state of interrupt. This parameter can be ENALBE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Enable RTC system wake up function */
RTC_SystemWakeupConfig(ENABLE);

ek

alt

Re

Function Name

11. 2. 10 Function RTC_GetCounter
RTC_GetCounter

Function Prototype

uint32_t RTC_GetCounter(void)

Function Description

Get RTC current counter value

Input Parameter

None

Output Parameter

None

Return Value

RTC counter value

Prerequisite

None

Functions Called

None

al
nti

de

nfi

Function Name

Co

Table 11. 11 Function RTC_GetCounter

Examples:
/* Get RTC counter value */
uint32_t value = 0;
value = RTC_GetCounter();

11. 2. 11 Function RTC_ResetCounter
Table 11. 12 Function RTC_ResetCounter

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

138

RTL8762C Peripheral Manual

Function Name

RTC_ResetCounter

Function Prototype

void RTC_ResetCounter(void)

Function Description

Reset RTC counter

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
RTC_ResetCounter();

11. 2. 12 Function RTC_GetComp

ek

Table 11. 13 Function RTC_GetComp

alt

Re

/* Clear RTC counter value */

RTC_GetComp

Function Prototype

uint32_t RTC_GetComp(uint8_t index)

Function Description

Get the specified comparator value

Input Parameter

index: Index number of comparator channel, which can be set to 0 ~ 3.
0: Comparator 0

nfi

1: Comparator 1

Co

Function Name

2: Comparator 2
3: Comparator 3

Return Value

The specified comparator value

Prerequisite

None

Functions Called

None

al
nti

None

de

Output Parameter

Examples:
/* Get RTC comparator 1 value */
uint32_t value = 0;
vaue = RTC_GetComp(1);

11. 2. 13 Function RTC_ClearCompINT
Table 11. 14 Function RTC_ClearCompINT
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

139

RTL8762C Peripheral Manual

Function Name

RTC_ClearCompINT

Function Prototype

void RTC_ClearCompINT(uint8_t index)

Function Description

Clear the specified comparator interrupt

Input Parameter

index: Index of comparator channel, ranging from 0 to 3.
0: Comparator 0
1: Comparator 1
2: Comparator 2
3: Comparator 3

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

Examples:
/* Clear RTC comparator 1 interrupt */

ek

RTC_ClearCompINT(1);

11. 2. 14 Function RTC_ClearOverFlowINT

Function Prototype

void RTC_ClearOverFlowINT(void)

Function Description

Clear overflow interrupt

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

RTC_ClearOverFlowINT

nfi

Function Name

Co

Table 11. 15 Function RTC_ClearOverFlowINT

Examples:
/* Clear RTC overflow interrupt */
RTC_ClearOverFlowINT();

11. 2. 15 Function RTC_ClearTickINT
Table 11. 16 Function RTC_ClearTickINT

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

140

RTL8762C Peripheral Manual

Function Name

RTC_ClearTickINT

Function Prototype

void RTC_ClearTickINT(void)

Function Description

Clear tick interrupt

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
RTC_ ClearTickINT ();

alt

Re

/* Clear RTC tick interrupt */

11. 2. 16 Function RTC_SleepModeClkConfig

ek

Table 11. 17 Function RTC_SleepModeClkConfig

RTC_SleepModeClkConfig

Function Prototype

void RTC_SleepModeClkConfig(uint32_t clock)

Function Description

Configure RTC clock source in sleep mode

Input Parameter

Clock:Clock source type, available values are:

Co

Function Name

RTC_EXTERNAL_CLK: external clock(xtal or osc)

None

Return Value

None

Prerequisite

None

Functions Called

None

de

Output Parameter

nfi

RTC_INTERNAL_CLK: internal 32kHz after calibration

al
nti

Examples:
/* Configure RTC clock source */
RTC_SleepModeClkConfig(RTC_INTERNAL_CLK);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

141

RTL8762C Peripheral Manual

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

142

RTL8762C Peripheral Manual

12 Serial Peripheral Interface(SPI)
12.1 SPI Register Architecture
typedef struct
{
__IO uint32_t

CTRLR0;

__IO uint32_t

CTRLR1;
SSIENR;

__IO uint32_t

RSVD_0C;

__IO uint32_t

SER;

__IO uint32_t

BAUDR;

__IO uint32_t

TXFTLR;
RXFTLR;
TXFLR;

__I uint32_t

RXFLR;

__I uint32_t

SR;

ek

__I uint32_t

__IO uint32_t

alt

__IO uint32_t

Re

__IO uint32_t

IMR;

__I uint32_t

RISR;

__I uint32_t

TXOICR;

__I uint32_t

RXOICR;

__I uint32_t

RXUICR;

__I uint32_t

RSVD_44;

__I uint32_t

ICR;

nfi

ISR;

Co

__I uint32_t

__IO uint32_t DMACR;

de

__IO uint32_t DMATDLR;
__IO uint32_t DMARDLR;
IDR;

__I uint32_t

SSI_COMP_VERSION;

__IO uint32_t

DR[36];

__IO uint32_t

RX_SAMPLE_DLY;

al
nti

__I uint32_t

}SPI_TypeDef;
All SPI registers are enumerated in Table 12. 1.
Table 12. 1 SPI Registers
Register

Description

CTRLR0

SPI Control Register 0

CTRLR1

SPI Control Register 1

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

143

RTL8762C Peripheral Manual

SSIENR

SPI Enable Register

RSVD_0C

Reserved

SER

Slave Enable Register

BAUDR

Baud Rate Selection Register

TXFTLR

Transmit FIFO Threshold Level Register

RXFTLR

Receive FIFO Threshold Level Register

TXFLR

Transmit FIFO Level Register

RXFLR

Receive FIFO Level Register

SR

Status Register

Re

IMR

Interrupt Mask Register

ISR

Interrupt Status Register

RISR

alt

Raw Interrupt Status Register

TXOICR

Transmit FIFO Overflow Interrupt Clear Register

RXOICR

Receive FIFO Overflow Interrupt Clear Register

ek

Receive FIFO Underflow Interrupt Clear Register

RSVD_44

Reserved

ICR

Interrupt Clear Register

DMACR

DMA Control Register

DMATDLR

DMA Transmit Data Level Register

DMARDLR

DMA Receive Data Level Register

IDR

Identification Register

SSI_COMP_VERSION

SPI IP Core Version register

DR[36]

Data Registers

RX_SAMPLE_DLY

RXD Sample Delay Register

Co

RXUICR

Table 12. 2 enumerate all SPI library functions.
Function Name

Description

al
nti

de

nfi

12.2 SPI SPI Library Functions

SPI_DeInit

Disable the specified SPI clock.

SPI_Init

Initialize SPI register based on parameters specified in SPI_InitStruct.

SPI_StructInit

Initialize SPI register based on parameters specified in SPI_InitStruct.

SPI_Cmd

Enable or disable the specified SPI peripheral module.
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

144

RTL8762C Peripheral Manual

Send data through SPI peripheral.

SPI_SendWord

Send 4-byte data through SPI peripheral

SPI_SendHalfWord

Send 2-byte data through SPI peripheral

SPI_INTConfig

Enable or disable the interrupt source specified by SPI.

SPI_ClearINTPendingBit

Clear suspended SPI interrupt flag.

SPI_SendData

Transfer data through SPI peripheral.

SPI_ReceiveData

Receive data through SPI peripheral.

SPI_GetRxFIFOLen

Get data length of receive FIFO.

SPI_GetTxFIFOLen

Get data length of transmit FIFO.

SPI_ChangeDirection

Re-configure SPI data transmission mode.

SPI_SetReadLen

Set length of data to be read.

SPI_SetCSNumber

Set chip select signal.

SPI_GetFlagState

Check the specified SPI peripheral flag.

SPI_GetINTStatus

Check the specified SPI peripheral interrupt source.

SPI_GDMACmd

Set GDMA request type during SPI transmission.

ek

alt

Re

SPI_SendBuffer

Co

12.2.1 Function SPI_DeInit
Table 12. 3 Function SPI_DeInit
SPI_DeInit

Function Prototype

void SPI_DeInit(SPI_TypeDef* SPIx)

Function Description

Disable the specified SPI clock.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

al
nti

de

nfi

Function Name

Examples:
/* Close SPI0 clock */
SPI_DeInit(SPI0);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

145

RTL8762C Peripheral Manual

12.2.2 Function SPI_Init
Table 12. 4 Function SPI_Init

Function Name

SPI_Init

Function Prototype

void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct)

Function Description

Initialize SPI register based on parameters specified in SPI_InitStruct.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Input Parameter 2

SPI_InitStruct: A pointer to SPI_InitTypeDef, and related configuration information is
contained in SPI_InitStruct.

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

typedef struct

ek

{
uint16_t SPI_Direction;
uint16_t SPI_Mode;
uint16_t SPI_DataSize;

Co

uint16_t SPI_CPOL;
uint16_t SPI_CPHA;
uint32_t SPI_SwapTxBitEn;

nfi

uint32_t SPI_SwapRxBitEn;
uint32_t SPI_SwapTxByteEn;
uint32_t SPI_SwapRxByteEn;

de

uint32_t SPI_ToggleEn;
uint32_t SPI_BaudRatePrescaler;
uint16_t SPI_FrameFormat;

al
nti

uint32_t SPI_TxThresholdLevel;
uint32_t SPI_RxThresholdLevel;
uint32_t SPI_NDF;
} SPI_InitTypeDef;

SPI_Direction: Set data transer mode of SPI. Table 12. 5 lists values available to this parameter.
Table 12. 5 Values of SPI_Dirention
SPI_Dirention

Description

SPI_Direction_FullDuplex

Full duplex mode

SPI_Direction_TxOnly

Send-only mode
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

146

RTL8762C Peripheral Manual

SPI_Direction_RxOnly

receive-only mode

SPI_Direction_EEPROM

EEPROM mode

SPI_Mode: Set operation mode of SPI. Table 12. 6 lists values available to this parameter.
Table 12. 6 Values of SPI_Mode
SPI_Dirention

Description

SPI_Mode_Master

Master device mode

SPI_Mode_Slave

Slave device mode

Table 12. 7 Values of SPI_DataSize
SPI_DataSize

SPI_DataSize_5b

SPI sends/receives 4-bit frame structure
SPI sends/receives 5-bit frame structure
SPI sends/receives 6-bit frame structure

ek

SPI_DataSize_6b

Description

alt

SPI_DataSize_4b

Re

SPI_DataSize: Set data size of SPI. Table 12. 7 lists values available to this parameter.

SPI sends/receives 7-bit frame structure

SPI_DataSize_8b

SPI sends/receives 8-bit frame structure

SPI_DataSize_9b

SPI sends/receives 9-bit frame structure

SPI_DataSize_10b

SPI sends/receives 10-bit frame structure

SPI_DataSize_11b

SPI sends/receives 11-bit frame structure

SPI_DataSize_12b

SPI sends/receives 12-bit frame structure

SPI_DataSize_13b

SPI sends/receives 13-bit frame structure

SPI_DataSize_14b

SPI sends/receives 14-bit frame structure

SPI_DataSize_15b

SPI sends/receives 15-bit frame structure

SPI_DataSize_16b

SPI sends/receives 16-bit frame structure

SPI_DataSize_17b

SPI sends/receives 17-bit frame structure

SPI_DataSize_18b

SPI sends/receives 18-bit frame structure

SPI_DataSize_19b

SPI sends/receives 19-bit frame structure

SPI_DataSize_20b

SPI sends/receives 20-bit frame structure

SPI_DataSize_21b

SPI sends/receives 21-bit frame structure

SPI_DataSize_22b

SPI sends/receives 22-bit frame structure

SPI_DataSize_23b

SPI sends/receives 23-bit frame structure

SPI_DataSize_24b

SPI sends/receives 24-bit frame structure

Co

SPI_DataSize_7b

al
nti

de

nfi

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

147

RTL8762C Peripheral Manual

SPI_DataSize_25b

SPI sends/receives 25-bit frame structure

SPI_DataSize_26b

SPI sends/receives 26-bit frame structure

SPI_DataSize_27b

SPI sends/receives 27-bit frame structure

SPI_DataSize_28b

SPI sends/receives 28-bit frame structure

SPI_DataSize_29b

SPI sends/receives 29-bit frame structure

SPI_DataSize_30b

SPI sends/receives 30-bit frame structure

SPI_DataSize_31b

SPI sends/receives 31-bit frame structure

SPI_DataSize_32b

SPI sends/receives 32-bit frame structure

Table 12. 8 Values of SPI_CPOL
SPI_CPOL

Re

SPI_CPOL: Set stable state of serial clock. Table 12. 8 lists values available to this parameter.

Description

alt

SPI_CPOL_Low

Inactive Clock is low

SPI_CPOL_High

Inactive Clock is high

ek

SPI_CPHA: Set clock active edge for bit capture. Table 12. 9 lists values available to this parameter.
Table 12. 9 Values of SPI_CPHA
SPI_CPOL

Co

Description

SPI_CPHA_1Edge

Data captured at the first clock edge

SPI_CPHA_2Edge

Data captured at the second clock edge

nfi

SPI_SwapRxBitEn:Determine if necessary to reverse bit receiving sequence when receiving data through SPI.

de

Table 12. 10 lists values available to this parameter.
Table 12. 10 values of SPI_SwapRxBitEn

SPI_SwapRxBitEn

Description

Receive data from LSB

SPI_SWAP_ENABLE

Receive data from MSB

al
nti

SPI_SWAP_DISABLE

SPI_SwapTxBitEn:Determine if necessary to reverse bit receiving sequence when transmitting data through SPI.

Table 12. 11 lists values available to this parameter.
Table 12. 11 Values of SPI_SwapTxBitEn

SPI_SwapTxBitEn
SPI_SWAP_DISABLE

Description

Send data from LSB

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

148

RTL8762C Peripheral Manual

SPI_SWAP_ENABLE

Send data from MSB

SPI_SwapRxByteEn:Determine if necessary to reverse byte receive sequence when receiving data through SPI.

Table 12. 12 lists values available to this parameter.
Table 12. 12 Values of SPI_SwapRxByteEn

SPI_SwapRxByteEn

Description

SPI_SWAP_DISABLE

Receive data from low byte

SPI_SWAP_ENABLE

Receive data from high byte

Re

SPI_SwapTxByteEn:Determine if necessary to reverse byte receive sequence when receiving data through
SPI.Table 12. 13 lists values available to this parameter.
Table 12. 13 Values of SPI_SwapTxByteEn

SPI_SWAP_DISABLE

alt

SPI_SwapTxByteEn

Description

Send data from low byte

ek

SPI_SWAP_ENABLE

Send data from high byte

SPI_ToggleEn:Determine if necessary to trigger CS signal when SPI is sending data continuouslyTable 12. 14 lists

Co

values available to this parameter.
Table 12. 14 Values of SPI_ToggleEn

SPI_ToggleEn

Description

nfi

DISABLE

cs signal isn’t pulled up for every sending data

ENABLE

cs signal is pulled up for every sending data

de

SPI_BaudRatePrescaler:Set clock frequency division factor for SPI peripherals. The factor must be even and the

al
nti

maximum value is divide-by-2.

SPI_FrameFormat:This parameter is used to configure data transmission format for SPI. Table 12. 15 lists values
available to this parameter.
Table 12. 15 Values of SPI_FrameFormat

SPI_FrameFormat

Description

SPI_Frame_Motorola

Motorola transmission format

SPI_Frame_TI_SSP

TI transmission format

SPI_Frame_NS_MICROWIRE

Reserved

SPI_Frame_Reserve

Reserved
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

149

RTL8762C Peripheral Manual

SPI_TxThresholdLevel: Set threshold of transmit FIFO, exceeding the threshold will trigger SPI_INT_TXE
interrupt.
SPI_RxThresholdLevel: Set the threshold of receive FIFO. SPI_INT_RXF interrupt will be triggered when number
of the data in receive FIFO is larger than the threshold.
SPI_NDF: Set the threshold for length of data to be read by SPI in EEPROM mode, which shall be the desired data
length minus one. For example, if SPI reads 256 data in EEPROM mode, this parameter shall be set to 255. This
parameter is invalid in other transmission mode.
SPI_RxDmaEn:Enable or disable DMA data receive function.Table 12. 16 lists values available to this parameter.

SPI_RxDmaEn
DISABLE

Re

Table 12. 16 Values of SPI_RxDmaEn

Description

Disable DMA data receive function

alt

ENABLE

Enable DMA data receive function

ek

SPI_TxDmaEn:Enable or disable DMA data send function. lists values available to this parameter.
Table 12. 17 lists values available to this parameter.
Table 12. 17 Values of SPI_TxDmaEn

SPI_TxDmaEn

Co

Description

DISABLE

Disable DMA data send function

ENABLE

Enable DMA data send function

nfi

SPI_RxWaterlevel:Set water level value when DMA is receiving data. The recommended value of this parameter

de

is Msize of DMA.

SPI_TxWaterlevel:Set water level value when DMA is sending data. The recommended value of this parameter is
that the depth of FIFO to be sent minus the Msize of the DMA.

/* Initialize SPI */
SPI_InitTypeDef

SPI_InitStructure;

SPI_InitStructure.SPI_Direction = SPI_Direction_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

150

al
nti

Examples:

RTL8762C Peripheral Manual

SPI_InitStructure. SPI_BaudRatePrescaler = 4;
/* cause SPI_INT_RXF interrupt if data length in receive FIFO
SPI_InitStructure.SPI_RxThresholdLevel

>= SPI_RxThresholdLevel + 1*/

= 0;

SPI_InitStructure.SPI_FrameFormat = SPI_Frame_Motorola;
SPI_Init(SPI0, &SPI_InitStructure);

12.2.3 Function SPI_StructInit
Table 12. 18 Function SPI_StructInit

Re

SPI_StructInit

Function Prototype

void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct)

Function Description

Initialize SPI register based on parameters specified in SPI_InitStruct.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Input Parameter 2

SPI_InitStruct: A pointer points to structure SPI_InitTypeDef, which contains configuration
information about SPI peripheral.
None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Output Parameter

ek

alt

Function Name

Examples:

nfi

/* Initialize SPI */
SPI_InitTypeDef

SPI_InitStructure;

12.2.4 Function SPI_Cmd
Table 12. 19 Function SPI_Cmd

Function Name

SPI_Cmd

Function Prototype

void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState)

Function Description

Enable or disable the specified SPI peripheral module.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Input Parameter 2

newState: new state of peripheral SPIx
This parameter can be set to: ENABLE, DISABLE

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

151

al
nti

de

SPI_StructInit(&SPI_InitStructure);

RTL8762C Peripheral Manual

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Enable SPI */
SPI_Cmd(SPI0, ENABLE);

Table 12. 20 Function SPI_SendBuffer

Re

12.2.5 Function SPI_SendBuffer
SPI_SendBuffer

Function Prototype

void SPI_SendBuffer(SPI_TypeDef* SPIx, UINT8 *pBuf, UINT16 len)

Function Description

Send data through SPI peripheral.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Input Parameter 2

pBuf: A pointer points to the data to be sent.

Input Parameter 3

len: data length

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Function Name

Co
nfi

Examples:

de

/* Send data */
uint8_t SPI_WriteBuf[16] = {0x00,0x01,0x02,0x03};
SPI_SendBuffer(SPI0, SPI_WriteBuf, 4);

al
nti

12.2.5 Function SPI_SendWord
Table 12. 21 Function SPI_SendWord

Function Name

SPI_SendWord

Function Prototype

void SPI_SendWord(SPI_TypeDef *SPIx, uint32_t *pBuf, uint16_t len)

Function Description

Send 4-byte data through SPI peripheral

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

152

RTL8762C Peripheral Manual

Input Parameter 2

pBuf:A pointer points to the data to be sent.

Input Parameter 3

len:Data lenth

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Send data */
uint32_t SPI_WriteBuf[2] = {0x22446688,0x11335577};

Re

SPI_SendWord (SPI0, SPI_WriteBuf, 4);

Table 12. 22 Function SPI_SendHalfWord

alt

12.2.5 Function SPI_SendHalfWord
SPI_SendHalfWord

Function Prototype

void SPI_SendHalfWord(SPI_TypeDef *SPIx, uint16_t *pBuf, uint16_t len)

Function Description

Send 2-byte data through SPI peripheral

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Input Parameter 2

pBuf: A pointer points to the data to be sent.

Input Parameter 3

len: data length

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

Function Name

Co

de

nfi

Examples:

al
nti

/* Send data */
uint32_t SPI_WriteBuf[2] = {0x6688,0x5577};
SPI_SendHalfWord (SPI0, SPI_WriteBuf, 4);

12.2.6 Function SPI_INTConfig
Table 12. 23 Function SPI_INTConfig

Function Name

SPI_INTConfig

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

153

RTL8762C Peripheral Manual

Function Prototype

void SPI_INTConfig(SPI_TypeDef* SPIx, uint8_t SPI_IT, FunctionalState NewState)

Function Description

Enable or disable the interrupt source specified by SPI.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Input Parameter 2

SPI_IT: SPI interrupt source to be enabled or disabled. Refer to related description of SPI_IT
for more details.

Input Parameter 3

newState: New state of interrupt
This parameter can be set to ENABLE or DISABLE.
None

Return Value

None

Prerequisite

None

Functions Called

None

Re

Output Parameter

alt

SPI _IT: Permitted SPI interrupt types are as shown in Table 12. 24. Mutiple interrupts can be selected at one
time by using operator "|".

ek

Table 12. 24 Values of SPI_IT

SPI_IT

Description

Transmit buffer empty interrupt

SPI_INT_TXO

Transmit buffer overflow interrupt

SPI_INT_RXU

Receive buffer underflow interrupt

SPI_INT_RXO

Receive buffer overflow interrupt

SPI_INT_RXF

Receive buffer full interrupt

SPI_INT_MST

Reserved

SPI_INT_TUF

Transmit buffer underflow interrupt

SPI_INT_RIG

Chip select signal rising edge interrupt

Co

SPI_INT_TXE

/* Enable receive FIFO full interrupt */
SPI_INTConfig(SPI0, SPI_INT_RXF, ENABLE);

12.2.7 Function SPI_ClearINTPendingBit
Table 12. 25 Function SPI_ClearINTPendingBit

Function Name

SPI_ClearINTPendingBit

Function Prototype

void SPI_ClearINTPendingBit(SPI_TypeDef* SPIx, uint16_t SPI_IT)

Function Description

Clear suspended SPI interrupt flag.
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

154

al
nti

de

nfi

Examples:

RTL8762C Peripheral Manual

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Input Parameter 2

SPI_IT:SPI interrupt source to be cleared. Refer to related description of SPI_IT in Table
12. 26 for more details.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Clear receive FIFO overflow interrupt */

Re

SPI_ClearINTPendingBit (SPI0, SPI_INT_RXO);

Table 12. 27 Function SPI_SendData

alt

12.2.8 Function SPI_SendData
SPI_SendData

Function Prototype

void SPI_SendData(SPI_TypeDef* SPIx, uint16_t Data)

Function Description

Transmit data through SPI peripheral.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Input Parameter 2

Data: Data to be transmitted

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

Function Name

Co
de

nfi

Examples:
/* Send data */

al
nti

SPI_ SendData (SPI0, 0x66);

12.2.9 Function SPI_ReceiveData
Table 12. 28 Function SPI_ReceiveData

Function Name

SPI_ReceiveData

Function Prototype

uint16_t SPI_ReceiveData(SPI_TypeDef* SPIx)

Function Description

Data received by SPI peripheral.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

155

RTL8762C Peripheral Manual

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Output Parameter

None

Return Value

Data received

Prerequisite

None

Functions Called

None

Examples:
/* Receive data */
uint8_t

value = 0;

value = SPI_ ReceiveData (SPI0);

Re

12.2.10 Function SPI_GetRxFIFOLen

alt

Table 12. 29 Function SPI_GetRxFIFOLen

SPI_GetRxFIFOLen

Function Prototype

uint8_t SPI_GetRxFIFOLen(SPI_TypeDef* SPIx)

Function Description

Get data length of receive FIFO.

Input Parameter

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Output Parameter

None

Return Value

Data length

Prerequisite

None

Functions Called

None

ek

Function Name

Co
nfi

Examples:

uint8_t

de

/* Get data number in RX FIFO */
number = 0;

number = SPI_ GetRxFIFOLen (SPI0);

al
nti

12.2.11 Function SPI_GetTxFIFOLen
Table 12. 30 Function SPI_GetTxFIFOLen

Function Name

SPI_GetTxFIFOLen

Function Prototype

uint8_t SPI_GetTxFIFOLen (SPI_TypeDef* SPIx)

Function Description

Get data length of transmit FIFO.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

156

RTL8762C Peripheral Manual

Output Parameter

None

Return Value

Data length

Prerequisite

None

Functions Called

None

Examples:
/* Get data number in Tx FIFO */
uint8_t

number = 0;

number = SPI_GetTxFIFOLen (SPI0);

Re

12.2.12 Function SPI_ChangeDirection
Table 12. 31 Function SPI_ChangeDirection

alt

SPI_ChangeDirection

Function Prototype

void SPI_ChangeDirection(SPI_TypeDef* SPIx, uint16_t dir)

Function Description

Configure SPI data transmission mode.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Output Parameter2

dir: The established data transmission mode.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

Function Name

Co
nfi

Examples:

de

/* Configure transmission mode */
SPI_ ChangeDirection (SPI0, SPI_Direction_EEPROM);

al
nti

12.2.13 Function SPI_SetReadLen
Table 12. 32 Function SPI_SetReadLen

Function Name

SPI_SetReadLen

Function Prototype

void SPI_SetReadLen(SPI_TypeDef* SPIx, uint16_t len)

Function Description

Set length of data to be read by SPI in EEPROM mode.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Output Parameter2

len: Length of data to be read.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

157

RTL8762C Peripheral Manual

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Configure length of data which need to receive in EEPROM mode */
SPI_ SetReadLen (SPI0,256);

Table 12. 33 Function SPI_SetCSNumber

Re

12.2.14 Function SPI_SetCSNumber
SPI_SetCSNumber

Function Prototype

void SPI_SetCSNumber(SPI_TypeDef* SPIx, uint8_t number)

Function Description

Set chip select signal index. If SPI0 is selected as peripheral, the number shall be set to

alt

Function Name

ek

constant 0. If SPI1 is selected as peripheral, the number shall be set to 0, 1, or 2.
SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Output Parameter2

number: Chip Select Signal

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Input Parameter 1

nfi

Examples:

de

/* Configure CS number */
SPI_SetCSNumber (SPI1,2);

al
nti

12.2.15 Function SPI_GetFlagState
Table 12. 34 Function SPI_GetFlagState

Function Name

SPI_GetFlagState

Function Prototype

FlagStatus SPI_GetFlagState(SPI_TypeDef* SPIx, uint8_t SPI_FLAG)

Function Description

Check the specified SPI peripheral flag.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Output Parameter2

SPI_FLAG: flag to be specified. Refer to related description of SPI_FLAG for more details.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

158

RTL8762C Peripheral Manual

Output Parameter

None

Return Value

New state (SET or RESET) of the flag specified by SPI

Prerequisite

None

Functions Called

None

SPI_FLAG: Permitted SPI state types are as shown in Table 12. 35.
Table 12. 35 Values of SPI_FLAG

SPI_IT
SPI_FLAG_DCOL

Description

Data Transer error, which occurs when the current peripheral is in master device mode
but is selected as slave device by an external device.

Re

SPI_FLAG_TXE

Sending error occurs when the current peripheral is in slave device mode and sends data
with empty transmit FIFO.

Receive FIFO is not empty.

SPI_FLAG_TFE

Transmit FIFO is empty.

SPI_FLAG_TFNF

Transmit FIFO is not full.

SPI_FLAG_BUSY

SPI is transferring data.

ek

Receive FIFO is full.

SPI_FLAG_RFNE

alt

SPI_FLAG_RFF

Examples:

Co

/* Check RX FIFO full or not */
SPI_ GetFlagState (SPI0, SPI_FLAG_RFF);

nfi

12.2.16 Function SPI_GetINTStatus

de

Table 12. 36 Function SPI_GetINTStatus

SPI_GetINTStatus

Function Prototype

ITStatus SPI_GetINTStatus(SPI_TypeDef* SPIx, uint32_t SPI_IT)

Function Description

Check the specified SPI peripheral interrupt source.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Output Parameter2

SPI_IT: SPI peripheral interrupt source to be specified. Refer to related description of
SPI_IT in Table 12. 37 for more details.

Output Parameter

None

Return Value

State of interrupt source.

Prerequisite

None

Functions Called

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

159

al
nti

Function Name

RTL8762C Peripheral Manual

/* Check receive FIFO full or not in SPI interrupt handle function */
BOOL isOccur = FALSE;
isOccur = SPI_GetINTStatus(SPI0, SPI_INT_RXF)

12.2.17 Function SPI_GDMACmd
Table 12. 38 Function SPI_GDMACmd

Function Name

SPI_GDMACmd

Function Prototype

void SPI_GDMACmd(SPI_TypeDef* SPIx, uint16_t SPI_GDMAReq, FunctionalState

Re

NewState)

Set GDMA request type during SPI transmission.

Input Parameter 1

SPIx: x can be set to 0 or 1 to select the specified SPI peripheral.

Output Parameter2

SPI_GDMAReq: GDMA request to be specified. Refer to related description of

alt

Function Description

SPI_GDMAReq for more details.

newState: new state of GDMA request.

ek

Input Parameter 3

Optional parameters: ENABLE, DISABLE
None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Output Parameter

Table 12. 39 Values of SPI_GDMAReq

SPI_GDMAReq

nfi

SPI_GDMAReq: Permitted data transer types are as shown in Table 12. 39.

de

Description

SPI_GDMAReq_Tx

Send data through SPI peripheral

SPI_GDMAReq_Rx

Receive data through SPI peripheral

al
nti

Examples:
/* Configure GDMA request */
SPI_GDMACmd (SPI0, SPI_GDMAReq_Tx,ENABLE);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

160

RTL8762C Peripheral Manual

13 3-Wire SPI
13.1 SPI3WIRE Register Structure
typedef struct
{
uint32_t

RSVD0[12];

__IO

uint32_t

CFGR;

__IO

uint32_t

CR;

__IO

uint32_t

INTCR;

__I

uint32_t

SR;

__IO

uint32_t

RD0;

__IO

uint32_t

RD1;

__IO

uint32_t

RD2;

__IO

uint32_t

RD3;

} SPI2WIRE_TypeDef;

ek

alt

Re

__IO

All 3-WIRE SPI registers are enumerated in Table 13. 1.

Table 13. 1 SPI3WIRE Registers

Description

Co

Register
Reserved

CFGR

Configuration register

CR

Control register

INTCR

Interrupt control register

SR

Status register

RD0

Received data register 0

RD1

Received data register 1

RD2

Received data register 2

RD3

Received data register 3

All SPI3WIRE library functions are enumerated in Table 13. 2.
Table 13. 2 SPI3WIRE Library Functions
Function Name

Description

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

161

al
nti

13.2 SPI3WIRE Library Functions

de

nfi

RSVD0[12]

RTL8762C Peripheral Manual

SPI3WIRE_DeInit

Disable SPI3WIRE clock source.

SPI3WIRE_Init

Initialize SPI3WIRE register based on parameters specified in
SPI3WIRE_InitStruct.

SPI3WIRE_StructInit

Initialize SPI3WIRE register based on parameters specified in
SPI3WIRE_InitStruct.
Enable or disable SPI3WIRE

SPI3WIRE_SetResyncTime

Set resync signal duration

SPI3WIRE_ResyncSignalCmd

Enable or disable resync signal output

SPI3WIRE_INTConfig

Enable or disable specified SPI3WIRE interrupt.

SPI3WIRE_GetFlagStatus

Check the specified SPI3WIRE flag status.

SPI3WIRE_ClearINTPendingBit

Clear interrupt flag of SPI3WIRE.

SPI3WIRE_GetRxDataLen

Get received data length during each SPI3WIRE read operation.

SPI3WIRE_ClearRxFIFO

Clear data in receive FIFO of SPI3WIRE.

SPI3WIRE_ClearRxDataLen

Clear number of the data received by SPI3WIRE.

SPI3WIRE_StartWrite

Send data through SPI3WIRE.

SPI3WIRE_StartRead

Send a command to read a single data or multiple data through SPI3WIRE.

SPI3WIRE_ReadBuf

Read data from receive FIFO through SPI3WIRE.

ek

alt

Re

SPI3WIRE_Cmd

Co

13.2.1 Function SPI3WIRE_ DeInit

void SPI3WIRE_DeInit(void)

Function Description

Disable SPI3WIRE clock source.

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

al
nti

SPI3WIRE_DeInit

Function Prototype

de

Function Name

nfi

Table 13. 3 Function SPI3WIRE_DeInit

Examples:
/* Close SPI3WIRE clock */
SPI3WIRE_DeInit();

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

162

RTL8762C Peripheral Manual

13.2.2 Function SPI3WIRE_Init
Table 13. 4 Function SPI3WIRE_Init
Function Name

SPI3WIRE_Init

Function Prototype

void SPI3WIRE_Init(SPI3WIRE_InitTypeDef* SPI3WIRE_InitStruct)

Function Description

Initialize SPI3WIRE register based on parameters specified in SPI3WIRE_InitStruct.

Input Parameter

SPI3WIRE _InitStruct: A pointer points to structure SPI3WIRE_InitTypeDef, which contains
configuration information about peripheral SPI3WIRE.

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

typedef struct
{

ek

uint32_t SPI3WIRE_SysClock;
uint32_t SPI3WIRE_Speed;
uint32_t SPI3WIRE_Mode;

Co

uint32_t SPI3WIRE_ReadDelay;
uint32_t SPI3WIRE_OutputDelay;
uint32_t SPI3WIRE_ExtMode;

SPI3WIRE_Speed:This parameter configures the SPI3WIRE output clock.

de

SPI3WIRE_SysClock:This parameter is fixed to system clock.

nfi

}SPI3WIRE_InitTypeDef;

SPI3WIRE_Mode:This parameter is used to select operation mode of SPI3WIRE. Table 13. 5 lists values available

Table 13. 5 Values of mode
mode

Description

SPI3WIRE_2WIRE_MODE

Two-wire SPI

SPI3WIRE_3WIRE_MODE

Three-wire SPI

al
nti

to this parameter.

SPI3WIRE_ReadDelay:This parameter is used to control data read delay time by SPI3WIRE, which ranges from
0x00 to 0x1f. The formula to calculate delay time is: delay time = (SPI3WIRE_ReadDelay+1)/(2*SPI3WIRE_Speed)
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

163

RTL8762C Peripheral Manual

SPI3WIRE_OutputDelay:This parameter is used to determine if output of SPI3WIRE is delayed. Table 13. 6 lists
values available to this parameter.
Table 13. 6 Values of oeDelayCfg
SPI3WIRE_OE_DELAY_NONE

Description

SPI3WIRE_OE_DELAY_1T

Delay for 1T

SPI3WIRE_OE_DELAY_NONE

No delay

Re

SPI3WIRE_ExtMode:This parameter is used to determine whether SPI3WIRE is in expansion mode. Table 13. 7
lists values available to this parameter.

SPI3WIRE_ExtMode
SPI3WIRE_EXTEND_MODE

alt

Table 13. 7 Values of endExtMode

Description

Expansion mode

ek

SPI3WIRE_NORMAL_MODE

Normal mode

Co

Examples:
/* Initialize IR */
SPI3WIRE_InitTypeDef SPI3WIRE_InitStruct;

SPI3WIRE_InitStruct.SPI3WIRE_SysClock

= 20000000;
= 1000000;

SPI3WIRE_InitStruct.SPI3WIRE_Mode

= SPI3WIRE_2WIRE_MODE;

/* delay time = (SPI3WIRE_ReadDelay +1)/(2*SPI3WIRE_Speed).

//delay time = (0x05 + 3)/(2 * speed) = 4us
SPI3WIRE_InitStruct.SPI3WIRE_ReadDelay

= 0x5;

SPI3WIRE_InitStruct.SPI3WIRE_OutputDelay

= SPI3WIRE_OE_DELAY_1T;

SPI3WIRE_InitStruct.SPI3WIRE_ExtMode

= SPI3WIRE_NORMAL_MODE;

SPI3WIRE_Init(&SPI3WIRE_InitStruct);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

164

al
nti

The delay time from the end of address phase to the start of read data phase */

de

SPI3WIRE_InitStruct.SPI3WIRE_Speed

nfi

SPI3WIRE_StructInit(&SPI3WIRE_InitStruct);

RTL8762C Peripheral Manual

13.2.3 Function SPI3WIRE_StructInit
Table 13. 8 Function SPI3WIRE_StructInit
Function Name

SPI3WIRE_StructInit

Function Prototype

void SPI3WIRE_StructInit(SPI3WIRE_InitTypeDef* SPI3WIRE_InitStruct)

Function Description

Set each parameter in SPI3WIRE_InitStruct to the default value.

Input Parameter

SPI3WIRE _InitStruct: A pointer points to structure SPI3WIRE_InitTypeDef, which contains
configuration information about peripheral SPI3WIRE.

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

Examples:

/* Configure the SPI3WIRE Init Structure parameter */

ek

SPI3WIRE_InitTypeDef

SPI3WIRE_InitStruct;

SPI3WIRE_StructInit(&SPI3WIRE _InitStruct);

Co

13.2.4 Function SPI3WIRE_Cmd
Table 13. 9 Function SPI3WIRE_Cmd

Function Prototype

void SPI3WIRE_Cmd(FunctionalState NewState)

Function Description

Enable or disable SPI3WIRE

Input Parameter

newState:New state of SPI3WIRE
Optional parameter:ENABLE or DISABLE
None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

de

SPI3WIRE_Cmd

nfi

Function Name

Examples:
/* Enable the SPI3WIRE */
SPI3WIRE_Cmd(ENABLE);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

165

RTL8762C Peripheral Manual

13.2.5 Function SPI3WIRE_SetResyncTime
Table 13. 10 Function SPI3WIRE_SetResyncTime

Function Name

SPI3WIRE_SetResyncTime

Function Prototype

void SPI3WIRE_SetResyncTime(uint32_t value)

Function Description

Set resync signal duration

Input Parameter

value:resync signal duration
This parameter ranges from 0x0 to 0xf, whose unit is: 1/(2*SPI3WIRE_Speed)

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

Examples:

/* Send resync time. Resync signal time = 2*1/(2*SPI3WIRE_Speed) = 1us */

ek

SPI3WIRE_SetResyncTime(2);

13.2.6 Function SPI3WIRE_ResyncSignalCmd

Co

Table 13. 11 Function SPI3WIRE_ResyncSignalCmd

SPI3WIRE_ResyncSignalCmd

Function Prototype

void SPI3WIRE_ResyncSignalCmd(FunctionalState NewState)

Function Description

Enable or disable resync signal output

Input Parameter

newState:New state of resync signal output

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

de

optional parameter:ENABLE or DISABLE

nfi

Function Name

Examples:
/* Enable resync output */
SPI3WIRE_ResyncSignalCmd(ENABLE);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

166

RTL8762C Peripheral Manual

13.2.7 Function SPI3WIRE_INTConfig
Table 13. 12 Function SPI3WIRE_INTConfig
Function Name

SPI3WIRE_INTConfig

Function Prototype

void SPI3WIRE_INTConfig(uint32_t SPI3WIRE_INT, FunctionalState newState)

Function Description

Enable or disable specified SPI3WIRE interrupt.

Input Parameter 1

SPI3WIRE_IT: SPI3WIRE interrupt to be enabled or disabled, which can only be assigned as
SPI3WIRE_IT_INT.

Input Parameter 2

newState: new state of SPI3WIRE interrupt

Re

Optional parameters: ENABLE, DISABLE
None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Output Parameter

Examples:
/* Enable the SPI3WIRE interrupt */
SPI3WIRE_INTConfig(SPI3WIRE_INT_BIT, ENABLE);

Co

13.2.8 Function SPI3WIRE_GetFlagStatus

nfi

Table 13. 13 Function SPI3WIRE_GetFlagStatus
SPI3WIRE_GetFlagStatus

Function Prototype

FlagStatus SPI3WIRE_GetFlagStatus(uint32_t SPI3WIRE_FLAG)

Function Description

Check the specified SPI3WIRE flag status.

Input Parameter

SPI3WIRE_ FLAG: SPI3WIRE flag to be checked.
Parameter SPI3WIRE_FLAG_BUSY: SPI3WIRE IS BUSY flag

al
nti

de

Function Name

Parameter SPI3WIRE_FLAG_INT_IND: SPI3WIRE GENERATES INTERRUPT flag
Parameter SPI3WIRE_FLAG_RESYNC_BUSY: RESYNC IS BUSY flag
Output Parameter

None

Return Value

new state (SET or RESET) of SPI3WIRE _FLAG

Prerequisite

None

Functions Called

None

Examples:
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

167

RTL8762C Peripheral Manual

/* Check SPI3WIRE busy or not */
BOOL flagStatus = FALSE;
flagStatus =SPI3WIRE_GetFlagStatus (SPI3WIRE_FLAG_BUSY);

13.2.9 Function SPI3WIRE_ClearINTPendingBit
Table 13. 14 Function SPI3WIRE_ClearINTPendingBit
SPI3WIRE_ClearINTPendingBit

Function Prototype

void SPI3WIRE_ClearINTPendingBit(uint32_t SPI3WIRE_INT)

Function Description

Clear interrupt flag of SPI3WIRE

Input Parameter

SPI3WIRE_INT: SPI3WIRE interrupt to be cleared, which can only be assigned

Re

Function Name

SPI3WIRE_INT_BIT.

Return Value

None

Prerequisite

None

Functions Called

None

ek

None

alt

Output Parameter

Examples:

Co

/* Clear the SPI3WIRE interrupt */
SPI3WIRE_ ClearITPendingBit (SPI3WIRE_INT_BIT);

Table 13. 15 Function SPI3WIRE_GetRxDataLen
Function Name

SPI3WIRE_GetRxDataLen

Function Prototype

GetRxDataLen

Function Description

Get received data length during each SPI3WIRE read operation.

Input Parameter

None

Output Parameter

None

Return Value

Size of data in receive FIFO

Prerequisite

None

Functions Called

None

Examples:
/* Get receive data length of SPI3WIRE */
uint16_t receive_length = SPI3WIRE_GetRxDataLen ();
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

168

al
nti

de

nfi

13.2.10 Function SPI3WIRE_GetRxDataLen

RTL8762C Peripheral Manual

13.2.11 Function SPI3WIRE_ClearRxFIFO
Table 13. 16 Function SPI3WIRE_ClearRxFIFO

SPI3WIRE_ClearRxFIFO

Function Prototype

void SPI3WIRE_ClearRxFIFO(void)

Function Description

Clear data in receive FIFO of SPI3WIRE.

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

alt

Examples:

Re

Function Name

/* Clear SPI3WIRE RX FIFO */
SPI3WIRE_ClearRxFIFO ();

ek

13.2.12 Function SPI3WIRE_ClearRxDataLen

Co

Table 13. 17 Function SPI3WIRE_ClearRxDataLen

Function Prototype

void SPI3WIRE_ClearRxDataLen(void)

Function Description

Clear number of the data received by SPI3WIRE.

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

SPI3WIRE_ClearRxDataLen

nfi

Function Name

Examples:
/* Clear number of receive data */
SPI3WIRE_ClearRxDataLen();

13.2.13 Function SPI3WIRE_StartWrite
Table 13. 18 Function SPI3WIRE_StartWrite

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

169

RTL8762C Peripheral Manual

Function Name

SPI3WIRE_StartWrite

Function Prototype

void SPI3WIRE_StartWrite(uint8_t address, uint8_t data)

Function Description

Send data through SPI3WIRE.

Input Parameter 1

address:Address to be written.

Input Parameter 2

data:Data to be written

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

/* Send data */

13.2.14 Function SPI3WIRE_StartRead
Table 13. 19 Function SPI3WIRE_StartRead

ek

alt

SPI3WIRE_StartWrite(0x00, 0x66);

Re

Examples:

SPI3WIRE_StartRead

Function Prototype

void SPI3WIRE_StartRead(uint8_t address, uint32_t len)

Function Description

Send through SPI3WIRE a command to read a single data or multiple data.

Input Parameter 1

address:Address to be read.

Input Parameter 2

len:Number of the data to be read.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Function Name

al
nti

de

/* Send read several data command */
SPI3WIRE_StartRead(0x20, 1);

13.2.15 Function SPI3WIRE_ReadBuf
Table 13. 20 Function SPI3WIRE_ReadBuf

Function Name

nfi

Examples:

SPI3WIRE_ReadBuf

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

170

RTL8762C Peripheral Manual

Function Prototype

void SPI3WIRE_ReadBuf(uint8_t *pBuf, uint8_t readNum)

Function Description

Read data in receive FIFO

Input Parameter 2

pBuf:Start address of the buffer for storing data.

Input Parameter 3

readNum:Number of the data to be read.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

171

RTL8762C Peripheral Manual

14 Timer & PWM
14.1 TIM Register Structure
typedef struct
{
__IO uint32_t

LoadCount;
CurrentValue;

__IO uint32_t

ControlReg;

__I uint32_t

EOI;

__I uint32_t

IntStatus;

Re

__I uint32_t

} TIM_TypeDef;

Table 14. 1

alt

Table 14. 1 TIM Registers

Description

ek

Register

Loaded value register

CurrentValue

Current count register

ControlReg

Control register

EOI

Interrupt clear register

IntStatus

Interrupt status register

Co

LoadCount

nfi

14.2 TIM Library Functions

Table 14. 2 TIM Library Functions
Function Name

Description

al
nti

de

All TIM library functions are enumerated in Table 14. 2.

TIM_DeInit

Disable TIM clock source.

TIM_TimeBaseInit

Initialize TIMx register based on parameters specified in TIMx_InitStruct.

TIM_StructInit

Set each parameter in TIM_InitStruct to default value.

TIM_Cmd

Enable or disable TIMx.

TIM_ChangePeriod

Change period of TIMx.

TIM_INTConfig

Enable or disable TIMx interrupt.

TIM_GetCurrentValue

Acquire current count value of TIMx.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

172

RTL8762C Peripheral Manual

TIM_GetINTStatus

Check whether TIMx interrupt flag is set or not.

TIM_ClearINT

Clear TIMx interrupt.

TIM_PWMChangeFreqAndDuty

Modify PWM frequency and duty cycle corresponding to TIMx

PWM_Deadzone_EMStop

Dual complementary PWM output emergency stop

14.2.1 Function TIM_DeInit
Table 14. 3 Function TIM_DeInit
TIM_DeInit

Function Prototype

void TIM_DeInit(void)

Function Description

Disable TIM clock source.

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

ek

alt

Re

Function Name

Examples:

Co

/* Close TIM clock */
TIM_DeInit();

nfi

14.2.2 Function TIM_TimeBaseInit
Function Name

TIM_TimeBaseInit

Function Prototype

void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef*
TIM_TimeBaseInitStruct)

al
nti

de

Table 14. 4 Function TIM_TimeBaseInit

Function Description

Initialize TIMx register based on parameters specified in TIMx_InitStruct.

Input Parameter 1

TIMx: Used to select TIMx peripheral. x can be set to 2 ~ 7.

Input Parameter 2

TIM_TimeBaseInitStruct: A pointer points to structure TIM_InitTypeDef, which contains
configuration information about peripheral TIMx.

Output Parameter

None

Return Value

None

Prerequisite

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

173

RTL8762C Peripheral Manual

Functions Called

None

typedef struct
{
uint16_t TIM_SOURCE_DIV;
uint16_t TIM_Mode;
uint16_t TIM_PWM_En;
uint32_t TIM_Period;
uint32_t TIM_PWM_High_Count;
uint32_t TIM_PWM_Low_Count;
uint8_t ClockDepend;
uint32_t PWM_Deazone_Size;
uint16_t PWM_Stop_State_P;
uint16_t PWM_Stop_State_N;

alt

} TIM_TimeBaseInitTypeDef;

Re

uint16_t PWMDeadZone_En;

TIM_SOURCE_DIV:This parameter is used to select clock source of TIMx. Table 14. 5 lists values available to this

ek

parameter.
Table 14. 5 Values of TIM_SOURCE_DIV

TIM_SOURCE_DIV

40MHz clock source

TIM_CLOCK_DIVIDER_2

20MHz clock source

TIM_CLOCK_DIVIDER_4

10MHz clock source

TIM_CLOCK_DIVIDER_8

5MHz clock source

TIM_CLOCK_DIVIDER_40

1MHz clock source

Co

TIM_CLOCK_DIVIDER_1

Description

nfi

parameter.
Table 14. 6 Values of TIM_Mode
TIM_Mode

Description

TIM_Mode_FreeRun

Free operation mode

TIM_Mode_UserDefine

Customized mode

al
nti

de

TIM_Mode: This parameter is used to set operation mode of TIMx. Table 14. 6 lists values available to this

TIM_Period: This parameter is used to set period value of TIMx, which ranges from 0x00 to 0xFFFFFFFF.
TIM_PWM_En:This parameter is used to enable PWM. Table Table 14. 6 lists values available to this parameter.
Note: All TIM can be configured to work in PWM mode, but only TIM2 and TIM3 have complementary output
function.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

174

RTL8762C Peripheral Manual

Table 14. 7 Values of TIM_Mode

TIM_Mode

Description

PWM_ENABLE

Enable PWM Mode

PWM_DISABLE

Disable PWM Mode

TIM_PWM_High_Count:This parameter is used to set period of PWM high level section corresponding to TIMx,
which ranges from 0x00 to 0xFFFFFFFF.
TIM_PWM_Low_Count:This parameter is used to set period value of PWM low level section corresponding to

Re

TIMx, which ranges from 0x00 to 0xFFFFFFFF.

PWMDeadZone_En:This parameter is used to configure dual complementary PWM output function (with
dead-zone).

alt

Note: All TIM can be configured to work in PWM mode, but only TIM2 and TIM3 have complementary output
function.

ek

Table 14. 8 Values of PWMDeadZone_En

TIM_EventMode

Enable

DEADZONE_DISABLE

Disable

Description

Co

DEADZONE_ENABLE

PWM_Deazone_Size:This parameter is used to configure the size of the dual complementary output dead-zone,

nfi

which ranges from 0x00 to 0xFFFFFFFF.

PWM_Stop_State_P:This parameter is used to configure the status of the P-channel after dual complementary

Table 14. 9 Values of PWM_Stop_State_P

TIM_EventDuration

de

output emergency stop. Table 14. 9 lists values available to this parameter.

Description

al
nti

PWM_STOP_AT_HIGH

P-channel stops at high level after emergency stop

PWM_STOP_AT_LOW

P-channel stops at low level after emergency stop

PWM_Stop_State_N:This parameter is used to configure the status of the N-channel after dual complementary
output emergency stop. Table 14. 10 lists values available to this parameter.
Table 14. 11 Values of PWM_Stop_State_N

TIM_EventDuration
PWM_STOP_AT_HIGH

Description

N-channel stops at high level after emergency stop
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

175

RTL8762C Peripheral Manual

PWM_STOP_AT_LOW

N-channel stops at low level after emergency stop

Examples:
/* Initialize TIM */
TIM_TimeBaseInitTypeDef TIM_InitStruct;
TIM_InitStruct.TIM_ClockSrc = TIM_CLOCK_10MHZ;
TIM_InitStruct.TIM_Period = 1000*10000 -1;
TIM_InitStruct.TIM_Mode = TIM_Mode_UserDefine;
TIM_InitStruct.TIM_EventMode = FALSE;
TIM_TimeBaseInit(TIM2, &TIM_InitStruct);
/* Initialize PWM */

Re

TIM_StructInit(&TIM_InitStruct);

TIM_InitStruct.TIM_Mode = TIM_Mode_UserDefine;
TIM_InitStruct.TIM_PWM_En = PWM_ENABLE;
TIM_InitStruct.TIM_Period = 2000 * 10 - 1 ;

TIM_InitStruct.TIM_PWM_Low_Count = 1000000 - 1 ;
TIM_InitStruct.TIM_Mode = 1;

ek

TIM_TimeBaseInit(TIM2, &TIM_InitStruct);

alt

TIM_InitStruct.TIM_PWM_High_Count = 1000000 - 1 ;

14.2.3 Function TIM_StructInit

Co

Table 14. 12 Function TIM_StructInit
TIM_StructInit

Function Prototype

void TIM_StructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)

Function Description

Set each parameter in TIM_InitStruct to the default value.

Input Parameter

TIM_TimeBaseInitStruct: A pointer points to structure TIM_InitTypeDef, which contains
configuration information about peripheral TIMx.
None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

de

nfi

Function Name

Examples:
/* Configure the TIMx Init Structure parameter */
TIM_TimeBaseInitTypeDef TIM_InitStruct;
TIM_StructInit(&TIM_InitStruct);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

176

RTL8762C Peripheral Manual

14.2.4 Function TIM_Cmd
Table 14. 13 Function TIM_Cmd
Function Name

TIM_Cmd

Function Prototype

void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState)

Function Description

Enable or disable TIM.

Input Parameter 1

TIMx: Used to select TIMx peripheral. x ranges from 2 to 7.

Input Parameter 2

newState: new state of TIMx
Optional parameters: ENABLE, DISABLE

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

Examples:

ek

/* Enable TIM2 */
TIM_ Cmd (TIM2, ENABLE);

Co

14.2.5 Function TIM_ChangePeriod
Table 14. 14 Function TIM_ChangePeriod
TIM_ChangePeriod

Function Prototype

void TIM_ChangePeriod(TIM_TypeDef* TIMx, uint32_t period)

Function Description

Change period of TIM.

Input Parameter 1

TIMx: Used to select TIMx peripheral. x ranges from 2 to 7.

Input Parameter 2

period: period of TIMx

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

nfi

Function Name

Examples:
/* Change TIM2 period value */
TIM_ ChangePeriod (TIM2, 1000*10000 -1);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

177

RTL8762C Peripheral Manual

14.2.6 Function TIM_INTConfig
Table 14. 15 Function TIM_INTConfig
Function Name

TIM_INTConfig

Function Prototype

void TIM_INTConfig(TIM_TypeDef* TIMx, FunctionalState NewState)

Function Description

Enable or disable TIMx interrupt.

Input Parameter 1

TIMx: Used to select TIMx peripheral. x ranges from 2 to 7.

Input Parameter 2

newState: new state of TIMx interrupt
Optional parameters: ENABLE, DISABLE

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

Examples:

ek

/* Enable TIM2 interrupt */
TIM_INTConfig (TIM2, ENABLE);

Table 14. 16 Function TIM_GetCurrentValue

Co

14.2.7 Function TIM_GetCurrentValue
TIM_GetCurrentValue

Function Prototype

uint32_t TIM_GetCurrentValue(TIM_TypeDef* TIMx)

Function

Acquire current count value of TIMx.

TIMx: Used to select TIMx peripheral. x ranges from 2 to 7.

Output Parameter

None

Return Value

Current count value of TIMx

Prerequisite

None

Functions Called

None

al
nti

Input Parameter

de

Description

nfi

Function Name

Examples:
/* Get TIM2 current value of counter */
uint32_t value =TIM_GetCurrentValue (TIM2);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

178

RTL8762C Peripheral Manual

14.2.8 Function TIM_GetINTStatus
Table 14. 17 Function TIM_GetINTStatus
Function Name

TIM_GetINTStatus

Function Prototype

ITStatus TIM_GetINTStatus(TIM_TypeDef* TIMx)

Function Description

Check whether TIMx interrupt flag is set or not.

Input Parameter

TIMx: Used to select TIMx peripheral. x ranges from 2 to 7.

Output Parameter

None

Return Value

Value of TIMx interrupt flag, which shall be one of the values enumerated in ITStatus.

Re

RESET: Interrupt does not occur
SET: Interrupt occurs
None

Functions Called

None

alt

Prerequisite

Examples:

ek

/* Get TIM2 interrupt status */
BOOL intValue =TIM_GetINTStatus (TIM2);

Co

14.2.9 Function TIM_ClearINT
Table 14. 18 Function TIM_ClearINT
TIM_ClearINT

Function Prototype

void TIM_ClearINT(TIM_TypeDef* TIMx)

Function Description

Clear TIMx interrupt.

Input Parameter

TIMx: Used to select TIMx peripheral, where x ranges from 2 to 7.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

nfi

Function Name

Examples:
/* Clear TIM2 interrupt status */
TIM_ ClearINT (TIM2);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

179

RTL8762C Peripheral Manual

14.2.10 Function TIM_PWMChangeFreqAndDuty
Table 14. 19 Function TIM_PWMChangeFreqAndDuty
Function Name

TIM_PWMChangeFreqAndDuty

Function Prototype

void TIM_PWMChangeFreqAndDuty(TIM_TypeDef *TIMx, uint32_t high_count, uint32_t
low_count)

Function Description

Modify the frequency and duty cycle of the PWM corresponding to TIMx

Parameter 1

TIMx: Used to select TIMx peripheral, where x ranges from 2 to 7.

Parameter 2

high_count: used to configure period of PWM high level counter, ranging from 0x00 to

Parameter 3

Re

0xFFFFFFFF

low_count: used to configure period of PWM low level counter, ranging from 0x00 to
0xFFFFFFFF

Return Value

None

Prerequisite

None

Functions Called

None

ek

None

alt

Output Parameter

Examples:

Co

/* Change TIM2 PWM high count and low count */
TIM_PWMChangeFreqAndDuty (TIM2,0x100, 0x100);

Table 14. 20 Function PWM_Deadzone_EMStop
Function Name

PWM_Deadzone_EMStop

Function Prototype

void PWM_Deadzone_EMStop(PWM_TypeDef *PWMx)

Function Description

Dual complementary PWM output emergency stop

Input Parameter

PWMx:Used to select dual complementary PWM output peripheral.
Optional values: PWM2, PWM3

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

180

al
nti

de

nfi

14.2.11 Function PWM_Deadzone_EMStop

RTL8762C Peripheral Manual

/* Stop PWM0 output */
PWM_Deadzone_EMStop(PWM0_PN);

ek

alt

Re
Co
al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

181

RTL8762C Peripheral Manual

15

Universal

Asynchronous

Receiver

Transmitter

(UART)
15. 1 UART Register Architecture
typedef struct {
DLL;

__IO uint32_t

DLH_INTCR;

__IO uint32_t

INTID_FCR;

__IO uint32_t

LCR;
MCR;

__I

uint32_t

LSR;

__I

uint32_t

MSR;
SPR;

__IO uint32_t

STSR;

__IO uint32_t

RB_THR;

__IO uint32_t

MISCR;

ek

__IO uint32_t

alt

__IO uint32_t

Re

__IO uint32_t

} UART_TypeDef;

Co

All UART registers are enumerated in Table 15. 1.

Register

nfi

Table 15. 1 UART Registers

Description
Frequency division register (L)

DLH_INTCR

Frequency division register (H)_Interrupt control register

INTID_FCR

Interrupt type register_FIFO control register

LCR

Line control register

MCR

Model control register

LSR

Line status register

MSR

Model status register

SPR

Scratch pad register

al
nti

de

DLL

STSR
RB_THR

Receive buffer register/transmit buffer register

MISCR

Mixed register

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

182

RTL8762C Peripheral Manual

15. 2 UART Library Functions
Table 15. 2 All UART library functions.
Function Name

Description
Initialize UART register based on parameters specified in UART_InitStruct.

UART_DeInit

Disable UART clock.

UART_StructInit

Set each parameter in UART_InitStruct to the default value.

UART_ReceiveData

Receive data through UART.

UART_SendData

Send data through UART.

UART_INTConfig

Enable or disable interrupts specified by UART.

UART_GetFlagState

Check the specified status flag in UART peripheral.

UART_LoopBackCmd

Enable or disable loop back function.

UART_ClearTxFifo

Empty the data in transmit FIFO of UART.

UART_ClearRxFifo

Empty the data in receive FIFO of UART.

UART_GetTxFIFOLen

Get data length from UART transmit FIFO

UART_GetRxFIFOLen

Get data length from UART receive FIFO

UART_ReceiveByte

Read one byte from UART receive FIFO.

UART_SendByte

Write one byte to UART transmit FIFO.

UART_GetIID

Acquire type of UART interrupt source.

ek

alt

Re

UART_Init

Co
nfi

15. 2. 1 Function UART_Init

de

Table 15. 3 Function UART_Init
UART_Init

Function Prototype

UART_Init(UART_TypeDef* UARTx, UART_InitTypeDef* UART_InitStruct)

Function Description

Initialize UART register based on parameters specified in UART_InitStruct.

Input Parameter 1

UARTx: x can be assigned as 0 or 1 to select target UART peripheral.

Input Parameter 2

UART_InitStruct: A pointer to UART_InitTypeDef, and related configuration information is
contained in UART_InitStruct.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

183

al
nti

Function Name

RTL8762C Peripheral Manual

typedef struct

批注 [张一凡4]: 待确认,与代码不符

{
uint16_t ovsr_adj;
uint16_t div;
uint16_t ovsr;
uint16_t wordLen;
uint16_t parity;
uint16_t stopBits;
uint16_t autoFlowCtrl;
uint16_t rxTriggerLevel;
uint16_t dmaEn;

Re

}UART_InitTypeDef;

ovsr_adj, div and ovsr: These three parameters are used to set UART baud rate checking parameter. Table 15. 4

alt

lists values available to this parameter.

Table 15. 4 Relationship between OVSR_ADJ, DIV, OVSR Values and Baud Rate

ek

ovsr_adj

div

ovsr

Baud rate value

0x7F7

2589

7

1200Hz

0x24A

271

10

0x222

271

5

0x5AD

165

7

0x5AD

110

7

0x222

85

7

0x5AD

55

7

0x7EF

35

9

76800Hz

0x252

20

12

115200Hz

0x555

25

7

128000Hz

0x252

15

12

153600Hz

0x252

10

12

230400Hz

0x252

5

12

460800Hz

0

8

5

500000Hz

0x3F7

4

5

921600Hz

0

4

5

1000000Hz

0x2AA

2

9

1382400Hz

0x5F7

2

8

1444400Hz

Co

19200Hz
28800Hz
38400Hz
57600Hz

al
nti

de

184

14400Hz

nfi

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

9600Hz

RTL8762C Peripheral Manual

2

8

1500000Hz

0x3F7

2

5

1843200Hz

0

2

5

2000000Hz

0x400

1

14

2100000Hz

0x2AA

1

9

2764800Hz

0x492

1

8

3000000Hz

0x112

1

7

3250000Hz

0x5F7

1

5

3692300Hz

0x36D

1

5

3750000Hz

0

1

0x36D

1

Re

0x492

5

4000000Hz

1

6000000Hz

alt

wordLen: This parameter is used to set data length of UART. Table 15. 5 lists values available to this parameter.
Table 15. 5 Values of wordLen

ek

wordLen

Description

UART_WROD_LENGTH_7BIT

7-bit data

UART_WROD_LENGTH_8BIT

8-bit data

Co

parity: Set checking pattern of UART. Table 15. 6 lists values available to this parameter.
Table 15. 6 Values of parity

nfi

parity

Description
Parity disabled

UART_PARITY_ODD

Even mode

UART_PARITY_EVEN

Odd mode

de

UART_PARITY_NO_PARTY

Table 15. 7 Values of stopBits
stopBits

Description

UART_STOP_BITS_1

Transfer 1 stop bit at the end of frame

UART_STOP_BITS_2

Transfer 2 stop bit at the end of frame

autoFlowCtrl: Hardware flow control. Table 15. 8 lists values available to this parameter.
Table 15. 8 Values of autoFlowCtrl
autoFlowCtrl

Description
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

185

al
nti

stopBits: Set communication stop bits for UART. Table 15. 7 lists values available to this parameter.

RTL8762C Peripheral Manual

UART_AUTO_FLOW_CTRL_EN

Enable hardware flow control

UART_AUTO_FLOW_CTRL_DIS

Disable hardware flow control

rxTriggerLevel: Set the threshold value for UART receive FIFO, ranging from 0 to 29.
dmaEn: Set whether GDMA transfer mode is enabled. Table 15. 9 lists values available to this parameter.
Table 15. 9 Values of dmaEn
dmaEn

Description
Enable GDMA transmission mode of UART

UART_DMA_DISABLE

Disable GDMA transmission mode of UART

Examples:
/* Initialize Data UART */
UART_InitTypeDef

UART_InitStruct;

/* Configure baudrate to 115200 */
UART_InitStruct.div = 20;
UART_InitStruct.ovsr = 12;

ek

alt

Re

UART_DMA_ENABLE

UART_InitStruct.ovsr_adj = 0x252;
/* Configure uart parameters */
UART_InitStruct.parity = UART_PARITY_NO_PARTY;
UART_InitStruct.wordLen = UART_WROD_LENGTH_8BIT;
UART_InitStruct.dmaEn = UART_DMA_DISABLE;

UART_InitStruct.autoFlowCtrl = UART_AUTO_FLOW_CTRsL_DIS;

Co

UART_InitStruct.stopBits = UART_STOP_BITS_1;

UART_Init(UART, & UART_InitStruct);

15. 2. 2 Function UART_DeInit
Table 15. 10 Function UART_DeInit
Function Name

UART_DeInit

Function Prototype

UART_DeInit(UART_TypeDef* UARTx)

Function Description

Disable UART clock.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

186

al
nti

de

nfi

UART_InitStruct.rxTriggerLevel = UART_RX_FIFO_TRIGGER_LEVEL_14BYTE;

RTL8762C Peripheral Manual

Examples:
/* Deinitialize Data UART */
UART_DeInit(UART);

15. 2. 3 Function UART_StructInit
Table 15. 11 Function UART_StructInit
UART_StructInit

Function Prototype

void UART_StructInit(UART_InitTypeDef* UART_InitStruct)

Function Description

Set each parameter in UART_InitStruct to the default value.

Input Parameter 1

UART_InitStruct: A pointer points to structure UART_InitTypeDef, which is to be
initialized.

None

Prerequisite

None

Functions Called

None

ek

None

Return Value

alt

Output Parameter

Re

Function Name

Examples:
/* Initialize Data UART by default value */

Co

UART_InitTypeDef

UART_InitStruct;

UART_StructInit(&UART_InitStruct);

de

Table 15. 12 Function UART_ReceiveData

nfi

15. 2. 4 Function UART_ReceiveData
UART_ReceiveData

Function Prototype

void UART_ReceiveData(UART_TypeDef* UARTx, uint8_t* outBuf, uint16_t count)

Function Description

Read data from UART receive FIFO.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Input Parameter 2

outBuf: A buffer used to store receiced data.

Input Parameter 3

Count: Bytes received

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

187

al
nti

Function Name

RTL8762C Peripheral Manual

/* Receive data from RX FIFO of data uart */
uint8_t dataBuf[16] = {0};
UART_ReceiveData(UART, dataBuf, 16);

15. 2. 5 Function UART_SendData
Table 15. 13 Function UART_SendData
UART_SendData

Function Prototype

UART_SendData(UART_TypeDef* UARTx, uint8_t* inBuf, uint16_t count)

Function Description

Write data to UART transmit FIFO.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Input Parameter 2

inBuf: A buffer that stores data to be sent

Input Parameter 3

Count: Bytes sent

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Name

/* Send data to TX FIFO of data uart */

Co

uint8_t dataBuf[6] = {1,2,3,4,5,6};
UART_SendData(UART, dataBuf, 6);

nfi

15. 2. 6 Function UART_INTConfig
Table 15. 14 Function UART_INTConfig

de

Function Name

UART_INTConfig

Function Prototype

void UART_INTConfig(UART_TypeDef* UARTx, uint32_t UART_IT, FunctionalState

al
nti

newState)
Function Description

Enable or disable interrupts specified by UART.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Input Parameter 2

UART_IT: UART interrupt source to be enabled or disabled. Refer to related description of
UART_IT for more details.

Input Parameter 3

newState: new state of interrupt
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Return Value

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

188

RTL8762C Peripheral Manual

Prerequisite

None

Functions Called

None

UART_IT: Permitted UART interrupt types are as shown in Table 15. 15. Mutiple interrupts can be selected at
one time by using operator "|".
Table 15. 15 Values of UART_IT
UART_IT

Description
Receive interrupt

UART_INT_FIFO_EMPTY

Transmit buffer empty interrupt

UART_INT_LINE_STS

UART receiving bus error interrupt

UART_INT_MODEM_STS

Modem status interrupt

UART_INT_IDLE

UART idle interrupt

Examples:
/* Enable RX interrupt and line status interrupt */

alt

Re

UART_INT_RD_AVA

15. 2. 7 Function UART_GetFlagState

ek

UART_INTConfig(UART, UART_INT_RD_AVA | UART_INT_LINE_STS, ENABLE);

Co

Table 15. 16 Function UART_GetFlagStat
UART_GetFlagStat

Function Prototype

FlagStatus UART_GetFlagState(UART_TypeDef* UARTx, uint32_t UART_FLAG)

Function Description

Check the status flag specified in UART peripheral.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Input Parameter 2

UART_FLAG: Flag type to be checked

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

nfi

Function Name

UART_FLAG: Permitted UART flag types are as shown in Table 15. 17.
Table 15. 17 Values of UART_FLAG
UART_FLAG

Description

UART_FLAG_RX_DATA_RDY

Data received

UART_FLAG_RX_OVERRUN

Overflow error
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

189

RTL8762C Peripheral Manual

UART_FLAG_PARTY_ERR

Checking error

UART_FLAG_FRAME_ERR

Data frame error

UART_FLAG_BREAK_ERR

Interrupt error

UART_FLAG_THR_EMPTY

Transmit buffer is empty

UART_FLAG_THR_TSR_EMPTY

Transmit buffer and shift register are both empty

UART_FLAG_RX_FIFO_ERR

Checking error, or data frame error, or interrupt error

Examples:
/* Wait tx fifo empty */
while(UART_GetFlagState(UART, UART_FLAG_THR_TSR_EMPTY) != SET);

Re

15. 2. 8 Function UART_ClearTxFifo

alt

Table 15. 18 Function UART_ClearTxFifo
UART_ClearTxFifo

Function Prototype

void UART_ClearTxFifo(UART_TypeDef* UARTx)

Function Description

Empty the data in UART transmit FIFO.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

Function Name

Co

/* Clear Tx FIFO */
UART_ClearTxFifo(UART);

Table 15. 19 Function UART_LoopBackCmd

al
nti

15.2.9 Function UART_LoopBackCmd

de

nfi

Examples:

Function Name

UART_LoopBackCmd

Function Prototype

void UART_LoopBackCmd(UART_TypeDef *UARTx, FunctionalState NewState)

Function Description

Enable or disable loop back function.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Input Parameter 2

newState: new state of loop back
This parameter can be set to ENABLE or DISABLE.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

190

RTL8762C Peripheral Manual

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Enable loop back function */
UART_LoopBackCmd (UART, ENABLE);

Re

15. 2. 10 Function UART_ClearRxFifo
Table 15. 20 Function UART_ClearRxFifo

alt

UART_ClearRxFifo

Function Prototype

void UART_ClearRxFifo(UART_TypeDef* UARTx)

Function Description

Empty the data in UART receive FIFO.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

Function Name

Co

/* ClearRx FIFO */
UART_ClearRxFifo(UART);

Table 15. 21 Function UART_GetTxFIFOLen
Function Name

UART_GetTxFIFOLen

Function Prototype

uint8_t UART_GetTxFIFOLen(UART_TypeDef *UARTx)

Function Description

Get data length from UART transmit FIFO

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Output Parameter

None

Return Value

Data length.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

191

al
nti

15.2.11 Function UART_GetTxFIFOLen

de

nfi

Examples:

RTL8762C Peripheral Manual

Prerequisite

None

Functions Called

None

Examples:
/* Get data number in TX FIFO */
uint8_t number = 0;
number = UART_ GetTxFIFOLen (UART);

15.2.12 Function UART_GetRxFIFOLen

Re

Table 15. 22 Function UART_GetRxFIFOLen
UART_GetTxFIFOLen

Function Prototype

uint8_t UART_GetTxFIFOLen(UART_TypeDef *UARTx)

Function

Get data length from UART receive FIFO

alt

Function Name

Description

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Output Parameter

None

Return Value

Data length.

Prerequisite

None

Functions Called

None

ek

Input Parameter 1

Co

Examples:

uint8_t number = 0;
number = UART_ GetRxFIFOLen (UART);

Table 15. 20 Function UART_ReceiveByte
Function Name

UART_ReceiveByte

Function Prototype

uint8_t UART_ReceiveByte(UART_TypeDef* UARTx)

Function Description

Read one byte from UART receive FIFO.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Output Parameter

None

Return Value

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

192

al
nti

15. 2. 13 Function UART_ReceiveByte

de

nfi

/* Get data number in RX FIFO */

RTL8762C Peripheral Manual

Prerequisite

None

Functions Called

None

Examples:
/* Receive one byte from Rx FIFO of uart */
uint8_t data = UART_ReceiveByte (UART);

15. 2. 11 Function UART_SendByte
Table 15. 21 Function UART_SendByte
UART_SendByte

Function Prototype

void UART_SendByte(UART_TypeDef* UARTx, uint8_t data)

Function Description

Write one byte to UART transmit FIFO.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Name

Co

/* Send one byte to TX FIFO of data uart */
UART_SendData(UART, 0x66);

nfi

15. 2. 12 Function UART_GetIID
Table 15. 22 Function UART_GetIID
UART_GetIID

Function Prototype

uint16_t UART_GetIID(UART_TypeDef* UARTx)

Function Description

Acquire type of UART interrupt source.

Input Parameter 1

UARTx: x can be assigned as 0, 1 or 2 to select target UART peripheral.

Output Parameter

None

Return Value

Interrupt type

Prerequisite

None

Functions Called

None

/* Read interrupt id */
uint32_t int_status = UART_GetIID(UART);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

193

al
nti

Examples:

de

Function Name

RTL8762C Peripheral Manual

16 KEYSCAN
16. 1 KEYCAN Register Architecture
typedef struct
{
__IO uint32_t CLKDIV;
__IO uint32_t TIMERCR;
__IO uint32_t COLCR;
__IO uint32_t ROWCR;
__I uint32_t FIFODATA;
__IO uint32_t INTMASK;
__IO uint32_t INTCLR;
__I

uint32_t STATUS;

ek

alt

Re

__IO uint32_t CR;

} KEYSCAN_TypeDef;

All Keyscan registers are enumeratedin Table 16. 1.

Co

Table 16. 1 KEYSCAN Registers
Register

Description

Keyscan timing control register

CR

Control Register

COLCR

Column control register

ROWCR

Row control register

FIFODATA

KEYSCAN hardware FIFO

INTMASK

Interrupt mask register

STATUS

Status register

al
nti

TIMERCR

de

Keyscan clock divider

nfi

CLKDIV

16. 2 KEYSCAN Library Functions
Table 16. 2 enumerates all KEYSCAN library functions.
Function Name
KeyScan_Init

Description
Initialize Keyscan register based on parameters specified in KeyScan_InitStruct.
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

194

RTL8762C Peripheral Manual

Disable Keyscan clock.

KeyScan_StructInit

Set each parameter in Keyscan_InitStruct to the default value.

KeyScan_INTConfig

Enable or disable the interrupt source specified by Keyscan.

KeyScan_INTMask

Mask interrupt source of KeyScan.

KeyScan_Read

Read data from KeyScan FIFO.

KeyScan_Cmd

Enable or disable KeyScan peripheral.

KeyScan_GetFifoDataNum

Acquire length of the data in FIFO.

KeyScan_ClearINTPendingBit

Clear an interrupt source in KeyScan peripheral to interrupt suspension bit.

KeyScan_ClearFlags

Clear flag specified by KeyScan.

KeyScan_GetFlagState

Check whether the specified status flag is set.

KeyScan_FilterDataConfig

Filter FIFO data

KeyScan_debounceConfig

Key debounce configure

KeyScan_ReadFifoData

Read one data from FIFO

ek

alt

Re

KeyScan_DeInit

16. 2. 1 Function KeyScan_Init
Table 16. 3 Function KeyScan_Init

Co

Function Name

KeyScan_Init

Function Prototype

void KeyScan_Init(KEYSCAN_TypeDef* KeyScan, KEYSCAN_InitTypeDef*
KeyScan_InitStruct)

nfi

Initialize Keyscan register based on parameters specified in KeyScan_InitStruct.

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

KeyScan_InitStruct: A pointer to KeyScan_InitTypeDef, whose related configuration
information is contained in KeyScan_InitStruct.
None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

de

Function Description

typedef struct
{
uint16_t

rowSize;

uint16_t

colSize;

uint32_t

detectPeriod;

uint16_t

timeout;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

195

RTL8762C Peripheral Manual

uint16_t

scanInterval;

uint32_t

debounceEn;

uint32_t

scantimerEn;

uint32_t

detecttimerEn;

uint16_t

debounceTime;

uint32_t

detectMode;

uint32_t

fifoOvrCtrl;

uint16_t

maxScanData;

uint32_t
uint16_t
uint8_t

delayclk;
fifotriggerlevel;

uint8_t

debouncecnt;

uint8_t

releasecnt;

uint8_t

keylimit;

alt

Re

uint16_t

scanmode;
clockdiv;

} KEYSCAN_InitTypeDef;

rowSize: This parameter is used to configure number of rows of matrix keyboard, which ranges from 1 to 8.

ek

colSize: This parameter is used to configure number of columns of matrix keyboard, which ranges from 1 to 26.
clockdiv:Clock divider, ranges from 1 to 0x7ff. scan_clock =system clock/(clockdiv +1).

Co

delayclk: Delay clock divider. delay_clock = scan_clock /(delayclk +1).

scanInterval: This parameter set interval between 2 scans. This parameter works when long press occurs. If a

nfi

certain key is long pressed, it will detected and system will start next scan. Table 16.4 lists the values available to
this parameter. Actural scan interval is determind by scanInterval and delayclk, scan interval time = scanInterval

de

* delay_clock

debounceEn: Enable or disable debounce function. Table 15. 4 lists values available to this parameter.

debounceEn

Description

KeyScan_Debounce_Enable

Enable keyscan debounce function

KeyScan_Debounce_Disable

Disable keyscan debounce function

al
nti

Table 16. 4 debounceEn

debouncecnt: Configure Keyscan debounce time. Debounce time = debouncecnt * delay_clock。

detectMode: This parameter is used to set the detect mode for keyscan. Table 16. lists values available to this
parameter.
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

196

RTL8762C Peripheral Manual

Table 16. 5 detectMode
detectMode

Description

KeyScan_Detect_Mode_Edge

Edge trigger Mode

KeyScan_Detect_Mode_Level

Level trigger Mode

releasecnt: This parameter is used to set key scan release time, actual release time = releasecnt * delay_clock.
detecttimerEn: This parameter set the function to release detect, 错误!未找到引用源。 lists values available to
this parameter.

detectMode
KeyScan_Release_Detect_Enable

Re

Table 16. 6 detecttimerEn

Description

Enable key release detect

alt

KeyScan_Release_Detect_Disable

Disable key release detect

ek

fifoOvrCtrl: Configure data storage pattern when FIFO is full. Table 16. lists available values:
Table 16. 7 Value of fifoOvrCtrl

fifoOvrCtrl

Description

Co

KeyScan_FIFO_OVR_CTRL_DIS_ALL

Abandon latest data

KeyScan_FIFO_OVR_CTRL_DIS_LAST

Abandon previous data.

nfi

Examples:
/* Initialize KeyScan */
KEYSCAN_InitTypeDef

keyScanInitStruct;

de

KeyScan_StructInit(&keyScanInitStruct);
/* Debounce time is 16 ms */
keyScanInitStruct.debounceTime = (16 * 32);

al
nti

keyScanInitStruct.rowSize = KEYPAD_ROW_SIZE;
keyScanInitStruct.colSize = KEYPAD_COLUMN_SIZE;
KeyScan_Init(KEYSCAN, &keyScanInitStruct);

16. 2. 2 Function KeyScan_DeInit
Table 16. 8 Function KeyScan_DeInit
Function Name

KeyScan_DeInit

Function Prototype

void KeyScan_DeInit(KEYSCAN_TypeDef* KeyScan)

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

197

RTL8762C Peripheral Manual

Function Description

Disable Keyscan clock.

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

/* Deinitialize keyscan */
KeyScan_DeInit(KEYSCAN);

Table 16. 9 Function KeyScan_StructInit

Re

16. 2. 3 Function KeyScan_StructInit
KeyScan_StructInit

Function Prototype

void KeyScan_StructInit(KEYSCAN_TypeDef* KeyScan, KEYSCAN_InitTypeDef*

alt

Function Name

ek

KeyScan_InitStruct)
Function Description

Set each parameter in Keyscan_InitStruct to the default value.

Input Parameter 1

KeyScan_InitStruct: A pointer points to structure KeyScan_InitTypeDef, which is to be

None

Return Value

None

Prerequisite

None

Functions Called

None

nfi

Output Parameter

Co

initialized.

Examples:
KEYSCAN_InitTypeDef keyScanInitStruct;
KeyScan_StructInit(&keyScanInitStruct);

16. 2. 4 Function KeyScan_INTConfig
Table 16. 10 Function KeyScan_INTConfig

al
nti

de

/* Initialize KeyScan */

Function Name

KeyScan_INTConfig

Function Prototype

void KeyScan_INTConfig(KEYSCAN_TypeDef* KeyScan, uint32_t KeyScan_IT,
FunctionalState newState)

Function Description

Enable or disable specified Keyscan interrupt source.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

198

RTL8762C Peripheral Manual

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

KeyScan _IT: KeyScan interrupt source to be enabled or disabled. Refer to related
description of KeyScan_IT for more details.

Input Parameter 3

newState: new state of interrupt
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Re

KeyScan_IT: Permitted KeyScan interrupt types are as shown in Table 16. 11. Mutiple interrupts can be selected
at one time by using operator "|".

KeyScan_IT

alt

Table 16. 11 Values of KeyScan_IT

Description

FIFO data exceeding threshold interrupt

KEYSCAN_INT_OVER_READ

FIFO data misreading interrupt

KEYSCAN_INT_SCAN_END

Scan end interrupt

KEYSCAN_INT_FIFO_NOT_EMPTY

FIFO not empty interrupt

KEYSCAN_INT_ALL_RELEASE

All key released interrupt

ek

KEYSCAN_INT_THRESHOLD

Co

Examples:
KeyScan_INTConfig(KEYSCAN, KEYSCAN_INT_SCAN_END, ENABLE);

al
nti

Table 16. 12 Function KeyScan_INTMask

de

16. 2. 5 Function KeyScan_INTMask

nfi

/* Enable scan end interrupt */

Function Name

KeyScan_INTMask

Function Prototype

void KeyScan_INTMask(KEYSCAN_TypeDef* KeyScan, FunctionalState newState)

Function Description

Mask interrupt source of KeyScan.

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

newState: new state of interrupt
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Return Value

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

199

RTL8762C Peripheral Manual

Prerequisite

None

Functions Called

None

Examples:
/* Mask scan end interrupt */
KeyScan_INTMask(KEYSCAN, ENABLE);

16. 2. 6 Function KeyScan_Read
Table 16. 13 Function KeyScan_Read
KeyScan_Read

Function Prototype

void KeyScan_Read(KEYSCAN_TypeDef* KeyScan, uint8_t* outBuf, uint16_t count)

Function Description

Read data from FIFO of KeyScan.

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

outBuf: Buffer used to save received data.

Input Parameter 3

Count: Number of the data in FIFO to be read.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Name

Co

Examples:

nfi

/* Read FIFO data */
uint8_t dataBuf[26] = {0};
KeyScan_Read(KEYSCAN, dataBuf, 26);

Table 16. 14 Function KeyScan_Cmd

al
nti

de

16. 2. 7 Function KeyScan_Cmd
Function Name

KeyScan_Cmd

Function Prototype

void KeyScan_Cmd(KEYSCAN_TypeDef* KeyScan, FunctionalState NewState)

Function Description

Enable or disable KeyScan peripheral.

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

newState: new state of interrupt
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

200

RTL8762C Peripheral Manual

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Enable keyscan */
KeyScan_Cmd(KEYSCAN, ENABLE);

16. 2. 8 Function KeyScan_GetFifoDataNum

Re

Table 16. 15 Function KeyScan_GetFifoDataNum

KeyScan_GetFifoDataNum

Function Prototype

uint16_t KeyScan_GetFifoDataNum(KEYSCAN_TypeDef* KeyScan)

Function Description

Acquire length of the data in FIFO.

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Output Parameter

None

Return Value

Length of the data in FIFO

Prerequisite

None

Functions Called

None

ek

alt

Function Name

Co

Examples:
/* Get data length in FIFO */
uint8_t len = 0;

Table 16. 16 Function KeyScan_ClearINTPendingBit

al
nti

de

16. 2. 9 Function KeyScan_ClearINTPendingBit

nfi

len = KeyScan_GetFifoDataNum(KEYSCAN);

Function Name

KeyScan_ClearINTPendingBit

Function Prototype

void KeyScan_ClearINTPendingBit(KEYSCAN_TypeDef* KeyScan, uint32_t KeyScan_IT)

Function Description

Clear an interrupt source in KeyScan peripheral to interrupt suspension bit.

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

KeyScan _IT: Suspended KeyScan interrupt source. Refer to related description of
KeyScan_IT in 16. 2. 4 for more details.

Output Parameter

None

Return Value

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

201

RTL8762C Peripheral Manual

Prerequisite

None

Functions Called

None

Examples:
/* Clear scan end interrupt */
KeyScan_ClearINTPendingBit(KEYSCAN, KEYSCAN_INT_SCAN_END);

16. 2. 10 Function KeyScan_ClearFlags
Table 16. 17 Function KeyScan_ClearFlags
KeyScan_ClearFlags

Function Prototype

void KeyScan_ClearFlags(KEYSCAN_TypeDef* KeyScan, uint32_t KeyScan_FLAG)

Function Description

Clear flag specified by KeyScan.

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

KeyScan_ FLAG: Specified flag. Refer to related description of KeyScan_FLAG for more

alt

Re

Function Name

None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Output Parameter

ek

details.

KeyScan_FLAG: Permitted KeyScan Status types are as shown below. Mutiple interrupts can be selected at one

Table 16. 18 Values of KeyScan_FLAG
KeyScan_FLAG

Description
FIFO data exceed limit flag

KEYSCAN_FLAG_DATAFILTER

FIFO data filtered flag

KEYSCAN_FLAG_OVR

FIFO overflow flag

al
nti

KEYSCAN_FLAG_FIFOLIMIT

de

nfi

time by using operator "|".

Examples:
/* Clear scan FIFO overflow flag */
KeyScan_ ClearFlags (KEYSCAN, KEYSCAN_FLAG_OVR);

16. 2. 11 Function KeyScan_GetFlagState
Table 16. 19 Function KeyScan_GetFlagState

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

202

RTL8762C Peripheral Manual

Function Name

KeyScan_GetFlagState

Function Prototype

FlagStatus KeyScan_GetFlagState(KEYSCAN_TypeDef* KeyScan, uint32_t KeyScan_FLAG)

Function Description

Check whether the specified status is set.

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

KeyScan _ FLAG: status flag to be checked. Refer to related description of KeyScan_FLAG
in 16. 2. 10 for more details.
None

Return Value

Status flag.

Prerequisite

None

Functions Called

None

Re

Output Parameter

Examples:

alt

/* Get FIFO overflow flag state */
bool state = FALSE;

state = KeyScan_GetFlagState (KEYSCAN, KEYSCAN_FLAG_OVR);

ek

16. 2. 12 Function KeyScan_debounceConfig
Table 16. 20 Function KeyScan_GetCurState

Co

Function Name

KeyScan_GetCurState

Function Prototype

void KeyScan_debounceConfig(KEYSCAN_TypeDef *KeyScan, uint8_t time,

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

time: debounce time setting

Input Parameter 3

NewState: enable or disable keyscan hw debounce

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Set keyscan hardware debounce function

de

Function Description

nfi

FunctionalState NewState)

Examples:
/* Configure debounce of KeyScan */
KeyScan_debounceConfig (KEYSCAN, 0x20, ENABLE);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

203

RTL8762C Peripheral Manual

16. 2. 13 Function KeyScan_FilterDataConfig
Table 16. 21 Function KeyScan_FilterDataConfig
Function Name

KeyScan_FilterDataConfig

Function Prototype

void KeyScan_FilterDataConfig(KEYSCAN_TypeDef *KeyScan, uint16_t data,
FunctionalState NewState)
Set filter data

Input Parameter 1

KeyScan: Point to the selected KeyScan module.

Input Parameter 2

data: data to filter

Input Parameter 3

NewState: enable or disable filter function

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Re

Function Description

Examples:
/* Enable data filter */
KeyScan_FilterDataConfig(KEYSCAN, 0x01, ENABLE);;

KeyScan_ReadFifoData

Function Prototype

uint16_t KeyScan_ReadFifoData(KEYSCAN_TypeDef *KeyScan)

Function Description

Get one data from fifo

Input Parameter

KeyScan: Point to the selected KeyScan module.

Output Parameter

None

Return Value

data in receive FIFO

Prerequisite

None

Functions Called

None

al
nti

Function Name

de

nfi

Table 16. 22 Function KeyScan_ReadFifoData

Co

16. 2. 14 Function KeyScan_ReadFifoData

Examples:
/* Read FIFO data */
uint8_t data = KeyScan_ReadFifoData (KEYSCAN);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

204

RTL8762C Peripheral Manual

17 Infrared Radiation(IR)
17.1 IR Register Architecture
typedef struct
{
uint32_t CLK_DIV;

__IO

uint32_t TX_CONFIG;

__IO

uint32_t TX_SR;

__IO

uint32_t RESERVER;

__IO

uint32_t TX_INT_CLR;
uint32_t TX_FIFO;

__IO

uint32_t RX_CONFIG;

__IO

uint32_t RX_SR;

__IO

uint32_t RX_INT_CLR;

__IO

uint32_t RX_CNT_INT_SEL;

__IO

uint32_t RX_FIFO;

__IO

uint32_t IR_VERSION;

__IO

uint32_t REVD[6];

__IO

uint32_t IR_TX_COMPE;

ek

__IO

alt

Re

__IO

Co

} IR_TypeDef;

All IR registers are enumerated in Table 16. 1.

nfi

Table17. 1 IR Registers
Register

Description

Clock divider register

TX_CONFIG

Configuration registers in sending mode

TX_SR

Status registers in sending mode

RESERVER

Reserved

TX_INT_CLR

Interrupt clear register in receiving mode

TX_FIFO

Transmit FIFO register

RX_CONFIG

Configuration registers in receiving mode

RX_SR

Status registers in receive mode

RX_INT_CLR

Interrupt clear register in receiving mode

RX_CNT_INT_SEL

Counter threshold config register in receiving mode

RX_FIFO

Transmit FIFO register in receiving mode.

All Rights Reserved.

205

al
nti

Copyright 2018 Realtek Semiconductor Corporation.

de

CLK_DIV

RTL8762C Peripheral Manual

IR_VERSION

Reserved

REVD[6]

Reserved

IR_TX_COMPE

Transmit waveform compensation register

17.2 IR Library Functions
Table 17. 2 enumerates all IR library functions.
Table 17. 1 IR Library Functions
Function Name

Description

Re

Disable IR clock.

IR_Init

Initialize IR register based on parameters specified in IR_InitStruct.

IR_StructInit

Set each parameter in IR_InitStruct to the default value.

IR_Cmd

Enable or disable IR send or receive mode.

IR_StartManualRxTrigger

Start manual trigger receiving mode.

IR_SetRxCounterThreshold

Set counter threshold in receiving mode

IR_SendBuf

IR sends data.

IR_ReceiveBuf

IR receives data.

IR_INTConfig

Enable or disable the interrupt source specified by IR.

IR_MaskINTConfig

Mask or unmask the interrupt source specified by IR.

IR_GetINTStatus

Get status of the interrupt source specified by IR.

IR_ClearINTPendingBit

Clear the interrupt flag suspended by IR peripheral.

IR_GetTxFIFOFreeLen

Get the spare space of transmit FIFO.

IR_GetRxDataLen

Get the depth of IR receive FIFO.

IR_SendData

Send data through IR peripheral.

IR_ReceiveData

Receive data through IR peripheral.

IR_SetTxThreshold

Set the FIFO threshold for triggering IR_INT_TF_LEVEL interrupt.

IR_SetRxThreshold

Set the FIFO threshold for triggering IR_INT_RF_LEVEL interrupt.

IR_ClearTxFIFO

Clear data in transmit FIFO.

IR_ClearRxFIFO

Clear data in receive FIFO.

IR_GetFlagStatus

Check the status flag specified in IR peripheral.

IR_SetTxInverse

Reverse transmission data .

IR_TxOutputInverse

Reverse transmission output polarity.

IR_ConfigCompenParam

Set the parameter of IR waveform compensation.

ek

alt

IR_DeInit

Co
al
nti

206

de

All Rights Reserved.

nfi

Copyright 2018 Realtek Semiconductor Corporation.

RTL8762C Peripheral Manual

IR_SendCompenBuf

Send data with waveform compensation

17.2.1 Function IR_ DeInit
Table 17. 2 Function IR_DeInit

IR_DeInit

Function Prototype

void IR_DeInit(void)

Function Description

Disable IR clock.

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

Examples:

ek

alt

Re

Function Name

/* Close IR clock */
IR_DeInit();

Co

17.2.2 Function IR_Init
Table 17. 3 function IR_Init

IR_Init

Function Prototype

void IR_Init(IR_InitTypeDef* IR_InitStruct)

Function Description

Initialize IR register based on parameters specified in IR_InitStruct.

Input Parameter

IR_InitStruct: A pointer to IR_InitTypeDef, whose related configuration information is

de

contained in IR_InitStruct.

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

nfi

Function Name

typedef struct
{
uint32_t IR_Clock;
uint32_t IR_Freq; /*!< Specifies the clock frequency. This parameter is IR carrier freqency whose unit is KHz.
This parameter can be a value of @ref IR_Frequency */
uint32_t IR_DutyCycle;

/*!< Specifies the IR duty cycle. */
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

207

RTL8762C Peripheral Manual

uint32_t IR_Mode;

/*!< Specifies the IR mode.

uint32_t IR_TxIdleLevel;

/*!< Specifies the IR output level in Tx mode

uint32_t IR_TxInverse;

/*!< Specifies inverse FIFO data or not in TX mode

uint32_t IR_TxFIFOThrLevel;

/*!< Specifies TX FIFO interrupt threshold in TX mode. When TX FIFO depth <=

This parameter can be a value of @ref IR_Mode */
This parameter can be a value of @ref IR_Idle_Status */
This parameter can be a value of @ref IR_TX_Data_Type */
threshold value, trigger interrupt.
This parameter can be a value of @ref IR_Tx_Threshold */
uint32_t IR_RxStartMode;

/*!< Specifies Start mode in RX mode

uint32_t IR_RxFIFOThrLevel;

/*!< Specifies RX FIFO interrupt threshold in RX mode. when RX FIFO depth >

This parameter can be a value of @ref IR_Rx_Start_Mode */

Re

threshold value, trigger interrupt.

This parameter can be a value of @ref IR_Rx_Threshold */
uint32_t IR_RxFIFOFullCtrl; /*!< Specifies data discard mode in RX mode when RX FIFO is overflow.

alt

This parameter can be a value of @ref IR_RX_FIFO_DISCARD_SETTING */
uint32_t IR_RxTriggerMode;

/*!< Specifies trigger in RX mode

uint32_t IR_RxFilterTime;

/*!< Specifies filter time in RX mode

This parameter can be a value of @ref IR_RX_Trigger_Mode */

ek

This parameter can be a value of @ref IR_RX_Filter_Time */
uint32_t IR_RxCntThrType; /*!< Specifies counter level type when trigger IR_INT_RX_CNT_THR interrupt in RX

Co

mode

This parameter can be a value of @ref IR_RX_COUNTER_THRESHOLD_TYPE */
uint32_t IR_RxCntThr; /*!< Specifies counter threshold value when trigger IR_INT_RX_CNT_THR interrupt in RX
mode */

nfi

}IR_InitTypeDef;

IR_Clock:This parameter is used to configure the current system clock frequency.

de

IR_Freq:This parameter is used to set the frequency for sending or receiving IR signal. The value of the
parameter should meet the condition: IR_DIV_NUM = (IR_Clock / IR_Freq) – 1, where the value of IR_DIV_NUM

al
nti

ranges from 0 to 4095.

E.g., if the system clock is 40MHz and carrier frequency is set to 38 kHz, IR_DIV_NUM = (40000/ 38)-1=1051.
IR_DIV_NUM is between 0 and 4095 and meets the requirement.

IR_DutyCycle:This parameter is used to set the duty cycle of the IR carrier. E.g., a 1/3 duty cycles is required,
IR_DutyCycle should be assigned as 3. The value of the parameter needs to meet the condition:
IR_DUTY_NUM = (IR_DIV_NUM+1)/ dutyCycle -1, IR_DIV_NUM values range from 0 to 4095.

For example, when the output duty cycle is 1/3 and the carrier frequency is 38KHz, so IR_DUTY_NUM =
(IR_DIV_NUM+1)/ 3 -1 = 349. IR_DUTY_NUM is between 0 and 4095 and meets the requirement.
IR_Mode:This parameter is used to set IR mode. Table 17. 4 lists values available to this parameter.
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

208

RTL8762C Peripheral Manual

Table 17. 5 values of IR_Mode

IR_Mode

Description

IR_MODE_TX

Transmission mode

IR_MODE_RX

Receiving mode

IR_TxIdleLevel:This parameter is used to set polarity of idle state。Table 17. 6 lists values available to this
parameter.
Table 17. 6 values of IR_TxIdleLevel

IR_TxIdleLevel

Description

Re

IR_IDLE_OUTPUT_HIGH

Output high level in idle state

IR_IDLE_OUTPUT_LOW

Output low level in idle state

alt

IR_TxInverse:This parameter is used to set whether to invert IR transmiting data type. lists values available to
this parameter.

ek

Table 17. 7 lists values available to this parameter.
Table 17. 7

values of IR_TxInverse
IR_TxInverse

Description

Co

IR_TX_DATA_NORMAL

Do not invert IR transmiting data type

IR_TX_DATA_INVERSE

Invert IR transmiting data type

nfi

IR_TxFIFOThrLevel:This parameter is used to set threshold of transmit FIFO, which ranges from 0 to 32.
IR_RxStartMode:This parameter is used to set start mode for IR receiving mode. Table 17. 8 lists values available

de

to this parameter.
Table 17. 8 values of IR_RxStartMode

IR_RxStartMode

Description

Automatic receive mode

IR_RX_MANUAL_MODE

Manual receive mode

al
nti

IR_RX_AUTO_MODE

IR_RxFIFOThrLevel:This parameter is used to set threshold for receive FIFO, which ranges from 0 to 32.

IR_RxFIFOFullCtrl:This parameter is used to set data coverage mode when receive FIFO is full.Table 17. 9 lists
values available to this parameter.
Table 17. 9 values of IR_RxFIFOFullCtrl

IR_RxFIFOFullCtrl

Description

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

209

RTL8762C Peripheral Manual

IR_RX_FIFO_FULL_DISCARD_NEWEST

Discard latest data

IR_RX_FIFO_FULL_DISCARD_OLDEST

Discard oldest data

IR_RxTriggerMode:This parameter is used to set the trigger mode in IR receiving mode.Table 17. 10 lists values
available to this parameter.
Table 17. 10 values of IR_RxTriggerMode

IR_RxTriggerMode

Description

IR_RX_FALL_EDGE

Falling edge trigger

IR_RX_RISING_EDGE

Rising edge trigger

IR_RX_DOUBLE_EDGE

Edge trigger.

Re

IR_RxFilterTime:This parameter is used to set clutter time threshold of hardware filter in IR receiving mode.

Table 17. 11 values of IR_RxFilterTime

IR_RxFilterTime

Description

ek

alt

Table 17. 11 lists values available to this parameter.

Filter clutter data below 50ns

IR_RX_FILTER_TIME_75ns

Filter clutter data below 75ns

IR_RX_FILTER_TIME_100ns

Filter clutter data below 100ns

IR_RX_FILTER_TIME_125ns

Filter clutter data below 125ns

IR_RX_FILTER_TIME_150ns

Filter clutter data below 150ns

IR_RX_FILTER_TIME_175ns

Filter clutter data below 175ns

IR_RX_FILTER_TIME_200ns

Filter clutter data below 200ns

Co

IR_RX_FILTER_TIME_50ns

de

nfi

IR_RxCntThrType:This parameter is used to set voltage level which triggers the receiving counter threshold
interrupt. Table 17. 12 lists values available to this parameter.

IR_RxCntThrType

Description

IR_RX_Count_Low_Level

IR receiving level is low

IR_RX_Count_High_Level

IR receiving level is high

al
nti

Table 17. 12 values of IR_RxCntThrType

IR_RxCntThr:This parameter is used to set time threshold for triggering the receiving counter threshold interrupt,
whose unit is carrier cycle. The parameter ranges from 0x0 to 0x7fffffff. The parameter can be used to decide if IR

reception should be stopped. For example, when the parameter is set to 0x3ff and the carrier frequency is 38KHz,
the time threshold for detecting end signal actually is: (0x3ff-1)/38000=26.89ms. When IR level hold time is set
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

210

RTL8762C Peripheral Manual

to 26.89ms, the counter threshold interrupt will be triggered.
Examples:
/* Initialize IR */
IR_InitTypeDef IR_InitStruct;
IR_StructInit(&IR_InitStruct);
IR_InitStruct.IR_Freq

= 38;

IR_InitStruct.IR_DutyCycle

= 2;

IR_InitStruct.IR_Mode

= IR_MODE_TX;
= IR_TX_DATA_NORMAL;

IR_InitStruct.IR_TxFIFOThrLevel

= 2;

IR_Init(&IR_InitStruct);
IR_Cmd(IR_MODE_TX, ENABLE);

17.2.3 Function IR_StructInit

ek

alt

Re

IR_InitStruct.IR_TxInverse

Table 17. 13 Function IR_StructInit
IR_StructInit

Function Prototype

IR_StructInit(IR_InitTypeDef* IR_InitStruct)

Function Description

Set each parameter in IR_InitStruct to the default value.

Input Parameter

IR_InitStruct: A pointer points to structure IR_InitTypeDef, which is to be initialized.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Function Name

de

nfi

Examples:

al
nti

/* Initialize IR*/
IR_InitTypeDef

IRInitStruct;

IR_StructInit(&IRInitStruct);

17.2.4 Function IR_Cmd
Table 17. 14 Function IR_Cmd
Function Name

IR_Cmd

Function Prototype

void IR_Cmd(uint32_t mode, FunctionalState NewState)
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

211

RTL8762C Peripheral Manual

Function Description

Enable or disable IR send or receive mode.

Input Parameter 1

mode:Set IR operation mode, available parameters are as followed:
IR_MODE_TX: IR Transmission mode
IR_MODE_RX: IR Receiving mode

Input Parameter 2

NewState: new state of IR mode.
This parameter can be set to: ENABLE, DISABLE
None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Enable IR Tx mode */
IR_Cmd(IR_MODE_TX, ENABLE);

ek

alt

Re

Output Parameter

17.2.5 Function IR_StartManualRxTrigger
Table 17. 15 Function IR_StartManualRxTrigger

Function Prototype

void IR_StartManualRxTrigger(void)

Function Description

Start IR manual receiving mode

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

de

nfi

IR_StartManualRxTrigger

Co

Function Name

Examples:
/* Start IR manual receive mode */
IR_StartManualRxTrigger (IR);

17.2.6 Function IR_SetRxCounterThreshold
Table 17. 16 Function IR_SetRxCounterThreshold
Function Name

IR_SetRxCounterThreshold

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

212

RTL8762C Peripheral Manual

Function Prototype

void IR_SetRxCounterThreshold(uint32_t IR_RxCntThrType, uint32_t IR_RxCntThr)

Function Description

Set time threshold for triggering receive counter threshold interrupt

Input Parameter 1

IR_RxCntThrType: Level type which triggering receive counter threshold interruptis, available
parameters are as followed:
IR_RX_Count_Low_Level: IR receive level is low
IR_RX_Count_High_Level: IR receive level is high

Input Parameter 2

IR_RxCntThr: Time threshold which triggers receive counter threshold interrupt. The
parameters values from 0x0 to 0x7fffffff.

Return Value

None

Prerequisite

None

Functions Called

None

alt

None

Re

Output Parameter

Examples:

/* Configure receive counter threshold type and value */

ek

IR_SetRxCounterThreshold (IR_RX_Count_Low_Level, 0x23a);

17.2.7 Function IR_SendBuf

Co

Table 17. 17 Function IR_SendBuf

IR_SendBuf

Function Prototype

void IR_SendBuf(uint32_t *pBuf, uint32_t len, FunctionalState IsLastPacket)

Function Description

Send data through IR peripheral.

Input Parameter 1

pBuf: Data transmit buffer first address

Input Parameter 2

len: Send data length

Input Parameter 3

IsLastPacket: Whether the last data in the buffer is the last packet sent by IR. This

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Send data */
uint32_t buf[32];
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

213

al
nti

Output Parameter

de

parameter can be set to ENABLE or DISABLE.

nfi

Function Name

RTL8762C Peripheral Manual

IR_SendBuf(buf, 32, DISABLE);

17.2.8 Function IR_ReceiveBuf
Table 17. 18 Function IR_ReceiveBuf

IR_ReceiveBuf

Function Prototype

void IR_ReceiveBuf(uint32_t *pBuf, uint32_t len)

Function Description

Receive IR data

Input Parameter1

pBuf: Data receive buffer first address

Input Parameter 2

len: Receive data length

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

alt

Re

Function Name

ek

Examples:
/* Receive data */
uint32_t buf[32];

Co

uint32_t len = 0;
len = IR_GetRxDataLen();
IR_ReceiveBuf(buf, len);

nfi

17.2.9 Function IR_INTConfig

de

Table 17. 19 Function IR_INTConfig

IR_INTConfig

Function Prototype

void IR_INTConfig(uint32_t IR_INT, FunctionalState newState)

Function Description

Enable or disable IR specified interrupt source.

Input Parameter 1

IR_INT:IR interrupt source to be enabled or disabled. Refer to related description in Table
17. 20 for more details.

Input Parameter 2

newState: New state of interrupt
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Return Value

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

214

al
nti

Function Name

RTL8762C Peripheral Manual

Prerequisite

None

Functions Called

None

IR_INT: Permitted IR interrupt types are as shown in Table 17. 20. Mutiple interrupts can be selected as values of
the parameter at one time by using operator "|".
Table 17. 20 Values of IR_INT

IR_INT

description

IR_INT_TF_LEVEL

This interrupt is raised when the data in transmit buffer exceeds threshold.

IR_INT_TF_OF

This interrupt is raised when the transmit buffer overflows.

IR_INT_RF_FULL

This interrupt is raised when the transmit buffer is full.

IR_INT_RF_LEVEL

This interrupt is raised when the data in receive buffer exceeds threshold.

IR_INT_RX_CNT_OF

This interrupt is raised when the counter overflows.

IR_INT_RF_OF

This interrupt is raised when the receive buffer overflows.

IR_INT_RX_CNT_THR

This interrupt is raised when the counter reaches threshold.

IR_INT_RF_ERROR

This interrupt is raised when reading empty receive buffer.

ek

alt

Re

IR_INT_TF_EMPTY

This interrupt is raised when the receive buffer is empty.

Examples:

IR_INTConfig(IR_INT_TF_LEVEL, ENABLE);

Table 17. 21 Function IR_MaskINTConfig

de

nfi

17.2.10 Function IR_MaskINTConfig

Co

/* Enable IR threshold interrupt. When TX FIFO offset <= threshold value, trigger interrupt*/

IR_MaskINTConfig

Function Prototype

void IR_MaskINTConfig(uint32_t IR_INT, FunctionalState newState)

Function Description

Mask or unmask IR specified interrupt source.

Input Parameter 1

IR_INT:IR interrupt source to be masked or unmasked, refer to related description of IR_INT
in Table 17. 20 for more details.

Input Parameter 2

newState: New state of interrupt
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

215

al
nti

Function Name

RTL8762C Peripheral Manual

Examples:
/* Mask IR interrupt */
IR_MaskINTConfig(IR_INT_RF_LEVEL | IR_INT_RX_CNT_THR, ENABLE);

17.2.11 Function IR_GetINTStatus
Table 17. 22 Function IR_GetINTStatus

IR_GetINTStatus

Function Prototype

ITStatus IR_GetINTStatus(uint32_t IR_INT)

Function Description

Get the specified IR interrupt status

Input Parameter

IR_INT:Specified interrupt source, refer to related description of IR_INT in Table 17. 20
for more details.

alt

Re

Function Name

None

Return Value

New state of IR specified interrupt(SET or RESET)

Prerequisite

None

Functions Called

None

ek

Output Parameter

Examples:

Co

/* Get IR the specified interrupt status */
ITStatus IR_Status = RESET;
IR_Status = IR_GetINTStatus(IR_INT_RF_LEVEL);

de

nfi

17.2.12 Function IR_ClearINTPendingBit
Table 17. 23 Function IR_ClearINTPendingBit

IR_ClearINTPendingBit

Function Prototype

void IR_ClearINTPendingBit(uint32_t IR_CLEAR_INT)

Function Description

Clear the suspend bit of specified IR peripheral interrupt source

Input Parameter

IR_CLEAR_INT: IR interrupt clear type. Refer to related description of IR_CLEAR_INT in Table
17. 20 for more details.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Function Name

Permitted IR interrupt clear types are as shown in Table 17. 20. Mutiple interrupts can be selected as values of
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

216

RTL8762C Peripheral Manual

the parameter at one time by using operator "|".
Table 17. 24 values of IR_CLEAR_INT

IR_CLEAR_INT

Description
Clear the interrupt raised when the clear receive buffer is empty.

IR_INT_TF_LEVEL_CLR

Clear the interrupt raised when the data in clear transmit buffer exceeds threshold.

IR_INT_TF_OF_CLR

Clear the interrupt raised when the clear transmit buffer overflows.

IR_INT_RF_FULL_CLR

Clear the interrupt raised when the clear transmit buffer is full.

IR_INT_RF_LEVEL_CLR

Clear the interrupt raised when the data in clear receive buffer exceeds threshold.

IR_INT_RX_CNT_O_CLR

Clear the interrupt raised when the clear counter overflows.

IR_INT_RF_OF_CLR

Clear the interrupt raised when the clear receive buffer overflows.

IR_INT_RX_CNT_THR _CLR

Clear the interrupt raised when the clear counter reach threshold.

IR_INT_RF_ERROR_CLR

Clear the interrupt raised when reading empty receive buffer.

Examples:
/* Clear receive FIFO threshold interrupt */

ek

alt

Re

IR_INT_TF_EMPTY_CLR

IR_ClearINTPendingBit(IR_INT_RF_LEVEL_CLR);

Table 17. 25 Function IR_GetTxFIFOFreeLen

Function Prototype

uint16_t IR_GetTxFIFOFreeLen(void)

Function Description

Get The spare space of transmit FIFO.

Input Parameter

None

Output Parameter

None

Return Value

The spare space of transmit FIFO.

Prerequisite

None

Functions Called

None

al
nti

de

IR_GetTxFIFOFreeLen

nfi

Function Name

Co

17.2.13 Function IR_GetTxFIFOFreeLen

Examples:
/* Get Tx FIFO free length */
uint16_t len = 0;
len = IR_GetTxFIFOFreeLen();

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

217

RTL8762C Peripheral Manual

17.2.14 Function IR_GetRxDataLen
Table 17. 26 Function IR_GetRxDataLen

IR_GetRxDataLen

Function Prototype

uint16_t IR_GetRxDataLen(void)

Function Description

Get the depth of the IR receive FIFO.

Input Parameter

None

Output Parameter

None

Return Value

Depth of the IR receive FIFO

Prerequisite

None

Functions Called

None

Re

Function Name

/* Get Rx FIFO length */
uint16_t len = 0;

ek

alt

Examples:

len = IR_GetRxFIFOLen();

17.2.15 Function IR_SendData

Co

Table 17. 27 Function IR_SendData

Function Description

Write one data to IR transmit FIFO.

Input Parameter

data: data to be sent through IR.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

void IR_SendData(uint32_t data)

de

IR_SendData

Function Prototype

nfi

Function Name

Examples:
/* Send one data */
IR_SendData(0x032A);

17.2.16 Function IR_ReceiveData
Table 17. 28 Function IR_ReceiveData
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

218

RTL8762C Peripheral Manual

Function Name

IR_ReceiveData

Function Prototype

uint32_t IR_ReceiveData(void)

Function Description

Read one data from IR receive FIFO

Input Parameter

None

Output Parameter

None

Return Value

IR received data.

Prerequisite

None

Functions Called

None

Examples:

Re

/* Read one data */
uint32_t data = 0;

alt

data =IR_ReceiveData();

17.2.17 Function IR_SetTxThreshold

ek

Table 17. 29 Function IR_SetTxThreshold

IR_SetTxThreshold

Function Prototype

void IR_SetTxThreshold(uint8_t thd)

Function Description

Set the FIFO threshold for triggering IR_INT_TF_LEVEL interrupt.

Input Parameter

thd:Threshold of transmit FIFO, ranging from 0 to 31.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Co

Function Name

批注 [张一凡5]: 待核实

/* Configure Tx threshold level, when TX FIFO offset <= threshold value, trigger interrupt*/
IR_SetTxThreshold(2);

17.2.18 Function IR_SetRxThreshold
Table 17. 30 Function IR_SetRxThreshold
Function Name

IR_SetRxThreshold

Function Prototype

void IR_SetRxThreshold(uint8_t thd)

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

219

al
nti

de

nfi

Examples:

RTL8762C Peripheral Manual

Function Description

Set the FIFO threshold for triggering the IR_INT_RF_LEVEL interrupt.

Input Parameter

thd:Threshold of transmit FIFO, ranging from 0 to 31.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Configure Rx threshold level, when RX FIFO offset >= threshold value, trigger interrupt*/
IR_SetRxThreshold(2);

Re

17.2.19 Function IR_ClearTxFIFO

Function Prototype

void IR_ClearTxFIFO(void)

Function Description

Clear transmit FIFO

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Co

IR_ClearTxFIFO

ek

Function Name

alt

Table 17. 31 Function IR_ClearTxFIFO

nfi

Examples:

de

/*Clear Tx FIFO */
IR_ClearTxFIFO();

al
nti

17.2.19 Function IR_ClearRxFIFO
Table 17. 32 Function IR_ClearRxFIFO
Function Name

IR_ClearRxFIFO

Function Prototype

void IR_ClearRxFIFO(void)

Function Description

Clear receive FIFO

Input Parameter

None

Output Parameter

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

220

RTL8762C Peripheral Manual

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/*Clear Rx FIFO */
IR_ClearRxFIFO();

17.2.20 Function IR_GetFlagStatus

Re

Table 17. 33 Function IR_GetFlagStatus

IR_GetFlagStatus

Function Prototype

FlagStatus IR_GetFlagStatus(uint32_t IR_FLAG)

Function Description

Check the status flag specified in IR peripheral.

Input Parameter

IR_FLAG: flag to be specified. Refer to related description of IR_FLAG for more details.

Output Parameter

None

Return Value

New state (SET or RESET) of the flag specified by IR

Prerequisite

None

Functions Called

None

ek

alt

Function Name

Co

IR_FLAG: Permitted IR state types are as shown in Table 17. 34. Mutiple interrupts can be selected as values of
the parameter at one time by using operator "|".

nfi

Table 17. 34 values of IR_FLAG

IR_FLAG

Description

IR_FLAG_TF_FULL

Transmit FIFO is full.

IR_FLAG_TX_RUN

IR is in transmission.

IR_FLAG_RF_EMPTY

Receive FIFO is empty.

IR_FLAG_RX_RUN

IR is in receiving.

Examples:
/* Get Tx FIFO empty flag status */
bool state = FALSE;
state = IR_GetFlagStatus (IR_FLAG_TF_EMPTY);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

221

al
nti

Transmit FIFO is empty.

de

IR_FLAG_TF_EMPTY

RTL8762C Peripheral Manual

17.2.21 Function IR_SetTxInverse
Table 17. 35 Function IR_SetTxInverse
Function Name

IR_SetTxInverse

Function Prototype

void IR_SetTxInverse(FunctionalState NewState)

Function Description

Inverse transmission data type

Input Parameter

NewState: Whether transmission data type is inversed or not.
Optional parameters: ENABLE, DISABLE

ENABLE: Polarity inversed.

Re

DISABLE: Polarity not inversed.
None

Return Value

None

Prerequisite

None

Functions Called

None

ek

alt

Output Parameter

Examples:
/*Inverse data type */
IR_SetTxInverse(ENABLE);

nfi

Table 17. 36 Function IR_TxOutputInverse

Co

17.2.22 Function IR_TxOutputInverse
IR_TxOutputInverse

Function Prototype

void IR_TxOutputInverse(FunctionalState NewState)

Function Description

Inverse IR output polarity.

Input Parameter

NewState: Whether polarity of output voltage level is inversed or not.

ENABLE: Polarity inversed.
DISABLE: Polarity not inversed.
Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

222

al
nti

Optional parameters: ENABLE, DISABLE

de

Function Name

RTL8762C Peripheral Manual

/*Inverse IR output */
IR_TxOutputInverse (ENABLE);

17.2.23 Function IR_ConfigCompenParam
Table 17. 37 Function IR_ConfigCompenParam
Function Name

IR_ConfigCompenParam

Function Prototype

void IR_ConfigCompenParam(uint32_t data)

Function Description

Set parameters of IR waveform compensation

Re

Note: This parameter is valid only when the compensation type is
IR_COMPEN_FLAG_1_N_SYSTEM_CLK
Input Parameter

data: IR parameters of waveform compensation, which ranges from 0x0 to 0xFFF.

alt

IR waveform compensation time = MOD*((data+ (system clock / IR carrier frequency) - 1),
4095)/40MHz

Return Value

None

Prerequisite

None

Functions Called

None

Co

None

ek

Output Parameter

批注 [张一凡6]: 该函数待确认

Examples:
/* Configure IR waveform compensation parameter */

Table 17. 38 Function IR_SendCompenBuf

de

17.2.24 Function IR_SendCompenBuf

nfi

IR_ConfigCompenParam (0x06);

IR_SendCompenBuf

Function Prototype

void IR_SendCompenBuf(IR_TX_COMPEN_TYPE comp_type, uint32_t *pBuf, uint32_t len,
FunctionalState IsLastPacket)

Function Description

Transmit data with waveform compensation

Input Parameter 1

comp_type:waveform compensation type, available values are:

al
nti

Function Name

IR_COMPEN_FLAG_1_2_CARRIER:Compensate carrier-free data segment for 1/2 carrier
cycle
IR_COMPEN_FLAG_1_4_CARRIER:Compensate carrier-free data segment for 1/4 carrier
cycle
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

223

RTL8762C Peripheral Manual

IR_COMPEN_FLAG_1_N_SYSTEM_CLK:Refer to related description of compensation time in
Table 17. 37 for more details.
Input Parameter 2

pBuf: Send data buffer first address

Input Parameter 3

len: Send data length

Input Parameter 4

IsLastPacket: Whether the last data in the buffer is the last data packet sent by IR. This
parameter can be set to ENABLE or DISABLE.
None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:

uint32_t buf[32];

alt

/* Send data */

Re

Output Parameter

IR_SendCompenBuf(IR_COMPEN_FLAG_1_2_CARRIER, buf, 32, DISABLE)

ek
Co
al
nti

de

nfi
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

224

RTL8762C Peripheral Manual

18 Inter-IC Sound(I2S)
18.1 I2S Register Architecture
typedef struct
{
/*!< 0x00 */

__IO uint32_t CTRL0;

/*!< 0x04 */

__IO uint32_t CTRL1;

/*!< 0x08 */

__IO uint32_t DSP_INT_CR;

/*!< 0x0C */

__I uint32_t RX_DR;

Re

__O uint32_t TX_DR;

/*!< 0x10 */

__I uint32_t FIFO_SR;

/*!< 0x14 */
/*!< 0x18 */

__IO uint32_t BCLK_DIV;

/*!< 0x1C */

__IO uint32_t DMA_TRDLR;

/*!< 0x20 */

__I uint32_t SR;

/*!< 0x24 */

ek

alt

__IO uint32_t ERROR_CNT_SR;

} I2S_TypeDef;

All I2S registers are enumerated in Table 18. 1
Table 18. 1 I2S Registers

Co

Register

Description

Transmit FIFO data register

CTRL0

Control Register 0

CTRL1

Control Register 1

DSP_INT_CR

Interrupt control register

RX_DR

Receive FIFO data register

FIFO_SR

FIFO status register

ERROR_CNT_SR

Error status register

BCLK_DIV

Clock divider register

DMA_TRDLR

DMA configuration register

SR

Status register

Table 18. 2 I2S library Function

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

225

al
nti

All I2S registers are enumerated in Table 18. 2

de

18.2 I2S Library Functions

nfi

TX_DR

RTL8762C Peripheral Manual

Function name

Description
Disable I2S clock source.

I2S_Init

Initialize I2S register based on parameters specified in I2S _InitStruct.

I2S_StructInit

Set each parameter in I2S_InitStruct to the default value.

I2S_Cmd

Enable or disable the specified I2S mode.

I2S_INTConfig

Enable or disable the specified I2S interrupt source.

I2S_GetINTStatus

Get specified I2S interrupt source status.

I2S_SendData

Write one data to transmit FIFO.

I2S_ReceiveData

Read one data from receive FIFO.

I2S_GetTxFIFOFreeLen

Get spare space of transmit FIFO

I2S_GetRxFIFOLen

Get depth of receive FIFO

I2S_GetTxErrCnt

Get transmission error counter value

I2S_GetRxErrCnt

Get reception error counter value

I2S_SwapBytesForSend

Swap high-byte and low-byte of data to be transmitted.

I2S_SwapBytesForRead

Swap high-byte and low-byte of received data

I2S_SwapLRChDataForSend

Swap left and right channel data of data to be sent

I2S_SwapLRChDataForRead

Swap left and right channel data of receivd data

ek

alt

Re

I2S_DeInit

Co

18.2.1 Function I2S_ DeInit

void I2S_DeInit(I2S_TypeDef *I2Sx)

Function Description

Disable I2S clock source

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

al
nti

I2S_DeInit

Function Prototype

de

Function Name

nfi

Table 18. 3 Function I2S_DeInit

Examples:
/* Close I2S0 clock */
I2S_DeInit(I2S0);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

226

RTL8762C Peripheral Manual

18.2.2 Function I2S_Init
Table 18. 4 Function I2S_Init

Function Name

I2S_Init

Function Prototype

void I2S_Init(I2S_TypeDef *I2Sx, I2S_InitTypeDef *I2S_InitStruct)

Function Description

Initialize I2S register based on parameters specified in I2S_InitStruct

Input Parameter 1

I2Sx: x can be set to 0 or 1 to select specified peripherals of I2S.

Input Parameter 2

I2S_InitStruct:A pointer to I2S_InitTypeDef, and related configuration information is
contained in I2S_InitStruct.

Return Value

None

Prerequisite

None

Functions Called

None

typedef struct
uint32_t I2S_ClockSource;

ek

{

alt

None

Re

Output Parameter

/*!< Specifies the I2S clock source.

This parameter can be a value of @ref I2S_clock_Source*/
uint32_t I2S_BClockMi; /*!< Specifies the BLCK clock speed. BCLK = 40MHz*(I2S_BClockNi/I2S_BClockMi).

Co

This parameter must range from 1 to 0xffff */
uint32_t I2S_BClockNi;

/*!< Specifies the BLCK clock speed.

This parameter must range from 1 to 0x7FFF */
/*!< Specifies the I2S device mode.

nfi

uint32_t I2S_DeviceMode;

This parameter can be a value of @ref I2S_device_mode*/
uint32_t I2S_ChannelType;

/*!< Specifies the channel type used for the I2S communication.

de

This parameter can be a value of @ref I2S_Channel_Type */

uint32_t I2S_TxChSequence;/*!< Specifies the transmission channel seqence used for the I2S communication.
This parameter can be a value of @ref I2S_Tx_Ch_Sequence*/

al
nti

uint32_t I2S_RxChSequence; /*!< Specifies the receiving channel seqence used for the I2S communication.

This parameter can be a value of @ref I2S_Rx_Ch_Sequence*/
uint32_t I2S_DataFormat;

/*!< Specifies the I2S Data format mode.

This parameter can be a value of @ref I2S_Format_Mode*/
uint32_t I2S_TxBitSequence;

/*!< Specifies the I2S Data bits sequences.

uint32_t I2S_RxBitSequence;

/*!< Specifies the I2S Data bits sequences.

This parameter can be a value of @ref I2S_Tx_Bit_Sequence*/

This parameter can be a value of @ref I2S_Rx_Bit_Sequence*/
uint32_t I2S_DataWidth;

/*!< Specifies the I2S Data width.

uint32_t I2S_MCLKOutput;

/*!< Specifies the I2S MCLK output freqency.

This parameter can be a value of @ref I2S_Data_Width */

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

227

RTL8762C Peripheral Manual

This parameter can be a value of @ref I2S_MCLK_Output */
uint32_t I2S_DMACmd;

/*!< Specifies the I2S DMA control.
This parameter can be a value of @ref FunctionalState */

uint32_t I2S_TxWaterlevel;

/*!< Specifies the dma watermark level in transmit mode.

uint32_t I2S_RxWaterlevel;

/*!< Specifies the dma watermark level in receive mode.

This parameter must range from 1 to 63
This parameter must range from 1 to 63

*/
*/

}I2S_InitTypeDef;

I2S_ClockSource:Set I2S clock source. Table 18. 5 lists the available value of this parameter.
Table 18. 5 values of I2S_ClockSource

I2S_CLK_40M

Re

I2S_ClockSource

Description

40M
128*fs

alt

I2S_CLK_128fs
I2S_CLK_256fs

256*fs

ek

I2S_BClockMi:Set I2S BClk output parameter Mi, whose range is 1 to 0xffff.

I2S_BClockNi:Set I2S BClk output parameter Ni, whose range is 1 to 0x7FFF. BCLK =
40MHz*(I2S_BClockNi/I2S_BClockMi).

Co

I2S_DeviceMode:Set I2S device mode. Table 18. 6 lists the available value of this parameter.
Table 18. 6 values of I2S_DeviceMode

I2S_DeviceMode

Description

Master mode

I2S_DeviceMode_Slave

Slave mode

de

nfi

I2S_DeviceMode_Master

I2S_ChannelType:Set I2S transmission channel type。Table 18. 7 lists the available value of this parameter.

I2S_ChannelType

Description

I2S_Channel_Mono

Mono output

I2S_Channel_stereo

Stereo output

al
nti

Table 18. 7 values of I2S_ChannelType

I2S_TxChSequence:Set I2S channel order for sending data. Table 18. 8 gives the available value of this
parameter.
Table 18. 8 values of I2S_TxChSequence

I2S_TxChSequence

Description

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

228

RTL8762C Peripheral Manual

I2S_TX_CH_L_R

Left channel/right channel

I2S_TX_CH_R_L

Right channel/left channel

I2S_TX_CH_L_L

Left channel/ left channel

I2S_TX_CH_R_R

Right channel/ right channel

I2S_RxChSequence:Set I2S channel order for receiving data. Table 18. 9 lists the available value of this
parameter.
Table 18. 9 values of I2S_RxChSequence

I2S_RxChSequence

Description

Re

I2S_RX_CH_L_R

Left channel/right channel

I2S_RX_CH_R_L

Right channel/left channel
Left channel/ left channel

alt

I2S_RX_CH_L_L
I2S_RX_CH_R_R

Right channel/ right channel

ek

I2S_DataFormat:Set I2S data format. Table 18. 10 lists the available value of this parameter.
Table 18. 10 values of I2S_DataFormat

I2S_DataFormat

Description

Co

I2S format

Left_Justified_Mode

Left-aligned format

PCM_Mode_A

PCM A format

PCM_Mode_B

PCM B format

de

nfi

I2S_Mode

I2S_TxBitSequence:Set I2S bit order for sending data. Table 18. 11 lists the available value of this parameter.
Table 18. 11 values of I2S_TxBitSequence

Description

I2S_TX_MSB_First

Send MSB first

I2S_TX_LSB_First

Send LSB first

al
nti

I2S_TxBitSequence

I2S_RxBitSequence:Set I2S bit order for receiving data. Table 18. 12 lists the available value of this parameter.
Table 18. 12 values of I2S_RxBitSequence

I2S_RxBitSequence

Description

I2S_RX_MSB_First

Receive MSB first

I2S_RX_LSB_First

Receive LSB first
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

229

RTL8762C Peripheral Manual

I2S_DataWidth:Set I2S data width. Table 18. 13 lists the available value of this parameter.
Table 18. 13 values of I2S_DataWidth

I2S_DataWidth

Description

I2S_Width_16Bits

16bit data width

I2S_Width_24Bits

24bit data width

I2S_Width_8Bits

8bit data width

I2S_MCLKOutput:Set MCLK output frequency. Table 18. 14 lists the available value of this parameter.

I2S_MCLKOutput

Description

128*fs

alt

I2S_MCLK_128fs

Re

Table 18. 14 values of I2S_MCLKOutput

I2S_MCLK_256fs

256*fs

ek

I2S_DMACmd:Set whether DMA data transfer function is enabled. Table 18. 15 lists the available value of this
parameter.
Table 18. 15 values of I2S_DMACmd

Co

I2S_DMACmd

Description

I2S_DMA_ENABLE

Enable DMA data transmission function

I2S_DMA_DISABLE

Disable DMA data transmission function

nfi

I2S_TxWaterlevel:Set I2S watermark size which is sent through GDMA. This parameter ranges from 0x0 to 0x3f.

0x3f.
Examples:
/* Initialize I2S */
I2S_InitTypeDef I2S_InitStruct;
I2S_StructInit(&I2S_InitStruct);
I2S_InitStruct.I2S_ClockSource

= I2S_CLK_40M;

I2S_InitStruct.I2S_BClockMi

= 0x271;

I2S_InitStruct.I2S_BClockNi

= 0x10;

I2S_InitStruct.I2S_DeviceMode

= I2S_DeviceMode_Master;

I2S_InitStruct.I2S_ChannelType

= I2S_Channel_Mono;
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

230

al
nti

de

I2S_RxWaterlevel:Set I2S watermark size which is receivd through GDMA. This parameter ranges from 0x0 to

RTL8762C Peripheral Manual

I2S_InitStruct.I2S_DataFormat

= I2S_Mode;

I2S_Init(I2S0, &I2S_InitStruct);

18.2.3 Function I2S_StructInit
Table 18. 16 Function I2S_StructInit
I2S_StructInit

Function Prototype

I2S_StructInit(I2S_InitTypeDef* I2S_InitStruct)

Function Description

Set each parameter in I2S_InitStruct to the default value.

Input Parameter

I2S_InitStruct: A pointer to I2S_InitTypeDef, related configuration information is contained in
I2S_InitStruct.

Return Value

None

Prerequisite

None

Functions Called

None

ek

None

alt

Output Parameter

Re

Function Name

Examples:
/* Initialize I2S*/
I2SInitStruct;

Co

I2S_InitTypeDef

I2S_StructInit(&I2SInitStruct);

nfi

18.2.4 Function I2S_Cmd
Table 18. 17 Function I2S_Cmd

de

I2S_Cmd

Function Prototype

void I2S_Cmd(I2S_TypeDef *I2Sx, uint32_t mode, FunctionalState NewState)

Function Description

Enable or disable speciafied I2S mode

Input Parameter 1

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Input Parameter 2

mode:Set I2S mode, refer to related description of mode in Table 18. 18

Input Parameter 3

NewState: new state of I2S
This parameter can be set to ENABLE or DISABLE.

Output Parameter

None

Return Value

None

Prerequisite

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

231

al
nti

Function Name

RTL8762C Peripheral Manual

Functions Called

None

mode: Permitted I2S mode are as shown in Table 18. 18. Mutiple modes can be selected one time by using
operator "|".
Table 18. 18 vaules of mode

mode

Description

I2S_MODE_TX

Transmission mode

I2S_MODE_RX

Reception mode

Examples:
/* Enable Tx and Rx mode */

Re

I2S_Cmd(I2S0, I2S_MODE_TX | I2S_MODE_RX, ENABLE);

Table 18. 19 Function I2S_INTConfig

alt

18.2.5 Function I2S_INTConfig
I2S_INTConfig

Function Prototype

void I2S_INTConfig(I2S_TypeDef *I2Sx, uint32_t I2S_INT, FunctionalState NewState)

Function Description

Enable or disable I2S interrupt source

Input Parameter 1

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Input Parameter 2

I2S_INT:Enable or disable I2S interrupt source, refer to related description of I2S_INT in

ek

Function Name

Co

Table 18. 20
NewState: new state of interrupt

This parameter can be set to ENABLE or DISABLE.

None

Prerequisite

None

Functions Called

None

al
nti

None

Return Value

de

Output Parameter

nfi

Input Parameter 3

I2S_INT: Permitted I2S interrupt types are as shown in Table 18. 18. Mutiple interrupts can be selected as values
of the parameter at one time by using operator "|".
Table 18. 20 values of I2S_INT

I2S_INT

Description

I2S_INT_TX_IDLE

This interrupt is raised when transmission channel is in idle state.

I2S_INT_RF_EMPTY

This interrupt is raised when receive buffer is empty.

I2S_INT_TF_EMPTY

This interrupt is raised when transmit buffer is empty.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

232

RTL8762C Peripheral Manual

I2S_INT_RF_FULL

This interrupt is raised when receive buffer is full.

I2S_INT_TF_FULL

This interrupt is raised when transmit buffer is full.

I2S_INT_RX_READY

This interrupt is raised when reception is ready.

I2S_INT_TX_READY

This interrupt is raised when tansmission is ready.

Examples:
/* Enable Tx FIFO full interrupt */
I2S_INTConfig(I2S0, I2S_INT_TF_FULL, ENABLE);

Table 18. 21 Function I2S_GetINTStatus

Re

18.2.6 Function I2S_GetINTStatus
I2S_GetINTStatus

Function Prototype

ITStatus I2S_GetINTStatus(I2S_TypeDef *I2Sx, uint32_t I2S_INT)

Function Description

Get I2S specified interrupt status

Input Parameter 1

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Input Parameter 2

I2S_INT: Specified interrupt source type, refer to related description of I2S_INT in Table 18.

ek

alt

Function Name

18

Co

None

Return Value

I2S: New state (SET or RESET) of Specified interrupt.

Prerequisite

None

Functions Called

None

nfi

Output Parameter

Examples:

ITStatus

de

/* Get I2S the specified interrupt status */
IR_Status = RESET;

IR_Status = I2S_GetINTStatus(I2S0, I2S_INT_TF_FULL);

al
nti

18.2.7 Function I2S_SendData
Table 18. 22 Function I2S_SendData
Function Name

I2S_SendData

Function Prototype

void I2S_SendData(I2S_TypeDef *I2Sx, uint32_t Data)

Function Description

Send one data to transmit FIFO

Input Parameter 1

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

233

RTL8762C Peripheral Manual

Input Parameter 2

Data: I2S data

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Send one data */
I2S_SendData(I2S0, 0x6688);

Re

18.2.8 Function I2S_ReceiveData
Table 18. 23 Function I2S_ReceiveData

alt

I2S_ReceiveData

Function Prototype

uint32_t I2S_ReceiveData(I2S_TypeDef *I2Sx)

Function Description

Read one data from receive FIFO

Input Parameter

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Output Parameter

None

Return Value

Received data

Prerequisite

None

Functions Called

None

ek

Function Name

Co
nfi

Examples:
/* Read one data */

data =I2S_ReceiveData(I2S0);

18.2.9 Function I2S_GetTxFIFOFreeLen
Table 18. 24 Function I2S_GetTxFIFOFreeLen
Function Name

I2S_GetTxFIFOFreeLen

Function Prototype

uint8_t I2S_GetTxFIFOFreeLen(I2S_TypeDef *I2Sx)

Function Description

Get spare space of transmit FIFO.

Input Parameter

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Output Parameter

None

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

234

al
nti

de

uint32_t data = 0;

RTL8762C Peripheral Manual

Return Value

Spare space of transmit FIFO

Prerequisite

None

Functions Called

None

Examples:
/* Get Tx FIFO free length */
uint16_t len = 0;
len = I2S_GetTxFIFOFreeLen(I2S0);

Table 18. 25

Re

18.2.10 Function I2S_GetRxFIFOLen
Function I2S_GetRxFIFOLen
I2S_GetRxFIFOLen

Function Prototype

uint8_t I2S_GetRxFIFOLen(I2S_TypeDef *I2Sx)

Function Description

Get spare space of receive FIFO

Input Parameter

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Output Parameter

None

Return Value

Spare space of receive FIFO

Prerequisite

None

Functions Called

None

ek

alt

Function Name

Co

Examples:

nfi

/* Get Rx FIFO length */
uint16_t len = 0;

18.2.11 Function I2S_GetTxErrCnt
Table 18. 26 Function I2S_GetTxErrCnt

Function Name

I2S_GetTxErrCnt

Function Prototype

uint8_t I2S_GetTxErrCnt(I2S_TypeDef *I2Sx)

Function Description

Get the value of transmission error counter.

Input Parameter

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Output Parameter

None

Return Value

The value of transmission error counter

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

235

al
nti

de

len = I2S_GetRxFIFOLen(I2S0);

RTL8762C Peripheral Manual

Prerequisite

None

Functions Called

None

Examples:
/* Get Tx error counter value*/
uint8_t value = 0;
value = I2S_GetTxErrCnt (I2S0);

18.2.12 Function I2S_GetRxErrCnt

Re

Table 18. 27 Function I2S_GetRxErrCnt
I2S_GetRxErrCnt

Function Prototype

uint8_t I2S_GetRxErrCnt(I2S_TypeDef *I2Sx)

Function Description

Get the value of reception error counter

Input Parameter

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Output Parameter

None

Return Value

The value of reception error counter

Prerequisite

None

Functions Called

None

ek

alt

Function Name

Co

Examples:
/* Get Rx error counter value*/

value = I2S_GetRxErrCnt (I2S0);

18.2.13 Function I2S_SwapBytesForSend

al
nti

Table 18. 28 Function I2S_SwapBytesForSend

de

nfi

uint8_t value = 0;

Function Name

I2S_SwapBytesForSend

Function Prototype

void I2S_SwapBytesForSend(I2S_TypeDef *I2Sx, FunctionalState NewState)

Function Description

Swap high-byte and low-byte of data to be sent.

Input Parameter 1

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Input Parameter 2

NewState: whether to swap bytes. This parameter can be set to ENABLE or DISABLE.
ENABLE: Swap high-byte and low-byte.
DISABLE: Don’t swap.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

236

RTL8762C Peripheral Manual

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:
/* Swap data for transmission */
I2S_SwapBytesForSend (I2S0, ENABLE);

Re

18.2.14 Function I2S_SwapBytesForRead
Table 18. 29 Function I2S_SwapBytesForRead

I2S_SwapBytesForRead

Function Prototype

void I2S_SwapBytesForRead(I2S_TypeDef *I2Sx, FunctionalState NewState)

Function Description

Swap high-byte and low-byte of received data.

Input Parameter 1

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Input Parameter 2

NewState: whether to swap bytes. This parameter can be set to ENABLE or DISABLE.

ek

alt

Function Name

ENABLE: Swap high-byte and low-byte.

None

Return Value

None

Prerequisite

None

Functions Called

None

nfi

Output Parameter

Co

DISABLE: Don’t swap.

/* Swap data for reception */
I2S_SwapBytesForRead(I2S0, ENABLE);

18.2.15 Function I2S_SwapLRChDataForSend
Table 18. 30 Function I2S_SwapLRChDataForSend

al
nti

de

Examples:

Function Name

I2S_SwapLRChDataForSend

Function Prototype

void I2S_SwapLRChDataForSend(I2S_TypeDef *I2Sx, FunctionalState NewState)

Function Description

Swap left and right channel data to be sent.

Input Parameter 1

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

237

RTL8762C Peripheral Manual

Input Parameter 2

NewState: whether to swap left and right channel data.
This parameter can be set to ENABLE or DISABLE.
ENABLE: Swap left and right channel data.
DISABLE: Don’t swap.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Examples:

I2S_SwapLRChDataForSend (I2S0, ENABLE);

alt

Re

/* Swap L/R data for transmission */

18.2.16 Function I2S_SwapLRChDataForRead

ek

Table 18. 31 Function I2S_SwapLRChDataForRead
I2S_SwapLRChDataForRead

Function Prototype

void I2S_SwapLRChDataForRead(I2S_TypeDef *I2Sx, FunctionalState NewState)

Function Description

Swap receivd left and right channel data

Input Parameter 1

I2Sx: x can be set to 0 or 1 to select specified I2S peripherals.

Input Parameter 2

NewState: whether to swap left and right channel data.

Co

Function Name

ENABLE: Swap left and right channel data.

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

None

de

DISABLE: Don’t swap.
Output Parameter

nfi

This parameter can be set to ENABLE or DISABLE.

Examples:
/* Swap L/R data for reception */
I2S_SwapLRChDataForRead (I2S0, ENABLE);

Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

238

RTL8762C Peripheral Manual

19 Liquid Crystal Display Controller(LCD)
19.1 LCD Register Structure
typedef struct
{
__IO uint32_t CTRL0;
__IO uint32_t CTRL1;
__IO uint32_t IMR;
__O uint32_t ICR;
__IO uint32_t CFG;
__IO uint32_t DR;
__IO uint32_t FIFO;
__I uint32_t RXDATA;
__IO uint32_t RGB_LEN;
__I

ek

alt

Re

__I uint32_t SR;

uint32_t DATA_CNT;

} LCD_TypeDef;

All LCD registers are enumerated in Table 19. 1.

Co

Table 19. 1 LCD Registers
Register

Description

Control register 0

CTRL1

Control register 1

IMR

Interrupt mask register

SR

Status register

ICR

Interrupt clear register

CFG

Configuration register

DR

Data register

FIFO

Data buffer register

RXDATA

Data receive register

RGB_LEN

RBG length register

DATA_CNT

Output data count register

239

al
nti

All Rights Reserved.

de

Copyright 2018 Realtek Semiconductor Corporation.

nfi

CTRL0

RTL8762C Peripheral Manual

19.2 LCD Library Functions
All LCD library functions are enumerated in Table 19. 2.
Table 19. 2 LCD Library Functions
Function Name

Description
Disable LCD clock source

LCD_PinGroupConfig

Configure LCD pin group

LCD_Init

Initialize LCD register based on parameters specified in LCD_InitStruct

LCD_StructInit

Set each parameter in LCD _InitStruct to the default value.

LCD_Cmd



LCD_SendCommand

Send a command byte in manual mode

LCD_SendData

Send data in manual mode

LCD_ReceiveData

Receive data in manual mode

LCD_Write

Send command and data in manual mode

LCD_Read

Read data after sending command in manual mode

LCD_SetCmdSequence

Configure command sequence in automatic mode

LCD_MaskINTConfig

Mask or unmask specified LCD interrupt source.

LCD_GetINTStatus

Get specified LCD interrupt status

LCD_GetFlagStatus

Detect whether the flag of speciafied LCD status is set

LCD_SwitchMode

Switch LCD operating mode dynamically.

LCD_GDMACmd

Enable or disable GDMA function

LCD_SetCS

Pull up CS signal.

LCD_ResetCS

Pull down CS signal.

LCD_ClearINTPendingBit

Clear the suspend bit of specified LCD interrupt source.

LCD_SetTxDataLen

Configure LCD send data length.

LCD_GetTxDataLen

Read the data length that LCD has sent

LCD_GetDataCounter

Read the data length that LCD has sent

LCD_ClearDataCounter

Clear data counter

LCD_ClearFIFO

Clear FIFO

Re

LCD_DeInit

Enable or disable LCD

ek

alt

Co

All Rights Reserved.

240

al
nti

Copyright 2018 Realtek Semiconductor Corporation.

de

Table 19. 3 Function LCD_DeInit

nfi

19.2.1 Function LCD_ DeInit

RTL8762C Peripheral Manual

Function Name

LCD_DeInit

Function Prototype

void LCD_DeInit(void)

Function Description

Disable LCD clock source

Input Parameter

None

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

RCC_PeriphClockCmd()

Examples:

LCD_DeInit();

alt

Re

/* Close LCD clock */

19.2.2 Function LCD_PinGroupConfig

ek

Table 19. 4 Function LCD_PinGroupConfig
LCD_PinGroupConfig

Function Prototype

void LCD_PinGroupConfig(uint32_t LCD_PinGroupType)

Function Description

Configure LCD pin group

Input Parameter

LCD_PinGroupType: Configure LCD pin group, optional parameters:

Co

Function Name

LCD_PinGroup_DISABLE: Disable LCD pin group

nfi

LCD_PinGroup_1: CS(P3_3), RD(P3_2), DCX(P3_4), WR(P3_5),

D0(P0_2), D1(P0_4), D2(P1_3), D3(P1_4), D4(P4_0), D5(P4_1), D6(P4_2), D7(P4_3)

de

LCD_PinGroup_2: CS(P3_3), DCX(P3_4), WR(P3_2), RD(P2_0)

D0(P3_5), D1(P0_1), D2(P0_2), D3(P0_4), D4(P4_0), D5(P4_1), D6(P4_2), D7(P4_3)
None

Return Value

None

Prerequisite

None

Functions Called

None

al
nti

Output Parameter

Examples:
LCD_PinGroupConfig(LCD_PinGroup_2);

19.2.3 Function LCD_Init
Table 19. 5 Function LCD_Init
Copyright 2018 Realtek Semiconductor Corporation.
All Rights Reserved.

241

RTL8762C Peripheral Manual

Function Name

LCD_Init

Function Prototype

void LCD_Init(LCD_InitTypeDef *LCD_InitStruct)

Function Description

Initialize LCD register based on parameters specified in LCD_InitStruct

Input Parameter

LCD_InitStruct:A pointer to LCD_InitTypeDef, configuration information is contained in
LCD_InitStruct.

Output Parameter

None

Return Value

None

Prerequisite

None

Functions Called

None

Re

typedef struct
{
uint32_t LCD_ClockDiv;

/*!< Specifies the LCD clock speed. */

/*!< Specifies the LCD operation mode. */

uint32_t LCD_GuardTimeCmd;

alt

uint32_t LCD_Mode;

/*!< Specifies the guard time function. */
/*!< Specifies the guard time. This parameter is 0~3T of divider clock. */

uint32_t LCD_8BitSwap;

/*!< Specifies the FIFO data format. */

ek

uint32_t LCD_GuardTime;
uint32_t LCD_16BitSwap;

/*!
Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Encryption                      : Standard V2.3 (128-bit)
User Access                     : (none)
Creator                         : Microsoft® Word 2016
Title                           : Bee项目文档规范
Author                          : Chuanguo Xue
Producer                        : Microsoft® Word 2016; modified using iTextSharp 5.0.5 (c) 1T3XT BVBA
Subject                         : Draft v0.1
Modify Date                     : 2018:09:21 11:34:47+08:00
Create Date                     : 2018:09:21 11:21:41+08:00
Tagged PDF                      : Yes
Language                        : zh-CN
Page Count                      : 264
EXIF Metadata provided by EXIF.tools

Navigation menu