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

Fram Security...

$
0
0

Hello,

              I am looking for secured memory. Is fram secure??  If not then suggest some external secured memory. i would also like to know how to implement security in msp430 and communication protocols.


MSP432P401R: MSP432 directly addressable external SRAM

$
0
0

Part Number:MSP432P401R

Hi,

We currently need to add some extra memory to our application using the MSP432P401R.  Ideally we would prefer directly addressable external SRAM using the MSP432P401R which may not be possible.  However, I came upon a posting (https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/685531) which stated this was possible to do using the MSP432P4111. I spoke with a TI field applications engineer today and we found no mention of any native support for parallel SRAM in the datasheet.

If this is indeed possible, can you please provide additional information or point to a datasheet / whitepaper / code showing how this can be done? 

Otherwise if TI has a better solution for directly addressable external memory using MSP432P401R, besides implementing a driver to communicate with external memory, we would appreciate your input.

Best,

Robert

MSP430FR2433: DVCC rise time specification?

$
0
0

Part Number:MSP430FR2433

What are the specifications for “DVCC rise time” for MSP430FR2433?

Many other family members have this specified (say a max and a min) in the data sheet, typically under “Power Supply Sequencing.” A search on “rise” in the data sheet “SLASE59D – OCTOBER 2015 – REVISED SEPTEMBER 2018” shows no apropos result.

Also, a footnote (1) to Table 5-2 in the same document says “A safe BOR can be correctly generated only if DVCC drops below this voltage before it rises” referring to Vbor,safe == 0.1V. I interpret this to mean only that a particular kind of reset (the BOR reset) will occur safely only if DVCC drops to that level. I assume that means that another kind of reset will occur (SVS reset) if DVCC drops below Vsvsh- but not below Vbor,safe of 0.1V. I don’t interpret that to mean that the chip might never come out of reset.

The context is a solar cell to super capacitor power supply, which can be very slow rising and falling. Currently I have designed in an external voltage monitor (TPS3839) and a load switch (TPS22860) to switch power to the MSP430FR2433. I am wondering whether I can eliminate those parts. Also, since TPS22860 does not have QOD quick output discharge, this design does not take DVCC below 0.1V when DVCC to the MSP430 is switched off. My one crude test shows that the MSP430FR2433 will start, brownout, and reset without those extra parts. But unless TI will specify the behavior, I will need to do extensive testing.

MSP430G2553: PWM MSP-EXP430G2ET

$
0
0

Part Number:MSP430G2553

I'm trying to use P1.1 and P1.5 (TA0.0); As well as P2.0 and P2.3 (TA1.0) as a PWM output, but I'm having trouble accessing the register properly and i cant even get the P2.3 rgb LED on.

Help would be much appreciated!

MSP430F249: MSP430F249 memory expansion

$
0
0

Part Number:MSP430F249

Hello.........

Can I expand  the programmable flash memory size of msp430f249 from 60kb  to some extent.( say 80kb or more ).

Is it possible to do so ?

If yes , HOW ?

MSP430FR6989: no match for 'operator/' error

$
0
0

Part Number:MSP430FR6989

Hello,

Ive been trying to parse the data received from gps module as seen in the below screen shot its successful,

but the latitude and longitude data received has to be calculated like for example in latitude 1301.7720 

the first tow digits (13) is the degrees and remaining 01.7720 is minutes.

To get the actual latitude we have to separate degrees and minutes and divide the minutes by 60 we will get a decimal number like (01.7720/60)= 0.02953 and add the degree and the new decimal number so we get 13.02953 this is the actual latitude which is understandable by google earth for plotting. 

So to do this i made the following code

coorWhole = float(int(latitude / 100)); // to seperate the degree from the coordinate 
  coorDec = (latitude - coorWhole*100)/60;// gives me  the minutes part of the coordinate
  coordinate = coorWhole + coorDec;

  coorWhole = float(int(longitude/ 100));
  coorDec = (longitude - coorWhole*100)/60;
  coordinate1 = coorWhole + coorDec;

But while compiling i get the error no match for operator can some one help me where iam wrong.

the full code and screen shot is attached.

String data[6];
#define DEBUG true
String state,timegps,latitude,longitude;
float coordinate;
float coordinate1;
float coorWhole;
float coorDec;

void setup() {
Serial1.begin(112500);
Serial.begin(19200);
delay(50); 
Serial1.println("AT");
delay(1000);
Serial1.println("AT+QGNSSC?");
delay(1000);

Serial1.println("AT+QGNSSC=1");
delay(1000);

Serial1.println("AT+QGNSSTS?");
delay(1000);
}

