CC13xx Driver Library
[adi] Analog to Digital Interface

Functions

static uint32_t ADIStatusGet (uint32_t ui32Base)
 Get the status of an ADI module. More...
 
static void ADIConfigSet (uint32_t ui32Base, uint32_t ui32Config, bool bProtect)
 Configure the ADI Slave. More...
 
static void ADISync (uint32_t ui32Base)
 Synchronize the ADI slave. More...
 
static void ADIProtect (uint32_t ui32Base)
 Protect an ADI slave configuration by locking the configuration register access. More...
 
static void ADI8RegWrite (uint32_t ui32Base, uint32_t ui32Reg, uint8_t ui8Val)
 Write an 8 bit value to a register in an ADI slave. More...
 
static void ADI16RegWrite (uint32_t ui32Base, uint32_t ui32Reg, uint16_t ui16Val)
 Write a 16 bit value to 2 registers in the ADI slave. More...
 
static void ADI32RegWrite (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
 Write a 32 bit value to 4 registers in the ADI slave. More...
 
static uint32_t ADI8RegRead (uint32_t ui32Base, uint32_t ui32Reg)
 Read the value of an 8 bit register in the ADI slave. More...
 
static uint32_t ADI16RegRead (uint32_t ui32Base, uint32_t ui32Reg)
 Read the value in a 16 bit register. More...
 
static uint32_t ADI32RegRead (uint32_t ui32Base, uint32_t ui32Reg)
 Read the value in a 32 bit register. More...
 
static void ADI8BitsSet (uint32_t ui32Base, uint32_t ui32Reg, uint8_t ui8Val)
 Set specific bits in a single 8 bit ADI register. More...
 
static void ADI16BitsSet (uint32_t ui32Base, uint32_t ui32Reg, uint16_t ui16Val)
 Set specific bits in 2 x 8 bit ADI slave registers. More...
 
static void ADI32BitsSet (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
 Set specific bits in 4 x 8 bit ADI slave registers. More...
 
static void ADI8BitsClear (uint32_t ui32Base, uint32_t ui32Reg, uint8_t ui8Val)
 Clear specific bits in an 8 bit ADI register. More...
 
static void ADI16BitsClear (uint32_t ui32Base, uint32_t ui32Reg, uint16_t ui16Val)
 Clear specific bits in two 8 bit ADI register. More...
 
static void ADI32BitsClear (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
 Clear specific bits in four 8 bit ADI register. More...
 
static void ADI4SetValBit (uint32_t ui32Base, uint32_t ui32Reg, bool bWriteHigh, uint8_t ui8Mask, uint8_t ui8Val)
 Set a value on any 4 bits inside an 8 bit register in the ADI slave. More...
 
static void ADI8SetValBit (uint32_t ui32Base, uint32_t ui32Reg, uint16_t ui16Mask, uint16_t ui16Val)
 Set a value on any bits inside an 8 bit register in the ADI slave. More...
 
static void ADI16SetValBit (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Val)
 Set a value on any bits inside an 2 x 8 bit register aligned on a half-word (byte) boundary in the ADI slave. More...
 

Detailed Description

Function Documentation

static void ADI16BitsClear ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint16_t  ui16Val 
)
inlinestatic

Clear specific bits in two 8 bit ADI register.

This function will clear bits in 2 registers in the analog domain. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned, but arranged in chunck of 32 bits. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7 etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
This operation is write only for the specified register. This function is used to clear bits in 2 consecutive 8 bit registers in the ADI slave. Only bits in the selected registers are affected by the operation.
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Regis the base registers to clear the bits in.
ui16Valis the 16 bit one-hot encoded value specifying which bits to clear in the registers.
Returns
None
See also
ADI8BitsClear(), ADI32BitsClear()

Definition at line 833 of file adi.h.

Here is the call graph for this function:

static void ADI16BitsSet ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint16_t  ui16Val 
)
inlinestatic

Set specific bits in 2 x 8 bit ADI slave registers.

This function will set bits in 2 registers in the analog domain. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned, but arranged in chunck of 32 bits. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7 etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
This operation is write only for the specified register. This function is used to set bits in 2 consecutive 8 bit registers in the ADI slave. Only bits in the selected registers are affected by the operation.
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Regis the base register to assert the bits in.
ui16Valis the 16 bit one-hot encoded value specifying which bits to set in the registers.
Returns
None
See also
ADI8BitsSet(), ADI32BitsSet()

Definition at line 662 of file adi.h.

Here is the call graph for this function:

static uint32_t ADI16RegRead ( uint32_t  ui32Base,
uint32_t  ui32Reg 
)
inlinestatic

Read the value in a 16 bit register.

This function will read 2 x 8 bit registers in the analog domain and return the value as the lower 16 bits of an uint32_t. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7, etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
The byte addressing bit will be ignored, to ensure 16 bit access to the ADI slave.
Parameters
ui32Baseis ADI base address.
ui32Regis the 16 bit register to read.
Returns
Returns the 16 bit value of the 2 analog register in the 2 least significant bytes of the uint32_t.
See also
ADI8RegRead(), ADI32RegRead()

Definition at line 515 of file adi.h.

Here is the call graph for this function:

static void ADI16RegWrite ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint16_t  ui16Val 
)
inlinestatic

