Quantcast
Channel: MSP low-power microcontroller forum - Recent Threads
Viewing all 22077 articles
Browse latest View live

MSP430FR6047: heat meter, water flow metering on EVM430FR6047, ADC

$
0
0

Part Number: MSP430FR6047

I don't see any A/D input connectors on the EVM board, yet the '6047 data sheet shows a 16 channel, 12bit A/D (delta sigma?) on it.  There are a few reference designs for heat meters using this EVM board that have the sensors plug in to the booster pack connections using external ADC devices (or theTMP116 which does its own analog conversion).  Why?  Is the ADC on the '6047 unsuitable for this purpose?

Also is the temperature measurement needed for the water flow measurement solution?  I know that the accuracy of the TOF measurements can depend on knowing the temperature as this affects the density of water and the speed of sound though the medium.  But is this a significant factor in the measurement of the flow rate for water in plumbing, or is the possible error factor low enough to be ignored?


MSP430FR2522: Follow up to https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/830406

$
0
0

Part Number: MSP430FR2522

I actually do have follow up questions to this:

1. In 1.11 of http://www.ti.com/lit/ug/slau445i/slau445i.pdf, it states that there is a way to have an incorrect password mass erase this device.  And this is ONLY through the BSL signature feature and not available through JTAG itself?

2. If we want to use the JTAG lock with password option of 2.4 of http://www.ti.com/lit/ug/slau320ag/slau320ag.pdf, does that allow infinite attempts at the password?

2.a. Similar to #1 above, is there any way to use JTAG lock with password AND erase on failed password?

Thanks,

Tom

MSP430FR5994: need some guidance on FATFS operation

$
0
0

Part Number: MSP430FR5994

I am struggling understanding how the struct FIL gets its pointer to the filesystem (FATFS).

In the code sample, SDCardLib instantiates the filesystem with: 

FATFS fatfs;  //FatFs handle for current FatFs operation session

and just prior to that, the  FIL struct was instantiated as

static FIL fil;

fil holds the *fs pointer to the FATFS filesystem.

I understand that  f_open() is suppose to populate an empty fil object (It takes an empty fil object and a pointer to the path/filename), 

If so, then how does f_open()  get the filesystem fatfs handle (created in SdCardLib) so that it can assign it to the *fs pointer  in fil? If f_open() doesn't fill in the fs pointer, then how did FIL know where the pointer was if the SDCardLib object (holding the fatfs handle) was instantiated afterwards?

The ChaN website has a lot of useful information but I haven't found where it describes how FIL interacts with FATFS.

Some guidance here is most welcomed. thank you. 

CCS/MSP430F5529: MSP430F5229, LMX2595

$
0
0

Part Number: MSP430F5529

Tool/software: Code Composer Studio

Hi sir

1) In my application I am using LMX2595 IC to generate a frequency of 17Ghz over a bandwidth of 200Mhz. Now in order to achieve this we need to program the fractional divider which is in feedback path of VCO and phase detector. I had found that in the evaluation board of LMX2595 the TI had used MSP430F5529 controller. The data which we obtain from the TICS pro software is 24 bit long but the registers available in MSP430F5529 are 16 bit. Can I use two 16 bit controllers to load this data. If yes please let me know how do we interface these two controllers to work it as 32 bit.    

CCS/MSP430FR2355: problem with UART communication

$
0
0

Part Number: MSP430FR2355

Tool/software: Code Composer Studio

Hello,

I am trying to connect MSP430FR2355 with my PC through UART communication to echo characters entered by me through keyboard. I copied example code msp430fr235x_euscia0_uart_01.c from TI resource explorer to CCS v8 on my PC. As given in description,I should get echo of characters entered by me on CCS terminal but this is not working for me. Cursor is blinking but I am unable to enter any character on terminal.

Regards

Sourav Prasad

MSP430FR5969: Regaring RST pin in MSP430FR5969

$
0
0

Part Number: MSP430FR5969

Hi Team,

