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

MSP432-RTOS: Multibyte receive issue on UART using TI-RTOS

$
0
0

Part Number:MSP432-RTOS

Hi Team,

In my project I have connected the UART (UARTA2) to pulser unit to get the samples from pulser. This is required as that is the only way this pulser unit is able to transmit data from itself.

Certain commands sent to pulser send one byte information back. but there are couple of commands sent to pulser which sends 4 byte and 1024 byte of data back.

I have been trying this out since over a week now but not able to get a solution for the problem.

When pulser sends 1 byte of information the MSP432 UART is able to receive without any issue.

However, when the pulser sends 4 bytes or the 1024 bytes of data the MSP432 is not able to capture that data.

I am using the "simplelink_msp432_sdk_1_40_00_28" version and have built the code based on RTOS where UART write is called continuously and the UART read is interrupt based using the Read Callback concept.

If I try to copy the bytes received in the UART read callback function into an array so as to free the RXBUF the interrupt never occurs and I don't receive anything in the receive buffer than afterwards.

The reason why I am copying into buffer is as I also get overrun flag triggered when the pulser sends more than 1 byte of data.

Please provide your guidance.

Thank you

Vikram


the MSP430F5529 USB upgrade using built-in BSL

$
0
0

Hi anyone,

I use the MSP430F5529 USB upgrade using built-in BSL, can achieve the upgrade is the current firmware and target hardware is matched, if do not match does not upgrade?


Because I may use 5529 to do different equipment, all upgraded through the USB, if the upgrade mess, will lead to the program does not match the device after the upgrade.
I read the BSL's PC-side code, did not see such a thing, can achieve my needs?

MSP432P401R: Ram size of arm cortex processors

$
0
0

Part Number:MSP432P401R

Can ram be extended above the 64kb limit and how would one do that? or is there a TI arm cortex processor with ram greater than 64k? I need the peripherals that cortex gives with ram >256k. 

MSP430F2619: How to make array occupy in FLASH region than RAM

$
0
0

Part Number:MSP430F2619

Below code is the working solution that occupies the RAM, however, when I tried to move it to FLASH using the pragma, the value is not correct (ie read 0xFFFFFFFF)

What further step I could take to force the array variable to reside the FLASH?

struct EDS_List                 // Need to be placed here above the  myFunctionCallSwitch
{
     char*   sTERMCommand;
     void    (*funcRoutine)(void);
};

//======================================================================================================================================ESD/OD Specfic for all tools
//#pragma location=0x2100                 // Push below into FLASH domains to free up RAM space. No need to use const.
struct EDS_List ODList_Generic [] =     // Need to be placed here above the  myFunctionCallSwitch
{
    {   "LOGGER_$H",                                    zVOID                               }
    ,{  "LOGGER_$D",                                    zVOID                               }
    ,{  "LOGGER_$N",                                    zVOID                               }
    ,{  "LOGGER_ON",                                    EEPROM_ON                           }
    ,{  "LOGGER_OFF",                                   EEPROM_OFF        }

MSP-EXP430G2: Serial monitor not working Board Rev 1.4 Energia 0101E0017

$
0
0

Part Number:MSP-EXP430G2

Hi. I can't get the Serial Monitor to work in Energia. I have read some other threads (closed) but the information from there leads didn't help me.

I have a Rev 1.4 board.

I have tryed RXD/TXD without jumpers, with vertical jumpers and horizontal jumpers.

I have unistalled all drivers and try again. I must solve the DPInst.exe issue first, because included is a 32 bit version.

But upon getting a 64 bit version, it says that the included driver is not better than the one in the system: Texas Instrument (usbser) Ports (12/11/2007 1.3)

I am using a Windows 10 Home 64 bits

Thanks for the help, folks.

By the way, newest version of Energia (18, aka 1.6.10E18) does not work. 

MSP-FET: Are the new batch of FET's defective.

$
0
0

Part Number:MSP-FET

Hello,

I recently fried one of my older MSP-FET430UI tools, and decided to a get the new - MSP-FET, so I recently purchased two MSP-FET from both mouser and digikey.

Neither will connect to my boards which use processors MSP430G2231, or MSP430F2013 with bispi.  I have yet to try out other processors.

When I use an older FET: MSP-FET430UI and it works fine - no problems.

When I swap in the new FETs that I recently purchase they will not connect. I believe that there is a problem with your the new FETS.  Perhaps it's a manufacturing issue, or maybe some sort of compatibility issue. 

I am using CCS version 7.2.0 the latest.  The Fet has a Serial Number: 1705001ECW.

Has anyone else gotten this new batch of FETs to work with these processors?  Should I return the tools, and wait for the next batch, and hope TI will fix the problem?

Thanks,

Tim

msp430fr4133: capacitive differential measurement?

$
0
0

Part Number:msp430fr4133

Dear,

I have a one-pin capacitive measurement working for msp430fr4133 and free pins around ;)