Write a 16 bit value to 2 registers in the ADI slave.

This function will write a value to 2 consecutive registers in the analog domain. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7, etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
The byte addressing bit will be ignored, to ensure 16 bit access to the ADI slave.
This operation is write only for the specified register. No previous value of the register will be kept (i.e. this is NOT read-modify-write on the register).
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Regis the register to write.
ui16Valis the 16 bit value to write to the register.
Returns
None
See also
ADI8RegWrite(), ADI32RegWrite()

Definition at line 382 of file adi.h.

Here is the call graph for this function:

static void ADI16SetValBit ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint32_t  ui32Mask,
uint32_t  ui32Val 
)
inlinestatic

Set a value on any bits inside an 2 x 8 bit register aligned on a half-word (byte) boundary in the ADI slave.

This function allows 2 byte (16 bit) access to the ADI slave registers.

Use this function to write any value in the range 0-15 bits aligned on a half-word (byte) boundary. Fx. for writing the value 0b101 to bits 1 and 3 the ui32Val = 0x000A and the ui32Mask = 0x000E. Bits 0 and 5-15 will not be affected by the operation, as the corresponding bits are not set in the ui32Mask.

Note
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis the base address of the ADI port.
ui32Regis the Least Significant Register in the ADI slave that will be affected by the write operation.
ui32Maskis the mask defining which of the 16 bit that should be overwritten. The mask must be defined in the lower half of the 32 bits.
ui32Valis the value to write. The value must be defined in the lower half of the 32 bits.
Returns
None
See also
ADI4SetValBit(), ADI8SetValBit()

Definition at line 1067 of file adi.h.

Here is the call graph for this function:

static void ADI32BitsClear ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint32_t  ui32Val 
)
inlinestatic

Clear specific bits in four 8 bit ADI register.

This function will clear bits in 4 registers in the analog domain. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned, but arranged in chunck of 32 bits. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7 etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
This operation is write only for the specified register. This function is used to clear bits in 4 consecutive 8 bit registers in the ADI slave. Only bits in the selected registers are affected by the operation.
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Regis the base registers to clear the bits in.
ui32Valis the 32 bit one-hot encoded value specifying which bits to clear in the registers.
Returns
None
See also
ADI8BitsClear(), ADI16BitsClear()

Definition at line 890 of file adi.h.

Here is the call graph for this function:

static void ADI32BitsSet ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint32_t  ui32Val 
)
inlinestatic

Set specific bits in 4 x 8 bit ADI slave registers.

This function will set bits in 4 registers in the analog domain. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned, but arranged in chunck of 32 bits. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7 etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
This operation is write only for the specified register. This function is used to set bits in 4 consecutive 8 bit registers in the ADI slave. Only bits in the selected registers are affected by the operation.
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Regis the base register to assert the bits in.
ui32Valis the 32 bit one-hot encoded value specifying which bits to set in the registers.
Returns
None
See also
ADI8BitsSet(), ADI16BitsSet()

Definition at line 719 of file adi.h.

Here is the call graph for this function:

static uint32_t ADI32RegRead ( uint32_t  ui32Base,
uint32_t  ui32Reg 
)
inlinestatic

Read the value in a 32 bit register.

This function will read 4 x 8 bit registers in the analog domain and return the value as an uint32_t. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7, etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
The byte and half word addressing bits will be ignored, to ensure 32 bit access to the ADI slave.
Parameters
ui32Baseis ADI base address.
ui32Regis the 32 bit register to read.
Returns
Returns the 32 bit value of the 4 analog registers.
See also
ADI8RegRead(), ADI16RegRead()

Definition at line 556 of file adi.h.

Here is the call graph for this function:

static void ADI32RegWrite ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint32_t  ui32Val 
)
inlinestatic

Write a 32 bit value to 4 registers in the ADI slave.

This function will write a value to 4 consecutive registers in the analog domain. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7, etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
The byte and half word addressing bits will be ignored, to ensure 32 bit access to the ADI slave.
This operation is write only for the specified register. No previous value of the register will be kept (i.e. this is NOT read-modify-write on the register).
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Regis the register to write.
ui32Valis the 32 bit value to write to the register.
Returns
None
See also
ADI8RegWrite(), ADI16RegWrite()

