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.

MSPM0L1304: Questions about MSPM0 I2C BSL

Part Number: MSPM0L1304
Other Parts Discussed in Thread: LP-MSPM0G3507, MSPM0L1306,

Hi, 

I have some questions about I2C BSL.

The NRST pin is multiplexed with the BSL I2C SCL for 16-pin SOT package.

My customer disabled the NRST pin in his application for I2C functionality.

So we have to use SW Invocation to enter BSL.

I tested with the following HW and SW.

Host :   LP-MSPM0G3507

             C:\ti\mspm0_sdk_0_58_00_00_eng\...\bsl_host_mcu_i2c 

Target : MSPM0L1304SDYYR (SOT-23-THN package)

             C:\ti\mspm0_sdk_1_10_01_05\examples\nortos\LP_MSPM0L1306\bsl\bsl_software_invoke

The HW invocation was disabled in host example, and the connection was checked when the target entered BSL.

However, there is no communication with BSL.

Under the same conditions, if only the target is changed from MSPM0L1304SDYYR to LP-MSPM0G3507, BSL responds normally.

1. When the MSPM0L1304 enters BSL, will the NRST function be disabled for I2C communication?

When using PA1/NRST(No.4 in 16pin SOT-23-THN) as the I2C function, I2C will not operate properly unless the NRST function is disabled.

2. If the target is in BSL and the Host makes a HW invocation sequence, will the target enter BSL again?

3. How to wakeup when BSL enters sleep mode?

Hi, 

Additionally, the host  couldn't get a BSL response from the blank device. 

bsl_err = Host_BSL_Connection();  in main.c


BSL_error_t Host_BSL_Connection(void)
{
BSL_error_t bsl_err = eBSL_success;
i2c_error_t i2c_ack;
uint32_t ui32CRC;

BSL_TX_buffer[0] = (uint8_t) PACKET_HEADER;
BSL_TX_buffer[1] = LSB(CMD_BYTE);
BSL_TX_buffer[2] = 0x00;
BSL_TX_buffer[3] = CMD_CONNECTION;

// Calculate CRC on the PAYLOAD (CMD + Data)
ui32CRC = softwareCRC(&BSL_TX_buffer[3], CMD_BYTE);
// Insert the CRC into the packet
*(uint32_t *) &BSL_TX_buffer[HDR_LEN_CMD_BYTES] = ui32CRC;

i2c_ack = I2C_writeBuffer(BSL_TX_buffer, HDR_LEN_CMD_BYTES + CRC_BYTES);
I2C_readBuffer(BSL_RX_buffer, 1);  <-- pending
if (i2c_ack != uart_noError) {
TurnOnErrorLED();
}
return (bsl_err);
}

Thanks.

  • Hi SY,

    First of all, please use the production sample and use SDK 1.10 for test (both for host and target). Because the bsl source code has been done few modifications which may cause connection failed.

    1. When the MSPM0L1304 enters BSL, will the NRST function be disabled for I2C communication?

    Actually, I don't know this. It need do verfication.

    2. If the target is in BSL and the Host makes a HW invocation sequence, will the target enter BSL again?

    If you reset device, then it will enter again. If not, it won't.

    3. How to wakeup when BSL enters sleep mode?

    Repower the device without bsl hardware invoke.

    Additionally, the host  couldn't get a BSL response from the blank device. 

    Please use G production sample as the host and test again.

    B.R.

    Sal

  • Hi,

    The target is production sample and the host is the rockchip processor on customer's board.

    And I only have the early sample of EVM.

    the Host just communicates with BSL by I2C, it is not related to the production sample.

    The problem is that the target cannot enter BSL.

    Is there a way to know if the device has entered BSL mode except for I2C communication?

      

  • Hi SY,

    I suggest you get the production sample LaunchPad for host test.

    the Host just communicates with BSL by I2C, it is not related to the production sample.

    The bsl response is different, so you should modify them.

    You can refer to SDK 1.10 and check SDK 0.58 for the difference. (SDK1.10 is not used for early sample, so you should modify the code in SDK 0.58).

    Is there a way to know if the device has entered BSL mode except for I2C communication?

    A simple way to check that is to set a GPIO output high in target, and if it enter bsl mode, then it won't keep high.

    B.R.

    Sal

  • Hi, 

    First of all, How can I get the production sample of G series?

    Status of G series is PREVIEW.

    Does TI already have production samples of the G Series?

    Anyway, Can I send a e-mail? I already know your e-mail.

    A schematic is needed to discuss this issue.

  • Hi SY,

    First of all, How can I get the production sample of G series?

    Status of G series is PREVIEW.

    Does TI already have production samples of the G Series?

    Currently not RTM in ti.com. You could connect TI regional office for further support.

    Anyway, Can I send a e-mail? I already know your e-mail.

    A schematic is needed to discuss this issue.

    Sure, you can. After this weekend we can discuss more about this thread.

    B.R.

    Sal