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

MSP430F6779A: Unable to code MSP430F6779A

$
0
0

Part Number: MSP430F6779A

I am very new to the Texas Instruments Board. I am using MSP430F6779A and IAR 7.12.4 as IDE and JTAG as programmer/debugger. In IAR, I am able to compile the code and even after clicking on download and debug, I could debug the code step-by-step by setting breakpoints. But irrespective of what I write in the code, there is no changes in the microcontroller board. I have only included the io430.h and io430f6779.h header files in the code. I am currently doing register level coding by using port registers like P1DIR/P1OUT, etc. My question is 1. Do I need to add any header files other than what I listed? 2. Is there any header files after which I can code through APIs? 3. Is there something else I am missing? Please help as I am a complete beginner with this device.   


MSP-EXP430FR2311: MSP430FR2311IPW20

$
0
0

Part Number: MSP-EXP430FR2311

Hi, we have the MSP-EXP430FR2311 and we were wandering what the indication of the prefixed 'x' in "xFR2311" on the package means?

It is not mentioned in the documentation.

regards,

Laurent

CCS/MSP430G2553: C Structure storing

$
0
0

Part Number: MSP430G2553

Tool/software: Code Composer Studio

Hello,

I have made two structure in my project first structure member will constant but the variable not define constant and second structure member and variable both define constant so what will exactly difference both structure memory point of view?

My first and second structure where is it store in memory like (RAM or FLASH pls be specified this) 

In my both structure which one structure is constant? 

1. 

#define mac 2


struct student{

const unsigned int max;
const unsigned int min;

}stu[mac]={
               {.max=10,.min=20},
               {.max=30,.min=40}
            };

2.


struct student{

const unsigned int max;
const unsigned int min;

}const stu[mac]={
                        {.max=10,.min=20},
                        {.max=30,.min=40}
                    };

MSP430 static variable handling

$
0
0

Hello everyone,

I have written a sample program to print the values of the static variables but the output are not printed properly? As per my code the value for the variable ActiveState = 0 and state = 8, but in terminal window the value printed is same? I have seen the memory also none of the values are there to the relevant memory address of the variable ActiveState. I have attached the screen of the project. Could anyone explain me?

MSP430G2553: Problem with SPI bus in the TSSOP version

$
0
0

Part Number: MSP430G2553

Dear all,

I have a strange problem with the SPI bus of the MSP430G2553 microcontroller. Simply, I implemented a firmware that reads data from a BMI160 accelerometer and write them of an EM4325 rfid chip. Standard SPI bus is used for both chips. This firmware works fine on a MSP430G2553 Launchpad (DIP20). Nevertheless, when I replace the MCU with the TSSOP version, the firmware is not able to read the accelerometer! Only the EM4325 continue to be correctly read.The setup is the same, the sole difference is in the package of the MCU: DIP20 in the first case, TSSOP20 in the second case. (However, the full TSSOP MCU indication is: MSP430G2553 86K G4 CODH A). I also checked all the connections including the related CS pins!

Please, as can I solve the problem?

Thank you very very much!

Best Regards

CCS/MSP430G2553: How to create folder in CCS workspace

$
0
0

Part Number: MSP430G2553

Tool/software: Code Composer Studio

Hello,

I Have multiple projects in the same workspace so I can all project in a separate folder in my workspace please provide some screenshot on how to create them? 

MSP432E401Y: CODE HANG WITH TIMER EVENT

$
0
0

Part Number: MSP432E401Y

Hello,

I have an applications in which i have written multi thread code for sending & receiving the data over different uartS along with the i/o's.

And i am using a timer for sending the data out for every 50ms on uart.

This code is executing well up to a certain time after that it is hanging.No Thread is executing.

When i remove the code in timer callback functions and then everything is executing properly.

In that callback function  i am sending the data over one of the uart and i am not using that particular uart in any other threads. But still it is hanging after certain time.

What might be the cause for this.

Thanks & Regards

Kalyan.

MSP432E401Y: Warning:incomplete with parameter of type "xdc_runtime_error_block"

