ottoragam / Heavy-Duty-Tarocco-Firmware

Firmware for github.com/issus/Heavy-Duty-Tarocco
5 stars 1 forks source link

Changelog #1

Open professor-fungus opened 4 years ago

professor-fungus commented 4 years ago

Hi, It looks like the "issus" version of Tarocco has a brake release capability, and uses gate drivers. What are the major differences between the original Tarocco firmware and the firmware for the issus hardware? I ask because I have access to hundreds of IRFP31N50L, and I need to build 23 servo controllers for various brushed DC servos, up to 15A @ 180VDC. None of them have solenoid brakes. It may be more simple to fork your original firmware. By the way, I love your controller. I am currently using them on some 24V servos on a plasma table retrofit. Thank you so much for making your project open source :)

ottoragam commented 4 years ago

Glad you like the project! The issus board is designed for an older version of the firmware that didn't use a hardware based quadrature decoder and step counter. The brake functionality was never implemented, and it works with 2ED and 6ED families of gate drivers from Infineon.

If you wish to use the Tarocco firmware, I'd recommend you to fork the normal Tarocco and base your schematic on the V1.1 version of the board. I should be able to help with the signal connections once you choose a gate driver.

professor-fungus commented 4 years ago

I would love to collaborate on it if you're willing! I've been looking at the IR25602 (Infineon). Half-bridge, but tolerant to 600V. If you'd like, once I finish layout and population I can send you one to tinker with. I work slowly, it may take a while...

ottoragam commented 4 years ago

The IR25602 should work. My current firmware uses two pins (phase and enable) for controlling the gate driver. One for the PWM signal and the other for choosing the direction of rotation. I'd need to change the firmware to use two PWM signals for the IN pins of the 25602, but it should be easy. Fault and OVC should go to a logic high (your driver does not provide extra feedback) and Isense should be tied to GND, unless you choose to implement a low side current sensing circuit. you can connect the Sleep pin to the EN inputs of the FET driver.

If you feel confident with creating the power stage of the motor controller, I'd say sure, lets do a collab!

professor-fungus commented 4 years ago

I was looking into hall effect low-side current sensing. The Allegro ACS723 seems like a decent fit. I would like to implement differential signaling for encoder and step/dir if at all possible; do you believe this would be best handled inside the PSoC or would you use an external Rx? In a previous controller I used, they utilized external receivers; if you dropped half of your channel the controller would go into a runaway condition!

ottoragam commented 4 years ago

This PSoC doesn't have enough analog resources for the differential signal receivers, you'd need to add external ICs for that.

Tarocco should be able to handle runawaway states even with the external differential decoders present, I think. If one encoder half channel fails, the result would be that the full channel is held at one defined logic level, causing the Tarocco to think the motor is oscillating in place. If step pulses are sent, eventually they'll cause the following error alarm to trigger, fully stopping the motor until the board is reset. If the step pulses stop before triggering said alarm, the motor will be stopped within 300 milliseconds until a new step pulse is received.

If the signal loss occurs in the DIR channel, the microcontroller will eventually move the axis past its limit, but that can be prevented with the use of home and limit switches.

Let me know if you think I'm missing something here.

professor-fungus commented 4 years ago

It makes sense to me. Using external diff Rx will only increase the BOM a little, so I'm not very concerned. I would like to build this with the capability to bring in 0-10V analog commands, as well (for velocity or potentially torque commands), do you think you would have enough resources available for this? If not, I would think that migrating your project to a PSoC with more resources would be doable. I'm going to (hopefully) create a repository for this in the next week or so, and get started on a rough evaluation board. I'll send you an invite!