Jump to content

Search the Community

Showing results for tags 'tivac'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • News
    • Announcements
    • Suggestions
    • New users say Hi!
  • Spotlight!
    • Sponsor Spotlight
    • Sponsor Giveaways
  • Energia
    • Energia - MSP
    • Energia - TivaC/CC3XXX
    • Energia - C2000
    • Energia Libraries
  • MSP Technical Forums
    • General
    • Compilers and IDEs
    • Development Kits
    • Programmers and Debuggers
    • Code vault
    • Projects
    • Booster Packs
    • Energia
  • Tiva-C, Hercules, CCXXXX ARM Technical Forums
    • General
    • SensorTag
    • Tiva-C, Hercules, CC3XXX Launchpad Booster Packs
    • Code Vault
    • Projects
    • Compilers and IDEs
    • Development Kits and Custom Boards
  • Beagle ARM Cortex A8 Technical Forums
    • General
    • Code Snippets and Scripts
    • Cases, Capes and Plugin Boards
    • Projects
  • General Electronics Forum
    • General Electronics
    • Other Microcontrollers
  • Connect
    • Embedded Systems/Test Equipment Deals
    • Buy, Trade and Sell
    • The 43oh Store
    • Community Projects
    • Fireside Chat
  • C2000 Technical Forums
    • General
    • Development Kits
    • Code Vault
    • Projects
    • BoosterPacks


There are no results to display.

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Website URL





