CC26xx Driver Library
[adi.h] Analog to Digital Interface

Functions

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

Introduction


API

The API functions can be grouped like this:

Write:

Read:

Function Documentation

§ ADI16BitsClear()

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 chunks 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 scheme.

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()
560 {
561  uint32_t ui32RegOffset;
562 
563  // Check the arguments.
564  ASSERT(ADIBaseValid(ui32Base));
565  ASSERT(ui32Reg < ADI_SLAVE_REGS);
566 
567  // Get the correct address of the first register used for setting bits
568  // in the ADI slave.
569  ui32RegOffset = ADI_O_CLR;
570 
571  // Set the selected bits.
572  HWREGH(ui32Base + ui32RegOffset + (ui32Reg & 0xFE)) = ui16Val;
573 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI16BitsSet()

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 chunks 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 scheme.

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()
419 {
420  uint32_t ui32RegOffset;
421 
422  // Check the arguments.
423  ASSERT(ADIBaseValid(ui32Base));
424  ASSERT(ui32Reg < ADI_SLAVE_REGS);
425 
426  // Get the correct address of the first register used for setting bits
427  // in the ADI slave.
428  ui32RegOffset = ADI_O_SET;
429 
430  // Set the selected bits.
431  HWREGH(ui32Base + ui32RegOffset + (ui32Reg & 0xFE)) = ui16Val;
432 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI16RegRead()

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 scheme.

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()
298 {
299  // Check the arguments.
300  ASSERT(ADIBaseValid(ui32Base));
301  ASSERT(ui32Reg < ADI_SLAVE_REGS);
302 
303  // Read the registers and return the value.
304  return(HWREGH(ui32Base + (ui32Reg & 0xFE)));
305 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI16RegWrite()

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 scheme.

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()
190 {
191  // Check the arguments.
192  ASSERT(ADIBaseValid(ui32Base));
193  ASSERT(ui32Reg < ADI_SLAVE_REGS);
194 
195  // Write the value to the register.
196  HWREGH(ui32Base + (ui32Reg & 0xFE)) = ui16Val;
197 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI16SetValBit()

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()
755 {
756  uint32_t ui32RegOffset;
757 
758  // Check the arguments.
759  ASSERT(ADIBaseValid(ui32Base));
760  ASSERT(ui32Reg < ADI_SLAVE_REGS);
761  ASSERT(!(ui32Val & 0xFFFF0000));
762  ASSERT(!(ui32Mask & 0xFFFF0000));
763 
764  // Get the correct address of the first register used for setting bits
765  // in the ADI slave.
766  ui32RegOffset = ADI_O_MASK16B + ((ui32Reg << 1) & 0xFC);
767 
768  // Set the selected bits.
769  HWREG(ui32Base + ui32RegOffset) = (ui32Mask << 16) | ui32Val;
770 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI32BitsClear()

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 chunks 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 scheme.

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()
607 {
608  uint32_t ui32RegOffset;
609 
610  // Check the arguments.
611  ASSERT(ADIBaseValid(ui32Base));
612  ASSERT(ui32Reg < ADI_SLAVE_REGS);
613 
614  // Get the correct address of the first register used for setting bits
615  // in the ADI slave.
616  ui32RegOffset = ADI_O_CLR;
617 
618  // Set the selected bits.
619  HWREG(ui32Base + ui32RegOffset + (ui32Reg & 0xFC)) = ui32Val;
620 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI32BitsSet()

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 chunks 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 scheme.

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()
466 {
467  uint32_t ui32RegOffset;
468 
469  // Check the arguments.
470  ASSERT(ADIBaseValid(ui32Base));
471  ASSERT(ui32Reg < ADI_SLAVE_REGS);
472 
473  // Get the correct address of the first register used for setting bits
474  // in the ADI slave.
475  ui32RegOffset = ADI_O_SET;
476 
477  // Set the selected bits.
478  HWREG(ui32Base + ui32RegOffset + (ui32Reg & 0xFC)) = ui32Val;
479 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI32RegRead()

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 scheme.

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()
331 {
332  // Check the arguments.
333  ASSERT(ADIBaseValid(ui32Base));
334  ASSERT(ui32Reg < ADI_SLAVE_REGS);
335 
336  // Read the registers and return the value.
337  return(HWREG(ui32Base + (ui32Reg & 0xFC)));
338 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI32RegWrite()

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 scheme.

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()
231 {
232  // Check the arguments.
233  ASSERT(ADIBaseValid(ui32Base));
234  ASSERT(ui32Reg < ADI_SLAVE_REGS);
235 
236  // Write the value to the register.
237  HWREG(ui32Base + (ui32Reg & 0xFC)) = ui32Val;
238 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI4SetValBit()

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
658 {
659  uint32_t ui32RegOffset;
660 
661  // Check the arguments.
662  ASSERT(ADIBaseValid(ui32Base));
663  ASSERT(ui32Reg < ADI_SLAVE_REGS);
664  ASSERT(!(ui8Val & 0xF0));
665  ASSERT(!(ui8Mask & 0xF0));
666 
667  // Get the correct address of the first register used for setting bits
668  // in the ADI slave.
669  ui32RegOffset = ADI_O_MASK4B + (ui32Reg << 1) + (bWriteHigh ? 1 : 0);
670 
671  // Set the selected bits.
672  HWREGB(ui32Base + ui32RegOffset) = (ui8Mask << 4) | ui8Val;
673 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI8BitsClear()

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 chunks 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 scheme.

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()

Referenced by AUXADCDisable().

513 {
514  uint32_t ui32RegOffset;
515 
516  // Check the arguments.
517  ASSERT(ADIBaseValid(ui32Base));
518  ASSERT(ui32Reg < ADI_SLAVE_REGS);
519 
520  // Get the correct address of the first register used for setting bits
521  // in the ADI slave.
522  ui32RegOffset = ADI_O_CLR;
523 
524  // Set the selected bits.
525  HWREGB(ui32Base + ui32RegOffset + ui32Reg) = ui8Val;
526 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI8BitsSet()

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 chunks 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 scheme.

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()

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

372 {
373  uint32_t ui32RegOffset;
374 
375  // Check the arguments.
376  ASSERT(ADIBaseValid(ui32Base));
377  ASSERT(ui32Reg < ADI_SLAVE_REGS);
378 
379  // Get the correct address of the first register used for setting bits
380  // in the ADI slave.
381  ui32RegOffset = ADI_O_SET;
382 
383  // Set the selected bits.
384  HWREGB(ui32Base + ui32RegOffset + ui32Reg) = ui8Val;
385 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI8RegRead()

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 scheme.

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()
263 {
264  // Check the arguments.
265  ASSERT(ADIBaseValid(ui32Base));
266  ASSERT(ui32Reg < ADI_SLAVE_REGS);
267 
268  // Read the register and return the value.
269  return(HWREGB(ui32Base + ui32Reg));
270 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI8RegWrite()

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 scheme.

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()
148 {
149  // Check the arguments.
150  ASSERT(ADIBaseValid(ui32Base));
151  ASSERT(ui32Reg < ADI_SLAVE_REGS);
152 
153  // Write the value to the register.
154  HWREGB(ui32Base + ui32Reg) = ui8Val;
155 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

§ ADI8SetValBit()

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()
706 {
707  uint32_t ui32RegOffset;
708 
709  // Check the arguments.
710  ASSERT(ADIBaseValid(ui32Base));
711  ASSERT(ui32Reg < ADI_SLAVE_REGS);
712  ASSERT(!(ui16Val & 0xFF00));
713  ASSERT(!(ui16Mask & 0xFF00));
714 
715  // Get the correct address of the first register used for setting bits
716  // in the ADI slave.
717  ui32RegOffset = ADI_O_MASK8B + (ui32Reg << 1);
718 
719  // Set the selected bits.
720  HWREGH(ui32Base + ui32RegOffset) = (ui16Mask << 8) | ui16Val;
721 }
#define ASSERT(expr)
Definition: debug.h:71
#define ADI_SLAVE_REGS
Definition: adi.h:75

Macro Definition Documentation

§ ADI_ACK

#define ADI_ACK   0x00000001

§ ADI_PROTECT

#define ADI_PROTECT   0x00000080

§ ADI_SLAVE_REGS

§ ADI_SYNC

#define ADI_SYNC   0x00000000