void loop() {
  sendTabData("AT+QGNSSRD=\"NMEA/RMC\"",1000,DEBUG);
  //delay(500);
  if (state !=0) {
    Serial.println("State  :"+state);
    Serial.println("Time  :"+timegps);
    Serial.println("Latitude  :"+latitude);
    Serial.println("Longitude  :"+longitude);
    Serial.println(" ");
   // delay(2000);
   /* {
  coorWhole = float(int(latitude / 100)); // to seperate the degree from the coordinate 
  coorDec = (latitude - coorWhole*100)/60;// gives me  th minutes part of the coordinate
  coordinate = coorwhole + coorDec;

  coorWhole = float(int(longitude/ 100));
  coorDec = (longitude - coorWhole*100)/60;
  coordinate1 = coorWhole + coorDec;
  }*/
    Serial1.flush();
  
  }else {
    Serial.println("GPS initialising");
  }
}

void sendTabData(String command , const int timeout , boolean debug){
Serial1.println(command);
  long int time = millis();
  int i = 0;

  for (i=0; i<6; i++) data[i] = "";
  i = 0;
  while((time+timeout) > millis()){
    while(Serial1.available()){
      char c = Serial1.read();
      if (i < 6) {
          if (c != ',') {
             data[i] +=c;
          } else {
            i++;
          }
      }
    }
  }
  if (debug) {
    state = data[2];
    timegps = data[1];
    latitude = data[3];
    longitude =data[5];
  }
 
}
String sendData (String command , const int timeout ,boolean debug){
  String response = "";
 Serial1.println(command);
  long int time = millis();
  int i = 0;
  while ( (time+timeout ) > millis()){
    while (Serial1.available()){
      char c = Serial1.read();
      response +=c;
      
    }
  }
  if (debug) {
     Serial.print(response);
     }
     return response;     
}

EVM430-FR6047: Connect transducers to seperate MCU.

$
0
0

Part Number:EVM430-FR6047

Hello,

I am trying to implement a system to measure flow rates in an open channel with channel widths up to 5 - 10m.  I have the following questions:

1. Is it possible to separate the transmitter and receiver transducers (connect them to individual MSP430FR6047)? Or is it necessary for both to be connected to the same MCU? Can separation give at least one of the informations of Delta-TOF or TOF?

2. If the beamwidth of transmitter transducer is wide enough can the signal be captured through various receiver transducers simultaneously? If so how should the configuration be implemented to receive signal simultaneously?

3.What is the maximum distance between the transducers that MSP430FR6047 support? Can reducing the frequency to 200 kHz and using EVM430-FR6043 in water improve the situation to large distances between the transducers?

Regards,

Prudhvi Sagar

MSP430FR5972: How could I protect (via SW) FRAM against EM disturbances?

$
0
0

Part Number:MSP430FR5972

Good morning everybody, 

I'm writing this post because I need your help so that I can (I hope) fix this annoying issue I'm facing.

I have some problems with MSP430FR5972 FRAM: there are some boards (on which there is MSP430FR5972 uP) which, in a random unpredictable way, don't work properly because the processor's FRAM is erased form EM disturbances in any form.

In this scenario, is there the possibility to protect FRAM against such disturbances via software?

All I want to do is to protect the lower 32KB code memory. Are there any example which I can refer to?

Any help and advice would be really appreciated!

Best Regards, 

Maria Angela


CCS/MSP430G2955: Controller gets stuck in memcpy.c when declaring a float[1024] Array

$
0
0

Part Number:MSP430G2955

Tool/software: Code Composer Studio

Hello everyone,

I am Using an MCP430G2955 for a Project. When i Try to declare one or more Float Arrays with more than ~800 variables, the Controller Seems to get stuck in memcpy.c / somewhere along the way.
I need to define two float arrays of size 1024 which should be around 4kB. Thus it should fit in the available FRAM of 56kB.

Example Code with the declaration of one such array:



#include <msp430.h>

void someFunction(float *ptr);

float test;

int main ( void )
{
    WDTCTL = WDTPW | WDTHOLD;   // stop watchdog timer
    float Values[1024]= {0.1,0.2,0.3,0.4,0.5};

    while(1)
    {
        someFunction(Values);
     }
    return (0);
}

void someFunction(float *ptr){
    test = ptr[2];
}

In Livechat i was sent the following link, which did not help me unfortunately:
e2e.ti.com/.../779902 float array
This is because neither RAMGS08 nor .ebss can be found in the .cmd file.

