Tic T249 Direct Drive

Hi,

I am trying to implement direct drive mode STEP/DIR pins. what dose VM pin means, because Vin is already supplying to motor if VM is motor supply else VM is VDD (drivers voltage supply). Also which PIN i should use for Enable the driver.

Thanks

Hello, AwaisFarooqi.

In case you have not seen it yet, a link to the Tic user’s guide can be found under the “Resources” tab of the Tic T249 product page.

As described in the user’s guide, the VM pin provides access to the Tic’s power supply after the reverse-voltage protection circuit. You likely will not use this pin in most set ups. It could be used to power to other components in the system from the Tic’s power supply, but note that this pin should not be used to supply more than 500 mA.

If you want to drive the stepper motor using the STEP and DIR pins directly, you should first set the control mode to “STEP/DIR”, which you can do using the Tic Control Center software, under the “Input and motor settings” tab. More information about this mode can be found in the “Setting up STEP/DIR control” section of the Tic user’s guide. It is not entirely clear to me what you are asking about enabling the driver since there are various errors that could prevent the Tic from driving the motor. If you are looking for a way to prevent the Tic from driving the motor, you could use the “ERR” pin to manually trigger the “ERR line high” condition. You can read more about these features in the “Error handling” section of that same user’s guide.

Brandon

Ok got it, thanks.

I am using Arduino compatible board from TI LaunchPad, MSP-EXP430F5529LP but when I include its library and compile it doesn’t compile in energia IDE.

We have not tested our Tic library with that particular controller or IDE, but if you can post us the output you are getting from the IDE, we could take a look and see if we have any suggestions.

Brandon

These are error messages or warnings i get when i do compile.

Energia: 1.8.11E23 (Windows 10), Board: "MSP-EXP430F5529LP"

In file included from C:\........\Energia\libraries\tic-arduino-master\examples\I2CMulti\I2CMulti.ino:18:0:

