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.

MSP432E401Y: BSL-Scripter fails when additional traffic is on the ethernet line

Part Number: MSP432E401Y

Hello forum!

A MSP432E401Y should get new firmware from a revolutioin  pi using the bsl-scripter.There's an internal network with the pi, the msp432 and some other devices, communicating via modbus. But  flashing new firmware doesn't work.

So I build this on my desk: A PC, a rapberry pi and the PCB with the MSP432 are connected via a switch. When the pi only sends the firmware to the MSP, it works.

So additional traffic has to be added. A Browser of the PC shows the http-Site from the MCU, which is updated every ten seconds.Addtional traffic was added this way. And the flashing does not work any more. The output of the Scipter was shown on the terminal:

      [ACK_ERROR_MESSAGE]Unknown Error!
      Time elapsed of writing 0 bytes : 20.43 seconds
      Speed of writing data :0(kB/s)

The receiving of a tftp-package wasn't acknowledget. But why does the flashing over the ethernet only works, if there's no additional traffic on the line?

On the mcu there's the bootloader serial_emac_flash.

Thanks in advance,

Guenther

  • Hello Guenther,

    We don't have experience with the Raspberry Pi and how it handles the Ethernet interface. I haven't heard of an Ethernet traffic issue with boot loading before. Can you use a WireShark protocol sniffer to observe how the Raspberry Pi handles the additional traffic and provide a log of that for analysis?

    Best Regards,

    Ralph Jacobi

  • I've recorded a WireShark protocoll and are looking now how to upload the file.

  • I'm sorry. I can't upload the file either via Insert nor via drag and drop. I tested it with Windows 10 and with Ubuntu. I'll look for alternatives.

    BR Guenther

  • The IP-addresses of the network:

    PC:           192.168.1.5
    Rpi:          192.168.1.20
    MSP432: 192.168.1.10

    Here is the part of the Wireshark file (exported to a Textfie):

    in italic and bold: PC asks for the address that was used by the msp
    in Bold: detction of the duplicate use of the ip-address


    No.     Time           Source                Destination           Protocol Length Info
       1476 36.616916080   192.168.1.10          192.168.1.20          TFTP     60     Acknowledgement, Block: 525

    Frame 1476: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: TexasIns_00:64:00 (00:1a:b6:00:64:00), Dst: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8)
    Internet Protocol Version 4, Src: 192.168.1.10, Dst: 192.168.1.20
    User Datagram Protocol, Src Port: 13633, Dst Port: 51271
    Trivial File Transfer Protocol

    No.     Time           Source                Destination           Protocol Length Info
       1477 36.623087330   192.168.1.20          192.168.1.10          TFTP     558    Data Packet, Block: 526

    Frame 1477: 558 bytes on wire (4464 bits), 558 bytes captured (4464 bits) on interface eth0, id 0
    Ethernet II, Src: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8), Dst: TexasIns_00:64:00 (00:1a:b6:00:64:00)
    Internet Protocol Version 4, Src: 192.168.1.20, Dst: 192.168.1.10
    User Datagram Protocol, Src Port: 51271, Dst Port: 13633
    Trivial File Transfer Protocol
    Data (512 bytes)

    0000  38 bd c0 46 00 c0 0e 40 c3 01 00 80 b0 c1 02 20   8..F...@.......
    0010  5c 33 06 00 e0 c3 02 20 ad f1 10 0d 02 92 01 91   \3..... ........
    ...
    01e0  00 00 00 00 00 00 00 00 18 3e 06 00 28 3e 06 00   .........>..(>..
    01f0  04 3e 06 00 19 f6 04 00 2d e9 f0 4f ad f1 2c 0d   .>......-..O..,.

    No.     Time           Source                Destination           Protocol Length Info
       1478 36.624204048   192.168.1.5           192.168.1.20          TCP      60     60682 → 22 [ACK] Seq=1 Ack=3081 Win=8791 Len=0

    Frame 1478: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: 00:e1:31:00:20:6f (00:e1:31:00:20:6f), Dst: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8)
    Internet Protocol Version 4, Src: 192.168.1.5, Dst: 192.168.1.20
    Transmission Control Protocol, Src Port: 60682, Dst Port: 22, Seq: 1, Ack: 3081, Len: 0

    No.     Time           Source                Destination           Protocol Length Info
       1479 36.633057642   192.168.1.10          192.168.1.20          TFTP     60     Acknowledgement, Block: 526

    Frame 1479: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: TexasIns_00:64:00 (00:1a:b6:00:64:00), Dst: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8)
    Internet Protocol Version 4, Src: 192.168.1.10, Dst: 192.168.1.20
    User Datagram Protocol, Src Port: 13633, Dst Port: 51271
    Trivial File Transfer Protocol

    No.     Time           Source                Destination           Protocol Length Info
       1480 36.639227017   192.168.1.20          192.168.1.10          TFTP     558    Data Packet, Block: 527

    Frame 1480: 558 bytes on wire (4464 bits), 558 bytes captured (4464 bits) on interface eth0, id 0
    Ethernet II, Src: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8), Dst: TexasIns_00:64:00 (00:1a:b6:00:64:00)
    Internet Protocol Version 4, Src: 192.168.1.20, Dst: 192.168.1.10
    User Datagram Protocol, Src Port: 51271, Dst Port: 13633
    Trivial File Transfer Protocol
    Data (512 bytes)

    0000  16 9e 14 9d 81 46 98 46 92 46 0c 46 01 a8 13 f0   .....F.F.F.F....
    0010  cd f9 15 9f e8 5d 21 46 52 46 43 46 00 90 48 46   .....]!FRFCF..HF
    ...
    01e0  d9 f8 08 50 4f f0 00 08 4f f0 0a 0a 17 46 0c 46   ...PO...O....F.F
    01f0  00 e0 64 1c 00 2f 3a d0 28 68 50 21 13 f0 1e fb   ..d../:.(hP!....

    No.     Time           Source                Destination           Protocol Length Info
       1481 36.649196288   192.168.1.10          192.168.1.20          TFTP     60     Acknowledgement, Block: 527

    Frame 1481: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: TexasIns_00:64:00 (00:1a:b6:00:64:00), Dst: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8)
    Internet Protocol Version 4, Src: 192.168.1.10, Dst: 192.168.1.20
    User Datagram Protocol, Src Port: 13633, Dst Port: 51271
    Trivial File Transfer Protocol

    No.     Time           Source                Destination           Protocol Length Info
       1482 36.655360090   192.168.1.20          192.168.1.10          TFTP     558    Data Packet, Block: 528

    Frame 1482: 558 bytes on wire (4464 bits), 558 bytes captured (4464 bits) on interface eth0, id 0
    Ethernet II, Src: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8), Dst: TexasIns_00:64:00 (00:1a:b6:00:64:00)
    Internet Protocol Version 4, Src: 192.168.1.20, Dst: 192.168.1.10
    User Datagram Protocol, Src Port: 51271, Dst Port: 13633
    Trivial File Transfer Protocol
    Data (512 bytes)

    0000  48 46 21 46 0b f0 e2 fd b0 f1 ff 3f 03 d1 28 68   HF!F.......?..(h
    0010  13 f0 09 fd 20 70 70 78 c0 08 03 d3 28 68 50 21   .... ppx....(hP!
    ...
    01e0  a9 fc 17 48 24 21 0b f0 a5 fc 16 48 10 21 0b f0   ...H$!.....H.!..
    01f0  a1 fc 15 48 10 21 0b f0 9d fc 13 f0 e5 fd 02 20   ...H.!.........

    No.     Time           Source                Destination           Protocol Length Info
       1483 36.665321184   192.168.1.10          192.168.1.20          TFTP     60     Acknowledgement, Block: 528

    Frame 1483: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: TexasIns_00:64:00 (00:1a:b6:00:64:00), Dst: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8)
    Internet Protocol Version 4, Src: 192.168.1.10, Dst: 192.168.1.20
    User Datagram Protocol, Src Port: 13633, Dst Port: 51271
    Trivial File Transfer Protocol

    No.     Time           Source                Destination           Protocol Length Info
       1484 36.670972850   00:e1:31:00:20:6f     Broadcast             ARP      60     Who has 192.168.1.10? Tell 192.168.1.5

    Frame 1484: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: 00:e1:31:00:20:6f (00:e1:31:00:20:6f), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Address Resolution Protocol (request)

    No.     Time           Source                Destination           Protocol Length Info
       1485 36.674291548   192.168.1.20          192.168.1.10          TFTP     558    Data Packet, Block: 529

    Frame 1485: 558 bytes on wire (4464 bits), 558 bytes captured (4464 bits) on interface eth0, id 0
    Ethernet II, Src: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8), Dst: TexasIns_00:64:00 (00:1a:b6:00:64:00)
    Internet Protocol Version 4, Src: 192.168.1.20, Dst: 192.168.1.10
    User Datagram Protocol, Src Port: 51271, Dst Port: 13633
    Trivial File Transfer Protocol
    Data (512 bytes)

    0000  20 60 10 bd 03 20 02 a1 06 f0 36 fb 10 bd c0 46    `... ....6....F
    0010  45 78 65 63 53 74 61 72 74 3a 20 41 6c 72 65 61   ExecStart: Alrea
    ...
    01e0  05 26 16 60 20 46 0a 46 11 e0 03 2d 15 db 0c 68   .&.` F.F...-...h
    01f0  45 78 86 78 e4 1c f2 e7 02 2d 0e db 0c 68 46 78   Ex.x.....-...hFx

    No.     Time           Source                Destination           Protocol Length Info
       1486 36.684275611   TexasIns_00:64:00     Broadcast             ARP      60     Who has 192.168.1.20? Tell 192.168.1.10 (duplicate use of 192.168.1.10 detected!)

    Frame 1486: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: TexasIns_00:64:00 (00:1a:b6:00:64:00), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Address Resolution Protocol (request)
    [Duplicate IP address detected for 192.168.1.10 (00:1a:b6:00:64:00) - also in use by 50:17:e9:10:00:ff (frame 336)]

    No.     Time           Source                Destination           Protocol Length Info
       1487 36.684307017   Raspberr_da:cb:a8     TexasIns_00:64:00     ARP      42     192.168.1.20 is at b8:27:eb:da:cb:a8 (duplicate use of 192.168.1.10 detected!)

    Frame 1487: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface eth0, id 0
    Ethernet II, Src: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8), Dst: TexasIns_00:64:00 (00:1a:b6:00:64:00)
    Address Resolution Protocol (reply)
    [Duplicate IP address detected for 192.168.1.10 (00:1a:b6:00:64:00) - also in use by 50:17:e9:10:00:ff (frame 336)]

    No.     Time           Source                Destination           Protocol Length Info
       1488 36.936474465   TexasIns_00:64:00     Broadcast             ARP      60     Who has 192.168.1.5? Tell 192.168.1.10 (duplicate use of 192.168.1.10 detected!)

    Frame 1488: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: TexasIns_00:64:00 (00:1a:b6:00:64:00), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Address Resolution Protocol (request)
    [Duplicate IP address detected for 192.168.1.10 (00:1a:b6:00:64:00) - also in use by 50:17:e9:10:00:ff (frame 336)]

    No.     Time           Source                Destination           Protocol Length Info
       1489 37.099787850   192.168.1.20          192.168.1.5           SSH      98     Server: Encrypted packet (len=44)

    Frame 1489: 98 bytes on wire (784 bits), 98 bytes captured (784 bits) on interface eth0, id 0
    Ethernet II, Src: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8), Dst: 00:e1:31:00:20:6f (00:e1:31:00:20:6f)
    Internet Protocol Version 4, Src: 192.168.1.20, Dst: 192.168.1.5
    Transmission Control Protocol, Src Port: 22, Dst Port: 60682, Seq: 3081, Ack: 1, Len: 44
    SSH Protocol

    No.     Time           Source                Destination           Protocol Length Info
       1490 37.149624100   192.168.1.5           192.168.1.20          TCP      60     60682 → 22 [ACK] Seq=1 Ack=3125 Win=8791 Len=0

    Frame 1490: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: 00:e1:31:00:20:6f (00:e1:31:00:20:6f), Dst: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8)
    Internet Protocol Version 4, Src: 192.168.1.5, Dst: 192.168.1.20
    Transmission Control Protocol, Src Port: 60682, Dst Port: 22, Seq: 1, Ack: 3125, Len: 0

    No.     Time           Source                Destination           Protocol Length Info
       1491 37.228454829   fd51:42f8:caae:d92e::ff ff02::1:ff00:1        ICMPv6   86     Neighbor Solicitation for fd51:42f8:caae:d92e::1 from b8:27:eb:da:cb:a8

    Frame 1491: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface eth0, id 0
    Ethernet II, Src: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8), Dst: IPv6mcast_ff:00:00:01 (33:33:ff:00:00:01)
    Internet Protocol Version 6, Src: fd51:42f8:caae:d92e::ff, Dst: ff02::1:ff00:1
    Internet Control Message Protocol v6

    No.     Time           Source                Destination           Protocol Length Info
       1492 37.619336860   192.168.1.20          192.168.1.5           SSH      98     Server: Encrypted packet (len=44)

    Frame 1492: 98 bytes on wire (784 bits), 98 bytes captured (784 bits) on interface eth0, id 0
    Ethernet II, Src: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8), Dst: 00:e1:31:00:20:6f (00:e1:31:00:20:6f)
    Internet Protocol Version 4, Src: 192.168.1.20, Dst: 192.168.1.5
    Transmission Control Protocol, Src Port: 22, Dst Port: 60682, Seq: 3125, Ack: 1, Len: 44
    SSH Protocol


  • My guess:

    The ip-address that was used for http and modpoll communication should not by used inside the txt-file, which the BSL-scripter gets. There should be used another one. Or if the http or modpoll tasks asks for an update, it will use the same ip-address already used by the scripter.

    The .txt-file for the BSL-Scripter:
    We used the IP- and MAC-addresses that were stored in the flash in the text file for the bsl-scripter. The same ones that were used by the application.

    As I read a few minutes before: SLAU 746 says, that the MAC-address should be used, which is stored in the USER0 and USER1 registers. But I've found no information regarding the IP-address.

    Here is the content of the .txt file:

    LOG
    MODE E4xx Ethernet MAC=50:17:e9:10:00:fd IPClient=192.168.1.10 IPServer=192.168.1.20
    VERBOSE
    RX_DATA_BLOCK_32 VO_SSM20.txt

    This script should work. Or do anyone see mistakes?

    I'll test it with the MAC-adress stored in the USER registers. Replacing the MAC-address with FF:FF:FF:FF:FF:FF if there hasn't been stored a new address yet.

    BR Guenther

  • Hi,

      I'm a bit confused with the log. In the log it shows the below transaction. It seems to me TexasIns_00:64:00. I think Texasins will something like 08:00:28 as the OUI assigned to TI. The complete MAC address is probably something like 08:00:28:00:64:00. However, in your script file you have MAC=50:17:e9:10:00:fd. They are not consistent to me. 

    No.     Time           Source                Destination           Protocol Length Info
       1486 36.684275611   TexasIns_00:64:00     Broadcast             ARP      60     Who has 192.168.1.20? Tell 192.168.1.10 (duplicate use of 192.168.1.10 detected!)

    I'll test it with the MAC-adress stored in the USER registers. Replacing the MAC-address with FF:FF:FF:FF:FF:FF if there hasn't been stored a new address yet.

    A virgin MSP432E device will not have a preprogrammed MAC address unlike the LaunchPad. You will need to program the MAC address yourself. Once you program the MAC address, they are stored in USER0/USER1 registers. 

  • MAC=50:17:e9:10:00:fd

    This is our default Emergency MAC address. The USER0/USER1 registers aren't used yet.

  • Hi,

      Please refer to bl_emac.c file for details. It looks like your USER0/USER1 are not programmed with the MAC address and hence it defaults to 00:1a:b6:00:64:00 as shown in your log. 

  • Hi Charles,

    thanks for your answer. I changed the MAC-address inside the command file to that suggested number. Before that test the MAC-Broadcast (FF:FF:FF:FF:FF:FF) was used.

    LOG
    MODE E4xx Ethernet MAC=00:1a:b6:00:64:00 IPClient=192.168.1.10 IPServer=192.168.1.20
    VERBOSE
    RX_DATA_BLOCK_32 VO_SSM20.txt

    But that did only work if there's no additional traffic on the ehternet line.

    pi@Amboss:~ $ tail -6 update_log.txt
    <00> <00> <72> <6d> <77>
    [00] [00]
    [ACK_ERROR_MESSAGE]Unknown Error!
    Time elapsed of writing 0 bytes : 14.29 seconds
    Speed of writing data :0(kB/s)

    BR Guenther

  • Hi,

      I suppose you already have an application running and after receiving commands from rapberry pi in the midst of other Ethernet traffics, the MCU does not jump to the bootloader. Is this a correct understanding?  

  • Hi,

    there is already an application running. The jumping to the bootloader works. During the flash process on error occurs if there is additional traffic on the ethernet line. The MSP432 communicates with an IP-address, the command to jump to the bootloader is recieved also via the ethenet. Maybe ginving the MSP432 another IP address which is not used by anyone else (and was not used by the MSP432 in the main application)  for the flash process could be an option. Some first tests have been succesful, but I'm not sure if it really works.

    BR Guenther

  • Hi,

      Is your PC acting as the BootP and TFTP server? It seems to me that PC is downloading firmware to MSP432 but you also have the pi sending firmware to MSP432. Sorry, I'm still not clear with the entire setup. I'm also not sure what is the cause of the problem. 

  • Hi,

    the raspberry pi is acting as the BootP and TFTP server. The raspberry pi also sends the firmware to the MSP432.

    The only task for the PC is to add additional traffic.

  • Hi.

      Reading your log again, who owns the MAC address of 50:17:e9:10:00:ff? For some reason this host ( 50:17:e9:10:00:ff ) also has the same IP address equal to 192:168.1.10 which is assigned to MSP432. What I can tell from you log is that:

    00:e1:31:00:20:6f - PC

    b8:27:eb:da:cb:a8 - Pi

    00:1a:b6:00:64:00 - MSP432E

    You need to look at the frame #336 and see who is 50:17:e9:10:00:ff? If this is some other host who acquires its IP address from the DHCP server on the network then you cannot reuse this same address for MSP432.  MSP432E bootloader does not have the code to send DHCP request. It only sends BootP request. BootP is a manual configuration. Normally to run a Ethernet bootloader, you would need to run a Ethernet example that has the stack to send a DHCP request and acquire DHCP address. You can run the example such as C:\ti\simplelink_msp432e4_sdk_4_20_00_12\examples\nortos\MSP_EXP432E401Y\lwip\ethernet_with_lwip or any Ethernet examples that acquire DHCP address. This is a http server example and in the terminal window it will display the IP address that it acquires from the DHCP sever. Record this IP address and use this address for MSP432E. 

    No.     Time           Source                Destination           Protocol Length Info
       1486 36.684275611   TexasIns_00:64:00     Broadcast             ARP      60     Who has 192.168.1.20? Tell 192.168.1.10 (duplicate use of 192.168.1.10 detected!)

    Frame 1486: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface eth0, id 0
    Ethernet II, Src: TexasIns_00:64:00 (00:1a:b6:00:64:00), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Address Resolution Protocol (request)
    [Duplicate IP address detected for 192.168.1.10 (00:1a:b6:00:64:00) - also in use by 50:17:e9:10:00:ff (frame 336)]

    No.     Time           Source                Destination           Protocol Length Info
       1487 36.684307017   Raspberr_da:cb:a8     TexasIns_00:64:00     ARP      42     192.168.1.20 is at b8:27:eb:da:cb:a8 (duplicate use of 192.168.1.10 detected!)

    Frame 1487: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface eth0, id 0
    Ethernet II, Src: Raspberr_da:cb:a8 (b8:27:eb:da:cb:a8), Dst: TexasIns_00:64:00 (00:1a:b6:00:64:00)
    Address Resolution Protocol (reply)
    [Duplicate IP address detected for 192.168.1.10 (00:1a:b6:00:64:00) - also in use by 50:17:e9:10:00:ff (frame 336)]

  • Hi,

    before we started the updating, we stop the dhcp service. By the way, our MSP432E401Y has a static ip-address.

    The application before the update-process has the same ip-address as the bootloader. So if there is additional traffic on the ethernet line, that tries to communicate with this ip-address, then the error would occur.

    The ip-address wasn't programmed in the user registers, so that the bootloader told the MSP to take the the default MAC-address. And that was differed from the one that was used for ethernet communication before.

    If additional traffic were disabled, then this error would'nt occur. But this can't be assumed.

    A way that seemes to work under each condition is to use an additional ip-address. Not used by the MSP before the updating process and not used by anyone else in the network. After the MSP has send the BOOTP request to the revolution pi, raspberry pi or pc, it will get the ip-address for the update process in the BOOTP reply. And this address is defined in the instruction.txt file, that is given to the bsl-scripter as argument.

    BR Guenther