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.

MSP430 external RAM

Other Parts Discussed in Thread: MSP430FR5739

Hi,

I am just learning about the MSP430 family, specifically a MSP430FR5739.   I see that a factory blank device will have an R0 value of FFFFh and will enter into LPM4 mode.   To do anything different I would have to enter Bootloader during reset.  Correct so far?

Can I change the PC to an external RAM location?   What port pins would be the default for address and data?   If not how would I put data into a CPU general purpose register and read it back?  All serially in the Bootloader?   

Tony

  • Tony,

    A "factory blank device" means the contents of all FRAM memory are 0xFFFF. At power-up or after a RESET, the contents of location 0xFFFE-0xFFFF will be automatically loaded into PC and start to execute. In this case, the content is 0xFFFF.

    In order for the device to do something useful for you, you need to load code and data into the FRAM memory. In particular, the address of the starting point of your code need to be loaded into location 0xFFFE-0xFFFF. After that, whenever you power-up or RESET this device, it will start to execute your code.

    There are many hardware/software tools that you can use to load code and data into MSP430FR5739. Most of the software tool run on a Windows-PC. TI CCS is what most people use. You also need hardware tools. If you are using a LaunchPad, the hardware is already there and you just plug into a USB port.

    --OCY
  • Thanks, so I did understand the factory blank. There is no way execute code from external RAM? I'm trying to learn how the device works at the block diagram level. The user's manual says that instructions are usable throughout the entire 1MB memory range. Extend instructions use a 20 bit address. FRAM is not that big. Where is this memory?
  • There is no way to execute code from external RAM directly because there is no external address bus and data bus. The internal address bus MAB is 20-bit wide, the internal data bus MDB is 16-bit wide. The 1MB (20-bit) address range is used to address on-chip FRAM, RAM, ROM, as well as peripherals as shown in the block diagram.

    For MSP430FR5739, there are only 16KB of FRAM and 1KB of RAM. The Memory Organization is shown in the data-sheet. Only 16-bit addresses are needed. Extend instructions can be used, but not necessary for this chip. The 1MB space is mostly empty.
  • OK thanks. I see in table 6-2 Memory Organization a note that says all address space not listed is considered vacant memory. No Vacant Memory block in the diagram. This would be the remaining of the 1MB I guess. Reading up on the available registers I can see how the Port pins are configured so that parallel data can be introduced. In summary: start BSL during reset. Write a block of commands to configure the registers needed using RX to a location in FRAM, load the PC with the address of this block. The program flow continues from there and the BSL session is ended. Sound correct?
  • You are correct. Except BSL is not the only way.

    At the lower right corner of the block diagram there is something called JTAG and SBW. They have no function during the normal course of operating the device and its peripherals. They can be used (by an external arrangement) to load memory without using BSL. More importantly, they can be used to stop the CPU, examine and alter the CPU registers, contents of memory or peripheral registers. They can also run the CPU, single stepping it, or run until it reaches a "break-point".

    The IDE of compiler/assembler/linker such as CCS on a PC also include a "Debugger" that can utilize JTAG or SBW to support those features during code development.
  • PS
    If you already decided to use MSP430FR5739, that is fine. But you might want to look at other MSP430FRxxxx chips. And if you want to try them, consider start with a LaunchPad which include all the development hardware interface you might need.
    MSPFR57xx is faster than other FRxxxx, but the amount of FRAM on the chip is very small and it lacks some of other features. It is an older product line.

**Attention** This is a public forum