SLVAFT2 May   2024 TPS2HCS10-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Software Ecosystem
  5. 2Platform Drivers
    1. 2.1 Driver Concept
    2. 2.2 Supported Platforms
    3. 2.3 Porting to Other Platforms
    4. 2.4 API Guide
      1. 2.4.1  tHCSResponseCode Union Reference
      2. 2.4.2  float_t HCS_convertCurrent (uint16_t rawValue, uint16_t ksnsVal, uint16_t snsRes)
      3. 2.4.3  float_t HCS_convertTemperature (uint16_t rawValue)
      4. 2.4.4  float_t HCS_convertVoltage (uint16_t rawValue)
      5. 2.4.5  tHCSResponseCode HCS_getChannelFaultStatus (uint8_t chanNum, uint16_t * fltStatus)
      6. 2.4.6  tHCSResponseCode HCS_getDeviceFaultSatus (uint16_t * fltStatus)
      7. 2.4.7  tHCSResponseCode HCS_gotoLPM (lpm_exit_curr_ch1_t ch1ExitCurrent, lpm_exit_curr_ch2_t ch2ExitCurrent)
      8. 2.4.8  tHCSResponseCode HCS_gotoSleep (void )
      9. 2.4.9  tHCSResponseCode HCS_initializeDevice (TPS2HCS10Q1_CONFIG * config)
      10. 2.4.10 tHCSResponseCode HCS_readRegister (uint8_t addr, uint16_t * readValue)
      11. 2.4.11 tHCSResponseCode HCS_setSwitchState (uint8_t swState)
      12. 2.4.12 tHCSResponseCode HCS_updateConfig (TPS2HCS10Q1_CONFIG * config)
      13. 2.4.13 tHCSResponseCode HCS_wakeupDevice (void )
      14. 2.4.14 tHCSResponseCode HCS_writeRegister (uint8_t addr, uint16_t payload)
  6. 3Configuration or Evaluation Tool
  7. 4Code Examples
    1. 4.1 Empty Example
    2. 4.2 I2T Trip Example
    3. 4.3 Low-Power Mode Example
    4. 4.4 Current Sense Example
  8. 5Summary
  9. 6References

Driver Concept

The suite of drivers that Texas Instruments provides for the HCS family of smart fuse high-side switches were designed to be generic and allow for complete configuration and utilization of the underlying device. Features of these drivers include:

  • Initial configuration through exported file from the Smart Fuse Configurator software.
  • Generic register reads/writes with support for returning individual transaction headers.
  • Convenience functions that convert raw ADC results from the high-side switch's ADC registers to a human readable float value.
  • Functions that provide both device and channel level diagnostic status.

The drivers and relation to the provided code examples are shown in Figure 2-1:

 Driver Architecture Figure 2-1 Driver Architecture

The top level driver APIs have the HCS_ prefix to signify the HCS family of smart fuse devices and are provided in hcs_control_driver.h and hcs_control_driver.c from the software package. The top level code examples use these APIs to provide a generic set of functionality to control and configure the high-side switch. For the physical SPI communication, a set of external functions are declared in hcs_control_driver.h :

/* --------------------------- Porting Functions ---------------------------- */
/*
 * These functions need to be implemented by each individual device port. The functions
 * handle the low-level hardware specific implementation with the respective
 * architecture's specific hardware peripherals (SPI and GPIO)
 */
bool HCS_port_spiSendData(uint8_t *data, uint8_t len, uint8_t* respData);
void HCS_port_assertSPI(void);
void HCS_port_deassertSPI(void);

These functions are defined in each individual architecture implementation and handle the hardware SPI interaction of each platform. More details of porting these functions to additional architectures can be found in the Section 2.3. A full list of APIs including functionality, parameters, and return values can be found in Section 2.4.