File syn_smbus.h¶
FileList > proto > syn_smbus.h
Go to the source code of this file
SMBus (System Management Bus 1.1 / 2.0 / 3.0) Protocol Engine. More...
#include "../common/syn_defs.h"#include <stdbool.h>#include <stddef.h>#include <stdint.h>
Classes¶
| Type | Name |
|---|---|
| struct | SYN_SMBUS_Packet |
Public Types¶
| Type | Name |
|---|---|
| enum | SYN_SMBUS_Protocol |
Public Functions¶
| Type | Name |
|---|---|
| uint8_t | syn_smbus_calc_pec (uint8_t init_crc, const uint8_t * data, size_t len) Calculate SMBus Packet Error Checking (PEC) CRC-8 byte. Polynomial: x^8 + x^2 + x + 1 (0x07), Initial value: 0x00. |
| SYN_Status | syn_smbus_decode_packet (SYN_SMBUS_Packet * pkt, const uint8_t * rx_buf, size_t rx_len, SYN_SMBUS_Protocol proto, bool has_pec) Decode an SMBus byte stream into an SMBus packet structure. |
| SYN_Status | syn_smbus_encode_packet (const SYN_SMBUS_Packet * pkt, uint8_t * tx_buf, size_t buf_size, size_t * out_len) Encode an SMBus packet into a byte stream for transmission. |
Macros¶
| Type | Name |
|---|---|
| define | SYN_SMBUS_ADDR_ALERT_RESPONSE 0x0C |
| define | SYN_SMBUS_ADDR_DEFAULT 0x61 |
| define | SYN_SMBUS_ADDR_SMART_BATTERY 0x16 |
| define | SYN_SMBUS_ADDR_SMART_BATTERY_CHARGER 0x12 |
| define | SYN_SMBUS_ADDR_SMART_BATTERY_SELECT 0x13 |
| define | SYN_SMBUS_BLOCK_MAX_LEN 32 |
| define | SYN_SMBUS_BUF_MAX_LEN 260 |
Detailed Description¶
Provides non-blocking SMBus packet encoding, decoding, Packet Error Checking (PEC) CRC-8 calculations, transaction protocol builders, and ARP/alert definitions.
Public Types Documentation¶
enum SYN_SMBUS_Protocol¶
enum SYN_SMBUS_Protocol {
SYN_SMBUS_PROTO_QUICK_READ = 0,
SYN_SMBUS_PROTO_QUICK_WRITE,
SYN_SMBUS_PROTO_SEND_BYTE,
SYN_SMBUS_PROTO_RECEIVE_BYTE,
SYN_SMBUS_PROTO_WRITE_BYTE,
SYN_SMBUS_PROTO_READ_BYTE,
SYN_SMBUS_PROTO_WRITE_WORD,
SYN_SMBUS_PROTO_READ_WORD,
SYN_SMBUS_PROTO_WRITE_BLOCK,
SYN_SMBUS_PROTO_READ_BLOCK,
SYN_SMBUS_PROTO_PROCESS_CALL,
SYN_SMBUS_PROTO_BLOCK_PROCESS_CALL
};
Public Functions Documentation¶
function syn_smbus_calc_pec¶
Calculate SMBus Packet Error Checking (PEC) CRC-8 byte. Polynomial: x^8 + x^2 + x + 1 (0x07), Initial value: 0x00.
Parameters:
init_crcRunning CRC value (0x00 for fresh calculation).dataPointer to data buffer.lenData length in bytes.
Returns:
Computed PEC byte.
function syn_smbus_decode_packet¶
Decode an SMBus byte stream into an SMBus packet structure.
SYN_Status syn_smbus_decode_packet (
SYN_SMBUS_Packet * pkt,
const uint8_t * rx_buf,
size_t rx_len,
SYN_SMBUS_Protocol proto,
bool has_pec
)
Parameters:
pktPointer to destination packet structure.rx_bufInput buffer containing received bytes.rx_lenLength of received byte stream.protoProtocol format expected.has_pecTrue if PEC byte is appended at end of rx_buf.
Returns:
SYN_OK on success, SYN_ERR_INVALID_CHECKSUM if PEC mismatch, or SYN_ERR_INVALID_PARAM.
function syn_smbus_encode_packet¶
Encode an SMBus packet into a byte stream for transmission.
SYN_Status syn_smbus_encode_packet (
const SYN_SMBUS_Packet * pkt,
uint8_t * tx_buf,
size_t buf_size,
size_t * out_len
)
Parameters:
pktPointer to packet structure.tx_bufOutput buffer.buf_sizeSize of output buffer.out_lenPointer to receive encoded byte count.
Returns:
SYN_OK on success, or error status.
Macro Definition Documentation¶
define SYN_SMBUS_ADDR_ALERT_RESPONSE¶
Alert Response Address (ARA)
define SYN_SMBUS_ADDR_DEFAULT¶
SMBus Default Device Address (ARP)
define SYN_SMBUS_ADDR_SMART_BATTERY¶
Smart Battery Data
define SYN_SMBUS_ADDR_SMART_BATTERY_CHARGER¶
Smart Battery Charger
define SYN_SMBUS_ADDR_SMART_BATTERY_SELECT¶
Smart Battery Selector
define SYN_SMBUS_BLOCK_MAX_LEN¶
SMBus 2.0 default block payload max length
define SYN_SMBUS_BUF_MAX_LEN¶
Buffer payload max length for extended frames
The documentation for this class was generated from the following file src/syntropic/proto/syn_smbus.h