SW8B PCB0046 HSD

Serial Wombat SW8B PCB0046 HSD

Eight Channel I2C Controlled High Side Driver with diagnostics and current limiting provided by two TPSH160-Q1 ICs

PRELOADED FIRMWARE IMAGE:

Default Image on both chips

HSD Usage Guide (See user manual below for overall Serial Wombat guide):

This board uses two Serial Wombat chips: one chip is on even I2C Addresses (0×60, 62, 64) and the other is on odd addresses one above the even chip. Address pairs can be selected using solder jumpers.

On the Even Chip:

  • Wombat Pins 0 through 7 enable High Side drivers. Digital Output, PWM, or Frequency Output pin modes are typical.

On the Odd Chip:

  • Wombat Pins 0 and 6 select the current feedback channel from the TPSH160-Q1 IC’s

  • Wombat Pin 1 measures the high side voltage, if enabled by solder jumper (11:1 ratio)

  • Wombat Pin 2 enables diagnostic outputs on the TPSH160-Q1 IC’s

  • Wombat Pins 3 and 4 are current feedback analog inputs from the TPSH160-Q1 IC’s

  • Wombat Pins 5 and 7 are digital inputs from the TPSH160-Q1 IC’s fault indicators

All of this functionality is abstracted if the HSD_PCB0046_PWM class is used in Arduino. See examples.

Board is tested up to 2.4 amps total per TPSH160-Q1 IC (Outputs 0 to 3 and 4 to 7 are banked into two ICs) at up to 24V. Each channel has a flyback diode for switching inductive loads and optional Active LEDs.

By default the ICs chop current inrush to a maximum of 3.9A. This can be advantageous to limit momentary voltage drop in the system when motors or other inductive loads start. This can be disabled or the threshold can be modified. This feature is not intended for steady-state current limiting.

Logic voltage is 3.3 to 5V. The TPSH160-Q1 IC’s require at least 4 volts of Load / Vin voltage to function properly.

Screw down terminals are available for all load voltage inputs and for channel outputs. Header pin connections are available for some channels as well. Each channel output has a connection for switched High side and for unswitched low side. Marking the low side of the green screw down connectors with a black marker is suggested if the board is to be used for benchtop experimentation in order to reduce the likelyhood of polarity mix-ups.

This board has two hardware-based red LEDs near the center of the board which light up if the TPSH160-Q1 ICs enter fault (current limiting) mode. A red led means that the IC has been overloaded, or some other problem exists. See the TPSH160-Q1 datasheet. Faults are not latched by default, but this can be

Solder Jumper options:

  • I2C address for the Serial Wombat chip can be configured between 0×60 and 0×6F through closing the 4 address solder jumpers located near the corner of the board. 2.54mm headers can optionally be added to allow the address to be set with header pin jumpers.

  • 2200 ohm I2C Bus pull up resistors can be added by closing the pull up solder jumpers at the corner of the board.

  • A logic voltage indicator LED can be enabled by closing the “VDD LED” solder jumper near the 10 pin socket.

  • A load voltage input indicator LED can be enabled by closing the solder jumper marked “Vin LED”.

  • Inrush current limiting can be disabled on each chip by closing its “MAX AMP” jumper.

  • The Inrush current limit can be adjusted by removing the resistor in the box and soldering a new through-hole resistor in its place. See the TPSH160-Q1 datasheet and the PCB0046 schematic for more information.

  • Fault latching can be enabled on each chip by closing the “FAULT LATCH” solder jumper. This is only effective when using a 100% duty cycle (digital on) as each PWM cycle resets the fault circuitry. A throughhole is available to allow temporary experimentation with this feature by grounding via a jumper wire.

  • By default Vin is measured using an 11:1 voltage divider. This is always enabled, which causes a constant small current draw. Removing the resistor in the “VOLT MEAS” box and closing the nearby solder jumper causes the voltage to be measured from the high side of the 0 output, allowing measurement only when output 0 is enabled.

Basic Sample Arduino Sketch (see more in the library):

/* This example shows how to use the Serial Wombat PCB0042 LSD to drive outputs 0 and 2 through 7

* And read the voltage feedback on output 1 (assumes the solder jumper is enabled for pin 1)

*

* It cycles through each output setting it to 25, 50, 75, and 100% duty cycle then turning it back off

‍ */

#include <SerialWombat.h>

PCB0042_LSD_PWM swBoard;

#define PCB0042_I2C_ADDRESS 0x60

void setup() {

// put your setup code here, to run once:

Wire.begin(); //Initialize the I2C Bus on default pins

Serial.begin(115200);

delay(3000);

Serial.println("PCB0042 PWM output Example. ");

‍ ‍

swBoard.begin(PCB0042_I2C_ADDRESS, true); // Initialize board and configure pin 1 to be an analog feedback.

‍ ‍

}

uint8_t pin = 0;

void loop() {

Serial.print("Input voltage is ");

Serial.println(swBoard.readVin_mV());

swBoard.outputArray[pin]->writePublicData(0x4000); // 25% duty cycle

delay(500);

swBoard.outputArray[pin]->writePublicData(0x8000); // 50% duty cycle

delay(500);

swBoard.outputArray[pin]->writePublicData(0xC000); // 75% duty cycle

delay(500);

swBoard.outputArray[pin]->writePublicData(0xFFFF); // 100% duty cycle

delay(500);

swBoard.outputArray[pin]->writePublicData(0); // 0% duty cycle

++pin;

if (pin == 1) {++pin;} // Using pin 1 for Vin analog input

if (pin == 8) {pin = 0;}

}

Revision History

PCB0046_V2:

First Public Release

PCB0042_V1:

Internal Version

Projects: