SW8B PCB0046 HSD
Serial Wombat SW8B PCB0046 HSD
Eight Channel I2C Controlled High Side Driver with configurable frequency PWM, per-channel measurable current feedback, and chip-level diagnostics and current limiting provided by two Texas Instruments TPSH160-Q1 ICs
PRELOADED FIRMWARE IMAGE:
Default Serial Wombat 8B 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.
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 likelihood 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, PCB0046 class here):
/* This example shows how to turn a channel on and off on the Serial Wombat PCB0046 HSD Board
* and monitor the current feedback and diagnostic lines.
*/
#include "SerialWombat.h"
#define PCB0046_I2C_BASE_ADDRESS 0x60
PCB0046_HSD_PWM hsd;
void setup() {
// put your setup code here, to run once:
Wire.begin();
Serial.begin(115200);
delay(3000);
hsd.begin(PCB0046_I2C_BASE_ADDRESS);
hsd.selectCurrentFeedbackChannel(6);
}
void loop() {
hsd.output6.writePublicData(0xFFFF); // Turn on the channel
delay(10000); //Wait 10 seconds
//Read the current for the channel and get the diagnostics
Serial.println(hsd.readCurrentFeedbackAverage_mA());
if (hsd.readChip0to3IsFaulted())
{
Serial.print(" FAULT 0to3");
}
if (hsd.readChip4to7IsFaulted())
{
Serial.print (" FAULT 4to7");
}
Serial.println();
hsd.output6.writePublicData(0); // Turn off and wait 10 seconds
delay(10000);
Serial.println(hsd.readCurrentFeedbackAverage_mA());
Serial.println(hsd.readVin_mV());
}
Revision History
PCB0046_V2:
First Public Release
PCB0042_V1:
Internal Version
Resources:
TPSH160-Q1 Datasheet
API Definitions (Pulled from Arduino C++ library, but similar or identical on Arduino, C#, Python)
WombatPanel real time control panel and code generation application
Serial Wombat Protocol protocol analyzer for Saleae Logic application