Has anyone ported the support to program a MSP430 with a Stellaris controller?
I've been studying and trying to implement the application note slau320d.pdf but running into what I believe are timing issues.
In my porting attempts I'm changing the state of an IO line from output drive to input drive. How quickly can this change take place?
Thanks for any suggestions?
Are you trying to implement the Spy-by-wire or 4-wire JTAG interface?
You might try asking on the MSP430 forum if anyone has implemented MSP430 programming on an MSP430. If they have then that would probably be a better starting point.
--Miles
Terry Biberdorf1 In my porting attempts I'm changing the state of an IO line from output drive to input drive. How quickly can this change take place?
The settling time would be system dependant, based on the capacitance/resistance of what the pin is connected to on the board. Thus, it is not something we normally spec.
The digital control turn around time will be based on how quickly the GPIO registers can be written, which is a function of clock frequency.
Hi Miles
We're currently building a test fixture that will be used to program and test our MSP430G products. The targeted MSP430 in slau320d does not support the function that we want our test fixture to support so we decided to go with the Stellaris.
Are you trying to use Spy-by-wire or 4-wire JTAG?
Spy-by wire.
Terry,
The MSP430 folks recommended using the BSL. http://processors.wiki.ti.com/index.php/BSL_(MSP430)
Have you looked into that approach?
This looks like it would be a much easier approach and would work for our "larger" MSP430G parts but our smaller units which are using the MSP430G2131 parts do not support BSL. Looks like I'm stuck with learning Spy-by-wire.
Terry
The MSP430 folks pointed me at the Replicator project. Have you seen that? It appears you don't have to start from scratch. Of course you WILL have to port this code to ARM.
Are you sure it's cost effective to develop this on your own versus purchasing an off-the-shelf programmer? For example, for < $300 you can program 16x MSP430's: http://www.ti.com/tool/msp-gang
I've been trying to port the Replicator project (See attached project). My current test environment has a EKS-LM3S9D92 connected to a 14 pin DIP MSP430G2231.
I also have a logic analyzer connected to each of the four lines.
To start off I would like like to see the GetDeviceId rely from the MSP430G. I've structured the code to trigger a request for GetDeviceId() when switch 2 is pressed on the EKS.
Based on my logic probe analysis I believe the correct timing of events is being sent to the MSP430G, but the MSP430G does not ever seem to pull the TDIO line LOW. When I change the state of my PF1 pin from output drive to input drive, should I be first be setting the output to LOW? Should I have a pull down or pull up on that line?
thanks
8780.progMSP430.zip
Sorry, but with further review I found a bug in my logic. I was not correctly toggling the tck line after pulling the MSP430 out of reset. I fixed that bug with the attached project. It now looks like the MSP430 has entered the SBW mode, but its still not providing a Device ID.
5736.progMSP430.zip
Hi Terry,
i would still prefer to suggest you using BSL, because JTAG is not that easy to use. In the new SLAA450 application note, you can have an example for implementing a BSL in a very small value line devices:
http://www.ti.com/lit/an/slaa450b/slaa450b.pdf
Could this be an option for you? This could make things much easier. Besides, it is BSL which is meant to be used for doing firmware update on the field. JTAG is more for development and production process.
Regards,
Leo Hendrawan
Hi Leo
Based on the following data sheet information:
what suggestions do you have? I agree that BSL would be a much easier approach but it appears that with these small MSP430G parts so not support it.
the SLAA450b application note above contains a guide for creating BSL on very small G2xx devices (it is mentioned it shall work even on MSP430G2001 with 512 bytes of flash). However the associated files which should contain the code are still missing, and i am currently asking the author for this. How much flash do you still have left on your MSP430G2231 exactly?
Will get back to you if i hear something from them.
the author just told me that the way of software distribution is now changed. You can get the link of the associated files basically in the app note document itself (see the first page)
http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/CustomBSL/latest/index_FDS.html
So i would suggest to use the G2xx BSL rather than start playing around with JTAG.
Hello Leo
Thanks for reference to the app note, it was a good read (and the asm code does look very small and efficient) but still leaves me with one major problem, I'm attempting to program and test units that have just left the oven. The parts have no code present in them. It would be best for me to determine a common way to program all of my MSP430G. If they don't all have BSL available then I only see my common interface to be Spy-By-Wire (SBW).
In my project that I sent you earlier, my logic probe is indicating that my MSP430G is entering SBW mode and it is pulling the SBWTDIO line low during the TDO time frame, but it has yet to provide me with a valid Device ID code. How critical is the timing operations? From my readings the clock rates must be shorter than 7us. My measurements are in the 1.5 to 3us range. Is this too fast?