Analog Devices EV-COG-AD3029LZ Board Support Package Documentation  Release 3.1.0
Macros | Enumerations | Functions
ADP5300 Driver

Driver for the ADP5300 Voltage Regulator. More...

Macros

#define ADI_VOUTOK_IRQ_GROUP   (ADI_GPIO_INTA_IRQ)
 

Enumerations

enum  ADI_ADP5300_MODE { ADI_ADP5300_MODE_HYSTERESIS, ADI_ADP5300_MODE_PWM }
 ADP5300 operational modes. More...
 
enum  ADI_ADP5300_SWITCHING { ADI_ADP5300_SWITCHING_STOP, ADI_ADP5300_SWITCHING_RESUME }
 ADP5300 switching modes. More...
 

Functions

ADI_GPIO_RESULT adi_adp5300_Init ()
 Initialize the ADP5300. More...
 
ADI_GPIO_RESULT adi_adp5300_SetMode (ADI_ADP5300_MODE eMode)
 Set the mode of the ADP5300. More...
 
ADI_GPIO_RESULT adi_adp5300_SetSwitching (ADI_ADP5300_SWITCHING bState)
 Set the switching state of the ADP5300. More...
 
ADI_GPIO_RESULT adi_adp5300_EnableVoutokInt (uint8_t bEnable)
 Enable/disable the VOUTOK interrupt. More...
 
ADI_GPIO_RESULT adi_adp5300_ReadVoutokState (uint8_t *const pState)
 Read VOUTOK output pin. More...
 

Detailed Description

Driver for the ADP5300 Voltage Regulator.

Macro Definition Documentation

◆ ADI_VOUTOK_IRQ_GROUP

#define ADI_VOUTOK_IRQ_GROUP   (ADI_GPIO_INTA_IRQ)

< GPIO Group interrupt for the VOUTOK pin. Needs to be a ADI_GPIO_IRQ enumeration.

Enumeration Type Documentation

◆ ADI_ADP5300_MODE

ADP5300 operational modes.

Buck regulator operational modes. PWM mode is a low noise mode and can be used when sampling noise sensitive peripherals. Hysteresis mode is high current but saves power. This can be used during non noise sensitive operations such as being in hibernate.

Enumerator
ADI_ADP5300_MODE_HYSTERESIS 

Hysteresis mode.

ADI_ADP5300_MODE_PWM 

PWM mode.

◆ ADI_ADP5300_SWITCHING

ADP5300 switching modes.

The ADP5300 includes a STOP input pin that can temporarily stop the regulator switching in hysteresis mode. When switching has stopped, a quiet system is acheived which is ideal for noise sensitive circuitry like a data conversion or data transmission.

Enumerator
ADI_ADP5300_SWITCHING_STOP 

Stop switching.

ADI_ADP5300_SWITCHING_RESUME 

Resume switching.

Function Documentation

◆ adi_adp5300_EnableVoutokInt()

ADI_GPIO_RESULT adi_adp5300_EnableVoutokInt ( uint8_t  bEnable)

Enable/disable the VOUTOK interrupt.

The ADP5300 has an output VOUTOK pin. When the regulated output voltage drops below 87% (typical) of its nominal output for a delay time greater than approximately 10 µs, the VOUTOK pin goes low. The MCU will be interrupted when this occurs to resume switching.

Parameters
[in]bEnable: Enable/Disable VOUTOK interrupt.
  • 1 : Enable IRQ.
  • 0 : Disable IRQ.
Returns
ADI_GPIO_RESULT.
  • ADI_GPIO_SUCCESS If successfully enabled the interrupt.
  • ADI_GPIO_NOT_INITIALIZED [D] If GPIO driver not yet initialized.
  • ADI_GPIO_INVALID_PINS [D] If the defined pins are invalid.
Note
This ADP5300 drivers owns the callback for this interrupt. When the VOUTOK pin drops below the threshold, the driver will be notified and will resume switching automatically.

◆ adi_adp5300_Init()

ADI_GPIO_RESULT adi_adp5300_Init ( )

Initialize the ADP5300.

This function sets up the GPIO STOP and SYNC/MODE pins as MCU outputs and VOUTOK as a GPIO input. It also sets the mode to hysteresis and resumes regulator switching.

Returns
ADI_GPIO_RESULT.
  • ADI_GPIO_SUCCESS If successfully initialized.
  • ADI_GPIO_NOT_INITIALIZED [D] If GPIO driver not yet initialized.
  • ADI_GPIO_INVALID_PINS [D] If the defined pins are invalid.
Note
adi_gpio_init() needs to be called before this function can be called as this driver uses the gpio.

◆ adi_adp5300_ReadVoutokState()

ADI_GPIO_RESULT adi_adp5300_ReadVoutokState ( uint8_t *const  pState)

Read VOUTOK output pin.

The ADP5300 has an output VOUTOK pin. When the regulated output voltage drops below 87% (typical) of its nominal output for a delay time greater than approximately 10 µs, the VOUTOK pin goes low. This function reads the status of that pin.

Parameters
[out]pState: State of the VOUTOK pin.
  • 1 : VOUTOK high.
  • 0 : VOUTOK low.
Returns
ADI_GPIO_RESULT.
  • ADI_GPIO_SUCCESS If successfully read the pin state.
  • ADI_GPIO_NOT_INITIALIZED [D] If GPIO driver not yet initialized.
  • ADI_GPIO_INVALID_PINS [D] If the defined pins are invalid.

◆ adi_adp5300_SetMode()

ADI_GPIO_RESULT adi_adp5300_SetMode ( ADI_ADP5300_MODE  eMode)

Set the mode of the ADP5300.

The ADP5300 includes a SYNC/MODE pin to allow flexible mode configuration. In PWM mode, the regulator can supply lower output noise for noise sensitive applications. In hysteresis mode, the regualtor can act as a keep-alive power supply in a battery powered system, but with a relatively high output ripple.

Parameters
[in]eMode: Mode to set the ADP5300.
Returns
ADI_GPIO_RESULT.
  • ADI_GPIO_SUCCESS If successfully set the mode.
  • ADI_GPIO_NOT_INITIALIZED [D] If GPIO driver not yet initialized.
  • ADI_GPIO_INVALID_PINS [D] If the defined pins are invalid.

◆ adi_adp5300_SetSwitching()

ADI_GPIO_RESULT adi_adp5300_SetSwitching ( ADI_ADP5300_SWITCHING  bState)

Set the switching state of the ADP5300.

The ADP5300 has an input STOP pin that can temporarily stop regulator switching in hystersis mode, forcing the regulator to rely on the output capacitor to supply the load. In this period, a quiet system can be acheived which benefits noise sensitive circuitry like an rf transmission or analog sensing. Note: Swithing takes 10's of nanoseconds to fully stop.

Parameters
[in]bState: Switching state to set the ADP5300.
Returns
ADI_GPIO_RESULT.
  • ADI_GPIO_SUCCESS If successfully set switching.
  • ADI_GPIO_NOT_INITIALIZED [D] If GPIO driver not yet initialized.
  • ADI_GPIO_INVALID_PINS [D] If the defined pins are invalid.