I have one doubt in RST pin in MSP430fr5969. I am sending LPM4.5 to active mode when giving interrupt to RST Pin by using RESET_VECTOR but it is not going to Active mode it is going to LPM3.5.and also it is not going to ISR . I am so confused can you please help me

MSP432E401Y: MSP432E401Y

$
0
0

Part Number: MSP432E401Y

Hi,

i am using MSP432EA01Y LAUNCHPAD with cc2650moda (BLE). When i connect MSP432EA01Y LAUNCHPAD using usb cable with my laptop i should get 3.3V or 5V from the pins which indicate voltage. When I measure voltage at that pins using multimeter i am not getting 3.3V or 5V .

Whats the issue or how to supply MSP432EA01Y LAUNCHPAD to get 3.3 V 

Thanks

MSP430FR6989: Use P1.1 as input for External Voltage Reference (VeRef+) on launchpad

$
0
0

Part Number: MSP430FR6989

I am trying to use P1.1 as input for external VeRef. I have removed the S1 on the launchpad and connected the external voltage source of 2048 mV. I set the P1SEL0 and P1SEL1 to BIT1. I also set the ADC12MCTL0 TO ADC12VRSEL_4.

However, I am not able read from P1.1. I am getting a reading of around 2048 from P1.1 even when I ground it. How can I use the P1.1 in the MSP430FR6989 launchpad for VeRef. Should I set REFOUT to 0 and REFON to 0?

Regards

Vijay 


CCS/MSP430G2553: How can I use LPM3 to generate a delay and wake up to some task

$
0
0

Part Number: MSP430G2553

Tool/software: Code Composer Studio

Hi,

I want to use low power mode of MSP430 and I would like to wake it up after 20 mins and read and send the data. What's the best way to achieve this ? 

I'm experimenting with LPM3. How can I achieve this using any LPM mode ?

MSP432E401Y: MSP432E401Y

$
0
0

Part Number: MSP432E401Y

Hello

i am using msp432e401y launch pad.  I supplied the board by usb (laptop) and through other cable via xds 110 debug probe via 10 pin jtag to launch pad.

But when i check test connection i get following error.

how to solve this erroir?

This error is generated by TI's USCIF driver or utilities.

The value is '-230' (0xffffff1a).
The title is 'SC_ERR_PATH_MEASURE'.

The explanation is:
The measured lengths of the JTAG IR and DR scan-paths are invalid.
This indicates that an error exists in the link-delay or scan-path.

[End: Texas Instruments XDS110 USB Debug Probe]

MSP430F4793: MSP430F4793、 internal AD

$
0
0

Part Number: MSP430F4793

Hi  sir

  May I ask the internal AD conversion analog voltage input range of MSP430F4793 whether the Vfsr value reference is relative to AVSS or 1/2vcc?

CCS/MSP430FR2311: MSP430FR2311 MSP430 i2c works abnormally in LPM4 mode

$
0
0

Part Number: MSP430FR2311

Tool/software: Code Composer Studio

           The MSP430FR2311 i2c works in slave mode, We burned the same program to 50 chips, and only two of them I2C work abnormally. but the i2c work well when in active mode.When I2C master wire data to the slave, it was found through simulation that UCRXIFG0_1 was set but entered the USCI_I2C_UCSTPIFG interrupt, and then entered the USCI_I2C_UCRXIFG0 interrupt, that is, the order of entering the interrupt was reversed.

MSP430FR2512: Capacitive Touch Design Question

$
0
0

Part Number: MSP430FR2512

My customer wonders how small PCB area msp430 capacitive touch solution can achieve to detect human hands from 5cm away? Do we have any formula to calculate PCB design vs. detection distance? 

Regards

Andre

MSP430FR6047: Problem with EUSCI_B1 I2C masterRxMultiple example

$
0
0

Part Number: MSP430FR6047

Hello,

