HCT125 IC on a 3D printer board - Page 1
Forum section: electronics / beginners

author: brenda
author_rank: Newbie
timestamp: May 10, 2022, 04:55:20 pm
content: Hi,I have a Bigtreetech Octopus Pro v1.0.1 with a STM32F429ZGT6 MCU, running Arduino for a custom application, not really a 3D printer.The board has 8 stepper driver headers, the problem is that I can't control a single one of them.3 of 4 of the important pins on each of the headers is connected to the MCU through the HCT125 IC, which are the EN, STEP and DIR pins. CS is connected through a YF04E voltage translator, which doesn't cause any issues, but I can't get the HTC125 to do what it is supposed to.Or rather, to do anything. I don't really understand what are they supposed to do here, at first I thought that it like switches a set of the MCU pins to all the driver headers, but each header pin has a designated MCU pin, so that theory doesn't make much sense. Every OE (active low) pin of the HCT125 is tied to ground with 0ohm resistance, and also has like 4ohms to VCC?? While powered on, the OE pins are low, meaning that all the gates should be active and, if I understand the datasheet correctly, each gate should output what is on the input, which doesn't happen. I can toggle (and measure that they are actually toggled) the inputs from the MCU to the HCT, but none of it comes out of the outputs, they stay the same, high or low kinda randomly, no matter what I do with each gate's input.These ICs are not in the schematic provided by the manufacturer, but they just sit on every DRIVERx_[EN, DIR, STEP] pin between the MCU and the respective header.So the questions that I can't find an answer for are:1. what are these ICs supposed to do on the board, if every header pin, at least to my understanding, can be connected directly to the MCU?2. why do they not behave like the datasheet describes?Here are the resources I'm working withBoard GitHubhttps://github.com/bigtreetech/BIGTREETECH-OCTOPUS-V1.0Pinouthttps://raw.githubusercontent.com/bigtreetech/BIGTREETECH-OCTOPUS-V1.0/master/Octopus%20works%20on%20Voron%20v2.4/Firmware/Klipper/Images/octopus_pro_pinout.pngSchematichttps://github.com/bigtreetech/BIGTREETECH-OCTOPUS-V1.0/blob/master/BIQU%20Octopus%20wiring%20diagram-V1.0-2021-7-9.pngMCUhttps://cz.mouser.com/datasheet/2/389/dm00071990-1797623.pdfHCT125https://www.ti.com/lit/ds/symlink/sn74hct125.pdf?ts=1651850058229

author: DavidAlfa
author_rank: Super Contributor
timestamp: May 11, 2022, 06:33:17 pm
content: Buffering the signal is a very common practice for external connections, you don't have any control of what could happen outside.It provides a basic isolation/protection method, not really galvanic isolation, but it's usually the buffer what dies when something nasty happens to the pin (Wrong voltage, short, spikes, ESD...), like a fuse, avoiding the damage from extending further, ex. damaging the much more expensive stm32, a 74hc125 costs cents!The buffer input has a rather high impedance, so even if a dangerous voltage comes in, the current going to the input is very low, greatly reducing the chance of damage.The drivers work at 24V, and them burning is not a rare event, so guess what would happen if 24V goes to the stm32!Yes, OE is active low, and the circuit should output the same as the input.You're probably missing something? Ensure the pins are correct, also the steppers work at high frequency, a DMM might not read it properly, better to use a constant DC signal, or an oscilloscope!About the 4 ohms reading: OE is tied to ground, so you're measuring the impedance of the whole power supply rail, including the power supply itself, so it could be normal, specially if you set the polarity wrong, causing a negative voltage.Are you having any specific issues or just overthinking?