$
0
0

Part Number: MSP432E401Y

Hello,

I am getting a warning after building my application, it is:

D argument of type "xdc_runtime_error_block**" is incomplete with parameter of type "Xdc_runtime_Error_Block*".

In my application i have code related to error block is like below:

#include "xdc/runtime/Error.h"

Error_Block *eb;

And the warning i am getting at:

Sem=Semaphore_Create(1,&semparams,&eb);

So, where to make changes to get rid of this warning.

Thanks & Regards

Kalyan.


CCS/MSP430FR5994: Is there a way to power cycle the MSP430FR5994 without losing the debugger tool

$
0
0

Part Number: MSP430FR5994

Tool/software: Code Composer Studio

I would like to use the debugger to examine code behavior coming out of a power cycle.

What I tried:

  1. Removed the 5v and 3.3v jumpers on the launchpad. This failed because enough power was supplied through the SBW/COMM Interface to keep the MSP430 alive and board LEDs dim.  
  2.  Disconnect and reconnect the USB interface. The MSP430 power cycles but I lose the debugger.  

Any suggestions on how I can power cycle the MSP430 without losing the Debugger?

MSP430FR2633: Problem testing for stop condition using EUSCI_B_I2C_masterIsStopSent()

$
0
0

Part Number: MSP430FR2633

Per one of the examples, I am waiting on EUSCI_B_I2C_masterIsStopSent() to know when a transmission has been completed.  I am using this so that I know when I can set write protection on the EEP device I am writing to.  However, it seems that this function is indicating that the transmission has been completed before it actually has.  I am initiating the stop in the ISR:

void HW_EEP_DoTest(void)
{
uint8_t cmd[3] = WRITE_TEST;
EnableWrite();

HW_I2C_WriteMulti(HW_EEP_SLAVE_ADDR, cmd, 3); // Send it as a multi-byte transmission.

while (EUSCI_B_I2C_SENDING_STOP == EUSCI_B_I2C_masterIsStopSent(EUSCI_B0_BASE)); // Wait for stop condition before releasing write protection.

DisableWrite();
}

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__) #pragma vector=USCI_B0_VECTOR __interrupt #elif defined(__GNUC__) __attribute__((interrupt(USCI_B0_VECTOR))) #endif void USCIB0_ISR(void) { switch(__even_in_range(UCB0IV, 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) //resend start if NACK //EUSCI_B_I2C_masterSendStart(EUSCI_B0_BASE); EUSCI_B_I2C_masterSendMultiByteStop(EUSCI_B0_BASE); Num_Tx_Bytes = Tx_Index; // Exit LPM0 __bic_SR_register_on_exit(CPUOFF); break; case USCI_I2C_UCTXIFG0: // TXIFG0 // Check TX byte counter if (Tx_Index < Num_Tx_Bytes) { EUSCI_B_I2C_masterSendMultiByteNext(EUSCI_B0_BASE, Tx_Data[Tx_Index++]); } else { EUSCI_B_I2C_masterSendMultiByteStop(EUSCI_B0_BASE); // Exit LPM0 __bic_SR_register_on_exit(CPUOFF); } break; default: break; } }

As you can see below, the pin (bottom) is released almost immediately after the start of transmission from the call to DisableWrite() (which would mean EUSCI_B_I2C_masterIsStopSent() != EUSCI_B_I2C_SENDING_STOP ):

However, it seems that we are passing the while() before UCTXSTP has been set:

The driver lib doc says that this function is checking UCTXSTP which, as you can see above, is not set.  However, the doc also says that that bit is in UCB0CTL1:

The user guide lists the bit as being in UCB0CTLW0,which matches the CCS register map:

Either way, I am wondering if I have misunderstood the use of EUSCI_B_I2C_masterIsStopSent(), or if there might be an error in the driver lib, or maybe something else going on.

By the way, when I take out the line that disables writes, I do get the correct an ack from the EEP.  This was just to confirm that the pin was not being asserted somewhere else:

MSP430G2553: Watchdog timer stops the ADC conversion