Thanks in advance.


MSP430F67791A: MSP low-power microcontroller forum

CCS/MSP430FR2522: [MSP430FR2522] MSP430FR2522IPW16 (TSSOP 16 pin) vs. MSP430FR2522IRHL (VQFN 20 pin) source code initial setting

$
0
0

Part Number:MSP430FR2522

Tool/software: Code Composer Studio

Hi Sir,

MSP430FR2522IPW16 (TSSOP 16 pin) and MSP430FR2522IRHL (VQFN 20 pin) all be generates the same source code (CAPT_BSP.c, BSP_configureMCU()) by CapTIvate Design Center:

...

// P2.0: UCA0 UART TXD if (DEFAULT_OSC_SELECTION == CS_REFOCLK_SELECT), else XOUT
// P2.1: UCA0 UART RXD if (DEFAULT_OSC_SELECTION == CS_REFOCLK_SELECT), else XIN
// P2.2: SYNC (SET OUTPUT LOW UNLESS USED)
// P2.3: OUTPUT LOW
// P2.4: IRQ (OPEN DRAIN), set high to start
// P2.5: UCB0 I2C SDA
// P2.6: UCB0 I2C SCL
#if (DEFAULT_OSC_SELECTION == CS_XT1CLK_SELECT)
P2OUT = (GPIO_PIN4);
P2DIR = (GPIO_PIN2 | GPIO_PIN3 | GPIO_PIN4);
P2SEL0 = (0);
P2SEL1 = (GPIO_PIN0 | GPIO_PIN1 | GPIO_PIN5 | GPIO_PIN6);
#else
P2OUT = (0);
P2DIR = (GPIO_PIN2 | GPIO_PIN3 | GPIO_PIN4);
P2SEL0 = (GPIO_PIN0 | GPIO_PIN1);
P2SEL1 = (GPIO_PIN5 | GPIO_PIN6);
#endif

...

But MSP430FR2522IPW16 have not P2.5 and P2.6, and I2C pin is located in P1.2 and P1.3 pin.

I have compared two files which one generated by selection FR2522IPW16 (16 pin TSSOP) , and another code was generated by selection FR2522IRHL(20 pin package) all are the same.

So I think it should be modify by manual, it's right? Or have any risk if our customer are using MSP430FR2522IPW16 (TSSOP 16 pin) and generate code by the CapTIvate Design Center GUI ?

Would you please kindly provide advise for this situation?

Thanks.

BR

Sam

MSP-EXP432E401Y: Mature ecosystem.

$
0
0

Part Number:MSP-EXP432E401Y

The MSP432E401Y architecture is so mature. I would say it is a smaller competitor of TMS320 product range. It even has peripheral GPIO bit-banding and PWM sync. 

Hope I'll find all answers on a documentation on all its features.

Thanks, TI. 

CCS/MSP432P401R: ADC14 and Timer_a

$
0
0

Part Number:MSP432P401R

Tool/software: Code Composer Studio

what difference is between ADC14_setsampleholdtime()  and  adc14_setsampleholdtrigger()?

if i use adc14_setsampleholdtime(),can i  get accrurate sample rate  rather than timer_a?

i  remember  adc14_setsampleholdtime() and timer_a all  can realize sample rate,so i just use any one is ok?

and difference  between adc14_setsampleholdtime() and  timer_a is what exactly?

MSP430FR5964: MSP-FET "ERROR: Could not reset device" during password protected device programming

$
0
0

Part Number:MSP430FR5964

Hello,

I receive an error during programming MSP430FR5964 with MSP-FET tool used with MSP430Flasher:

./MSP430Flasher.exe -n MSP430FR5964 -j fast -w password.txt -v -p 0x11111111
* -----/|-------------------------------------------------------------------- *
*     / |__                                                                   *
*    /_   /   MSP Flasher v1.3.19                                             *
*      | /                                                                    *
* -----|/-------------------------------------------------------------------- *
*
* Evaluating triggers...done
* Checking for available FET debuggers:
* Found USB FET @ COM7 <- Selected
* Initializing interface @ COM7...done
* Setting FET speed...done
* Checking firmware compatibility:
* FET firmware is up to date.
* Reading FW version...done
* Setting VCC to 3000 mV...done
* Accessing device...done
* Reading device information...done
* Loading file into device...done
* Verifying memory (password.txt)...
# Exit: 10
# ERROR: Could not reset device
* Powering down...done
* Disconnecting from device...done
*
* ----------------------------------------------------------------------------
* Driver      : closed (No error)
* ----------------------------------------------------------------------------
*/