Definition at line 432 of file adi.h.

Here is the call graph for this function:

static void ADI4SetValBit ( uint32_t  ui32Base,
uint32_t  ui32Reg,
bool  bWriteHigh,
uint8_t  ui8Mask,
uint8_t  ui8Val 
)
inlinestatic

Set a value on any 4 bits inside an 8 bit register in the ADI slave.

This function allows halfbyte (4 bit) access to the ADI slave registers. The parameter bWriteHigh determines whether to write to the lower or higher part of the 8 bit register.

Use this function to write any value in the range 0-3 bits aligned on a half byte boundary. Fx. for writing the value 0b101 to bits 1 to 3 the ui8Val = 0xA and the ui8Mask = 0xE. Bit 0 will not be affected by the operation, as the corresponding bit is not set in the ui8Mask.

Note
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis the base address of the ADI port.
ui32Regis the Least Significant Register in the ADI slave that will be affected by the write operation.
bWriteHighdefines which part of the register to write in.
  • true: Write upper half byte of register.
  • false: Write lower half byte of register.
ui8Maskis the mask defining which of the 4 bits that should be overwritten. The mask must be defined in the lower half of the 8 bits of the parameter.
ui8Valis the value to write. The value must be defined in the lower half of the 8 bits of the parameter.
Returns
None
See also
ADI8SetValBit(), ADI16SetValBit

Definition at line 950 of file adi.h.

Here is the call graph for this function:

static void ADI8BitsClear ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint8_t  ui8Val 
)
inlinestatic

Clear specific bits in an 8 bit ADI register.

This function will clear bits in a register in the analog domain. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned, but arranged in chunck of 32 bits. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7 etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
This operation is write only for the specified register. This function is used to clear bits in a specific 8 bit register in the ADI slave. Only bits in the selected register are affected by the operation.
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Regis the base registers to clear the bits in.
ui8Valis the 8 bit one-hot encoded value specifying which bits to clear in the register.
Returns
None
See also
ADI16BitsClear(), ADI32BitsClear()

Definition at line 776 of file adi.h.

Referenced by AUXADCDisable().

Here is the call graph for this function:

static void ADI8BitsSet ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint8_t  ui8Val 
)
inlinestatic

Set specific bits in a single 8 bit ADI register.

This function will set bits in a single register in the analog domain. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned, but arranged in chunck of 32 bits. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7 etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
This operation is write only for the specified register. This function is used to set bits in a specific 8 bit register in the ADI slave. Only bits in the selected register are affected by the operation.
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Regis the base register to assert the bits in.
ui8Valis the 8 bit one-hot encoded value specifying which bits to set in the register.
Returns
None
See also
ADI16BitsSet(), ADI32BitsSet()

Definition at line 605 of file adi.h.

Referenced by AUXADCDisableInputScaling(), AUXADCEnableAsync(), and AUXADCEnableSync().

Here is the call graph for this function:

static uint32_t ADI8RegRead ( uint32_t  ui32Base,
uint32_t  ui32Reg 
)
inlinestatic

Read the value of an 8 bit register in the ADI slave.

This function will read an 8 bit register in the analog domain and return the value as the lower 8 bits of an uint32_t. The access to the registers in the analog domain is either 8, 16 or 32 bit aligned. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7, etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Parameters
ui32Baseis ADI base address.
ui32Regis the 8 bit register to read.
Returns
Returns the 8 bit value of the analog register in the least significant byte of the uint32_t.
See also
ADI16RegRead(), ADI32RegRead()

Definition at line 472 of file adi.h.

Here is the call graph for this function:

static void ADI8RegWrite ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint8_t  ui8Val 
)
inlinestatic

Write an 8 bit value to a register in an ADI slave.

This function will write a value to a single register in the analog domain. The access to the registers in the analog domain is either 8, 16, or 32 bit aligned. You can only do 16 bit access on registers 0-1 / 2-3, etc. Similarly 32 bit accesses are always performed on register 0-3 / 4-7, etc. Addresses for the registers and values being written to the registers will be truncated according to this access sceme.

Note
This operation is write only for the specified register. No previous value of the register will be kept (i.e. this is NOT read-modify-write on the register).
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Regis the register to write.
ui8Valis the 8 bit value to write to the register.
Returns
None
See also
ADI16RegWrite(), ADI32RegWrite()

Definition at line 333 of file adi.h.

Here is the call graph for this function:

