90 uint8_t data_byte, command_byte;
105 port = 0x01 << (port - 1);
133 uint8_t data_byte, command_byte;
148 port = 0x01 << (port + 3);
176 uint8_t data_byte_9, data_byte_E, command_byte_9, command_byte_E, position_9, position_E;
184 position_E = (0x01 << (port - 1));
187 position_9 = position_E << 4;
199 data_byte_9 &= ~position_9;
200 data_byte_E |= position_E;
220 uint8_t command_byte, data_byte;
255 uint8_t command_byte , data_byte, position;
263 position = ((port - 1) << 1);
264 data_byte &= ~(0x3<<position);
265 data_byte |= ((value) << position);
285 uint8_t command_byte , data_byte, position;
296 data_byte = value + (value << 2) + (value << 4) + (value << 6);
300 position = ((port - 1) << 1);
301 data_byte &= ~(0x3<<position);
302 data_byte |= ((value) << position);
323 uint8_t command_byte , data_byte, position;
351 uint8_t command_byte , data_byte, position;
379 uint8_t command_byte , data_byte, position;
407 uint8_t command_byte , data_byte, position;
435 uint8_t data_byte, command_byte;
436 port = 0x01 << (port + 3);
463 uint8_t command_byte;
480 uint8_t command_byte;
499 uint8_t command_byte , data_byte;
509 data_byte |= LTC2874_bit;
513 data_byte &= ~LTC2874_bit;
532 uint8_t command_byte , mask, data_byte;
540 data_byte |= LTC2874_bit;
558 uint8_t command_byte , mask, data_byte;
584 uint8_t command_byte;
600 uint8_t command_byte, data_byte;
620 uint8_t command_byte, data_byte;
629 data_byte &= LTC2874_bit;
630 data_byte = data_byte != 0;
643 uint8_t command_byte;
660 uint8_t command_byte , mask, data_byte;
668 data_byte |= LTC2874_bit;
685 uint8_t command_byte , mask, data_byte;
713 uint8_t command_byte , data_byte;
723 data_byte |= LTC2874_bit;
727 data_byte &= ~LTC2874_bit;
#define LTC2874_RETRYTC(value)
#define LTC2874_2XPTC_msk
#define LTC2874_LPTC(value)
void LTC2874_lplus_output(uint8_t port, uint8_t value)
Enables or Disables L+ output for specified port, then Updates.
void LTC2874_sio_mode(uint8_t port)
Sets SIO_MODE bit (and also Clears SLEW bit) for specified port, then Updates.
#define output_high(pin)
Set "pin" high.
#define LTC2874_CTRL2_REGE
Header File for Linduino Libraries and Demo Code.
void spi_write(int8_t data)
Write a data byte using the SPI hardware.
LTC2874: Quad IO-Link Master Hot Swap Power Controller and PHY.
void LTC2874_write_RETRYTC_value(uint8_t value)
Changes Auto-Retry Timer Control (RETRYTC) setting without Updating.
void LTC2874_write_2XPTC_value(uint8_t value)
Changes 2X Current Pulse Timer Control (2XPTC) setting without Updating.
void LTC2874_write_bit_value_update_all(uint8_t LTC2874_register, uint8_t LTC2874_bit, uint8_t value)
Changes value of a register bit, then Updates.
void LTC2874_write_register(uint8_t LTC2874_register, uint8_t LTC2874_data)
Writes byte of data to a register without Updating.
#define LTC2874_TMRCTRL_REGC
#define LTC2874_2XPTC(value)
void LTC2874_cq_output(uint8_t port, uint8_t value)
Enables or Disables CQ output for specified port, then Updates.
#define output_low(pin)
Set "pin" low.
void LTC2874_write_ILLM_value(uint8_t port, uint8_t value)
Changes ILLM (Sinking current) setting for specified port without Updating.
#define LTC2874_WRITE_UPDATE_ALL
void LTC2874_reset(void)
Resets LTC2874, returning default values to registers.
uint8_t LTC2874_read_bit(uint8_t LTC2874_register, uint8_t LTC2874_bit)
Reads a data BIT from specified register.
void LTC2874_write_bit_clr(uint8_t LTC2874_register, uint8_t LTC2874_bit)
Clears a register bit without Updating.
LT_SPI: Routines to communicate with ATmega328P's hardware SPI port.
void LTC2874_wakeup_request(uint8_t port)
Sends WURQ (Wake-up Request) on specified port.
void LTC2874_write_NSF_value(uint8_t port, uint8_t value)
Changes NSF (Noise Suppression Filter) setting for specified port without Updating.
#define LTC2874_UPDATE_ALL
void LTC2874_write_bit_value(uint8_t LTC2874_register, uint8_t LTC2874_bit, uint8_t value)
Changes value of a register bit without Updating.
int8_t spi_read(int8_t data)
The data byte to be written.
#define LTC2874_MODE2_REG9
void LTC2874_write_bit_clr_update_all(uint8_t LTC2874_register, uint8_t LTC2874_bit)
Clears a register bit, then Updates.
#define LTC2874_OV_TH(value)
void LTC2874_update_all(void)
Updates all registers.
void LTC2874_write_register_update_all(uint8_t LTC2874_register, uint8_t LTC2874_data)
Writes byte of data to a register, then Updates.
void LTC2874_24v_mode(uint8_t value)
Changes value of the 24VMODE bit, then Updates.
void LTC2874_write_bit_set_update_all(uint8_t LTC2874_register, uint8_t LTC2874_bit)
Sets a register bit, then Updates.
#define LTC2874_OV_TH_msk
void LTC2874_write_LPTC_value(uint8_t value)
Change L+ Overcurrent Timer Control (LPTC) setting without Updating.
uint8_t LTC2874_read_reg(uint8_t LTC2874_register)
Reads data byte from specified register.
#define LTC2874_MODE1_REG8
#define LTC2874_CTRL1_REGD
#define LTC2874_ILLM_REGB
#define LTC2874_RETRYTC_msk
void LTC2874_write_OV_TH_value(uint8_t value)
Changes VDD Overvoltage Threshold (OV_TH) setting without Updating.
#define LTC2874_WRITE_NO_UPDATE
void LTC2874_write_bit_set(uint8_t LTC2874_register, uint8_t LTC2874_bit)
Sets a register bit without Updating.