C:\........\Energia\libraries\tic-arduino-master/Tic.h:17:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:44:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:65:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:95:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:109:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:120:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:134:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:162:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\libraries\tic-arduino-master/Tic.h:182:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:193:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:209:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:220:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:229:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:241:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:250:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:274:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:286:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:296:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1281:24: error: ISO C++ forbids initialization of member '_lastError' [-fpermissive]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1281:24: error: making '_lastError' static [-fpermissive]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1281:24: error: ISO C++ forbids in-class initialization of non-const static member '_lastError'

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1357:24: error: 'TicProduct' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1357:36: error: ISO C++ forbids initialization of member 'product' [-fpermissive]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1357:36: error: making 'product' static [-fpermissive]

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1357:36: error: ISO C++ forbids in-class initialization of non-const static member 'product'

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setTargetPosition(int32_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:347:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setTargetVelocity(int32_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:367:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::haltAndSetPosition(int32_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:388:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::haltAndHold()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:409:18: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::goHomeReverse()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:419:15: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::goHomeForward()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:429:15: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::resetCommandTimeout()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:442:18: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::deenergize()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:466:18: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::energize()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:481:18: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::exitSafeStart()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:496:18: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::enterSafeStart()':

C:\........\\Energia\libraries\tic-arduino-master/Tic.h:516:18: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::reset()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:530:18: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::clearDriverError()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:548:18: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setMaxSpeed(uint32_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:564:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setStartingSpeed(uint32_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:580:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setMaxAccel(uint32_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:597:16: error: 'TicCommand' is not a class or namespace
C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setMaxDecel(uint32_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:614:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setStepMode(TicStepMode)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:631:15: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setDecayMode(TicDecayMode)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:668:15: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setAgcMode(TicAgcMode)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:678:15: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setAgcBottomCurrentLimit(TicAgcBottomCurrentLimit)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:688:15: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setAgcCurrentBoostSteps(TicAgcCurrentBoostSteps)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:698:15: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::setAgcFrequencyLimit(TicAgcFrequencyLimit)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:708:15: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicOperationState TicBase::getOperationState()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:726:39: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'bool TicBase::getEnergized()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:733:20: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h:734:16: error: 'TicMiscFlags1' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'bool TicBase::getPositionUncertain()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:744:20: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h:745:16: error: 'TicMiscFlags1' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'bool TicBase::getForwardLimitActive()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:751:20: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h:752:16: error: 'TicMiscFlags1' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'bool TicBase::getReverseLimitActive()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:758:20: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h:759:16: error: 'TicMiscFlags1' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'bool TicBase::getHomingActive()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:765:20: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h:766:16: error: 'TicMiscFlags1' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint16_t TicBase::getErrorStatus()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:784:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint32_t TicBase::getErrorsOccurred()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:807:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h:808:7: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicPlanningMode TicBase::getPlanningMode()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:827:37: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'int32_t TicBase::getTargetPosition()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:838:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'int32_t TicBase::getTargetVelocity()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:849:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint32_t TicBase::getMaxSpeed()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:860:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint32_t TicBase::getStartingSpeed()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:876:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint32_t TicBase::getMaxAccel()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:892:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint32_t TicBase::getMaxDecel()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:908:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'int32_t TicBase::getCurrentPosition()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:923:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'int32_t TicBase::getCurrentVelocity()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:939:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint32_t TicBase::getActingTargetPosition()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:951:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint32_t TicBase::getTimeSinceLastStep()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:964:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicReset TicBase::getDeviceReset()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:980:30: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint16_t TicBase::getVinVoltage()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:991:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint32_t TicBase::getUpTime()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1005:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'int32_t TicBase::getEncoderPosition()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1016:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint16_t TicBase::getRCPulseWidth()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1034:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint16_t TicBase::getAnalogReading(TicPin)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1054:22: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'bool TicBase::getDigitalReading(TicPin)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1071:32: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicPinState TicBase::getPinState(TicPin)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1090:30: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicStepMode TicBase::getStepMode()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1105:33: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicDecayMode TicBase::getDecayMode()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1138:34: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicInputState TicBase::getInputState()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1154:35: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint16_t TicBase::getInputAfterAveraging()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1164:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint16_t TicBase::getInputAfterHysteresis()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1174:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'int32_t TicBase::getInputAfterScaling()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1190:21: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicMotorDriverError TicBase::getLastMotorDriverError()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1198:41: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicAgcMode TicBase::getAgcMode()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1208:32: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicAgcBottomCurrentLimit TicBase::getAgcBottomCurrentLimit()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1218:46: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicAgcCurrentBoostSteps TicBase::getAgcCurrentBoostSteps()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1228:45: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'TicAgcFrequencyLimit TicBase::getAgcFrequencyLimit()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1238:42: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint8_t TicBase::getLastHpDriverErrors()':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1249:20: error: 'VarOffset' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'void TicBase::getSetting(uint8_t, uint8_t, uint8_t*)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1268:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint8_t TicBase::getVar8(uint8_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1330:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint16_t TicBase::getVar16(uint8_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1337:16: error: 'TicCommand' is not a class or namespace

C:\........\Energia\libraries\tic-arduino-master/Tic.h: In member function 'uint32_t TicBase::getVar32(uint8_t)':

C:\........\Energia\libraries\tic-arduino-master/Tic.h:1344:16: error: 'TicCommand' is not a class or namespace

Multiple libraries were found for "Tic.h"
 Used: C:\........\Energia\libraries\tic-arduino-master
Multiple libraries were found for "Wire.h"
 Used: C:\.........\Energia15\packages\energia\hardware\msp430\1.0.7\libraries\Wire
exit status 1
Error compiling for board MSP-EXP430F5529LP.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~END~~~~~~~~~~~~~~~~~~~~~~~~~~

It sounds like the Energia IDE is configured to use a different set of C++ language features than the Arduino IDE. If I enable verbose compilation output in the Arduino IDE 1.8.10, I can see that it passes these arguments to avr-g++ which define what C++ language features are allowed and disable some errors:

-std=gnu++11 -fpermissive --Wno-error=narrowing

If you enable verbose compilation output in the Energia IDE (as mentioned at the bottom of your post) then you should be able to see how it is invoking the compiler, and you should be able to see that those options are either missing or different.

You might be able to look around in the Energia configuration files, find the place where it creates a command for the compiler, and change the options to be like the Arduino IDE. You might find people who faced similar issues on Energia-related forums or by contacting the developers.

–David