I'm currently trying to get examle from MSPWare working on MSP430FR6047 platform. I want to use USCI_B1_BASE instead of USCI_B0_BASE, so I changed example so it should use EUSCI_B1_BASE, but when I check data lines with logic analyzer, they are in logic 1 without any data.  I tried also other examples and behavior is same.

Modified code is bellow.

Thank you,
Tadeas

/* --COPYRIGHT--,BSD
 * --/COPYRIGHT--*/
#include "driverlib.h"

//*****************************************************************************
//
//! i2c_master_rx_multi_int
//!
//! This example shows how to configure the I2C module as a master for
//! multi-byte reception with teh help of interrupts. The address of the slave module
//! that the master communicating with also set in this example. This example uses
//! the interrupt driven mode to receive data.
//!
//! This example uses the following peripherals and I/O signals.  You must
//! review these and change as needed for your own board:
//! - I2C peripheral
//! - GPIO Port peripheral (for I2C pins)
//! - SCL2
//! - SDA
//!
//! This example uses the following interrupt handlers.  To use this example
//! in your own application you must add these interrupt handlers to your
//! vector table.
//! - USCI_B0_VECTOR
//!
//
//*****************************************************************************

#define SLAVE_ADDRESS 0x10
//*****************************************************************************
//
//Specify Expected Receive data count.
//
//*****************************************************************************
#define RXCOUNT 0x05


