Skip to content

Latest commit

 

History

History
139 lines (134 loc) · 7.18 KB

README.md

File metadata and controls

139 lines (134 loc) · 7.18 KB

TPIC6C-PCB

Breakout board for TPIC6C596 shift registers with 8x open drain output with neopixels as status leds.

Rainbow animation Animation with outputs active Single PCBs

Features

  • Daisy chaining of multiple boards
    • nyanyanyanyanyanyanya
    • "ONE WAY" marks represent the direction, where data goes in and where it comes out
  • Neopixel LEDs (WS2812, WS2812B, SK6812 or whatever)
    • Not needed, but nice to have
    • Work independent from the shift registers; only share the same voltage
    • Can be used as output status leds (2x RGBW = 8 bit) or whatever the software wants them to do
    • Can function as signal repeaters to connect a NeoPixel Arcade Button at the end
    • Even if your project is unfinished, it can have nice rainbow animations in an early state
  • Main part
    • IC + Basic components
    • 1 Neopixel LED
    • GND, V+ and all 8 Outputs as 2.54 mm pitch THT connector
    • V+ and 5 Outputs (D0 ... D4) as 1.27 mm pitch SMD connector
    • 23 mm x 40.64 mm
    • Connection-Pitch of 35.56 mm
  • Extension part
    • Can be cut away if not needed
    • 1 Neopixel LED
      • Or solder jumper for connecting the data line without neopixel
    • GND, V+ and 4 Outputs as 2.54 mm pitch THT connector
    • V+ and 4 Outputs (D4 ... D7) as 1.27 mm pitch SMD connector
    • 2.54 mm screw connector for V+
    • Montage hole
    • Extends PCB to 23 mm x 85.08 mm
    • Connection-Pitch of 80 mm
    • Output connectors 40 mm appart of the main part ones, resulting in output pitch of 40 mm when using D0-D3 on main and D4-D7 on extension part
  • Side Connectors
    • Double row connectors
      • Better stability
      • Box headers can be used to connect PCBs over longer distance
      • Can be used to variate the pitch a little
      • Half of outer holes can be cut away to have some kind of plated edge connector, but it doesn't really work for a huge amount of PCBs
    • SPI can be used to set the outputs
      • CLK: SCK
      • D_IN: MOSI
      • SS: Latch
    • Pinout
      • nCLEAR/nCLR (optional)
        • LOW = Reset IC
        • R1 as Pull-Up avialable
      • nOE/nG (optional)
        • LOW = Output Enable
        • R2 as Pull-Down avialable
        • Can be used for PWM dimming
      • Latch/RSCK/SPI_SS
        • Rising Edge: Copy data from shift register to output registers
        • SPI_SS can be used
      • D_IN/SER_IN/SPI_MOSI
        • Data in
        • SPI_MOSI can be used
      • D_OUT/SER_OUT
        • Data out for next shift registers data in
      • CLK/RCK/SPI_SCK
        • Rising Edge: Move data one step forward
        • SPI_SCK can be used
      • 5V/VCC
        • 4.5 ... 5.5 V supply voltage for shift register logic and neopixel
        • Level shifters might be needed for the other input signals
      • GND
        • Ground
      • V+ (optional)
        • 0...33 V
        • Screw terminal can be used for individual V+ on each PCB
        • It's only passed, so it also can be wired external without connecting it to the PCB
      • LED_IN
        • Neopixel Data in
      • LED_OUT
        • Neopixel Data out
  • Designed to control (huge amounts of) WERMA signal lamps
    • 24V compatible outputs
    • V+ is X0/COM
    • D0-D7 are outputs for X1, X2, ...
    • GND can be used as always-on output (e. g. for powering a 24V eSIGN or Transceiver)
    • Main part SMD connector features 5 Outputs, because KombiSIGN can handle up to 5 Tiers
    • 40 mm output pitch when using up to 4 outputs, because MC35 has 35 mm diameter and 4 inputs, leaving 5 mm space between lamps
    • 80 mm output pitch when using 5 or more outputs, because eSIGN/KS71/KS72 have 70 mm diameter, leaving 10 mm space between lamps

photo1697587400

Known bugs

  • Heat transfer
    • Datasheet shows a recommended layout example which isn't in use
    • No problem for me, because I'm far away of these limits
    • Maybe gluing on heatsinks might work
    • Redesign options
      • Implement it
        • Using 4 Layers
        • Increase PCB size
      • Use another IC with better cooling options
      • Add dedicated MOSFETs for higher currents
  • Voltage drop on power lines can cause problems on longer chains
    • Voltage drop on V+ only affects the outputs
    • Voltage drop on 5V mostly occurs when using the neopixels on high brightness
    • Voltage drop on GND affects the neopixels and shift registers and is mostly caused by enabled outputs
      • The shift registers glitch if voltage is too low
    • I've ordered the PCBs with only 1 oz Outer Copper Weight
    • I reccomend adding an extra cable for 5V, GND and V+ and connect it regulary
    • Redesign options
      • Add ground plane
      • Increase size of power lines, maybe use both sides of PCB, maybe also increase PCB size to fit everything
      • Order 2 oz Outer Copper Weight
      • Use 4 Layers
      • Pads for connecting cables that run in parallel
      • Use a single box connector for each PCB
        • Most current goes through external ribbon cable
        • Multiple wires for same power lines for less resistance
        • Somehow find an easy way to cut and connect the D_IN/D_OUT and LED_IN/LED_OUT wire correctly
  • Missing Resistors/Power-On-Reset
    • Most MCUs have IOs that are inputs on startup and when uploading firmware
    • Open inputs act as antennas
    • Glitches are painful when the outputs are connected to loud buzzers
    • Adding an Pull-Up + IO to nOE helps
    • Redesign options
      • Adding option for Pull-Up on nOE, so outputs are off until the MCU switches this pin to LOW
        • Might cause problems if MCU doesn't run on 5 V and no level shifter is used
        • MCU would need this IO only for start up, if PWM-dimming isn't in use
          • Maybe add solder jumper to latch input; in some cases it's okay to blank all outputs when switching them
      • Adding a simple RC Power-On-Reset to nCLEAR and a Pull-Down to Latch
        • Data in the shift register might glitch, but the controller can fill it with data before latching it to the outputs
        • On power-on, the output registers would be cleared and stay off
        • On firmware upgrades/MCU-reset, the output registers will keep their value
          • Might result in an active buzzer
          • Allows silent/invisible MCU restarts/updates in the background
  • Not all WERMA products can operate with V+ as COM
    • I've only had this problem with LED Perm. Beacon WM 24VDC GN/YE/RD
    • At least this board can drive PNP Transistors + Resistors as HIGH-Side-Switches
    • Redesign options
      • Add pads to V+ to add Pull-Up resistors, so P-Channel-MOSFETs can be used as HIGH-Side switches
        • These resistors could also help if LEDs light up dim because of EMC influences on long lines
        • These pads could also function for adding freewheeling diodes when switching inductive loads