However, instead of capacitance relative to ground, I would like to measure the capacitive change between two plates of a coplanar capacitor :)

This is "easy" with msp430fr2633 or fdc* IC but I would like to avoid them.

So, for this, should I simply substract the difference between two independent measurements?

I guess not so, which is your suggestion?

Have a nice day :)

MSP430G2553: Doubt in the calculation of the effective capacitance for an external crystal oscillator

$
0
0

Part Number:MSP430G2553

Hello,

I am designing a PCB with the msp430g2553 and an external crystal oscillator of 32 KHz with load capacitors of 12.5 pF (www.farnell.com/.../14221.pdf. I am following the design criteria of the document www.ti.com/.../slaa322d.pdf. In an example on page 4 (2.1 Effective Load Capacitance), the load capacitance is calculated and the value is 22 pF but that value can not be obtained with the programmable capacitance of the microcontroller (only 1, 6, 10, 12.5 pF). So, do we have to add external capacitors? Thanks in advance.

Best regards,

Fran Martin


CCS/MSP430FR2311: MSP430FR2311

$
0
0

Part Number:MSP430FR2311

Tool/software: Code Composer Studio

Hi,

I started to program the MSP430FR2311 that I intend to use as RC5 remote control.

The first thing I bumped into is that I cannot get the device run at 8MHz properly.

I initialize the CS registers as follows.

/*

* Clock System Registers:

*/

CSCTL1 = DCORSEL_1 + DISMOD; // select DCO to run at 8MHz.

//CSCTL3 = SELREF_1; // use REFOCLK for DCO input

//CSCTL4 = SELA; // ACLK = REFOCLK (32.768KHz), DCOCLKDIV is source for MCLK and SMCLK

//CSCTL5 = DIVS_1 + VLOAUTOOFF; // MCLK = 8MHz, SMCLK = 4MHz, VLO off when not used

As you can see did I commented out CSCTL3-5 to understand the function of the DCORSEL value.

If I program it for 2MHz, (DCORSEL = 001b) as the default POC value is, I get a MCLK frequency of 1.03MHz, which is OK (within tolerance?)

If I change the DCORSEL value to 8MHz (DCORSEL = 011b), the MCLK frequency stops at 3.44MHz.

I measure the output frequency by setting up timer_0B as div100 counter and measure the output frequency at pin P1.7, which is 1/00 of MCLK/SMCLK

I checked the CS registers and found that in CSCTL7 the bits indicate a DCOERROR, DCO out of range.  Below the register readouts for 1MHz and 8MHz setting

DO you have an idea what I am doing wrong here?

1MHz setting CS register values

8MHz setting CS register values

MSP-EXP432P401R: Energia shows 2 packages for my board

$
0
0

Part Number:MSP-EXP432P401R

Dear all TI Engineers and Users,

I have a new board of this MSP-EXP432P401R

I also installed the Energia 1.6.10E18.  However, its board manager shows me 2 library packages for my board as shown in this picture:

Then, which one package should I choose for my board?  Thanks for your opinion.  ^^

MSP432P401R: temperature limitation on SMT?

$
0
0

Part Number:MSP432P401R

Dear TI Experts,

My customer is designing a sharing power-bank project with MSP432. They want to program MSP432 firstly, then go to SMT. Their concern is that if MSP432 will lost firmware when undergoing  SMT's  high temperature. What is requirement for the maximum temperature of the SMT process to protect the flash image and whole device? Or  should they change the process to program the MSP432 after SMT? Thanks a lot.

MSP430FR6972: UCA0CLK

$
0
0

Part Number:MSP430FR6972

Hello,

While looking MSP430FR6972 code examples, i noticed that P1.5 was assigned as UCA0CLK. However, P2.2 can be assigned according to datasheet.

P1SEL1 |= BIT5; // USCI_A0 operation
P2SEL0 |= BIT0 | BIT1; // USCI_A0 operation

Is there any special reason for that? Can we use P2.2 too?

Thanks. 

TSS721A: about TSS721 and TSS521

$
0
0

Part Number:TSS721A

hi dear supporting team,

besides TX, TXI current difference, what's the other difference btw 721 and 521? And do we have other M-BUS solution without getting power from bus function? tks!

MSP430FR6989: BackChannel of MSP430FR6989

$
0
0

Part Number:MSP430FR6989

Dear all, 

I am using the MSP430FR6989 EVM to communicate with PC.

I use Pin2.0 and Pin2.1 for TXD and RXD. And UART_A0 interrupt for back channel.

And the interrupt runs well( LED toggle when sending data). But the PC can't receive the data. 

I guess the backchannel setup is not right. Maybe the pin is not right. Did anyone have experience. Please help me with this.

Here is Code:

#include "driverlib.h"
#include "stdio.h"

uint16_t i;
uint8_t RXData = 0, TXData = 0;
uint8_t check = 0;

void main(void)
{
    // stop watchdog
    WDT_A_hold(WDT_A_BASE);

    // LFXT Setup
    //Set PJ.4 and PJ.5 as Primary Module Function Input.
    /*

     * Select Port J
     * Set Pin 4, 5 to input Primary Module Function, LFXT.
     */
    GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_PJ,
        GPIO_PIN4 + GPIO_PIN5,
        GPIO_PRIMARY_MODULE_FUNCTION
        );

    //Set DCO frequency to 1 MHz
    CS_setDCOFreq(CS_DCORSEL_0,CS_DCOFSEL_0);
    //Set external clock frequency to 32.768 KHz
    CS_setExternalClockSource(32768,0);
    //Set ACLK=LFXT
    CS_initClockSignal(CS_ACLK,CS_LFXTCLK_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);
    //Start XT1 with no time out
    CS_turnOnLFXT(CS_LFXT_DRIVE_0);

    // Configure UART pins
    //Set P2.0 and P2.1 as Secondary Module Function Input.
    /*

     * Select Port 2d
     * Set Pin 0, 1 to input/Output Secondary Module Function, (UCA0TXD/UCA0SIMO, UCA0RXD/UCA0SOMI).
     */
    GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_P2,
        GPIO_PIN0,
        GPIO_SECONDARY_MODULE_FUNCTION
        );
    GPIO_setAsPeripheralModuleFunctionOutputPin(
        GPIO_PORT_P2,
        GPIO_PIN1,
        GPIO_SECONDARY_MODULE_FUNCTION
        );

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

    // Configure UART
    EUSCI_A_UART_initParam param = {0};
    param.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_ACLK;
    param.clockPrescalar = 3;
    param.firstModReg = 0;
    param.secondModReg = 92;
    param.parity = EUSCI_A_UART_NO_PARITY;
    param.msborLsbFirst = EUSCI_A_UART_LSB_FIRST;
    param.numberofStopBits = EUSCI_A_UART_ONE_STOP_BIT;
    param.uartMode = EUSCI_A_UART_MODE;
    param.overSampling = EUSCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION;

    if(STATUS_FAIL == EUSCI_A_UART_init(EUSCI_A0_BASE, &param))
    {
        return;
    }

    EUSCI_A_UART_enable(EUSCI_A0_BASE);

    EUSCI_A_UART_clearInterrupt(EUSCI_A0_BASE,
                                EUSCI_A_UART_TRANSMIT_INTERRUPT);
     EUSCI_A_UART_clearInterrupt(EUSCI_A0_BASE,
                                EUSCI_A_UART_RECEIVE_INTERRUPT);

    // Enable USCI_A0 RX interrupt
    EUSCI_A_UART_enableInterrupt(EUSCI_A0_BASE,
                                 EUSCI_A_UART_RECEIVE_INTERRUPT); // Enable interrupt
    EUSCI_A_UART_enableInterrupt(EUSCI_A0_BASE,
                                 EUSCI_A_UART_TRANSMIT_INTERRUPT);

    __enable_interrupt();
    
    while(1)
    {
        TXData = TXData + 1;                      // Increment TX data
        // Load data onto buffer
        printf("%u\n", TXData);
        EUSCI_A_UART_transmitData(EUSCI_A0_BASE,
                                  TXData);
        printf("%u\n", UCA0TXBUF);
        GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
        while(check != 1)
        {
            ;
        }
        check = 0;
        GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
        __delay_cycles(5000);
        //__bis_SR_register(LPM3_bits + GIE);
    }
}

