BSL430.NET  1.3.4
Namespaces | Classes | Enumerations | Functions
BSL430_NET Namespace Reference

Classes

class  BSL430NET
 BSL430.NET is cross-platform toolkit to manage memory of MSP430 MCUs via UART (FTDI, libftdi), USB or Serial (COM) port. It is a cheap replacement for stock TI MSP-FET programmer without debug capability. It can Upload, Download, Erase and Scan. More...
 
class  Bsl430NetDevice
 BSL430.NET Device node serve as a generic device indentificator with field 'Name' as a key. More...
 
class  Bsl430NetEventArgs
 BSL430.NET Event Args. Progress is double percentage and Report is current action. More...
 
class  Bsl430NetException
 BSL430.NET Exception is generic Exception extended with Status object. More...
 
class  Extensions
 Extension class with some helpful methods. More...
 
interface  IBsl430Net
 Public interface of BSL430.NET library. More...
 
class  Report
 Report is result of an action block with Name, Result and Timestamp. More...
 
class  ScanAllResult
 Scan All Result wraps Status and List of Devices - Bsl430NetDevice childs (FTDI, Libftdi, Serial, USB). More...
 
class  ScanResult
 Scan Result wraps Status and List of Devices - Bsl430NetDevice childs (FTDI / Libftdi / Serial / USB). More...
 
class  Status
 Status class is an Error Cluster with int, bool and string status with Core and UART messages. More...
 
class  StatusEx
 StatusEx is Status extended with Report List, returned as a result of main public methods. More...
 

Enumerations

enum  Mode : byte { Mode.UART_FTD2XX, Mode.UART_libftdi, Mode.UART_Serial, Mode.USB_HID }
 Main mode which each library instance can operate in, explicitly stated in constructor or derived from device. First word UART/USB declares the target MCU data interface. Please see MCU datasheet for more info. Second word declares the library, which handles communication. This library needs to be present. More...
 
enum  BaudRate : int {
  BaudRate.BAUD_9600 = 9600, BaudRate.BAUD_19200 = 19200, BaudRate.BAUD_38400 = 38400, BaudRate.BAUD_57600 = 57600,
  BaudRate.BAUD_115200 = 115200
}
 Baud rate value. Default is 9600 bps (9600). Setting other than default is supported only by some BSL versions. More...
 
enum  InvokeMechanism : byte { InvokeMechanism.SHARED_JTAG = 0, InvokeMechanism.DEDICATED_JTAG = 1, InvokeMechanism.MANUAL = 2 }
 Entry sequence on MCU pins which forces the target to start program execution at the BSL RESET vector. Default is SHARED_JTAG (0) - DTR to RST and RTS to TEST pin. More...
 
enum  MCU : byte {
  MCU.MSP430_F1xx = 0, MCU.MSP430_F2xx = 1, MCU.MSP430_F4xx = 2, MCU.MSP430_G2xx3 = 3,
  MCU.MSP430_F5xx = 4, MCU.MSP430_F543x_A = 5, MCU.MSP430_F543x_NON_A = 6, MCU.MSP430_F6xx = 7,
  MCU.MSP430_FR5xx = 8, MCU.MSP430_FR6xx = 9, MCU.MSP430_FR2x33 = 10, MCU.MSP430_FR231x = 11,
  MCU.MSP430_FR235x = 12, MCU.MSP430_FR215x = 13, MCU.MSP430_FR413x = 14, MCU.MSP430_FR211x = 15,
  MCU.MSP432_P401R = 16
}
 MSP430/432 MCU device family. Default is MSP430_F5xx (4). More...
 
enum  ScanOptions : byte { ScanOptions.None = 0x0, ScanOptions.UsbHid_IgnoreTexasVid = 0x1, ScanOptions.Ftdi_IgnoreUnknownDev = 0x2 }
 [Flags] Scan Options adjust scanner behavior, use it like this: (UsbHid_IgnoreTexasVid | Ftdi_IgnoreUnknownDev) 'UsbHid_IgnoreTexasVid' forces scanner to ignore TI VID(0x2047) and get all USB HID devices present in system. 'Ftdi_IgnoreUnknownDev' forces scanner to ignore "unknown" type devices, that are most likely already connected. More...
 
enum  BslUartMessage : byte {
  BslUartMessage.ACK = 0x00, BslUartMessage.HeaderIncorrect = 0x51, BslUartMessage.ChecksumIncorrect = 0x52, BslUartMessage.PacketSizeZero = 0x53,
  BslUartMessage.PacketSizeOverflow = 0x54, BslUartMessage.UnknownError = 0x55, BslUartMessage.UnknownBaudRate = 0x56, BslUartMessage.NotAvailable = 0xFF
}
 BLS UART Message. If there are any errors with the data transmission, an error message is sent back. This message is sent only when 5xx or 6xx protocol version is used. More...
 
enum  BslCoreMessage : byte {
  BslCoreMessage.Success = 0x00, BslCoreMessage.FlashWriteCheckFail = 0x01, BslCoreMessage.FlashFailBitSet = 0x02, BslCoreMessage.VoltageChanged = 0x03,
  BslCoreMessage.BSLLocked = 0x04, BslCoreMessage.BSLPasswordError = 0x05, BslCoreMessage.ByteWriteForbidden = 0x06, BslCoreMessage.UnknownCommand = 0x07,
  BslCoreMessage.PacketLengthOverflow = 0x08, BslCoreMessage.NotAvailable = 0xFF
}
 BSL Core Message is a response to Erase or Download action. (Mass Erase, TX Data Block) This message is sent only when 5xx or 6xx protocol version is used. More...
 
enum  ReportResult { ReportResult.SUCCESS, ReportResult.SKIPPED, ReportResult.FAILED, ReportResult.PENDING }
 Report result. More...
 

Functions

delegate void Bsl430NetEventHandler (object source, Bsl430NetEventArgs e)
 BSL430.NET Event handler. More...
 

Enumeration Type Documentation

◆ BaudRate

enum BSL430_NET.BaudRate : int
strong

Baud rate value. Default is 9600 bps (9600). Setting other than default is supported only by some BSL versions.

Enumerator
BAUD_9600 

9600 bps

BAUD_19200 

19200 bps

BAUD_38400 

38400 bps

BAUD_57600 

57600 bps

BAUD_115200 

115200 bps

◆ BslCoreMessage

enum BSL430_NET.BslCoreMessage : byte
strong

BSL Core Message is a response to Erase or Download action. (Mass Erase, TX Data Block) This message is sent only when 5xx or 6xx protocol version is used.

Enumerator
Success 

Operation Successful.

FlashWriteCheckFail 

Flash Write Check Failed. After programming, a CRC is run on the programmed data. If the CRC does not match the expected result, this error is returned.

FlashFailBitSet 

Flash Fail Bit Set. An operation set the FAIL bit in the flash controller (see the MSP430x5xx and MSP430x6xx Family User's Guide for more details on the flash fail bit).

VoltageChanged 

Voltage Change During Program. The VPE was set during the requested write operation (see the MSP430x5xx and MSP430x6xx Family User's Guide for more details on the VPE bit).

BSLLocked 

BSL Locked. The correct password has not yet been supplied to unlock the BSL.

BSLPasswordError 

BSL Password Error. An incorrect password was supplied to the BSL when attempting an unlock.

ByteWriteForbidden 

Byte Write Forbidden. This error is returned when a byte write is attempted in a flash area.

UnknownCommand 

Unknown Command. The command given to the BSL was not recognized.

PacketLengthOverflow 

Packet Length Exceeds Buffer Size. The supplied packet length value is too large to be held in the BSL receive buffer.

NotAvailable 

BSL Core Message is not available.

◆ BslUartMessage

enum BSL430_NET.BslUartMessage : byte
strong

BLS UART Message. If there are any errors with the data transmission, an error message is sent back. This message is sent only when 5xx or 6xx protocol version is used.

Enumerator
ACK 

ACK - Success.

HeaderIncorrect 

Header incorrect. The packet did not begin with the required 0x80 value.

ChecksumIncorrect 

Checksum incorrect. The packet did not have the correct checksum value.

PacketSizeZero 

Packet size zero. The size for the BSL core command was given as 0.

PacketSizeOverflow 

Packet size exceeds buffer. The packet size given is too big for the RX buffer.

UnknownError 

Unknown UART error.

UnknownBaudRate 

Unknown baud rate. The supplied data for baud rate change is not a known value.

NotAvailable 

BSL UART Message is not available.

◆ InvokeMechanism

enum BSL430_NET.InvokeMechanism : byte
strong

Entry sequence on MCU pins which forces the target to start program execution at the BSL RESET vector. Default is SHARED_JTAG (0) - DTR to RST and RTS to TEST pin.

Enumerator
SHARED_JTAG 

Only UART mode and MCU with shared JTAG pins. Tie DTR to RST and RTS to TEST pin.

DEDICATED_JTAG 

Only UART mode and MCU with dedicated JTAG pins. Tie DTR to RST and RTS to TCK pin.

MANUAL 

Only USB mode, where BSL is invoked either of the following conditions are met:

The MCU is powered up by USB and the reset vector is blank.

The MCU powers up with PUR pin tied to VUSB.

◆ MCU

enum BSL430_NET.MCU : byte
strong

MSP430/432 MCU device family. Default is MSP430_F5xx (4).

Enumerator
MSP430_F1xx 

MSP430 F1xx ('1xx, 2xx, 4xx' protocol, 20B password)

MSP430_F2xx 

MSP430 F2xx ('1xx, 2xx, 4xx' protocol, 20B password)

MSP430_F4xx 

MSP430 F4xx ('1xx, 2xx, 4xx' protocol, 20B password)

MSP430_G2xx3 

MSP430 G2xx3 ('1xx, 2xx, 4xx' protocol, 20B password)

MSP430_F5xx 

MSP430 F5xx ('5xx, 6xx' protocol, 32B password)

MSP430_F543x_A 

MSP430 F543x [with A] ('5xx, 6xx' protocol, 32B password)

MSP430_F543x_NON_A 

MSP430 F543x [non A] ('5xx, 6xx' protocol, 16B password)

MSP430_F6xx 

MSP430 F6xx ('5xx, 6xx' protocol, 32B password)

MSP430_FR5xx 

MSP430 FR5xx ('5xx, 6xx' protocol, 32B password)

MSP430_FR6xx 

MSP430 FR6xx ('5xx, 6xx' protocol, 32B password)

MSP430_FR2x33 

MSP430 FR2x33 ('5xx, 6xx' protocol, 32B password)

MSP430_FR231x 

MSP430 FR231x ('5xx, 6xx' protocol, 32B password)

MSP430_FR235x 

MSP430 FR235x ('5xx, 6xx' protocol, 32B password)

MSP430_FR215x 

MSP430 FR215x ('5xx, 6xx' protocol, 32B password)

MSP430_FR413x 

MSP430 FR413x ('5xx, 6xx' protocol, 32B password)

MSP430_FR211x 

MSP430 FR211x ('5xx, 6xx' protocol, 32B password)

MSP432_P401R 

MSP432 P401R ('5xx, 6xx' protocol, 32B password)

◆ Mode

enum BSL430_NET.Mode : byte
strong

Main mode which each library instance can operate in, explicitly stated in constructor or derived from device. First word UART/USB declares the target MCU data interface. Please see MCU datasheet for more info. Second word declares the library, which handles communication. This library needs to be present.

Enumerator
UART_FTD2XX 

UART mode via proprietary FTD2XX library requires ftdibus.sys driver

UART_libftdi 

UART mode via opensource libftdi library requires libusb

UART_Serial 

UART mode via SerialPortStream library

USB_HID 

USB mode via HidSharp and LibUsbDotNet library

◆ ReportResult

Report result.

Enumerator
SUCCESS 

Action headlined by Report Name completed successfully.

SKIPPED 

Action headlined by Report Name was skipped.

FAILED 

Action headlined by Report Name failed.

PENDING 

Action headlined by Report Name is currently in progress.

◆ ScanOptions

enum BSL430_NET.ScanOptions : byte
strong

[Flags] Scan Options adjust scanner behavior, use it like this: (UsbHid_IgnoreTexasVid | Ftdi_IgnoreUnknownDev) 'UsbHid_IgnoreTexasVid' forces scanner to ignore TI VID(0x2047) and get all USB HID devices present in system. 'Ftdi_IgnoreUnknownDev' forces scanner to ignore "unknown" type devices, that are most likely already connected.

Enumerator
None 

[Flag] Default value None has zero effect on scanner.

UsbHid_IgnoreTexasVid 

[Flag] Forces scanner to ignore TI VID(0x2047) and get all USB HID devices present in system.

Ftdi_IgnoreUnknownDev 

[Flag] Forces scanner to ignore "unknown" type devices, that are most likely already connected.

Function Documentation

◆ Bsl430NetEventHandler()

delegate void BSL430_NET.Bsl430NetEventHandler ( object  source,
Bsl430NetEventArgs  e 
)

BSL430.NET Event handler.