Skip to content

File syn_pmbus.c

FileList > proto > syn_pmbus.c

Go to the source code of this file

PMBus Protocol Engine implementation.

  • #include "syn_pmbus.h"
  • #include <math.h>

Public Functions

Type Name
void syn_pmbus_encode_read_cmd (SYN_SMBUS_Packet * pkt, uint8_t slave_addr, uint8_t cmd, bool use_pec)
Encode a PMBus telemetry read request into an SMBus packet.
uint16_t syn_pmbus_float_to_linear11 (float val)
Convert floating-point value to PMBus 16-bit Linear11 format.
uint16_t syn_pmbus_float_to_linear16 (float val, uint8_t vout_mode)
Convert floating-point output voltage to PMBus 16-bit Linear16 format.
float syn_pmbus_linear11_to_float (uint16_t raw)
Convert PMBus 16-bit Linear11 format (5-bit exponent + 11-bit mantissa) to float.
float syn_pmbus_linear16_to_float (uint16_t raw, uint8_t vout_mode)
Convert PMBus 16-bit Linear16 format (unsigned 16-bit mantissa + VOUT_MODE exponent) to float.

Public Functions Documentation

function syn_pmbus_encode_read_cmd

Encode a PMBus telemetry read request into an SMBus packet.

void syn_pmbus_encode_read_cmd (
    SYN_SMBUS_Packet * pkt,
    uint8_t slave_addr,
    uint8_t cmd,
    bool use_pec
) 

Parameters:

  • pkt Output SMBus packet.
  • slave_addr 7-bit PMBus slave address.
  • cmd PMBus command code (e.g., SYN_PMBUS_CMD_READ_VIN).
  • use_pec Enable Packet Error Checking (PEC).

function syn_pmbus_float_to_linear11

Convert floating-point value to PMBus 16-bit Linear11 format.

uint16_t syn_pmbus_float_to_linear11 (
    float val
) 

Parameters:

  • val Floating-point value.

Returns:

Encoded 16-bit Linear11 word.


function syn_pmbus_float_to_linear16

Convert floating-point output voltage to PMBus 16-bit Linear16 format.

uint16_t syn_pmbus_float_to_linear16 (
    float val,
    uint8_t vout_mode
) 

Parameters:

  • val Floating-point voltage value.
  • vout_mode VOUT_MODE byte (or raw 5-bit signed exponent N).

Returns:

Encoded 16-bit Linear16 raw mantissa word.


function syn_pmbus_linear11_to_float

Convert PMBus 16-bit Linear11 format (5-bit exponent + 11-bit mantissa) to float.

float syn_pmbus_linear11_to_float (
    uint16_t raw
) 

Parameters:

  • raw 16-bit raw Linear11 word.

Returns:

Decoded floating-point value.


function syn_pmbus_linear16_to_float

Convert PMBus 16-bit Linear16 format (unsigned 16-bit mantissa + VOUT_MODE exponent) to float.

float syn_pmbus_linear16_to_float (
    uint16_t raw,
    uint8_t vout_mode
) 

Parameters:

  • raw 16-bit raw mantissa word.
  • vout_mode VOUT_MODE byte (or raw 5-bit signed exponent N).

Returns:

Decoded floating-point output voltage.



The documentation for this class was generated from the following file src/syntropic/proto/syn_pmbus.c