//******************************************************************************
//
//This is the USCI_A0 interrupt vector service routine.
//
//******************************************************************************
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCI_A0_VECTOR
__interrupt
#elif defined(__GNUC__)
__attribute__((interrupt(USCI_A0_VECTOR)))
#endif
void USCI_A0_ISR(void)
{
    switch(__even_in_range(UCA0IV,USCI_UART_UCTXCPTIFG))
    {
    case USCI_NONE:
         break;
    case USCI_UART_UCRXIFG:
        RXData = EUSCI_A_UART_receiveData(EUSCI_A0_BASE);
        if(!(RXData == TXData))                 // Check value
        {
            while(1)
            {
                ;
            }
        }
        check = 1;
        break;
    case USCI_UART_UCTXIFG: 
        GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);
        check=1;
         //__bic_SR_register_on_exit(LPM3_bits);
        break;
    case USCI_UART_UCSTTIFG: break;
    case USCI_UART_UCTXCPTIFG: break;
    }
}

CCS/MSP430FR2633: Two demos bugs of MSP430FR2633 and MSP430FR4133 in CCSv7

$
0
0

Part Number:MSP430FR2633

Tool/software: Code Composer Studio

Hello:

         I have find two bugs in the demo included in the CCSv7:

First:

   The demo is located in:

       CCSv7->View->Resource Explorer->Software->MSP430Ware-v:3.60.00.10->Development Tools->MSP-CAPT-FR2633->Demos->CAPTIVATE-BSWP

     Test hardware platform:  CapTIvate MCU Development Kit      MSP-CAPT-FR2633

      This demo's bug is that the watch dog can't be stopped. The WDTHOLD bit is always be reset. In my opinion to ways to solve the problem: (1) replace the code "WDT_A_hold(WDT_A_BASE)" by "WDTCTL=WDTPW|WDTHOLD"(2) update the driverlib.lib ,I have build a new static library which include all the documents in the folder named "MSP430FR2xx4xx",and the problem have been solved.

