Jump to content
Forum sending old emails Read more... ×

Search the Community

Showing results for tags 'MSP430FR5969'.

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 29 results

  1. hi all, I2C communication not working on msp430fr5969 with simple exmaple codes from energia v 18....I tried with pullups and without also...can someone help me out......
  2. wygonski

    Using FRAM above 0x00010000

    (Apologies for posting both here and on TI E2E forum) I am not able to use upper FRAM above 0x0001000 on MSP430 in Energia for an existing project, I am using latest Energia release E20 which uses latest version of gcc compiler 4.6.6. My goal is to 1) get the linker to locate two initialized data arrays in upper FRAM on MSP430FR5994 or MSP430FR5969 and 2) read that data as a lookup table using the Energia program. I have used the following attribute to map the arrays to upper FRAM: const unsigned char __attribute__((section(".fartext"))) Program_Data_IC_1[5120]= { 0xFF, 0xF2, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, 0xE2, 0x01, ... However, any code access to the array gives the build error relocation truncated to fit: R_MSP430_16_BYTE against `no symbol' which I believe is due to trying to access upper FRAM with a 16-bit pointer. So I tried modifying Energia's platform.txt to use large memory model: compiler.mlarge_flag=-mlarge but building in Energia E20 gave the error: cc1plus.exe: error: unrecognized command line option '-mlarge' exit status 1 Error compiling for board MSP-EXP430FR5994LP. I also tried using TI's GNU 7.3.1 (Mitto Systems) compiler in CCS 8.1 but I got errors building the Energia core library that is needed. Is there any suggestion as to how to accomplish using upper FRAM in this way? Thanks in advance, John
  3. Hello everyone, I have a datalogger TIDA-00524 (http://www.ti.com/tool/TIDA-00524), and also I have the MSP FET to program it through the J-TAG. I want to practice high level programming and I want to re-write the whole code for this reference design using Energia. I want to know if this is possible, before I start putting a lot of effort on nothing. In addition, I want to know if I can include the excluded pins from energia library (for example MSP430FR5969 pin 4.4 ,P4_4 is not recognized by the compiler). Thank you for your help
  4. I'm trying to connect the HDC2010 temperature sensor to the MSP430FR5969 Launchpad. I'm using the HDC2010 EVM, which consists of a MSP430F5528 (which handles USB communications to the GUI tool) and a HDC2010 (connected over I2C). The portion with the HDC2010 can be broken off from the main board in order to use it with another MCU. I'm attempting to connect it to a MSP430FR5969 Launchpad which has the SHARP Memory LCD (uses SPI) connected to it. I couldn't find a ready made library for the HDC2010 & MSP430, so I copied over some code from the Arduino library. To check whether I was using the HDC2010 correctly, I first used the following code (mostly taken from the HDC2010 lib) and used an Arduino Uno. I used MOSFET level translators (since the Arduino is 5V, HDC2010 is 3.3). I did not break off the HDC2010 section from the main board of the EVM, so the main MSP430F5528 was still connected to the HDC2010, but I guess it was idle. #define ADDR 0x40 #include <Wire.h> //Define Register Map #define TEMP_LOW 0x00 #define TEMP_HIGH 0x01 #define HUMID_LOW 0x02 #define HUMID_HIGH 0x03 #define INTERRUPT_DRDY 0x04 #define TEMP_MAX 0x05 #define HUMID_MAX 0x06 #define INTERRUPT_CONFIG 0x07 #define TEMP_OFFSET_ADJUST 0x08 #define HUM_OFFSET_ADJUST 0x09 #define TEMP_THR_L 0x0A #define TEMP_THR_H 0x0B #define HUMID_THR_L 0x0C #define HUMID_THR_H 0x0D #define CONFIG 0x0E #define MEASUREMENT_CONFIG 0x0F #define MID_L 0xFC #define MID_H 0xFD #define DEVICE_ID_L 0xFE #define DEVICE_ID_H 0xFF float temperature = 0, humidity = 0; void openReg(uint8_t reg) { Wire.beginTransmission(ADDR); // Connect to HDC2010 Wire.write(reg); // point to specified register Wire.endTransmission(); // Relinquish bus control } uint8_t readReg(uint8_t reg) { openReg(reg); uint8_t reading; // holds byte of read data Wire.requestFrom(ADDR, 1); // Request 1 byte from open register Wire.endTransmission(); // Relinquish bus control if (1 <= Wire.available()) { reading = (Wire.read()); // Read byte } return reading; } float readTemp(void) { uint8_t byte[2]; uint16_t temp; byte[0] = readReg(TEMP_LOW); byte[1] = readReg(TEMP_HIGH); temp = (unsigned int)byte[1] << 8 | byte[0]; return (float)(temp) * 165 / 65536 - 40; } void writeReg(uint8_t reg, uint8_t data) { Wire.beginTransmission(ADDR); // Open Device Wire.write(reg); // Point to register Wire.write(data); // Write data to register Wire.endTransmission(); // Relinquish bus control } void setup() { // put your setup code here, to run once: Serial.begin(9600); Wire.begin(); } void loop() { // put your main code here, to run repeatedly: Serial.println(temperature = readTemp()); //Serial.println(humidity = readHumidity()); delay(1000); } This code worked and I got temperature readings. Next, I tried it out on the MSP430FR5969, again, without breaking off the sensor from the mainboard. It didn't work at first, so I checked with a logic analyzer and if I recall correctly, either the SCK or SDA lines wasn't sending any data. However, after sometime it started working properly, and then stopped again. After trying for a couple of hours, I decided to disconnect the HDC2010 from the mainboard, in case the MSP430F5528 was causing some issues. I connected the HDC2010 to the Arduino Uno via the logic level shifter, and the code worked correctly. However, it doesn't work with the MSP430FR5969. I tried out the inbuilt Wire examples, and the logic analyzer reveals that the I2C lines don't seem to be sending data at all (they work fine as GPIO). I'm using pins 9 & 10 on a Rev2.0 launchpad. What's odd is that it worked for a little while & I cannot figure out what I'm doing wrong. This is with a 1.2k ohm pull up on the clock line (2nd row). Without the pull up, the line remains low. The first row shows SDA, but the logic is inverted for some reason, and if I use a 10k pull up, it remains high continuously. I managed to capture this when it worked correctly with the MSP430FR5969: I've read conflicting reports about the actual I2C pins on the MSP430FR5969 launchpad: are they at 9 & 10 (as the board pdf & silkscreen says), or have they been shifted to the same pins as SPI? What's the best way to debug this? Simple I2C sketches don't seem to work for some reason, but it worked correctly for a little while.
  5. We are using Energia 17 with the MSP430FR5969 iand we now need to utilize upper block of FRAM at 0x10000 for storage of an initialized byte array because our program size has increased beyond the 48k in lower FRAM. I've modified the linker command file to locate the ".upper.rodata" section in "far_rom" at 0x010000 and declare the array as follows: const unsigned char __attribute__((section(".upper.rodata"))) Program_Data_IC_1[4096} = { <byte values here> } However, after modifying the Energia linker command file and rebuilding the Energia project (in CCS 6.1.3) the Energia build fails with: "relocation truncated to fit: R_MSP430_16_BYTE against symbol `Program_Data_IC_1' defined in .upperFram section in ./sigma_SPI.o" All I really need is to produce a loadable file with the array mapped to upper FRAM. I will be accessing this data array with a C pointer initialized to 0x010000, I just need to get the Energia build system to output a elf file--the linker gets to the point of producing a correct .map file (in CCS 6.1.3) I've tried a few things such as introducing the -mlarge build option, and the "far" keyword, but these produce build errors because they are not supported in MSPGCC 4.6.3. So it appears that the Energia 17 build tools will not allow for any location of data above the 64k boundary? Any workaround? Thanks in advance, John
  6. I am storing data in program memory using PROGMEM, and reading it using pgm_read_byte() and pgm_read_word(), to save RAM. However, the compiler gives warnings: In function 'int lookupnumber(int)': warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] I've read that it's not good practice to ignore these warnings, but I can't see how to eliminate them. A demonstration program is: const int numbers[] PROGMEM = { 2, 3, 5, 7, 11, 13, 17, 23 }; int lookupnumber (int i) { return pgm_read_word(&numbers[i]); } void setup() { Serial.begin(9600); } void loop() { Serial.println(lookupnumber(4)); for (;;); } Thank you.
  7. johnsondavies

    Help getting watchdog to work

    I am trying to set up a watchdog timer on the MSP430F5529 LaunchPad, and I can't seem to get it to work. My code is: void watchdogenable (int interval) { WDTCTL = WDTPW | WDTCNTCL | interval; } void watchdogreset () { WDTCTL = WDTPW | WDTCNTCL | (WDTCTL & 0x07); } void setup() { Serial.begin(9600); Serial.println("Start"); watchdogenable(1); } int count = 0; void loop() { Serial.println(count++); delay(1000); } It prints: Start 0 and then gets no further before being reset by the watchdog 8 seconds later. I would expect it to count up to 8. If I take out the delay() statement it seems to work properly. Any suggestions?
  8. My compact Lisp interpreter, uLisp, now supports the MSP430F5529 and MSP430FR5969 LaunchPads. As well as supporting a core set of Lisp functions, uLisp includes Arduino/Energia extensions, making it ideal as a control language for the MSP430. For more information see http://www.ulisp.com/.
  9. FieldsOfFire

    Delayed start MSP430FR5969

    Hi, I'm interested in energy harvesting applications with the FR5969. I've noticed there's quite a delay before the code runs, probably 500mS or more. This is just testing with a simple piece of code that turns on the LED. Launchpad supplied direct from a power supply and all jumpers removed. Is there some boot-up routine or something going on that is automatically programmed that I'm not aware of, or something else? Obviously this is quite a significant delay for these type of applications, as all the energy is being exhausted in starting the thing up. Any ideas/experiences would be great. I'm using Energia 17 and MSP430FR5969 Launchpad. Cheers.
  10. jimpx225

    Bare Metal MSP430FR5969

    I have been working with the fr5969 and have migrated it over to a bare metal msp430fr5969 soldered onto a board. And have some questions. 1. I have loaded a sketch which uploaded ok but the program doesn't seam to start, am I missing something. 2. Low power modes , if I use RTC_B the program the power is aroun 400nA and the program is still running but if I use LPM3 and stop the watchdog timer power is 25uA and if the program starts it can us upto 23mA , can someone shed some light on this and is the RTC_B with Interrupt the rigth way to go for low power application. 3. Do all vcc/vss need connecting to the power supply to get the I/O to work. Thanks for any help.
  11. Just a quick question - probably obvious but I wanna make sure before I order some boards. If I was using a FR5969 Launchpad as an ISP to program some FR5949 chips - will the hardware I2C pins 1.6 and 1.7 and the software defined I2C pins 3.5 and 3.6 still work even though they are at different physical locations on the chips? My breadboard prototype version uses I2C on either set of I2C lines and works fine, but with a FR5969 and not the FR5949. When programming another chip in a series does the pin map need to be defined in the energia_pins.h file for the FR5969? Thanks!
  12. B@tto

    FR5969 and i2c issue

    Hello everyone, I have trouble with i2c on FR5969 launchpad. I wanted to interface a BMP180. As it didn't work, I tested my module on my TivaC launchpad and Arduino and it was OK. So I connected my oscilloscope and my logic analyzer on pin P1.6 and P1.7 and there was strictly no activity ... Searching on the internet I couldn't find any person using i2c on this launchpad, so has anyone tried to play with i2c on it ? Problem detected on Energia v15, v14 doesn't work too. I looked at pins_energia.h, it seems ok ...
  13. Nolan

    Serial Print to a device

    All, I have a gps device that outputs several other sensor readings (wind, heading, ect.). All of those strings are output in NMEA format strings. I am able to read these strings and also (with the TinyGPS library) I can parse them to pull what I need. Now the problem, I want to be able to send NMEA strings back at the device in order to tell it to output different NMEA string types. For example, sending "$PAMTC,EN,HDG" should enable the "$HCHDG" string on the device. Or sending "#PAMTC,QV" should query the software version number. My code to read from the device is: Code: [Select] void setup() { // put your setup code here, to run once: Serial.begin(4800); Serial1.begin(4800); } void loop() { // put your main code here, to run repeatedly: char c; c = Serial1.read(); Serial.print
  14. Hi All, I've successfully implemented the GFDS18B20 library (for the Maxim DS1820B) and the RTC_B library (for the MSP430FR5969's Real-Time Clock) in a way that allows me to wake up from LPM3.5 every time the alarm goes off, take temperature readings, print them out with a time stamp, and go back to sleep. However, for some reason, no matter which sensor I use or how hot/cold it is, the last sensor in my array/on the one-wire prints out a temperature reading of "0.-6" degrees Celsius (yes, it looks just like that). If anyone could help me figure this out, I'd really appreciate it. I'm new to this and have been hitting my head against the keyboard for days. I've attached the libraries I'm using and the program I wrote. Thank You, John Energia.zip
  15. nathancrum

    New Dev Platform for MSP430FR5969

    Hi Guys, My name is Nathan. I've lurked around here on 43oh a bit, but this is my first official post. I've been working with the MSP430FR5969 for several months now and I've quickly grown to really like it. It seems to me TI's FRAM processors should really be getting more exposure for battery powered development in both professional and maker communities. To that end - I was hoping to get some feedback on a product idea. We've packaged the FR5969 into a tiny coin-cell powered module. The module can operate as a stand-alone processor or it can plug into an UNO-form-factor breakout board with an eZ-FET lite programmer, allowing you to program it with CCS or Energia. We're waiting on the first PCB's to debug the base product right now, but the goal would eventually be to offer with with a handful of matching small daughter-boards to add WiFi, BTLE and either the Sharp LS013B4DN04 hybrid screen or an e-ink display - all except the WiFi would be powered directly by the coin cell (WiFi would require a couple AAA's). It might make sense to have a few sensor boards too depending on interest level (humidity/temp, compass, GPS, accel, gyro, prox, etc.) Does that make sense? Any thoughts? Is this a product you think people would be interested in? It doesn't seem like anyone is offering really well-packaged small, ULP, battery powered MCU modules, especially with Arduino code compatibility and this would fill a good niche (certainly one I have some uses for anyway). Anyway - I'd appreciate any feedback or suggestions. Thanks. NC
  16. I am using an MSP430fr5969. The board only has one hardware pwm available and it located on P1.2. For my application, I need to generate two different pwm signals to control two different motors. One of those is a servo, the other is a linear actuator but it is controlled through a motor speed controller that uses a pwm input (replicating that of an RC receiver). Can I use the servo library and attach a servo to any pin or does that pin have to have hardware pwm? I looked through the Servo.cpp file and it seems to be doing software serial. When i run servo examples, and hook the pin up to an oscilloscope I do not get nice square waves being generated as an output. Currently I am using pin 9, the defualt for the servo libraries. Thanks, Nolan
  17. Nolan

    PWM on MSp430fr5969

    I am looking to run two motors via motor controllers that require pwm signals. I have learned how hardware and software pwm work. I also have learned what would be required to create a software pwm with a chip timer and clock in CCS. I am still however confused on whether this is required in energia and how I can tell what pins i am able to use. Using a MSP430fr5969: Can i simply use the analogwrite() function on a pin that allows for it to be used according to the pin map http://energia.nu/wordpress/wp-content/uploads/2014/10/LaunchPad-with-MSP430FR5969.jpg ? Does the analogwrite function only work on the pins that have hardware pwm capability or is it a software pwm function? Could I for example use pins P1_4 and P1_3 to send a pwm to signal to the motor controllers? Does the same apply when reading pwm signals? -Nolan
  18. Nolan

    Firmware Update Error

    HI, I have a MSP430fr5969 Board. I have written several program successfully to the board with Energia and have V2.0 or higher. On a random upload, I received an error message "FET firmware update is required", "Re-run with --allow-fw-update to preform a firmware update.", tilib: device initialization failed." A separate window also appears saying: "The firmware of your launchpad programmer needs an update. You will need to update......"tools" menu." When I use the Update Programmer button from the "Tools" tab, it fails to update the programmer on some occasions. On others it is successful and flashes the green and red LED after completion. After a successful update the upload of a program to the board still fails. Any Ideas.? This problem originated when trying to run a "Servo Sweep" example, but now occurs even with a simple "Blink LED."
  19. aegotheles

    Help with FR5969 r/w FRAM

    Sorry to bother if I'm missing something obvious in the documentation - but there's something I can't seem to figure out. I'm migrating a simple datalogger that uses an ATTiny24a, BMP180, and an external EEPROM to (hopefully!) take advantage of the power savings and FRAM on the MSP430FR5969. I've attached a sample of my code by I can't seem to find anywhere similar functions to EEPROM.read and EEPROM.write. All I've managed to find is FRAM_write<enter # of bits here> in the fram.c in the DriverLib library. Basically all I'm trying to do is log data to the FRAM at a specified interval, then after a certain number of datalogging events read it back out and convert to on-off keying. Each datalogger has it's own unqiue ID. At a later time I want to look into the different lower power modes on the MSP430, but first things first. Again, I apologize if I'm overlooking something quite simple.
  20. Hi all I am new to TI environment, before this all of my projects were based on Arduino. I have developed one circuit with 5969 launchpad its working fine. Now I want to make it my own custom pcb for my application. I wanted to know by keeping two test pins for Spy Bi Wire on my pcb can I program my micro controller with help of my launch pad? And/Or which is best practice for ISP programming MSP430 micro controllers?
  21. pon

    registers avail at msp430

    Hi all, i am new to msp430 using launchpad msp430fr5969. i need list of registers available in mentioned msp430 for programming like how we do in MPlab. i have data sheet but it doesnot discussed about the registers avail. Also i need ccs c programming tutorial for MSP430fr5969 pls recommend me suitable tutorial or basic programming link Thanks PON
  22. pon

    registers avail at msp430

    Hi all, i am new to msp430 using launchpad msp430fr5969. i need list of registers available in mentioned msp430 for programming like how we do in MPlab. i have data sheet but it doesnot discussed about the registers avail. Also i need ccs c programming tutorial for MSP430fr5969 pls recommend me suitable tutorial or basic programming link Thanks PON
  23. Hello All! This is my first post on this forum. So kindly excuse me if i do any faux pas! I am planning to shift to MSP430 after using arduino for long time. I have written a small code to read ADC value and when i press a button adc value gets stored in a variable. Now want I want is to make available this value even after microcontroller restarts. Can anyone tell me how to store variable in Non volatile FRAM? I am using MSP430FR5969 launchpad. I have looked into following examples but they are of not helping me. I am using Energia to program my launchpad. http://forum.43oh.com/topic/4148-reduce-startup-time-on-msp430fr5739/ http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/258443 http://processors.wiki.ti.com/index.php/Creating_MSP430_FRAM_Variables_Using_CCS#Example_Test_Code
  24. Rickta59

    FRAM chips with ws281x

    Using the FRAM as though it were RAM on the msp430fr59xx chips can make it really easy to drive those ws281x chips even at a relatively slow MCU clock rate. The ws281x chips are great because you can get a boat load of leds for the cost of only one pin. Also, it doesn't hurt the price of these ws281x chips keeps falling and making them more and more attractive. I decided to see if I could take advantage of FRAM to help me drive some of those leds. I ended up with an extremely simple driver routine that works great even when you clock the FRAM MCU @ 6MHz. You couldn't really do this on a RAM limited msp430 chip as you would quickly run out of memory. ... I configured the FRAM chip for 6MHz and then configured the SPI to use a clock divisor of 1 the MOSI is selected for output and is wired to ws281x DIN pin. ... static const uint8_t frame_buffer[60*3*8] = {0}; /* provide an FRAM buffer for a strip of 60 leds */ /* * inline msp430-elf-gcc asm version */ void sendRGB(uint8_t * led_data, unsigned led_data_len) { const uint8_t *led_data_end = led_data+led_data_len; uint8_t *dest = const_cast<uint8_t *>(&frame_buffer[0]); uint8_t *frame = dest; do { unsigned color = *led_data++; register unsigned colormask = 0x80; do { *dest++ = (color & colormask) ? 0x78 : 0x60; colormask = colormask >> 1; } while (colormask); } while (led_data < led_data_end); // shift out bits in MSB order without much delay __asm__ __volatile__ ( "1:\n" " mov.b @%[led_data]+, %[TXBUF] ; 5 cycles\n" " jmp .+2 ; 2 cycles\n" " cmp %[led_data_end], %[led_data] ; 4 cycle\n" " jl 1b ; 2 cycles\n" :[led_data] "+&r" (frame) ,[led_data_end] "+r" (dest) :[TXBUF] "m" (UCB0TXBUF) : "cc" ); In the code above, I provided a function that expects an array of RGB data (well GRB data actually ) and I I looped through it and setup the FRAM buffer with proper SPI bits for ~333ns/~666ns and with a period of ~1500 ns. The wave it spews out looks really pretty on my scope. Best of all, the ws281x chips seem to like it. I encountered one wierd anomaly of the eUSCI periperal. It seems that if the high bit of the last thing you sent is high, then the MOSI pin floats high instead of leaving the value at the last bit set. This is why I'm using 0x78 (0b01111000) and 0x60 (0b01100000) instead if 0xF0 and 0xC0. I wasted a bunch of time trying to find out why my code wasn't working on that one. I never did find a tech note or errata about it. If you are using the SPI device as a normal SPI device instead of a shift register, it wouldn't matter. -rick
  25. Hi all, I've been lurking for a while but I finally joined up! I recently received the MSP430FR5969 FRAM Launchpad with EnergyTrace, and I'm trying to upload code to it with OS X 10.9.4 and mspdebug. I am successfully able to upload code to the standard Launchpad with the MSP430G2553 but I cannot upload to the FRAM Launchpad. Looking at this makes me think that a work around has not been found yet, is this true? Or has someone gotten the new FRAM Launchpads working with OS X? Thanks in advance for any help!