My son and I were looking together about whether we could salvage the board design by using the TLE-5206-2 parts that are available.
The pinout is identical, but the functionality is different.
|In1||In2||5205 out1/out2||5206 out1/out2|
The arrangements of signals that I have available to jumper to were S, PWM, and S+PWM. The easy jumper arrangements I had were (IN1=S, IN2=PWM) and (IN1=PWM, IN2=S+PWM), which with the TLE-5205 were supposed to give me lock anti-phase drive and sign-magnitude drive.
With the 5206, lock anti-phase would require (IN1=PWM, IN2=not PWM), which I don’t have available, but the jumper setting (IN1=S, IN2=PWM) now almost makes sense as active collapse (run/brake) mode (except that it is not quite sign magnitude, since the interpretation of the pulse width is flipped depending which way the motor is supposed to turn). The other jumper setting makes no sense.
So now I have choice:
- Populate a board with TLE-5206 chips and have only the run/brake mode (I could solder in jumpers, since there are no choices). I could also omit the now-useless OR gates.
- Design a new board with the TLE-5206 chips in mind, with jumpering between two modes:
- (IN1=S, IN2=S xor PWM) run/brake with consistent magnitude interpretation
- (IN1=PWM, IN2=S xor PWM) lock anti-phase if S=1, brake if S=0
Wait a second! I don’t need a new board for that! If I replace the 74HC32 quad nor-gate with a 74HC86 quad Xor, then the 5-pin headers will be
|S||IN1||PWM||IN2||S xor PWM|
I can solder the IN2 pin to S xor PWM, and just have a 3-pin header to connect IN1 to either S (for run/brake) or PWM (for lock anti-phase). The labeling on the silk screen will be wrong, but the board will be fully usable!
The interpretation of the pulse width modulation if IN1 is set to PWM is that 0 means always on and 255 means always braking, which is kind of weird, but easily compensated for in the software. S determines the direction the motor turns.
If IN1 is set to S, then S is interpreted as RUN if it is high, STOP if it is low, and PWM gives the direction and magnitude when running (with 0 being full on in one direction and 255 being full on in the opposite direction). PWM should probably be set to constant 0 when braking.
I think the board can be saved, and still have all the functions we needed, though we switched from sign-magnitude to active collapse as one of the modes. The next revision of the board (if I need to make more) would fix the silk screen and replace the 5-pin header with a 3-pin header for each chip.
Filed under: Hexmotor H-bridge board, Printed Circuit Boards, Uncategorized Tagged: Arduino, design errors, motor controller, Printed circuit board, robotics
[original story: Gas station without pumps]