static void ADI8SetValBit ( uint32_t  ui32Base,
uint32_t  ui32Reg,
uint16_t  ui16Mask,
uint16_t  ui16Val 
)
inlinestatic

Set a value on any bits inside an 8 bit register in the ADI slave.

This function allows byte (8 bit) access to the ADI slave registers.

Use this function to write any value in the range 0-7 bits aligned on a byte boundary. Fx. for writing the value 0b101 to bits 1 and 3 the ui16Val = 0x0A and the ui16Mask = 0x0E. Bits 0 and 5-7 will not be affected by the operation, as the corresponding bits are not set in the ui16Mask.

Note
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis the base address of the ADI port.
ui32Regis the Least Significant Register in the ADI slave that will be affected by the write operation.
ui16Maskis the mask defining which of the 8 bit that should be overwritten. The mask must be defined in the lower half of the 16 bits.
ui16Valis the value to write. The value must be defined in the lower half of the 16 bits.
Returns
None
See also
ADI4SetValBit(), ADI16SetValBit()

Definition at line 1008 of file adi.h.

Here is the call graph for this function:

static void ADIConfigSet ( uint32_t  ui32Base,
uint32_t  ui32Config,
bool  bProtect 
)
inlinestatic

Configure the ADI Slave.

Use this function to configure the interface between the ADI master and the ADI slave. The configuration value for the ADI slave sets the speed of the ADI interface and define if the master should wait for acknowledge from the slave.

If the bProtect parameter is set, the configuration register in the ADI slave is locked for future writes.

Note
Once the bProtect parameter is set, it is no longer possible to modify the configuration register.
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
ui32Configis the configuration of the ADI slave. Value must be a bitwise OR'ed combination of one of each of the two following items:
bProtectdetermines if the register access should be protected.
  • false: Do not protect configuration register.
  • true: Protect configuration register.
Returns
None

Definition at line 189 of file adi.h.

Here is the call graph for this function:

static void ADIProtect ( uint32_t  ui32Base)
inlinestatic

Protect an ADI slave configuration by locking the configuration register access.

This function will lock the configuration interface to the ADI slave.

Note
Once locked it is no longer possible to modify the configuration register in the ADI slave.
This function uses read-modify-write to guarantee the integrity of the configuration. This might take exceedingly long time, so if the configuration is known, it is advised to use ADIConfigSet() for protecting the ADI slave configuration.
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
Returns
None
See also
ADIConfigSet()

Definition at line 280 of file adi.h.

Here is the call graph for this function:

static uint32_t ADIStatusGet ( uint32_t  ui32Base)
inlinestatic

Get the status of an ADI module.

This function will return the value of the status register ADI_O_SLAVESTAT which contains status of Request and Acklowledge signals.

Parameters
ui32Baseis ADI base address. Allowed values are:
Returns
Returns the current value of the status register.

Definition at line 145 of file adi.h.

static void ADISync ( uint32_t  ui32Base)
inlinestatic

Synchronize the ADI slave.

This function will perform a sync on the ADI slave by issuing a NOP ADI command to the master with REQ=0. In other words, the master performs a dummy write request to ensure the master and slave are synchronized.

Note
It is recommended to sync with all the ADI slaves before a power down of the ADI master.
AUX_ADI4_BASE : Both the AUX module and the clock for the AUX SMPH module must be enabled before calling this function.
Parameters
ui32Baseis ADI base address.
Returns
None

Definition at line 238 of file adi.h.

Here is the call graph for this function:

Macro Definition Documentation

#define ADI_ACK   0x00000001

Definition at line 98 of file adi.h.

#define ADI_CONFIG_MASK   0x00000007

Definition at line 90 of file adi.h.

#define ADI_NO_WAIT   0x00000000

Definition at line 84 of file adi.h.

Referenced by ADIConfigSet().

#define ADI_PROTECT   0x00000080

Definition at line 97 of file adi.h.

Referenced by ADIConfigSet(), and ADIProtect().

#define ADI_SPEED_16   0x00000003

Definition at line 89 of file adi.h.

Referenced by ADIConfigSet().

#define ADI_SPEED_2   0x00000000

Definition at line 86 of file adi.h.

Referenced by ADIConfigSet().

#define ADI_SPEED_4   0x00000001

Definition at line 87 of file adi.h.

Referenced by ADIConfigSet().

#define ADI_SPEED_8   0x00000002

Definition at line 88 of file adi.h.

Referenced by ADIConfigSet().

#define ADI_SYNC   0x00000000

Definition at line 99 of file adi.h.

Referenced by ADISync().

#define ADI_WAIT_FOR_ACK   0x00000004

Definition at line 85 of file adi.h.

Referenced by ADIConfigSet().