Show Posts
Pages: [1]
1  Using Arduino / Microcontrollers / Re: Arduino as an ISP for Texas Instruments Microcontroller? on: March 20, 2013, 10:53:53 pm
A couple of times, I have seen complaints that programming the Texas instruments with a launchpad has the complication of doing it all in ASM, which is a very cryptic language, unlike C.

People have gotten around this by using Energia, a AVR-Style compiler designed for the launchpad.

I would like to know: Is it possible to use the Arduino board as an in-system-programmer for JUST the Texas Instruments MCU?
I want to be able to program an MSP430, like like I would program an external Atmel Chip.

There are many c compiler option for the msp430. CCS Texas Instruments C/C++ compiler, IAR has a commercial compiler and then there is the free msp430-gcc c/c++ compiler. TI provides samples in C.  Energia is an Arduino port of the msp430. It implements an Arduino API, most straight Arduino code just works.  The launchpad device https://estore.ti.com/MSP-EXP430G2-MSP430-LaunchPad-Value-Line-Development-kit-P2031.aspx is $10. It is equivalent to buying an AVR dragon. It is both a programmer and a hw debugger.  There is no reason to use asm unless you want to.  

If you want to go into the larger chips. There are many other options. All of them can be programmed in C or C++.

There is no reason to use an ISP with the msp430 chips. You can get a real hardware debugger / programmer usb device for less than the cost of an FTDI module.

TI code examples for the msp430g2553 http://www.ti.com/product/msp430g2553#softTool
Energia forum: http://forum.43oh.com/forum/28-energia/
Energia http://energia.nu
Fabooh http://github.com/RickKimball/msp430_code/


-rick
2  Using Arduino / Microcontrollers / Re: TI MSP430 LaunchPad experiences on: April 12, 2012, 04:58:58 am
Texas Instruments estore.ti.com is the only way to go when it comes to a Launchpad.  It only costs $4.30 and has free shipping.

-rick
3  Using Arduino / Microcontrollers / Re: TI MSP430 LaunchPad experiences on: April 11, 2012, 11:25:07 pm
You might want to check out Energia (Arduino IDE) for msp430

http://www.43oh.com/forum/viewtopic.php?f=24&t=1722#p18891

-rick
4  Using Arduino / Project Guidance / Re: Suggestions for record audio and random audio playback from recordings. on: July 12, 2011, 09:34:07 am
Maybe this app note would be helpful:

http://www.atmel.com/dyn/resources/prod_documents/doc1456.pdf

-rick
5  Using Arduino / Microcontrollers / Re: How does arduino handle usart with 16MHz? on: April 13, 2011, 08:21:00 pm
Well, I was actually working on a project with attiny2313 which will use usart communications!

So if I use a 16 Mhz Crystal or even 8Mhz it wont be much of a problem ? [will save me 40 km bus ride to the nearest electronic bazaar for those magic number crystals]

You should take a look at the Atmel AppNote AVR053. It describes how you can adjust the internal clock and tune it by changing the OSCCAL register. If you want to run with the standard UART rates up to 115200, tune your OSCCAL value so that your clock runs at 7.3728 MHZ. You should be able to run without a crystal using any of the standard baud rates.  The internal clock on most chips is adjustable from 7.3 - 8.1 MHZ.

Link:  http://www.atmel.com/dyn/resources/prod_documents/doc2555.pdf

-rick
6  Using Arduino / Microcontrollers / Re: Arduino Tiny on: March 05, 2011, 06:06:53 pm
For the life of me, I can't get this to work.

I've now done a fresh reinstall of the Arduino IDE three times now, and whatever I try, I always end up with "avrdude: stk500_getsync(): not in sync: resp=0x15".


I had the same problem.  This posting http://laclefyoshi.blogspot.com/2011/01/note-of-caution-for-arduino-isp.html
got me going:

avrdude: stk500_getsync(): not in sync: resp=0x15

This error is because of Auto Reset capabilities of Arduino. This document: MegaISP gave me some details. This error occurs on Mac or Linux. For using Arduino as ISP, I need to disable Auto Reset capabilities. Therefore I inserted 110 ohms (330 ohms / 3) resistor between Reset-pin and 5V-pin. This resistor should be above 110 ohms and below 124 in accordance with this document: DisablingAutoResetOnSerialConnection.