Found 24 results

  1. I'm attempting to add support for a pseudo digital protocol to a project of mine. I'm attempting to implement the dShot protocol for controlling ESCs on my thrust stand, and having some issues. The TivaC doesn't appear to have very robust output control. You can see what I'm trying to do here: https://github.com/VirtualEnder/TestStandv2/blob/dev/MQTB_Thrust_Stand/hardwareTimers.ino Basically the protocol uses a modified PWM signal with each bit being 1.67us period with 1250ns representing a 1 and 635ns representing 0, basically encoding a 2048 bit throttle signal with some CRC data and a telemetry call bit crammed on the ends. After a couple days I've gotten to the point of using a PWM timer synced with a GP timer to attempt to modify the duty cycle for each bit, however I'm not having much luck. Is there a more precise way of accomplishing this? I'd like to not have to switch MCUs, but I know the ESP32 can do this easily with their RMT methodology and the STM chips can do with with a DMA transfer. I looked at the uDMA implementation in the TivaC and it doesn't appear to operate in a way that would work to toggle pins like this. This is the output signal I'm getting on my relatively limited DSO Nano from the TivaC: And this is the output signal as seen from an STM32F405 that is working properly: Any help would be very much appreciated.
  2. Dear Experts, now i am working with TivaC TM4C123GH6PM an energia. i never work in watch dog timer before so i was rewrite the watch dog timer example code(i get code from google) like below, #include "driverlib/interrupt.h" #include "driverlib/sysctl.h" #include "driverlib/watchdog.h" #include "driverlib/rom_map.h" #include "driverlib/rom.h" void setup() { Serial.begin(9600); Serial.println("SETUP"); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_WDOG0); // Enable the watchdog peripheral MAP_WatchdogReloadSet(WATCHDOG0_BASE, MAP_SysCtlClockGet() * 2); // Set timeout of watchdog to 2 sec MAP_WatchdogResetEnable(WATCHDOG0_BASE); // Reset when watchdog expires WatchdogIntRegister(WATCHDOG0_BASE, &WatchdogIntHandler); // Register the watchdog interrupt handler MAP_WatchdogEnable(WATCHDOG0_BASE); // Enable the watchdog if(SysCtlResetCauseGet() & SYSCTL_CAUSE_WDOG0) // Get and print the reset cause { Serial.println("Watchdog Reset"); } else if(SysCtlResetCauseGet() & SYSCTL_CAUSE_EXT) { Serial.println("External reset"); } SysCtlResetCauseClear(SYSCTL_CAUSE_WDOG0 | SYSCTL_CAUSE_EXT); } void loop() { Serial.println("MC Working"); delay(6000); } void WatchdogIntHandler(void) { WatchdogIntClear(WATCHDOG0_BASE); // Clear the watchdog interrupt. Serial.println("REG CLEAR"); } this code reset the watch dog timer register in every 2 sec, so watchdog is not resetting my controller, my doubt is this code is definitely reset the controller if my controller getting struck or hang for any disturbance. please make sure about this.
  3. Hello everyone! I need editing Energia Library for more flexebility. For example, the msp430 launchpad only have one UART available if i use Energia. How can i configure other UARTs? I need at least 3 UART and I know that TivaCTM4C1294XL have 4 UARTs. Also I need an option for add a parity bit for serial communication. Thank you so much! Gino
  4. Views: 5 Hi, I have a problem with serial communication. I'm using IDE Energia to print a simple word ("hello") on the serial monitor but nothing appear (no error in the sketch). Can you help me? PS: right board and COM port are selected and serial monitor and board have the same baud rate . The code is: void setup () { Serial.begin(9600); } void loop() { Serial.println("hello"); delay(1000); } I don't know why the monitore showing nothing. Thanks for the help Gino
  5. Hello all, I#ve got issues working with i2c (in another thread) but I wonder if anyone has gotten i2c working between 2 tivac connected boards using the master_writer and slave_receiver sketches? I can't seem to get any i2c working at all with the 1.8.7e21 version of energia. Can you make it work? Cheers Sol
  6. Hey all, I've currently got an issue where i2c just isn't working with energia, I've opened an issue on github but haven't gotten any replies. Is there a better way to get some eyes on this? Would anyone here mind taking a look? https://github.com/energia/tivac-core/issues/41 Cheers Sol
  7. Hello, I am building a differential drive robot based on ROS and Tivac tm4c129xl as the embedded controller and I am using rosserial_tivac package to communicate between ROS and tivac through serial communication every peiece of code is working fine beacuse I tested them all seperately The problem is that I have two interrupts for each wheel to read the encoder ticks and send these ticks to ROS through Serial port what cause a problem that the wheels will continue rotating and the interrupt will be raised always and the program will execute the interrupt over and over again I read something about writing a timer interrupt but I didn't get the idea and did not found enough docs about it so how shall I modify my code to be able to get out of the interrupt and execute the whole commands the code: #include <ros.h> #include <std_msgs/Float64.h> #include <std_msgs/Int16.h> #include <std_msgs/Float32.h> float left_motor_speed = 0; float right_motor_speed = 0; // ------------ ROS --------------- // ros::NodeHandle nh;//ros node handle object std_msgs::Int16 enLticks; std_msgs::Int16 enRticks; void lCb(const std_msgs::Float32& msg){ left_motor_speed = msg.data; }// end of the left motor callback function void rCb(const std_msgs::Float32& msg){ right_motor_speed = msg.data; }// end of the right motor callback function ros::Subscriber<std_msgs::Float32> sL("lmotor_cmd", &lCb); ros::Subscriber<std_msgs::Float32> sR("rmotor_cmd", &rCb); ros::Publisher pL("lwheel", &enLticks); ros::Publisher pR("rwheel", &enLticks); // ---------- Tiva C pins ------------- // // ENCODERS #define Left_Encoder_PinA PF_3 #define Left_Encoder_PinB PG_0 volatile long Left_Encoder_Ticks = 0; volatile bool LeftEncoderBSet; #define Right_Encoder_PinA PF_1 #define Right_Encoder_PinB PF_2 volatile long Right_Encoder_Ticks = 0; volatile bool RightEncoderBSet; //MOTORS #define A_L PA_6 #define B_L PD_7 #define PWM_L PB_2 #define A_R PM_5 #define B_R PM_4 #define PWM_R PB_3 // *********************************************** // void setup() { setupROS(); setupEncoders(); setupMotors(); } // *********************************************** // void setupROS(){ nh.initNode(); nh.subscribe(sL); nh.subscribe(sR); nh.advertise(pL); nh.advertise(pR); }//end of the setup ROS function void setupEncoders(){ pinMode(Left_Encoder_PinA, INPUT_PULLUP); pinMode(Left_Encoder_PinB, INPUT_PULLUP); //Attaching interrupt in Left_Enc_PinA. attachInterrupt(Left_Encoder_PinA, do_Left_Encoder, RISING); pinMode(Right_Encoder_PinA, INPUT_PULLUP); pinMode(Right_Encoder_PinB, INPUT_PULLUP); //Attaching interrupt in Right_Enc_PinA. attachInterrupt(Right_Encoder_PinA, do_Right_Encoder, RISING); }// end of the setup Encoders Function void setupMotors(){ pinMode(A_L,OUTPUT); pinMode(B_L,OUTPUT); pinMode(PWM_L,OUTPUT); pinMode(A_R,OUTPUT); pinMode(B_R,OUTPUT); pinMode(PWM_R,OUTPUT); }// end of the setupMotors Function // *********************************************** // void loop() { nh.spinOnce(); do_Left_Encoder(); do_Right_Encoder(); moveLeftMotor(left_motor_speed); moveRightMotor(right_motor_speed); nh.spinOnce(); delay(10); }// end of the main function // ********************************************** // //############################################################// void moveLeftMotor(float PWM_val){ if (PWM_val>0) { digitalWrite(A_L,HIGH); digitalWrite(B_L,LOW); analogWrite(PWM_L,PWM_val); nh.logdebug("l forward"); } else if(PWM_val<0) { digitalWrite(A_L,LOW); digitalWrite(B_L,HIGH); analogWrite(PWM_L,abs(PWM_val)); nh.logdebug("l back"); } else if(PWM_val == 0) { digitalWrite(A_L,HIGH); digitalWrite(B_L,HIGH); nh.logdebug("l stop"); } } //############################################################// //############################################################// void moveRightMotor(float PWM_val){ if (PWM_val>0) { digitalWrite(A_R,HIGH); digitalWrite(B_R,LOW); analogWrite(PWM_R,PWM_val); nh.logdebug("r forward"); } else if(PWM_val<0) { digitalWrite(A_R,LOW); digitalWrite(B_R,HIGH); analogWrite(PWM_R,abs(PWM_val)); nh.logdebug("r back"); } else if(PWM_val == 0) { digitalWrite(A_R,HIGH); digitalWrite(B_R,HIGH); nh.logdebug("stop"); } }// end of the move right motor function //############################################################// void do_Left_Encoder() { // Test transition; since the interrupt will only fire on 'rising' we don't need to read pin A LeftEncoderBSet = digitalRead(Left_Encoder_PinB); // read the input pin Left_Encoder_Ticks -= LeftEncoderBSet ? -1 : +1; enLticks.data = Left_Encoder_Ticks; pL.publish(&enLticks); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //do_Right_Encoder() Definitions void do_Right_Encoder() { RightEncoderBSet = digitalRead(Right_Encoder_PinB); // read the input pin Right_Encoder_Ticks += RightEncoderBSet ? -1 : +1; enRticks.data = Right_Encoder_Ticks; pR.publish(&enRticks); }
  8. I am use Energia 1.6.10E18 to build a simple application to run on a TivaC Launchpad board on a CentOS 6 64bit Linux system. CentOS 6 uses older library versions, so I needed to download and install an older GCC compiler and I got that working. Now my problem is DSLite. The version shipped with the TivaC package (dslite- was built with newer libraries than are installed on CentOS 6, so DSLite crashes: /home/heller/.energia15/packages/energia/tools/dslite/ load -c /home/heller/.energia15/packages/energia/tools/dslite/ -f /tmp/builde044e2b1aa3269f9f8ac6ca0fed90cf0.tmp/DCCTiva.ino.elf /home/heller/.energia15/packages/energia/tools/dslite/ error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory An error occurred while uploading the sketch What I would like to do is either use an older version of DSLite (will that work?) or re-compile DSLite 7.2.0 on my CentOS 6 system (is that possible?). I cannot seem to find the source code for DSLite (is it even available?). What options are available to me? (And no, don't tell me to upgrade my system to some "bleeding edge" version of Linux -- I have too many things that would need rebuilding and/or reconfiguring that need to be working.) Things work up to not finding the serial port on a Ubuntu 14.04 virtual machine. I am not sure that really helps, since I am not sure if I can get a physical USB device to show up in the Ubuntu VM. I don't have a TivaC board in hand at present.
  9. Has anyone seen the : Mini-M4 for Tiva-C https://download.mikroe.com/documents/starter-boards/mini/tiva/mini-m4-tiva-manual-v100.pdf Would it be safe to assume that it could run energia? Best, C.
  10. Hello everyone, I'm trying setup pwm frequency for tiva C in Energia but failed at this line: analogFrequency(PWM_FREQ) // define PWM pins #define PWM_1 PD_6 // define PWM frequency #define PWM_FREQ 20000 void setup() { pinMode(PWM_1, OUTPUT); analogFrequency(PWM_FREQ); } void loop() { analogWrite(PWM_1, 50); } Can help me with the problem, thank!
  11. I want to interface DHT22 with TIVAC (tm4c123). Can anyone help me with the code.My code is not working. DHT22_energia.ino
  12. I have this error lately, please give some suggestion. My target launchpad is TM4C1294 and Ide is Energia 18. For your info I use this many times without any problem. I also manage to use with MSP 430 and TM4C123. Energia: 1.6.10E18 (Windows 10), Board: "LaunchPad (Tiva C) w/ tm4c129 (120MHz)" Thank you very much. Error during uploading to TM4C1294.txt
  13. Hello, I need help sending an Ethernet raw socket through my EK-TM4C1294XL (http://www.ti.com/tool/ek-tm4c1294xl). Here is what i have done so far: -> Using and modifing some NDK examples, but the problem is that i want a code in C/C++, not using a whole operating system (TI-RTOS SYS/BIOS); -> Including NDK libraries for use of it's functions and not installing the SYS/BIOS, however i am having lots of dependencies errors; -> Using Tiva C Series Ethernet examples, but they use the lwip TCP/IP protocol stack, i'm trying to send a raw Ethernet socket only; -> Using Energia Ethernet library, stll could not isolate the code sending only a raw Ethernet socket; -> Using W5100 Ethernet Shield library, however i could not manage to get Ethernet output (http://forum.43oh.com/topic/9858-energia-library-wiznet-w5100w5200w5500/). If someone could provide any tips or other implementations, i would appreciate very much. Thank you.
  14. - INTRODUCTION Hi everybody, I want to share a library for controlling a 4-pins PING sensor (HC-SR04 ICStation) basically, although you can also control the 3-pins PING))) sensor conventional of Parallax (URL). This library is a modification of the Caleb Zulawski's library for PING))) sensors. I made basic improvements in calculations, I added a function to calculate the distance in millimeters and added the option to change the "input trigger signal" [10uS for HC-SR04 and 5uS for PING)))] - CHANGE LOG v2.1 (26/08/2014) * Fixed calculations of distance in inches. v2.0 (25/08/2014) * Fixed problems with measurements adjustments. * New function for modification of a single unit. v1.0 (24/08/2014) * Basic modification of Caleb Zulawski's library. * Added the calculation of distace in millimeters. * Identified problems with measurements adjustments. - TESTING Tested on: Tiva C (TM4C123GXL) & Arduino UNO R3 - COMPARISON SECTION A small comparison between the 2 sensors is: * HC-SR04 sensor: 1. Working Voltage: 5V (DC) 2. Output signal: Electric frequency signal, high level 5V, 0V low level. 3. Sensor angle: Not more than 15 degrees. 4. Detection distance: 2cm-450cm. 5. High precision: Up to 0.3cm 6. Input trigger signal: TTL impulse 10uS 7. Mode of connection: 1. VCC 2. TRIG ( T ) 3. ECHO ( R ) 4. GND * PING))) sensor: 1. Working Voltage: 5V (DC) 2. Output signal: Electric frequency signal, high level 5V, 0V low level. 3. Sensor angle: Not more than 15 degrees. 4. Detection distance: 2cm-300cm. 5. High precision: Up to 0.3cm 6. Input trigger signal: TTL impulse 5us 7. Mode of connection: 1. GND 2. VCC 3. SG - DOWNLOAD SECTION v2.1: Ping4Pins v2.1.zip v2.0 (Not recommended): Ping4Pins v2.0.zip v1.0 (Not recommended): Ping4Pins v1.0.zip - INSTRUCTIONS OF INSTALLATION 1. Download the latest version of the library 2. Unzip the zip-folder. 3. Copy the "Ping4Pins" folder in the location of the libraries depending of your trainer: * For Arduino: <Arduino IDE directory>\hardware\libraries\ * For Tiva C: <Energia IDE directory>\hardware\lm4f\libraries\ Note: If you used an older version of the library, I recommend deleting the folder and copy the new folder "Ping4Pins". - EXAMPLES SECTION In the "examples" folder are 5 examples for Arduino and 5 examples for Tiva. I'll post the example # 1: /*Example # 1 for TivaC / ArduinoCreated by Jeyson Zu
  15. Hi all, It was a real pain in the ass to find information about interfacing LP + Wiznet ethernet chip with energia so I'm here to share my work. I was looking for a library for ethernet chips from Wiznet (W5100,W5200,W5500) for TivaC series LP. The first problem I met was that as TM4C129 LP already has an ethernet.h library, I simply could not copy a new ethernet.h library for non-ethernet Ethernet_Wiznet.zip
  16. One of the new features of the beta EnergiaNG is that fact that it is now using the standard Arduino 1.6.x IDE. Unfortunately, it doesn't look like it is ready to work as a boards manager package with the standard Arduino IDE. Energia/TI likes their branding and it seems they want to keep TI boards and Arduino board from ever meeting in the same program. At the same time, I noticed a few things that are missing and instead of trying to push those into Energia. I decided to fork the tivac-core and make the changes there. I also moved away from the proprietary dslite uploader in favor of using openocd. This gives you a better chance of running this code on any platform you might like. Did you know Arduino is now running on Raspberry PI boards? Anyways, you can find this new version here: https://github.com/RickKimball/tivac-core There is a list of things that I've changed in the README.md. This port also makes a couple of assumptions. It assumes you have both an arm-none-eabi-gcc toolchain in your path along with a recent version of openocd. If you are running linux you can just do: $ sudo apt-get install arm-none-eabi-gcc arm-none-eabi-g++ openocd Give this port a whirl and let me know how it works for you. -rick
  17. Hello! I am using Energia to program TM4C123GXL board. The program performs a primitive data acquisition with low frequency and stores it (together with timestamps) as an array in RAM. I would like to store data in EEPROM or, preferebly in FLASH. Micro-controller has 256kB flash. How can I save data there? There is flash API (flash.h and flash.c) in lm4f/driverlib/ though I am not sure even at which address range I can write/erase data? Can anybody point out to a working example? thanks for help!
  18. Deep

    Tiva C with Keil

    I want to use Tiva C with 430boosterpack. I tried some sample example codes available in Energia. and its working good. Energia has built in libraries for 430Boosterpack and SPI. But I am using Keil for my project programming. Can i use these libraries with Keil????? I tried to make project file in Keil with these libraries and copied .h and .c file in project folder. But there are some errors like "'Unknown identifier type 'class'".
  19. I want to use ADC and Timer interrupts in Energia. For this i have to modify ISR Table. Energia has ISR table in Startup_gcc.c file. So how to modify this file to access interrupts of ADC and Timers. Or is there any Library to access Interrupts directly. Board:- TIVA C (TM4C123G)
  20. I'm using CC110L Boosterpack with TIva C. I tried example codes provided in Energia. I want to use this boosterpack for my project. And I'm using Keil for programming. So any one can provide CC110L and SPI libraries for Keil???????
  21. I'm using CC110L Boosterpack with TIva C. I tried example codes provided in Energia. I want to use this boosterpack for my project. And I'm using Keil for programming. So any one can provide CC110L and SPI libraries for Keil???????
  22. Everyone knows my obsession with building an ECU for my motorcycle. I think I'm far enough along with it, so here's where I'm at. It's based on the 40 pin BP headers and I believe should be compatible with the F5529 and TM4C123 LP's and maybe more. I still have to code for it but that will come when I'm satisfied with the hardware. The BP will sit on top of this board with its USB plug facing away from the 25 pin plug, and has the I2C and SPI ports left unused which would provide for a display, data logging or other devices to interface with it. Eagle files attached as well. 4 low-impedance / peak-and-hold injector drivers based on LM1949 driver chips, 4 logic level outputs suitable for triggering GM/Delphi LS-type coils (LS1, LS2, D514A, et cetera) or external circuitry, samples manifold pressure, throttle position, and intake air and coolant temperature sensors as well as battery voltage for injector duration compensation and the 5v sensor rail and two additional 'extra' analog inputs. There may be some layout revisions which might possibly lead to more outputs for user-defined externals. MSPEFI.brdMSPEFI_B3.sch
  23. Hi, I've recently upgraded my Energia IDE to the latest release 0101E0011. I'm using the Stellaris Launchpad with lm4f120h5qr. My sample ADC code doesn't seem to work right. Worked well in the previous release of Energia. The code compiles properly but does not produce the right output. The only changes made were to change "ADC_BASE" to "ADC0_BASE" as required. I've added Serial output code for debugging purposes. The serial output produced is: 1 2 3 Code: #include "Energia.h" #include "driverlib/sysctl.h" #include "driverlib/adc.h" void setup() { Serial.begin(115200); Serial.println("1"); //enable the adc0 peripherial. SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); Serial.println("2"); //set the speed to 1msps. SysCtlADCSpeedSet(SYSCTL_ADCSPEED_1MSPS); Serial.println("3"); //set the auto avergage to 64. ADCHardwareOversampleConfigure(ADC0_BASE, 64); Serial.println("4"); //before setting up I must disable the sequence 3. ADCSequenceDisable(ADC0_BASE, 3); Serial.println("5"); //set the sequence to use (adc0 sequence 3). ADCSequenceConfigure(ADC0_BASE, 3, ADC_TRIGGER_PROCESSOR, 0); Serial.println("6"); //set up the sequence step. //set up the last step and start an interrupt when the conversion it's over. ADCSequenceStepConfigure(ADC0_BASE, 3, 0, ADC_CTL_TS | ADC_CTL_IE | ADC_CTL_END); Serial.println("7"); //enable the sequence again! ADCSequenceEnable(ADC0_BASE, 3); Serial.println("8"); } void loop() { }
  24. I have run and debgged all (expect one - where a WINDOWS client was needed) Labs for TivaC LaunchPad Workshop using command-line Sourcery CodeBench and OpenOcd, on Slackware Linux. The details can be given in this list if there is enough interest.
  • Create New...