$
0
0

Part Number: MSP430G2553

Hi,

I am facing a difficulty where after the watchdog timer expires the ADC stops working. All other parts of the code works fine but the ADC reads out 0. But after resetting the power, the ADC starts working. Also, if the watchdog timer expires again then ADC starts working.

What could be the possible reason for this?

Thanks

Nitish

MSP430F2274: Looking for PCB Layout on 49DSBGA Package, which is 0.4mm pitch BGA.

$
0
0

Part Number: MSP430F2274

Need a reference design or evaluation board using the MSP430F2274 with the 49DSBGA Package, which is 0.4mm pitch BGA.  This is been causing me some issues with the PCB layout.

Compiler/MSP430FR59941: MSP430fr59941

$
0
0

Part Number: MSP430FR59941

Tool/software: TI C/C++ Compiler

Dear Sirs:

   A simple question:  How do I set the stack pointer in ccs using c?

Thanks,

John

Compiler/AES-128: TI_aes_128

$
0
0

Part Number: AES-128

Tool/software: TI C/C++ Compiler

HI

I do not understand where is the output variable

can you help me. 

Thank

CCS/MSP430FR5994: LOSING CONTROL OVER VARIABLES AFTER RESTORING REGISTERS

$
0
0

Part Number: MSP430FR5994

Tool/software: Code Composer Studio

Hi all,

In my project, I wanna back up registers and RAM when power fails and restore them right after power turns on again (power check by ADC12).

void Hibernate (void){    
    // copy core registers to a new created segment of FRAM
    asm(" MOVA R1,&0x42800");
    asm(" MOVA R2,&0x42804");
    asm(" MOVA R3,&0x42808");
    asm(" MOVA R4,&0x4280C");
    asm(" MOVA R5,&0x42810");
    asm(" MOVA R6,&0x42814");
    asm(" MOVA R7,&0x42818");
    asm(" MOVA R8,&0x4281C");
    asm(" MOVA R9,&0x42820");
    asm(" MOVA R10,&0x42824");
    asm(" MOVA R11,&0x42828");
    asm(" MOVA R12,&0x4282C");
    asm(" MOVA R13,&0x42830");
    asm(" MOVA R14,&0x42834");
    asm(" MOVA R15,&0x42838");

    // copy all the RAM onto another created segment of FRAM by DMA
    Save_RAM();
}
void Restore (void){

    // Restore RAM by DMA
   restore_RAM();

     // Core registers

    asm(" MOVA &0x42800,R1");
    asm(" MOVA &0x42804,R2");
    asm(" MOVA &0x42808,R3");
    asm(" MOVA &0x4280C,R4");
    asm(" MOVA &0x42810,R5");
    asm(" MOVA &0x42814,R6");
    asm(" MOVA &0x42818,R7");
    asm(" MOVA &0x4281C,R8");
    asm(" MOVA &0x42820,R9");
    asm(" MOVA &0x42824,R10");
    asm(" MOVA &0x42828,R11");
    asm(" MOVA &0x4282C,R12");
    asm(" MOVA &0x42830,R13");
    asm(" MOVA &0x42834,R14");
    asm(" MOVA &0x42838,R15");

// set flag, type = NOINIT, in FRAM
*flag = 0;
if (*flag == 0)
{
P1DIR |= BIT0;
P1OUT |= BIT0;
} }

The problem is that *flag can't be set to 0 because the red LED is not turned on. I also tried different methods to determine whether *flag == 0 and I'm quite sure that it's can be set to 0. Using a variable like volatile int flag (in FRAM, type = NOINIT) doesn't make the code work.

Thank you in advance for all of your helps.


Compiler/MSP430FR5994: .bss and .data information

$
0
0

Part Number: MSP430FR5994

Tool/software: TI C/C++ Compiler

Hi all,

In TI compiler, is it possible to get the starting addresses and ending addresses of .bss and .data sections in order to use inside the program?

It's like in GNU compiler, we can declare in linker file:

PROVIDE (__data_low = .);