//******************************************************************************
//  MSP430FR59xx Demo - USCI_B0 I2C Master RX multiple bytes from MSP430 Slave
//******************************************************************************
uint8_t RXData;
void main (void)
{
    WDT_A_hold(WDT_A_BASE);

    //Set DCO frequency to 1MHz
    CS_setDCOFreq(CS_DCORSEL_0,CS_DCOFSEL_0);
    //Set ACLK = VLO with frequency divider of 1
    CS_initClockSignal(CS_ACLK,CS_VLOCLK_SELECT,CS_CLOCK_DIVIDER_1);
    //Set SMCLK = DCO with frequency divider of 1
    CS_initClockSignal(CS_SMCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_1);
    //Set MCLK = DCO with frequency divider of 1
    CS_initClockSignal(CS_MCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_1);

    // Configure Pins for I2C
    //Set P1.6 and P1.7 as Secondary Module Function Input.
    /*

    * Select Port 8
    * Set Pin 5, 6 to input Secondary Module Function, (UCB1SDA, UCB1SCL).
    */
    GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_P8,
        GPIO_PIN5 + GPIO_PIN6,
        GPIO_SECONDARY_MODULE_FUNCTION
    );

    //Set P1.0 as an output pin.
    /*

     * Select Port 1
     * Set Pin 0 as output
     */
    GPIO_setAsOutputPin(
        GPIO_PORT_P1,
        GPIO_PIN0
    );

    /*
     * Disable the GPIO power-on default high-impedance mode to activate
     * previously configured port settings
     */
    PMM_unlockLPM5();

    EUSCI_B_I2C_initMasterParam param = {0};
    param.selectClockSource = EUSCI_B_I2C_CLOCKSOURCE_SMCLK;
    param.i2cClk = CS_getSMCLK();
    param.dataRate = EUSCI_B_I2C_SET_DATA_RATE_400KBPS;
    param.byteCounterThreshold = RXCOUNT;
    param.autoSTOPGeneration = EUSCI_B_I2C_SEND_STOP_AUTOMATICALLY_ON_BYTECOUNT_THRESHOLD;
    EUSCI_B_I2C_initMaster(EUSCI_B1_BASE, &param);

    //Specify slave address
    EUSCI_B_I2C_setSlaveAddress(EUSCI_B1_BASE,
        SLAVE_ADDRESS
        );

    //Set Master in receive mode
    EUSCI_B_I2C_setMode(EUSCI_B1_BASE,
        EUSCI_B_I2C_RECEIVE_MODE
        );

    //Enable I2C Module to start operations
    EUSCI_B_I2C_enable(EUSCI_B1_BASE);

    EUSCI_B_I2C_clearInterrupt(EUSCI_B1_BASE,
        EUSCI_B_I2C_RECEIVE_INTERRUPT1 +
        EUSCI_B_I2C_BYTE_COUNTER_INTERRUPT +
        EUSCI_B_I2C_NAK_INTERRUPT
        );

    //Enable master Receive interrupt
    EUSCI_B_I2C_enableInterrupt(EUSCI_B1_BASE,
        EUSCI_B_I2C_RECEIVE_INTERRUPT1 +
        EUSCI_B_I2C_BYTE_COUNTER_INTERRUPT +
        EUSCI_B_I2C_NAK_INTERRUPT
        );

    while (1)
    {
      __delay_cycles(2000);

      while (EUSCI_B_I2C_SENDING_STOP ==
              EUSCI_B_I2C_masterIsStopSent(EUSCI_B1_BASE));

      EUSCI_B_I2C_masterReceiveStart(EUSCI_B1_BASE);

        // Enter LPM0 w/ interrupt
        __bis_SR_register(CPUOFF+GIE);
    }
}

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCI_B1_VECTOR
__interrupt
#elif defined(__GNUC__)
__attribute__((interrupt(USCI_B1_VECTOR)))
#endif
void USCIB1_ISR(void)
{
    static uint8_t count = 0;
    switch(__even_in_range(UCB1IV, USCI_I2C_UCBIT9IFG))
	{
        case USCI_NONE:             // No interrupts break;
            break;
        case USCI_I2C_UCALIFG:      // Arbitration lost
            break;
        case USCI_I2C_UCNACKIFG:    // NAK received (master only)
            EUSCI_B_I2C_masterReceiveStart(EUSCI_B1_BASE);
            break;
        case USCI_I2C_UCSTTIFG:     // START condition detected with own address (slave mode only)
            break;
        case USCI_I2C_UCSTPIFG:     // STOP condition detected (master & slave mode)
            break;
        case USCI_I2C_UCRXIFG3:     // RXIFG3
            break;
        case USCI_I2C_UCTXIFG3:     // TXIFG3
            break;
        case USCI_I2C_UCRXIFG2:     // RXIFG2
            break;
        case USCI_I2C_UCTXIFG2:     // TXIFG2
            break;
        case USCI_I2C_UCRXIFG1:     // RXIFG1
            break;
        case USCI_I2C_UCTXIFG1:     // TXIFG1
            break;
        case USCI_I2C_UCRXIFG0:     // RXIFG0
            // Get RX data
            RXData = EUSCI_B_I2C_masterReceiveSingle(
                                    EUSCI_B1_BASE
                    );
		  if (++count >= RXCOUNT) {
			  count = 0;
			  __bic_SR_register_on_exit(CPUOFF); // Exit LPM0
		  }
            break; // Vector 24: RXIFG0 break;
        case USCI_I2C_UCTXIFG0:     // TXIFG0
            break;
        case USCI_I2C_UCBCNTIFG:    // Byte count limit reached (UCBxTBCNT)
            GPIO_toggleOutputOnPin(
                GPIO_PORT_P1,
                GPIO_PIN0
                );
            break;
        case USCI_I2C_UCCLTOIFG:    // Clock low timeout - clock held low too long
            break;
        case USCI_I2C_UCBIT9IFG:    // Generated on 9th bit of a transmit (for debugging)
            break;
        default:
            break;
	}
}

CCS/MSP-EXP430F5529: MSP-EXP430F5529

$
0
0

Part Number: MSP-EXP430F5529

Tool/software: Code Composer Studio