Second:

        The demo is located in:

CCSv7->View->Resource Explorer->Software->MSP430Ware-v:3.60.00.10->Development Tools->MSP-EXP430FR4133->Demos->Out of Box Experience

       Test hardware platform:MSP-EXP4133   Rev 1.0

      This demo's bug is that it can't realize the function which is designed. The reason is in the warnings of the ccs when build the project.


Starterware/EZ430-CHRONOS: CHRONOS WATCH DISPLAY SHOWING BLACK

$
0
0

Part Number:EZ430-CHRONOS

Tool/software: Starterware

Hello,

I have ez-430 Chronos watch, I just opened it according to the steps mentioned in the user guide and then assembled it now it is showing only black screen I don't know what happened to it, when i am pressing light button light is glowing but not showing on the LCD. Please suggest me possible ways to rectify my problem/

CCS/MSP432P401R: How to create a hex file for a bootLoader.

$
0
0

Part Number:MSP432P401R

Tool/software: Code Composer Studio

Hello community,

just need, but could not find it

Suppose I have a small project in TI RTOS, need to flash it using BSL-scripter.exe. 

it accept only specila format of the application

How to set up CCS and where to find resul file?

Thankss

MSP430F1232: Can I use MSP-FET Flash Emulation Tool of TI with MSPFlasher of TI to burn MSP430F1232 ?

$
0
0

Part Number:MSP430F1232

Can I use MSP-FET Flash Emulation Tool of TI with MSPFlasher of TI to burn MSP430F1232 ?

These are tools that I have. According to TI site it should work. But I didn't succeed.

 

If not - what tools do you recommend ? Of TI. Of Elprotronic. 

 

Of course the first option is better for me. 

 

Thanks! 

 

Kara

MSP-FET: Could not set device VCC

$
0
0

Part Number:MSP-FET

I have a windows 7 laptop sent to me from my customer who is using the MSP-FET430UIF debugger to program Bluetooth firmware into a device on their board. I tried to purchase the MSP-FET430UIF from TI, but was told it was obsolete & would need to purchase the direct replacement MSP-FET debugger. I purchased this debugger, and tried to use it with the laptop containing the software my customer provided. The laptop recognizes the debugger on COM11 of the pc, but I get an error when the mps430flasher.exe utility tries to set the VCC to 3000mV. The old tool, MPS-FET430UIF works fine on this pc.

Please see the attached screenshot, which shows the batch file that is invoking the debugger software. Can anyone help me get this "compatible tool" working on this pc?

MSP430FR5739: Entering ROM Bootloader during program operation

$
0
0

Part Number:MSP430FR5739

I have an MSP430 design that uses a UART for communication.  If the user sends the right command to the UART, I would like to kick it into the ROM bootloader.  The c code that I use to do this is:

__delay_cycles(2000000);
ClockDriver_SetClockForBootloader();
__delay_cycles(2000000);
__disable_interrupt();
((void (*)())0x1000)(); 

This will change MCLK to 8 MHz (which the bootloader user guide says is required) and then call the jump instruction.  I lose connection to the UART when I execute this, but I'm not able to ever talk to the bootloader.  However if I call these exact lines of code at the very beginning of my code, I jump to the bootloader and I'm able to talk to it just fine.  I am using different baud rates (57600) vs what the bootloader uses 9600 but I did try changing my own baud rate to the bootloader baud rate (and using even parity like the bootloader) but that did not work either.  Any thoughts on other things to try?  I really want to not rely on the hardware entry sequence to talk to the bootloader.

Viewing all 22024 articles
Browse latest View live


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