Error disappear when I do not use JTAG password protection:

./MSP430Flasher.exe -n MSP430FR5964 -j fast -w .\without_password.txt -v
* -----/|-------------------------------------------------------------------- *
*     / |__                                                                   *
*    /_   /   MSP Flasher v1.3.19                                             *
*      | /                                                                    *
* -----|/-------------------------------------------------------------------- *
*
* Evaluating triggers...done
* Checking for available FET debuggers:
* Found USB FET @ COM7 <- Selected
* Initializing interface @ COM7...done
* Setting FET speed...done
* Checking firmware compatibility:
* FET firmware is up to date.
* Reading FW version...done
* Setting VCC to 3000 mV...done
* Accessing device...done
* Reading device information...done
* Loading file into device...done
* Verifying memory (.\without_password.txt)...done
*
* ----------------------------------------------------------------------------
* Arguments   : -n MSP430FR5964 -j FAST -w .\without_password.txt -v
* ----------------------------------------------------------------------------
* Driver      : loaded
* Dll Version : 31400000
* FwVersion   : 31200000
* Interface   : TIUSB
* HwVersion   : U 3.0
* JTAG Mode   : AUTO
* Device      : MSP430FR5964
* EEM         : Level 5, ClockCntrl 2
* Erase Mode  : ERASE_ALL
* Prog.File   : .\without_password.txt
* Verified    : TRUE
* BSL Unlock  : FALSE
* InfoA Access: FALSE
* VCC OFF
* ----------------------------------------------------------------------------
* Powering down...done
* Disconnecting from device...done
*
* ----------------------------------------------------------------------------
* Driver      : closed (No error)
* ----------------------------------------------------------------------------
*/

My password configuration:

/*
 * jtag_password.c
 *
 */
#include <stdint.h>
/* Code protection feature*/
#pragma RETAIN(JTAG_signatures)
#pragma DATA_SECTION(JTAG_signatures, ".jtagsignature")
const uint16_t JTAG_signatures[] = {0xAAAA, 0x0002};

#pragma RETAIN(JTAG_password)
#pragma DATA_SECTION(JTAG_password, ".jtagpassword")
const uint8_t JTAG_password[] = {0x11, 0x11, 0x11, 0x11 };

 Any ideas? 

CCS/MSP430FR2433: fram security...

$
0
0

Part Number:MSP430FR2633

Tool/software: Code Composer Studio

Hello, 

           Here is small snippet that I have written bellow. 

#include <msp430.h> 
#include "driverlib.h"

#define FRAM_TEST_START 0x1800  

static uint8_t Delay_set1[1];

uint8_t  * stored_data1,* stored_data2,* stored_data3,* stored_data4,* stored_data5,* stored_data6;

void delay_ms(unsigned int ms);

void main(void)
{
	WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer

    PM5CTL0 &= ~LOCKLPM5;                   // Disable the GPIO power-on default high-impedance mode
                                              // to activate previously configured port settings

    SYSCFG0 = FRWPPW | PFWP;
	Delay_set1[0]='H';
	FRAMCtl_write8(Delay_set1,(uint8_t *) FRAM_TEST_START,1);
	delay_ms(1);

	SYSCFG0 = FRWPPW | PFWP | DFWP;

    stored_data1 = (uint8_t *) FRAM_TEST_START;
    __delay_cycles(1000);

    Delay_set1[0]='I';
    FRAMCtl_write8(Delay_set1,(uint8_t *) FRAM_TEST_START,1);
    delay_ms(1);

}


void delay_ms(unsigned int ms)
{
    while (ms)
    {
        __delay_cycles(8000); 
        ms--;
    }
}

 Here I am able to read and write to the same memory location but it should not be possible. Could you please explain!!! and i would also like to know how to set the password for fram.


CCS/MSP430FR5964: Linker file missing line: .ipe_vars : type = NOINIT{} /* IPE variables */

$
0
0

Part Number:MSP430FR5964

Tool/software: Code Composer Studio

        GROUP(IPENCAPSULATED_MEMORY)
        {

            .ipestruct     : {}              /* IPE Data structure             */
            .ipe           : {}              /* IPE                            */
            .ipe_const     : {}              /* IPE Protected constants        */
            .ipe:_isr      : {}              /* IPE ISRs                       */
        } PALIGN(0x0400), RUN_START(fram_ipe_start) RUN_END(fram_ipe_end) RUN_END(fram_rx_start)