Hello everyone ,
i am trying to use I2C protocol to read temperature and pressure values in MPL3115A2 sensor (actually i am not familiar with I2C protocol it's my first time of using it)
i searched in msp430f5529 code examples i find the following code
and i opened MPL3115A2 sensor datasheet i noticed it has


high resolution of 24 bit ADC
calibrated temperature : -40 to 85 C (12 bit)
calibrated pressure : 50 to 110 kpa (20 bit)


do i need more information about the sensor???
and please help me how to start writing my code
any help would be appreciated


CCS/MSP430FR5739: Reasons code can end up in _c_int00_noargs()

$
0
0

Part Number: MSP430FR5739

Tool/software: Code Composer Studio

Hello, 

I am working on a project with the MSP430FR5739. I had a working prototype which the code was developed with, and worked fine, but now I have made my own PCB board, and now I have come to debugging it and have found a problem. 

When I try and change the value of a bit in the port 1 register, I end up in the

CSTART_DECL _c_int00_noargs(void)
{
_c_int00_template(0, 1, 0);
}

function in boot.c

I have read the resolved answer here - https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/407538

But I do not understand why my prototype would work fine and my PCB have issues, when the code is no different. Under inspection I cannot see any shorts on the board, but I feel like this has to be a hardware issue, so under what circumstances will this function be entered?

Also worth noting that I have 6 of these boards, and all do the same thing when getting to this part of the code. 

Any thoughts would be appreciated. 

Damien

EDIT: Might be worth also noting that the reason I am changing port 1 registers is because I am using digital switches to change configurations and also to power an IC. In the prototype these switches were not actually there, but I still wrote the code to switch things around and had proof that it was working by physically changing connections.  

MSP430FR2433: I2C - Interrupt flag - Possibility of conflict due to UCTXIFG0 set before UCRXIFG0

$
0
0

Part Number: MSP430FR2433

I'm working on MSP-I2C communication from a host processor.

MSP430 is the slave and host processor is Master.

My plan of i2c communication is as follows:

  1. I am implementing i2c read from host processor.
  2. On receiving Start / Slave address from master, UCTXIFG0 flag is set in MSP430.
  3. On receiving a byte (Register Address Value) from host processor into the receive buffer register UCBxRXBUF in MSP430, UCRXIFG0 flag is set.
  4. According to interrupt priority UCRXIFG0 flag is handled first.
  5. In the interrupt handler, inside the Switch Case corresponding to USCI_I2C_UCRXIFG0 (0x16), I am planning to read data present in receive buffer register UCBxRXBUF and depending on that value, another corresponding value is stored in a variable called "TXData".
  6. After reading data in UCBxRXBUF register, UCRXIFG0 flag is cleared.
  7. This leaves only UCTXIFG0 flag as pending.
  8. In the Switch Case corresponding to USCI_I2C_UCTXIFG0 (0x18), value in the variable "TXData" is written to Transmit buffer register (UCBxTXBUF).

As we can see from points 2 & 3, Start / Slave address is received before receiving data bytes from master. So, obviously UCTXIFG0 flag is set before UCRXIFG0 flag.

So my question is that, whether setting of UCTXIFG0 flag before UCRXIFG0 flag causes conflict in writing correct data to Transmit buffer register (UCBxTXBUF).

According to my logic, the variable "TXData" will have correct value when the data received from master is processed first and the value corresponding to that is stored in "TXData".

Do I need to worry about chances of junk values getting copied to Transmit buffer register (UCBxTXBUF).

CCS/MSP430FR4133: serial communication using msp430fr4133

$
0
0

Part Number: MSP430FR4133

Tool/software: Code Composer Studio

I try to create little programmable thermostat with msp430fr4133 and LMT86. I have a java application with 2 buttons one for get ( refresh displayed temp ) and set ( set temperature to msp ).

I send from java a command and dont receive in microcontroller.  

Java Send function: 

void writeData(String temperature){
try{
byte a;
for (char ch : temperature.toCharArray()) {
a = (byte)ch;
output.write(a);
output.flush();
}
} catch (Exception e){
logText = "Failed to write data: " + e.toString();
System.out.println(logText);
}
}

In msp have UART INTERRUPT ROUTINE and dont work. At every step this routine are skyped.

void initClockTo16MHz()
{
FRCTL0 = FRCTLPW | NWAITS_1;

__bis_SR_register(SCG0);
CSCTL3 |= SELREF__REFOCLK;
CSCTL0 = 0;
CSCTL1 &= ~(DCORSEL_7);
CSCTL1 |= DCORSEL_5;
CSCTL2 = FLLD_0 + 487;

__delay_cycles(3);
__bic_SR_register(SCG0);
while(CSCTL7 & (FLLUNLOCK0 | FLLUNLOCK1));

CSCTL4 = SELMS__DCOCLKDIV | SELA__REFOCLK;
}

void Init_PIN(){
// UART pins
GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_UCA0TXD, GPIO_PIN_UCA0TXD, GPIO_FUNCTION_UCA0TXD);
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_UCA0RXD, GPIO_PIN_UCA0RXD, GPIO_FUNCTION_UCA0RXD);