Then, we can use __data_low in our program.

Thanks,

Chris Nguyen

MSP430G2553: Porting TRF7970EVM firmware into DLP7970ABP

$
0
0

Part Number: MSP430G2553

Dear all,

As the TRF7970EVM is no longer in production, I am unable to get the board to evaluate. I bought the MSP430G2ET and the DLP7970ABP booster pack, assuming that it would function similar to the TRF7970EVM. That don't seem to be the case.

I realise that the TRF7970EVM uses MSP430f2370, while the bundle kit MSP430G2ET uses MSP430G2553. There is quite some difference in the ROM space.

I believe I have to simplify the code to fit the entire code into the MSP430G2553, since the flash space is halved that of MSP430f2370.

Am I on the right track? or is there an undocumented code base I can work with to ensure that the functionality is not compromised?

Regards,

Kwok Hoe

CCS/MSP430F5132: Design of Solar powered battery charger with 100Watts LED driver

$
0
0

Part Number: MSP430F5132

Tool/software: Code Composer Studio

Hi,

I referred to TI design notes TIDA-00121 and TIDA-010042 for design of Solar powered battery charger with LED driver. I wish to design interleaved buck converter as given in TIDA-010042 for MPPT and battery charging. For LED driver I wish to design boost converter as given in TIDA-00121.

Specifications for required design:

Solar Panel: Vmp=36Volts, Imp=5.5Amps

Lead acid battery: 12 Volts, 150Ah, C10

LED: 60Volts, 100Watts

Please help me to design this circuit with coding in Code Composer Studio. I am using MSP430f5132 microcontroller

Regards

Sourav Prasad

MSP432E401Y: CANIP's How to properly configure the CANbus Bitrates ?

$
0
0

Part Number: MSP432E401Y

Hi,

using the following code I can't figure out how I can configure or change the CAN-IP's bitrate:

CAN_init();  // One-Time CAN IP Init.

The bitrate is being set in a structure as a constant. However before opening or at lease before using the CAN-IP I would like to modifiy the bitrate. How has this to be done?

...

        // Open CAN instance.
        // CAN_Params filterID and filterMask determine what messages to receive.

        CAN_Params canParams;
        CAN_Params_init(&canParams);

        canParams.filterID = 0x001;
        canParams.filterMask = 0x001;
        hCANIF2 = CAN_open(Board_CAN1, &canParams);

The bitrate set has been derived from the struct during CAN_init();

/* CAN configuration structure */
const CANMSP432E4_HWAttrs canMSP432E4HWAttrs[MSP_EXP432E401Y_CANCOUNT] = {
    {
        .baseAddr = CAN0_BASE,
        .intNum = INT_CAN0,
        .intPriority = (~0),
        .rxPin = CANMSP432E4_PA0_CAN0RX,
        .txPin = CANMSP432E4_PA1_CAN0TX,
        .baudRate = 125000, <<--- here
        .errorFxn = NULL
    },

Is there another way of doing this after CAN_init() has been called?

br

Markus

CCS/MSP430F5529: Break at address 0x240f no debug information found.

$
0
0

Part Number: MSP430F5529

Tool/software: Code Composer Studio

Hello Team,

I am facing this issue "Break at address 240f no debug information found". This issue comes after sometime when system runs. I googled this issue forums suggested that because of memory leaks. I have cross checked my code for memory leaks. I have also increases my vcore to 2 as per example Slac300k.  I am using TimerA0 interrupt, UART interrupt USCI_A1 and I2C USCI_B0 interrupt and I am driving stepper motor based on data input from UART and I2C

Now I am explaining my code flow:

1. Increased Vcore and set clock for 16Mhz.

2. Configured UART, TIMER and I2C interrupt.

3. Using I2C for accelerometer.

4. UART for taking command.

I tried a lot to resolve this issue. I have also seen my memory map file to find out that 240f location where code is getting stuck up. For your reference I am attaching my memory map file.

Please help me to come out from this problem.(Please visit the site to view this file)

 

Viewing all 22002 articles
Browse latest View live


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