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.

MSP430FR2355: Programming MSP430FR2355 using UART BSL

Part Number: MSP430FR2355

I am trying to program MSP430FR2355 using UART BSL through the BSL rocket/scripter. But it gives [ACK_ERROR_MESSAGE]Unknown ACK value! Attached my files. Please let me know where I am going wrong. Also if I want to use I2C BSL, do i need to have pull up resistors for the SCL, SDA lines? The launchpad for MSP430FR2355 does not seem to have them. Thanks!

4113.6557.script.txt
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//
//Script example FRxx UART BSL
//
//Device : MSP430FR2355
//Comm Bridge: MSP-BSL Rocket
//
//Download blink application through
//UART BSL in FRAM device
//
LOG
MODE FRxx UART 9600 COM22
//gives wrong password to do mass erase
RX_PASSWORD pass32_wrong.txt
//
//add delay after giving wrong password
//because the device does not give
//any response after wrong password applied
//
DELAY 2000
RX_PASSWORD pass32_default.txt
RX_DATA_BLOCK BlinkLED2355.txt
CRC_CHECK 0x4400 0x0020
SET_PC 0x4400
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1643.BlinkLED2355.txt
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@8000
31 80 06 00 3E 40 00 00 3E F0 3F 00 81 4E 00 00
3F 40 01 00 1F F3 81 4F 02 00 3D 40 01 00 1D F3
81 4D 04 00 5E 06 5F 02 0F DE 1F D1 04 00 3F D0
00 A5 82 4F 60 01 31 50 06 00 10 01 B2 40 80 5A
CC 01 D2 C3 02 02 D2 D3 04 02 92 C3 30 01 D2 E3
02 02 0D 14 3D 40 32 82 1D 83 FE 23 0D 16 F7 3F
03 43 03 43 FF 3F 03 43 1C 43 10 01 31 40 00 30
B0 13 00 80 B0 13 68 80 0C 43 B0 13 3C 80 1C 43
B0 13 62 80 32 D0 10 00 FD 3F 03 43
@ff80
FF FF FF FF FF FF FF FF FF FF FF FF
@ffa0
FF FF
@ffce
84 80 84 80 84 80 84 80 84 80 84 80 84 80 84 80
84 80 84 80 84 80 84 80 84 80 84 80 84 80 84 80
84 80 84 80 84 80 84 80 84 80 84 80 84 80 84 80
6C 80
q
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hi Swetha,

    Swetha Samay said:
    I am trying to program MSP430FR2355 using UART BSL through the BSL rocket/scripter. But it gives [ACK_ERROR_MESSAGE]Unknown ACK value! Attached my files. Please let me know where I am going wrong.

    I'd double-check your hardware connections. You can find them listed in Section 4.2 in the MSP-BSL Bootloader (BSL) Programmer for MSP430™ and SimpleLink™ MSP432™ MCUs user's guide.

    Swetha Samay said:
    Also if I want to use I2C BSL, do i need to have pull up resistors for the SCL, SDA lines? The launchpad for MSP430FR2355 does not seem to have them. Thanks!

    I copied this NOTE from page 5 in the MSP-BSL Bootloader (BSL) Programmer for MSP430™ and SimpleLink™ MSP432™ MCUs user's guide.

    I2C communication requires pullup resistors on the SDA and SCL lines. The pullup resistors can be soldered on the MSP-BSL PCB (see Section 4.4), or they can be included in the target application design; for example, by adding jumpers to the I 2C pullups on the MSP430 or MSP432 target socket board. TI recommends pullup resistors of 2 to 4 kΩ.

    Regards,

    James

  • Thanks for the information. Regarding the I2C BSL, I plan to solder the resistors on the MSP-BSL PCB.

     

    So I should be connecting a pull up resistor to pins 1 and 9 on the MSP-BSL PCB. But in the bottom schematic I see R10 that I can add for the SDA line but I don't see any placeholder for the pin 9 SCL line. Please let me know if there is a way to add the pull up resistor to the SCL line on the MSP-BSL PCB.

  • Hello Swetha,

    What you're describing makes sense, but I think Olimex overlooked what pins are connected to those two pull-up resistors, R10 and R11.

    I downloaded the MSP-BSL source code and noticed that P4.5 (BSL-TX) is port-mapped to PM_UCB0SDA in the 'peripherals.c' file. Populating R10 would enable the I2C communication on that pin. However, in that same file, I noticed that P4.0 was port-mapped to PM_UCB0SCL. As you can see, R11 is connected to P4.4, not P4.0.

    /*** Initialization of the USCI Module for I2C ********************************/
    
    int8_t InitI2C(uint32_t bitrate)
    {
      int8_t ret = 1;
    
      //Simple port mapping
      __disable_interrupt(); // Disable Interrupts before altering Port Mapping registers
      PMAPKEYID = PMAPKEY;
      P4MAP0 = PM_UCB0SCL;
      P4MAP3 = PM_NONE;
      P4MAP4 = PM_NONE;
      P4MAP5 = PM_UCB0SDA;
      PMAPKEYID = 0;
      __enable_interrupt();
    
      P4SEL |= BIT0 + BIT3 + BIT4 + BIT5;
    
      UCB0CTL1 = UCSWRST;                         // Enable SW reset
    
      UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC;       // I2C Master, synchronous mode
      UCB0CTL1 = UCSSEL_2 + UCSWRST;              // Use SMCLK, keep SW reset

    One option would be to modify the source code and port-map P4.4 to PM_UCB0SCL and P4.0 to PM_NONE. This means that your target's SCL connection would be Pin 3 and not Pin 9. Then, you can populate R10 and R11 and everything should work correctly.

    A second option would be to add a resistor between the P4.0 and P4.1 pads on the bottom side of the MSP-BSL and configure the software to output a high on P4.1. This would pull up P4.0 and would allow you to use Pin 9 for your target's SCL connection.

    The third option would be to just solder a pull-up resistor to VCC somewhere on the board and connect it to P4.0.

    The last option would be to do the third option on your LaunchPad.

    Perhaps I'm missing something here, but I'll share this feedback with Olimex to see if this can be improved. I hope these options help.

    Regards,

    James

  • Thank you for the options. Where can I find the 'peripherals.c' file? Is it in this MSP430BSL_1_02_00_01 folder? Please let me know.MSP430BSL_1_02_00_01.zip

**Attention** This is a public forum