// ADC pins
GPIO_setAsInputPin(GPIO_PORT_P8, GPIO_PIN0);
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P8,GPIO_PIN0,GPIO_PRIMARY_MODULE_FUNCTION);

PM5CTL0 &= ~LOCKLPM5;
}

void Init_UART(){
UCA0CTLW0 |= UCSWRST;

UCA0CTLW0 |= UCSSEL__SMCLK;
UCA0BRW = 104;
UCA0MCTLW |= UCOS16 | UCBRF_2 | 0xD600;

UCA0CTLW0 &= ~UCSWRST;
UCA0IE |= UCRXIE;
}

void configurateADC(){
ADC_init(ADC_BASE,ADC_SAMPLEHOLDSOURCE_SC,ADC_CLOCKSOURCE_ADCOSC,ADC_CLOCKDIVIDER_1);
ADC_enable(ADC_BASE);
ADC_setupSamplingTimer(ADC_BASE,ADC_CYCLEHOLD_256_CYCLES ,ADC_MULTIPLESAMPLESDISABLE);
ADC_setResolution(ADC_BASE,ADC_RESOLUTION_10BIT);
ADC_configureMemory(ADC_BASE, ADC_INPUT_A8,ADC_VREFPOS_AVCC,ADC_VREFNEG_AVSS);
__delay_cycles(5000);
}

int main(void)
{

WDT_A_hold(WDT_A_BASE);

Init_PIN();
initClockTo16MHz();
Init_UART();

configurateADC();

while(1) {
ADC_startConversion(ADC_BASE, ADC_SINGLECHANNEL);
adcInt = ADC_getResults(ADC_BASE);

if(readCommand[0] == 's' && readCommand[1] == 'e' && readCommand[2] == 't'){
//pars command and get temperature
// command structure: set:12
// when 12 is celsius degree

memset(readCommand, 0, sizeof(readCommand));
free(temperature);

} else if(readCommand[0] == 'g' && readCommand[1] == 'e' && readCommand[2] == 't') {
//send temperature to serial

sendTemp();
memset(readCommand, 0, sizeof(readCommand));
}
free(temperature);
}
}

//*********************************************************************************************************************
// \/ UART INTERRUPT ROUTINE \/
//*********************************************************************************************************************

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)

#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(USCI_A0_VECTOR))) USCI_A0_ISR (void)
#else
#error Compiler not supported!
#endif
{
switch(__even_in_range(UCA0IV,USCI_UART_UCTXCPTIFG))
{
case USCI_NONE: break;
case USCI_UART_UCRXIFG:
while(!(UCA0IFG&UCTXIFG));
strcat(readCommand, (char *)UCA0RXBUF);
__no_operation();
break;
case USCI_UART_UCTXIFG: break;
case USCI_UART_UCSTTIFG: break;
case USCI_UART_UCTXCPTIFG: break;
default: break;
}
}

This are all fuctions used. CS 16Mhz, BoundRate 9600 bits/s

EVM430-F6779: How to connect to the PC using RS232 connection

$
0
0

Part Number: EVM430-F6779

Hello,