I tried to burn Arduino bootloader onth ATmega 8 again and succeeded in it. I connected 19 pin of ATmega 8 and GND with a LED and it flashed. This behavior proves buring Arduino bootloader in accordance with this document: Bootloader.

7  Community / Bar Sport / Re: Your latest purchase on: February 21, 2011, 01:45:30 pm
(5) ATMEGA1284P-PU chips from http://avnetexpress.avnet.com/ only 5.82 per chip !  Why
so inexpensive? I don't know, but I couldn't resist.

My plan is to experiment using SPI and I2C to make some stepper driver boards.  These things are
40 pin dips so they are easy to work with on a breadboard.  128K of program flash, 16k of SRAM and
32 I/O pins. 
8  Forum 2005-2010 (read only) / Development / Re: working with eclipse and arduino libraries problem on: August 20, 2010, 11:37:28 am
http://www.arduino.cc/playground/Code/Eclipse
9  Forum 2005-2010 (read only) / Development / Re: Any FIFO, Queue, Stack helper classes? on: July 20, 2010, 09:04:28 am
Quote
Would like to use a FIFO without building one

You might look at this:

http://code.google.com/p/alexanderbrevig/source/browse/trunk#trunk/Arduino/DataStorage/SimpleFIFO
10  Forum 2005-2010 (read only) / Development / Re: Any FIFO, Queue, Stack helper classes? on: July 17, 2010, 12:42:57 pm
Stack.h -
Code:
/**
 * Stack.h - an adjustable fixed sized stack template
 *
 *  Example: to create a stack with max of 10 chars just do this:
 *  
 *  Stack<char, 10> myStack;
 *
 *  myStack.push('a');
 *  myStack.push('b');
 *  myStack.push('c');
 *  while(myStack.empty()) {
 *     char foo = myStack.pop();
 *  }
 *
 */

#ifndef _STACK_H_
#define _STACK_H_

/**
 * Fixed Size Stack Template
 */
template<typename T, int MAX_ITEMS>
class Stack {
private:
  T stackData[MAX_ITEMS]; // max number of items in this stack
  T* stackPtr;
  int top;
public:
  Stack();
  ~Stack() { }

  int empty() const { return top == -1; }
  int full() const { return top == MAX_ITEMS - 1; }
  T pop();
  void push(const T& item);
  int size() const { return top+1; }
};

/**
 * Fixed Size Stack Constructor
 */
template<typename T, int N>
Stack<T, N>::Stack():top(-1) {
  stackPtr = &stackData[0]; // initialize stackPt
}

/**
 * push a value on the stack
 */
template<typename T, int N>
void Stack<T, N>::push(const T& item) {
  if (!full()) {
      stackPtr[++top] = item;
  }
  // push unsuccessful
}

/**
 * pop a value off the stack
 */
template<typename T, int N>
T Stack<T, N>::pop() {
  if (!empty()) {
    return stackPtr[top--]; // pop successful
  }
  else {
    stackPtr[0]; // pop unsuccessful .. need to return something
  }
}
#endif
Stack of 10 Ints -
Code:
// example using Fixed Size Stack

#include "Stack.h"

// create a stack of 10 ints
typedef Stack<int,10> IntStack;

static IntStack myStack;

void setup() {
  Serial.begin(9600);

  // push some data into the stack
  for(int i=0; i < 10; ++i ) {
    myStack.push(i);
  }
}

void loop() {

  if ( !myStack.empty() ) {
    Serial.print("Stack size=");
    Serial.println(myStack.size());

    Serial.print('<');
    while( !myStack.empty() ) {
      Serial.print(myStack.pop());
      if ( !myStack.empty() ) {
        Serial.print(", ");
      }
    }
    Serial.println('>');
  }
  else {
    Serial.println("stack empty");
  }
  delay(1000);
}

Output looks like this:
Code:
Stack size=10
<9, 8, 7, 6, 5, 4, 3, 2, 1, 0>
stack empty

Pages: [1]