59 WRITE_SEQUENCER = 0x11,
60 READ_SEQUENCER = 0x22,
62 WRITE_CONFIGURATION = 0x55,
63 READ_CONFIGURATION = 0x6A,
64 WRITE_GPIO_CONFIGURATION = 0x83,
65 READ_GPIO_CONFIGURATION = 0x7C,
67 } DS28E18_device_function_commands_T;
75 OVERDRIVE_SKIP = 0x3C,
83 I2C_WRITE_DATA = 0xE3,
85 I2C_READ_DATA_W_NACK_END = 0xD3,
88 SPI_WRITE_READ_BYTE = 0xC0,
89 SPI_WRITE_READ_BIT = 0xB0,
95 UTILITY_SENS_VDD_ON = 0xCC,
96 UTILITY_SENS_VDD_OFF = 0xBB,
97 UTILITY_GPIO_BUF_WRITE = 0xD1,
98 UTILITY_GPIO_BUF_READ = 0x1D,
99 UTILITY_GPIO_CNTL_WRITE = 0xE2,
100 UTILITY_GPIO_CNTL_READ = 0x2E,
101 } DS28E18_sequencer_commands_T;
105 EXECUTION_ERROR = 0x55,
106 INVALID_PARAMETER = 0x77,
109 } DS28E18_result_byte_T;
116 } DS28E18_protocol_speed_T;
121 } DS28E18_ignore_nack_T;
126 } DS28E18_protocol_T;
131 } DS28E18_spi_mode_T;
136 } DS28E18_target_configuration_register_T;
156 DELAY_16384msec = 14,
157 DELAY_32768msec = 15,
161 uint8_t sequenceData[512];
163 unsigned int totalSequencerDelayTime;
182 bool DS28E18_WriteSequencer(
unsigned short nineBitStartingAddress,
const uint8_t *txData,
int txDataSize);
183 bool DS28E18_ReadSequencer(
unsigned short nineBitStartingAddress, uint8_t *rxData,
unsigned short readLength);
185 bool DS28E18_WriteConfiguration(DS28E18_protocol_speed_T SPD, DS28E18_ignore_nack_T INACK, DS28E18_protocol_T PROT, DS28E18_spi_mode_T SPI_MODE);
void DS28E18_BuildPacket_I2C_WriteData(const uint8_t *i2cData, uint8_t i2cDataSize)
Definition: DS28E18.c:729
bool DS28E18_WriteConfiguration(DS28E18_protocol_speed_T SPD, DS28E18_ignore_nack_T INACK, DS28E18_protocol_T PROT, DS28E18_spi_mode_T SPI_MODE)
Definition: DS28E18.c:550
void DS28E18_BuildPacket_SPI_SlaveSelectLow(void)
Definition: DS28E18.c:1039
void DS28E18_BuildPacket_Utility_GpioBufferWrite(uint8_t GPIO_BUF)
Definition: DS28E18.c:1083
unsigned short DS28E18_BuildPacket_SPI_WriteReadBit(const uint8_t *spiWriteData, uint8_t spiWriteDataSize, int writeBits, int readBits)
Definition: DS28E18.c:906
void DS28E18_BuildPacket_Append(const uint8_t *sequencerCmds, size_t length)
Append commands to locally constructed command sequencer packet.
Definition: DS28E18.c:687
DS28E18_utility_delay_T
Definition: DS28E18.h:141
unsigned short DS28E18_BuildPacket_SPI_WriteReadByte(const uint8_t *spiWriteData, uint8_t spiWriteDataSize, int readBytes, bool fullDuplex)
Definition: DS28E18.c:802
bool DS28E18_WriteGpioConfiguration(DS28E18_target_configuration_register_T CFG_REG_TARGET, uint8_t GPIO_HI, uint8_t GPIO_LO)
Definition: DS28E18.c:599
DS28E18_one_wire_rom_commands_T DS28E18_GetRomCommand(void)
Return the value of 'current_ROM_command'.
Definition: DS28E18.c:217
void DS28E18_BuildPacket_Utility_Delay(DS28E18_utility_delay_T delayTimeInMsExponent)
Definition: DS28E18.c:1049
unsigned short DS28E18_BuildPacket_I2C_ReadData(int readBytes)
Definition: DS28E18.c:746
void DS28E18_BuildPacket_I2C_Start(void)
Definition: DS28E18.c:706
void DS28E18_BuildPacket_Utility_SensVddOff(void)
Definition: DS28E18.c:1071
unsigned short DS28E18_BuildPacket_I2C_ReadDataWithNackEnd(int readBytes)
Definition: DS28E18.c:773
can only be used if there is a single slave on the bus
Definition: DS28E18.h:70
unsigned short DS28E18_BuildPacket_Utility_GpioControlRead(void)
Definition: DS28E18.c:1122
bool DS28E18_BuildPacket_WriteAndRun(void)
Definition: DS28E18.c:694
unsigned short DS28E18_BuildPacket_Utility_GpioBufferRead(void)
Definition: DS28E18.c:1095
OneWire_ROM_ID_T type stores a 1-Wire address.
Definition: one_wire_address.h:15
void DS28E18_SetRomCommand(DS28E18_one_wire_rom_commands_T rom_cmd)
Definition: DS28E18.c:211
bool DS28E18_ReadGpioConfiguration(uint8_t CFG_REG_TARGET, uint8_t *rxData)
Definition: DS28E18.c:624
bool DS28E18_ReadConfiguration(uint8_t *rxData)
Definition: DS28E18.c:572
void DS28E18_BuildPacket_I2C_Stop(void)
Definition: DS28E18.c:716
Definition: DS28E18.h:160
OneWire_ROM_ID_T current_DS28E18_ROM_ID
DS28E18 device addressed for current operations (may be one of many on 1-Wire bus) ...
Definition: DS28E18.c:72
uint8_t * DS28E18_BuildPacket_GetSequencerPacket(void)
Get address of locally constructed command sequencer packet's data.
Definition: DS28E18.c:677
selected (matched ROM ID) slave goes into overdrive
Definition: DS28E18.h:76
void DS28E18_BuildPacket_ClearSequencerPacket(void)
Reset local command sequencer packet under construction.
Definition: DS28E18.c:670
int DS28E18_SetOnewireSpeed(one_wire_speeds spd)
Definition: DS28E18.c:180
don't use ROM ID (applicable only when there is only 1 slave on the bus)
Definition: DS28E18.h:73
void DS28E18_BuildPacket_SPI_SlaveSelectHigh(void)
Definition: DS28E18.c:1029
void DS28E18_BuildPacket_Utility_GpioControlWrite(uint8_t GPIO_CRTL_HI, uint8_t GPIO_CRTL_LO)
Definition: DS28E18.c:1110
bool DS28E18_DeviceStatus(uint8_t *rxData)
Definition: DS28E18.c:649
DS28E18_one_wire_rom_commands_T
Definition: DS28E18.h:69
bool DS28E18_RunSequencer(unsigned short nineBitStartingAddress, unsigned short runLength)
Definition: DS28E18.c:465
enumeration of all slaves on bus
Definition: DS28E18.h:72
int DS28E18_BuildPacket_GetSequencerPacketSize(void)
Get length of locally constructed command sequencer packet.
Definition: DS28E18.c:682
bool DS28E18_WriteSequencer(unsigned short nineBitStartingAddress, const uint8_t *txData, int txDataSize)
Definition: DS28E18.c:387
int DS28E18_Init(void)
Definition: DS28E18.c:110
void DS28E18_BuildPacket_Utility_SensVddOn(void)
Definition: DS28E18.c:1061
address a specific slave by ROM ID
Definition: DS28E18.h:71
General 1-Wire API using the DS2485 1-Wire master.
bool DS28E18_ReadSequencer(unsigned short nineBitStartingAddress, uint8_t *rxData, unsigned short readLength)
Definition: DS28E18.c:413