The code above from the "lnk_msp430fr5964.cmd" file. There is a missing thing in the below.

.ipe_vars : type = NOINIT{} /* IPE variables */

When I try to build project, Warning:

#10247-D null: creating output section ".ipe_vars" without a SECTIONS specification RF_IoT_gateway C/C++ Problem

Is this warning related with the this missing line from the linker file?

MSP430FR5969: Good hardware for using built-in bootloader?

$
0
0

Part Number:MSP430FR5969

Executive Summary: I'm looking for a recommendation for a USB-UART adapter with additional GPIO to connect to the TST and ! RST pins.

Long version:

I am developing products based on the MSP430FR5969, and I use the UART to send commands back and forth with the larger system under normal operation (not SW update). I'm interested in using the built-in bootloader via eUSCI_A0 to allow software updates as well, and I'd like to use the TST/!RST pins to enter the BSL. If I were doing this on the MSP430FR59691, which has the I2C BSL, I could use my Aardvark, which includes additional GPIO on top of the I2C. I have an MSP-FET for programming and debugging, but it seems like it only supports full JTAG, not generic UART operation with added GPIO features.

Does anyone have a suggested UART-USB interface that I can use for testing with my development system? I have had the TUMPA recommended, but it seems like UART and JTAG interfaces can't be combined in this way. (Although I haven't purchased one to try it yet.)

Thanks,

Paul

MSP430FR5994: CTPL: A movx.w command overwrites more than 16 bytes of memory

$
0
0

Part Number:MSP430FR5994

 When executing the ctpl assembly code, the following instruction overwrites 337 bytes of memory, apart from writing the value 0xa596 at the destination address.

movx.w #42390, &0x1018a;0x0a596 //this instruction is executed in <ctpl_setStateValid>

I did not observe this behavior in CTPL until I added other software libraries for my application. The other movx.w commands in the assembly code execute correctly.

Why does this unwanted memory write happen and how can it be prevented?

Thank  you.

MSP430F2274-EP: Clarifying Errata XOSC5

$
0
0

Part Number:MSP430F2274-EP

Hello,

I am evaluating the MSP430F2274-EP for use in a design I am making. Reading the errata for this part, I came across errata number XOSC5. It states, “The oscillator fault error detection of the LFXT1 oscillator in low frequency mode (XTS = 0) may not work reliably causing a failing crystal to go undetected by the CPU, i.e. OFIFG will not be set.”

That statement can be interpreted multiple ways, so I was hoping to get some clarification on this issue.

My overarching concern is that by using this part, an undetectable fault will exist where the low-frequency external oscillator will fail and cause the microcontroller to stop working. Even if the LFXT fails, I need to be able to have the microcontroller wake up and perform functions. Can this be guaranteed if the microcontroller is configured properly?

 

Additional questions:

Is the nature of this fault something that exists when the part is manufactured? Or can it develop over time? Would it be possible for me to determine which microcontrollers have this fault when manufacturing the boards and screen them out?

If MCLK and SMCLK are never sourced by LFXT, is it guaranteed that the microcontroller will be able to wake up from a low power mode and operate normally? (Except for the RTC and any other peripheral that may have been using the LFXT)

If MCLK and SMCLK are sourced by LFXT, is it possible that the microcontroller will be unable to wake up from a low power mode and operate normally?

If the microcontroller is in Low-power mode 3, with the DCO, MCLK, and SMCLK disabled, the ACLK running off LFXT = 32,768 Hz and powering the RTC, will the microcontroller be able to wake up if the LFXT fails?

 

FYI, I am defining LFXT failure as a crystal that does not oscillate.

Thanks

MSP430I2041: TIDM-SERVER-PWRMON questions about 'GET_READINGS' format

$
0
0

Part Number:MSP430I2041

Support,

I am using the TIDM-SERVER-PWRMON, looking at design guide, SLAA638.  The format for CMD_GET_READINGS is shown on page 32, Table 9.  We may have moved over to the TWO_PHASE software for the base, but I'm assuming that the DLT645, UART format is the same?

1. As I understand it, there are ENERGY values being sent also, at the bottom, below Offset 30.  I say this since the Calibrator tool is receiving and displaying them?

2. Verify that for PF, the value should be between '0x0000 and 0x03E8'?  I'm calculating this based on the fact that Power Factor resolution is 0.001.

3. Can you provide an updated Table 9 that includes Energy?

Thanks,

Marc

Viewing all 22203 articles
Browse latest View live


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