I bought the EVM430-F6779 and trying to connected to the computer through RS-232 connection.  I have the jumper set enable the TX and I am using the external power supply.   The board is not detected by the MSP430-energy measurement software.   Can this software used with RS232 connections?  Also where can you download the calibrations files?

Thank you

Nishan

MSP-EXP430FR4133: libmsp430.so

$
0
0

Part Number: MSP-EXP430FR4133

Hello. I am novice in microcontrollers. I have MSP430FR4133 LaunchPad Development Kit

I use this lessons www.simplyembedded.org/.../ for learning.

Program for msp430fr4133 compiled succefully. Next step according to the tutorial is flash *.hex
file with mspdebug. Mspdebug from debian repository v0.22 without a driver (ezfet) for my msp430fr4133.
So I build mspdebug v0.25 from source. When I launch


# ./mspdebug ezfet
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.13.0.601 Copyright (C) 2013 TI, Inc.
Reset communications...
Version: 2.4.1.901, HW: 0xaaaaaaaa
Reset firmware...
hal_proto_execute: HAL exception: 0xffff
hal_proto_execute: fid: 0x51
And red led101 fired on board.

Searching for HAL exception (github.com/.../43) show a solution - use
tilib driver. --> Need to build libmsp430.so from source. Correspond to libmsp430 readme file I built it with libboost_v.1.56.
According to information about tilib driver in mspdebug man page


root@msp430:/home/user/msp430/mspdebug/mspdebug-master# whereis libmsp430.so
libmsp430: /usr/local/bin/libmsp430.so /usr/local/lib/libmsp430.so
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# export MSPDEBUG_TILIB_PATH=/usr/local/bin
root@msp430:/home/user# ldconfig

When I launch

# ./mspdebug tilib
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.13.0.601 Copyright (C) 2013 TI, Inc.
tilib_api: can't find libmsp430.so: libboost_filesystem.so.1.56.0: cannot open shared object file: No such file or directory

root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ln -s /usr/local/bin/libboost_filesystem.so.1.56.0 /lib/libboost_filesystem.so.1.56.0
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ln -s /usr/local/bin/libboost_system.so.1.56.0 /lib/libboost_system.so.1.56.0
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ldconfig
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ./mspdebug tilib
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.13.0.601 Copyright (C) 2013 TI, Inc.
tilib_api: can't find libmsp430.so: libboost_date_time.so.1.56.0: cannot open shared object file: No such file or directory

root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ldd /usr/local/bin/libmsp430.so     
linux-vdso.so.1 (0x00007ffe7cbef000)
    libhidapi-libusb.so.0 => /lib/x86_64-linux-gnu/libhidapi-libusb.so.0 (0x00007f905a62b000)     
    libboost_filesystem.so.1.56.0 => /lib/libboost_filesystem.so.1.56.0 (0x00007f905a610000)     
    libboost_date_time.so.1.56.0 => not found     
    libboost_chrono.so.1.56.0 => not found     
    libboost_thread.so.1.56.0 => not found     

    libusb-1.0.so.0 => /usr/local/lib/libusb-1.0.so.0 (0x00007f905a5f5000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f905a5e9000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f905a5c8000)     

    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f905a444000)     

    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f905a2c1000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f905a2a7000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f905a0e6000) /lib64/ld-    linux-x86-64.so.2 (0x00007f905a9d1000)     

    libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f905a0be000)

