This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Microprocessor/Controller Question

Other Parts Discussed in Thread: MSP430F1232, MSP430FE427A

Forgive me if I'm out of place, but I the TI phone support seems lacking.  I am looking for microprocessors that can read their own program insturction memory.  Can the MSP do this? and are there any other ones that can? 

  • With very few exceptions, MSP430 MCU can read its own program instruction memory. Only the MSP430F5xx have a small amount of protected memory.

     

  • Many 16 bit microprocessors (such as the ATMega) use Harvard architecture, which has a separate data bus and address range for code and data. This allows having 64K ram and 64K (or even 128k if word-addressing is used) ROM while still having just 16 bit instructions and pointers. These processors usually have dedicated commands to read data from the code address range, which makes it  a pain to handle e.g. string constants in flash. nevertheless it is possible. (and necessary, else it would be impossible to copy the initialisation values of variables from their storage in flash into ram for usage)

    The MSP, however, uses von-Neumann Architecture. This means that flash, ram, port registers all share the same address range. There is no difference (from the processors side) between flash and ram. It can read data or instructions from every location. This limits the accessible range to 64k with 16 bit addressing. To overcome this, the newer MSPs have additional commands which utilize 20 bit addresses if needed. This allows a 1MB address range at the expense of increased flash and ram usage (4 bytes per register push/pop instead of 2, 1 or two additional bytes for instructions that access the memory above 64k).

    There is, however,on some MSPs (such as the 54xx) a small area which is protected against data read. Without unprotecting it first, you can only read data from it if the code reading it is running in the same protected area. This is done to protect the boot loader against hacker attacks, I think.

    I'd really like a real code protection mechanism that prevents JTAG, data or code access from certain areas (similar to the ATMega 128), so you can define some areas to be code only, some to be data only (every code fetch will cause an NMI or RESET) or forbid JTAG access to it. And after a mass erase all is back to normal again.

  • For my application, I need to read all the program instructoin memory.  In my case the protection will cause problems. 

    I don't need a lot of memroy or processing power.  Infact, the smaller the chip the better.  Is the MSP series right for me?

     

    What about a headboard to use the chip and the programming software to program, I'm just want to demostrate an idea.

     

     

     

  • Jason,

    I would note down the requirements for the MCU before trying to pick one: Flash/ RAM size, peripherals, no. of GPIOs, pin  count, package etc.

    Then you can use the MSP430 selection tool to narrow down your choices.

    All MSP430s come with a TI target board that brings out the pins so you can interface your custom circuitry if needed. Check the tools page for the development kits available based on your MCU selection.

    If you want something low cost to begin with I would recommend the eZ430-F2013 as it includes the emulator (programmer) portion + target board for 20$.

    Regards,

    Priya

  • Jason Hoffman said:
    For my application, I need to read all the program instructoin memory.  In my case the protection will cause problems. 

    Well, it depends on what you call 'program instruction memory'. The 'protected' area in the newer chips is the boot strap loader (BSL) area. On older ships, it is a ROM, newer ones have a separate flash memory, so you can write your own there. In both cases, this is not normal code flash, as it is executed (if at all) before the reset vector is called. And it is not counted to the chips flash size.In the very most cases it is an address range you don't care for and it could be as well considered unused/not there at all.

    Jason Hoffman said:
    Is the MSP series right for me?

    MSPs are available in almost every size and with various combinations of features.

    We still use (but not for new projects) a small (28 pin SSOP) MSP430F1232, which has 8KB Flash, 256bytes additional data flash, 256 bytes ram and runs with up to 8MHz. It has hardware UART, some I/O and does not necessarily need a quartz crystal (but it is better with one when using RS232 connections)

    For some MSPs (each representing a family with certain common characteristics such as LCD driver or such), there's an experimenters board available. It contains almost everything you need except a DC power source and some code. There are also some target boards available which offer just a carrier for the processor, some standard connectors (for the JTAG programmer etc.) and some pin rows. It's best for trying your own external hardware before you start making your own PCB.

    I use a target board for the 54xx series. It is for the 100 pin processors, there is none available for the 80 pin versions in the 54xx series, but since the smaller chips are an exact subset of the larger ones, you can test with the 100pin and later use the 80 pin on your PCB if you want.

    What exactly you need depends on the requirements of your project. We cannot help you further. It's like going to the drugstore and saying 'I need a medicine. Which one can you recommend?'

    The MSP430 selection tool will be useful to select an MSP that fits best.

  • I'm looking at MSP430FE427A.  

    What I want to make sure is I'm getting the right tools to go with it.

    I'm looking at the MSP430FG4618/F2013 Experimenter Board that was listed with the microcontroller.  Does the board come with everything I need to program and operate it?  (minus the computer and power)  So can I just plug the chip in and load the code, and it will work?  Also, what about the software that is needed to program the chip? 

    I just want to make sure I am getting everything I need.

     

     

     

  • Jason Hoffman said:
    I'm looking at the  that was listed with the microcontroller.  Does the board come with everything I need to program and operate it?  (minus the computer and power)  So can I just plug the chip in and load the code, and it will work?  Also, what about the software that is needed to program the chip? 

    you'll also need a programmer like the MSP-FET430UIF.

  • Hi Jason,

    the software for programming/debugging the MCU (codesize limited versions) comes with the tool (MSP-FET430UIF; http://focus.ti.com/docs/toolsw/folders/print/msp-fet430uif.html). You can also download the latest versions here:

    IAR Embedded Workbench (4kB/8kB (for MSP430x only)  limited version): http://focus.ti.com/docs/toolsw/folders/print/iar-kickstart.html

    Code Composer Studio Core edition V4.x (16kB limited versions): http://processors.wiki.ti.com/index.php/Download_CCS

    The full, unlimited versions are availabe from TI (in case of CCS) and IAR (www.iar.com).

    Rgds
    aBUGSworstnightmare

  • Is all the code done in C/C++?  and does it come with a descent guide to aide in programming?

  • Also another question does that expiermenter board come with two MCU already on it? Or do i need to order them seperately?  The description isn't clear to me. 

  • The exp board already  comes with the chip soldered on.

  • Two more questions:

    1)  Does the EZ430-F2013 come with the needed chip too? 

    2)  If the expiermental board comes with the chips on it, why does it need the programmer too?

  • Jason Hoffman said:
    1)  Does the EZ430-F2013 come with the needed chip too? 

    I think so. It should be complete so you can start experimenting immediately.

    Jason Hoffman said:
    2)  If the expiermental board comes with the chips on it, why does it need the programmer too?

    The chips are dumb. It's up to you to fill them with life. Else it wouldn't be an experimenter board but rather a demonstration board.

    You need the programmer so you can connect the board to the PC and upload your code and/or debug it. Programming is done in-circuit. This means if the PCB has the required connector and wiring, the chip can remain soldered on the PCB while receiving its new code or being debugged. No need to remove the chip and place it into a programming socket. This is only necessary if you design a PCB that is too small to bear the required connector. Then you'll need to program the chip before soldering it and you cannot change the programming alter. Normally, you'll have a connector for the programmer and can do software updates at any time.

**Attention** This is a public forum