Jump to content

garyamort

Members
  • Content Count

    21
  • Joined

  • Last visited

About garyamort

  • Rank
    Member
  • Birthday 10/20/1970

Profile Information

  • Location
    Beacon New York, US
  1. garyamort

    Speeding up the Launchpad UART

    Well, correct that it doesn't magically make it a serial passthrough device - that comes from the beuaty of how the thing works...though this process may only work on Linux. When the TUSB device comes up, the first thing it does it tries to grab it's firmware from I2C[in theory an EPROM, but it could be anything that pretends to be an EPROM]. Assuming it finds a firmware, it will then load that firmware where the baudrate is configured. If it does not find a firmware there, then it falls back to whatever defaults it has and will accept firmware from the host computer via usb. This is one the basic 'magic' functions of usb - when a usb device powers up, it will send it's VendorId and ProductId to the computer. The computer will then load the "driver" associated with that VendorId/ProductId. The driver MAY contain firmware code for the device - allowing an upgraded computer side driver to upgrade the device it communicates with automagically. Now, any usb device at the other end will ignore any attempts to send it new firmware from the PC unless it follows the 'rules'. In the case of TI's USB chip the rule is "If I don't have a firmware from I2C, accept the firmware from the PC". Once the firmware loads, the usb chip will do a soft reset and all it's new functionality is in place. In the case of the TUSB linux ships with default firmware to configure it as a usb to serial bridge running at 115k/8/n/1 - so by disabling the eprom you force it to use the firmware linux happens to be sitting on....unless you want to have some fun and write a truly custom firmware. As a sidenote, the TUSB chip is an 8051 processor and it has 4 GPIO pins on it in addition to all the pre-defined stuff - so you can have all sorts of fun like copying the input/output streams to a second set of pins...of course your going to need to do some fancy wiring to get at them. I'm not sure if the Windows drivers from TI include the default firmware used by nearly everone to give it 115k....I guess once I finish flashing it I'll have a better idea. Right now I'm in the process of getting a virtualbox setup with mspgcc so I can compile the goodfet firmware and either brick one of my launchpads or free it. :-)
  2. garyamort

    Speeding up the Launchpad UART

    I'll give it a shot and post how it worked out... After digging through the code a bit, I found Peter was extremely generous and he included the option of using a GoodfetTILaunchpad for pure serial passthrough by just setting a jumper across 2 of the programming pins. Heck, even if it goes nowhere I recommend digging into his code just because he so clearly documents the pinouts of the top portion of the launchpad - including some ideas on which unused pins look like their most easily modded.
  3. garyamort

    Speeding up the Launchpad UART

    Or easy and just use someone else's work: http://sourceforge.net/mailarchive/foru ... dfet-devel He worked out how to turn a Launchpad into a Goodfet. Of particular note is: void disable_eeprom() { // P3.1 SDA // P3.3 SCL P3OUT &= ~((1<<1)|(1<<3)); P3DIR |= (1<<1)|(1<<3); } // TI lauchpad has 12 Mhz X-tal on XT2 which also is the base clock for the TUSB34010 void enable_tusb3410() { disable_eeprom(); // we can load software from USB // generate 12 Nhz clock for TUSB3410 P5SEL |= (1<<5); // P5.5 is SMCLK to TUSG3410 P5DIR |= (1<<5); // P5.5 is output // release reset for TUSB3410 P4DIR &= ~(1<<6); // release reset to TUSB3410 } If I follow this correctly, the eprom gets it's clock cycle from the MSP430F1612 over P3.3 - so he disabled the entire P3 port so the EPROM doesn't run. Then he resets the TUSB3410 - which will now download it's firmware from the linux host device instead - which happens to be a very basic default firmware set to act as a 115,000/8/n/1 usb to uart bridge. I'm going to have to give this a try and see if I can get it running. At 115k I can get a lot more readings from my scope!
  4. garyamort

    CCS type-ahead

    Well, sort of. With PHPStorm[and the other IDE's I've used, netbeans, komodo, ultraedit, etc] when I'm coding in PHP by default they will do auto-complete as soon as a few charecters are entered. For example: int mySuperVariable = 5; function mySuperFunction(int param = null) { } static class mySuperClass { static int classVar = 0; } While coding, after typing 'myVar = myS' if I pause for a moment, the IDE will give me the option of selecting any of the above[ie guessing that it is one of those 3 things I am trying to write, either the variable, the function, or the static class] - so I don't need to actually reach a break point. It will also help with those, of course. myVar = mySuperClass:: will trigger an auto-complete suggestion of any of the static properties of the class. I would assume since Eclipse is the IDE to match for functionality, that Eclipse has the same functionality, but I don't know where to enable it[or even if it can be enabled in CCS]
  5. garyamort

    CCS type-ahead

    Well, sort of. With PHPStorm[and the other IDE's I've used, netbeans, komodo, ultraedit, etc] when I'm coding in PHP by default they will do auto-complete as soon as a few charecters are entered. For example: int mySuperVariable = 5; function mySuperFunction(int param = null) { } static class mySuperClass { static int classVar = 0; } While coding, after typing 'myVar = myS' if I pause for a moment, the IDE will give me the option of selecting any of the above[ie guessing that it is one of those 3 things I am trying to write, either the variable, the function, or the static class] - so I don't need to actually reach a break point. It will also help with those, of course. myVar = mySuperClass:: will trigger an auto-complete suggestion of any of the static properties of the class. I would assume since Eclipse is the IDE to match for functionality, that Eclipse has the same functionality, but I don't know where to enable it[or even if it can be enabled in CCS]
  6. garyamort

    Speeding up the Launchpad UART

    I was wondering if anyone has worked on speeding up the launchpad uart? As near as I can tell, the reason that it is limited to 9600 baud is because the BSL is limited to 9600 baud. IE in order to upgrade the firmware for the MSP430F16x the baud rate has to be 9600. So if you use the FET pins at the top of the board to reprogram the MSP430G16x, the baud can be changed. Note, it would seem to requires 3 code changes to do so, none of which are in friendly C coding. The raw assembly dump is at http://processors.wiki.ti.com/index.php ... d_firmware It would require finding the baud settings for both UARTS in the launchpad and changing them. It also requires changing the baudrate setting for the TUSB IC - which I believe is actually stored in the MSP430G16x. As near as I can tell, the TUSB can only get it's baud settings from 2 places: either from the computer via the usb initialization or via I2C from EPROM. Since the TUSB I2C pin happens to be tied into an I2C pin of the MSP430G16x it makes sense that the MSP430 is acting as the EPROM device for the TUSB firmware.
  7. garyamort

    Turning a Launchpad into a poor mans IOIO

    Browsing around other projects, I noticed that the Ethernet Boosterpack demo code in this thread, viewtopic.php?f=35&t=2529&start=110#p21392 has similar functionality[receive commands via http, do something with pins] While I'm using a completely different protocol, he does do what I need to do - use a map to map pin numbers from the http command to a port and bit combo - so I now have a working model for that bit of code.
  8. garyamort

    CCS type-ahead

    Does CCS support type-ahead? I would have assumed that Eclipse supported it auto-magically but it's not happening for me.
  9. garyamort

    RGB LED Lamp

    Ooo... Beautiful... I was going to hack stuff together from some bargraphs I have once the PHP library is done, but this looks much better.. Hopefully I'll have stable employment before I get there and then I can order a few of these instead!
  10. garyamort

    MSP 430 Launch Pad board rev 1.5 UART question.

    +1 to this. I was having the same issue and it was driving me crazy. I finally switched the jumpers to horizontal and it worked! The current commit level in my github repo https://github.com/garyamort/IOIOExtension is based off that example. I made a few changes: If the character is not U, I echo it back so I know it is getting there. If the character is U, then I send "Hello World\n". I used RealTerm instead of Putty. http://realterm.sourceforge.net/ Mainly because I discovered that Putty has really odd serial port handling - it won't CLOSE the port until you close all open copies of Putty - and since I typically have 3-4 outgoing SSH settings, closing all of them is a pain. RealTerm alternatively is easy to connect and does just what I need. I'll add a tag to my current commit on Github this weekend so you can reference it later if you want to as I'll be junking that code shortly to replace it with the code I ACTUALLY want. :-) The main difference between my code and the example is I'm segmenting out the different bits of code[ideally I'd turn them into C++ classes....but that will have to wait until I have a working copy of the code and then go back to cleanup my hacks]. It also includes a ton of header files and stub c code you won't be interested in for defining the IOIO protocol/functions.
  11. I've been working on turning a Launchpad into a poor mans IOIO. The latest version of the IOIO adds support for connecting from the computer to the board using a bluetooth serial connection. This means if I copy the underlying protocol[or at least as much as I need] - I can then emulate the IOIO for my real goal[see below]. I'm just in the beginning phase right now, my initial goal is to get it working so I can use the IOIO protocol to turn on and off the 2 LED's on board. IE just cloning the Digital Output functionality and only on 2 pins. I'm hoping to finish that this weekend. Right now I just have the initial skeleton of combining the TI example code for 9600 baud uart and some basic IOIO headers. https://github.com/garyamort/IOIOExtension Once I get the 2 pins working, the next step is to allow for access to all 10 available pins on the MSP430G2553 [there is 1 and a half ports available, but 2 pins have to be used form the serial connection]. This is where I figured I'd ask if there is a standard way of doing things as I'm re-learning C as I go along. A command will consist of a few bytes of data: The command byte, such as I beleive 6 and 7 for digital output. 6 to turn a pin into a digital output, 7 to change the value being sent out. Following the command is the "pin number" - where pin number is defined by where they come out on the board, not where they are on the launchpad. For my purposes: Pin 1: Port 1.0 Pin 2: Port 1.3 Pin 3: Port 1.4 Pin 4: Port 1.5 Pin 5: Port 1.6 Pin 6: Port 1.7 Pin 7: Port 1.0 Pin 8: Port 2.1 Pin 9: Port 2.2 Pin 10: Port 2.3 Pin 11: Port 2.4 For the simple case of: Pins 1 and 5[1.0 and 1.6] I can use a simple switch/case to send the correct BIT to P1SEL However, to expand it to all 10 pins, I would rather not have a humungous SWITCH/CASE. It would be better to have a mapping of pins to their appropriate bit, port address, and value. Something like: PINDEF selectedPin = pinmap[1]; selectedPin->port |= selectedPin->digitalOutBit; selectedPin->iovalue |= selectedPin->digitalOn; While I understand easily how to do the digitalOutBit and digitalOn - they are just values. The question is how to I assign a variable[selectedPin->port] so that it can be used in the same manner as P1SEL ? Thanks for any feedback. Sidenote: my /goal/ is yet another oscilliscope. However, since my strongest skillset is website engineering[php/HTML/CSS/Javascript] - my preference is to make the scope as a Javascript application run from the web browser. I can hack enough Python to use the Python serial and websocket library to provide access to the com port from the web browser - so with that in place it makes it a lot faster for me to write IOIO apps which will also be usable with a Launchpad by using Javascript. For added fun, I want to setup a PHP library so that I can have the launchpad display the number of users on a website via an LED bargraph and maybe have it play a sound when different "goals" are met. NOTE: I found I had to hunt through the project settings in CCS to find and enable the "relaxed-ansi" option in order to get the "packed" structures to work.
  12. garyamort

    EZ430-RF2500 and GnuRadio

    Just wondering if anyone has ever tried using GnuRadio with the the EZ430-2500 attached in usb mode? I'm waiting on a part to get my linux box back up, didn't have any luck sharing the usb device via virtualbox. Thought this would be an interesting experiment.
  13. garyamort

    MSP430's in space

    Just figured I'd mention it in case no one noticed, this kickstarter project http://www.kickstarter.com/projects/251 ... e/comments utilizies the CC430F5137 chip for it's primary processor. Looks like it's made funding, so sometime in the next year hopefully hundreds of msp430's will be flying into space.
  14. garyamort

    MSP430 Starter / Inventors kit - $34.99

    Oh, I'd say if it doesn't cost more, a mini breadboard[170 points like this one http://www.cutedigi.com/product_info.ph ... googlebase] is a better bet for a mini "kit".
  15. garyamort

    MSP430 Starter / Inventors kit - $34.99

    As someone who purchased his first launchpad in the past month and is just getting into mucking with this stuff...I'd gladly pay 25$ or so for such a kit and would probably order 2 of them. :-)
×