root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ./mspdebug tilib
MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.13.0.601 Copyright (C) 2013 TI, Inc. tilib_api: can't find libmsp430.so: libboost_date_time.so.1.56.0: cannot open shared object file: No such file or directory
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# mv /usr/local/bin/libboost_date_time.so.1.56.0 /lib/
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ldconfig
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ./mspdebug tilib
MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.13.0.601 Copyright (C) 2013 TI, Inc.
tilib_api: can't find libmsp430.so: libboost_chrono.so.1.56.0: cannot open shared object file: No such file or directory
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# cp /home/user/msp430/boost_1_56_0/stage/lib/libboost_chrono.so.1.56.0 /lib/
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ./mspdebug tilib
MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.13.0.601 Copyright (C) 2013 TI, Inc. tilib_api: can't find libmsp430.so: libboost_thread.so.1.56.0: cannot open shared object file: No such file or directory
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# find /home/user/msp430/boost_1_56_0/ -iname "libboost_thread.so*"
/home/user/msp430/boost_1_56_0/bin.v2/libs/thread/build/gcc-8/release/threading-multi/libboost_thread.so.1.56.0
/home/user/msp430/boost_1_56_0/stage/lib/libboost_thread.so /home/user/msp430/boost_1_56_0/stage/lib/libboost_thread.so.1.56.0 root@msp430:/home/user/msp430/mspdebug/mspdebug-master# cp /home/user/msp430/boost_1_56_0/stage/lib/libboost_thread.so.1.56.0 /lib/
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ldconfig
root@msp430:/home/user/msp430/mspdebug/mspdebug-master# ./mspdebug tilib
MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.13.0.601 Copyright (C) 2013 TI, Inc. tilib_api: can't find libmsp430.so: /lib/libboost_filesystem.so.1.56.0: undefined symbol: _ZN5boost6system15system_categoryEv



--------------------------------------------
# uname -a
Linux msp430 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u1 (2019-07-19) x86_64 GNU/Linux

# udevadm info /dev/ttyACM0
P: /devices/pci0000:00/0000:00:06.0/usb2/2-2/2-2:1.0/tty/ttyACM0
N: ttyACM0
L: 0
S: serial/by-id/usb-Texas_Instruments_MSP_Tools_Driver_0EAEB46F09000500-if00
S: serial/by-path/pci-0000:00:06.0-usb-0:2:1.0
E: DEVPATH=/devices/pci0000:00/0000:00:06.0/usb2/2-2/2-2:1.0/tty/ttyACM0
E: DEVNAME=/dev/ttyACM0
E: MAJOR=166
E: MINOR=0
E: SUBSYSTEM=tty
E: USEC_INITIALIZED=21161867622
E: ID_BUS=usb
E: ID_VENDOR_ID=2047
E: ID_MODEL_ID=0013
E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
E: ID_PCI_INTERFACE_FROM_DATABASE=OHCI
E: ID_VENDOR_FROM_DATABASE=Texas Instruments
E: ID_MODEL_FROM_DATABASE=KeyLargo/Intrepid USB
E: ID_VENDOR=Texas_Instruments
E: ID_VENDOR_ENC=Texas\x20Instruments
E: ID_MODEL=MSP_Tools_Driver
E: ID_MODEL_ENC=MSP\x20Tools\x20Driver
E: ID_REVISION=0200
E: ID_SERIAL=Texas_Instruments_MSP_Tools_Driver_0EAEB46F09000500
E: ID_SERIAL_SHORT=0EAEB46F09000500
E: ID_TYPE=generic
E: ID_USB_INTERFACES=:020201:0a0000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=cdc_acm
E: ID_USB_CLASS_FROM_DATABASE=Miscellaneous Device
E: ID_USB_PROTOCOL_FROM_DATABASE=Interface Association
E: ID_PATH=pci-0000:00:06.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_06_0-usb-0_2_1_0
E: ID_MM_CANDIDATE=1
E: DEVLINKS=/dev/serial/by-id/usb-Texas_Instruments_MSP_Tools_Driver_0EAEB46F09000500-if00 /dev/serial/by-path/pci-0000:00:06.0-usb-0:2:1.0
E: TAGS=:systemd:

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 006: ID 2047:0013 Texas Instruments
Bus 002 Device 005: ID 80ee:0021 VirtualBox USB Tablet
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

# apt install patch ncurses-dev build-essential bison flex libgmp3-dev libmpfr-dev libmpc-dev texinfo zlib1g-dev libusb-dev libreadline6-dev libz-dev <--this packets installed.

Viewing all 22077 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>