Part Number:MSP430G2553
Hello!
I am trying to run a simple code.
And yet, I can see nothing in the serial monitor. For confirmation: this is the RX/TX connection in my board.
My OS is windows 10, 64-bit.
Part Number:MSP430G2553
Hello!
I am trying to run a simple code.
And yet, I can see nothing in the serial monitor. For confirmation: this is the RX/TX connection in my board.
My OS is windows 10, 64-bit.
I have a project where I need to measure strain gauges on 3-axes in a half-bridge configuration. I notice that most projects like this us a an HX711 load cell amplifier (or similar). Usually any device for this purpose has an amplifier stage (programmable gain of 32-128) and high resolution differential ADC (24-bit) with 50/60Hz noise suppression (HX711 datasheet).
I had been wondering if any microcontroller with an on-board ADC could handle this task on it's own, and my search led me to look at the MSP430's. I noticed the MSP430F6 could potentially provide since it appears to have 3-6 differential sigma-delta ADCs with a programmable gain amplifier.
Would this be an appropriate part for measuring strain gauges? Are there any other parts that might be suitable?
Essentially my requirements are:
Also, is there a cost-effective evaluation kit for the MSP430F6, like the launchpad?
Part Number:MSP430F2419
Hi All,
Earlier I posted the issue mentioning the phantom reset which causes the micro controller to reset. To find out the specific cause I would like to implement reset vector handler.
I followed TI application notes about this @
This is specific to F5529. Could anyone guide me what to write for the MSP430F2419. I am using IAR tool chain. And can't seem to find the RESET vector information on the data sheet or online. Datasheet seems little bit cryptic.
Thank you.
Part Number:MSP430FR5962
Tool/software: TI C/C++ Compiler
Dear Masters,
My customer is using old version IAR (may be .6 or earlier) which do not include MSP430FR596x device, but they do not want to change the IDE due to license reason. Do we have any support package to add our new device into the old IDE?
Thanks.
B&R
Eric
Part Number:MSP430FR5969
Tool/software: Code Composer Studio
I can't find the rule of how to pair the differential channel of ADC12_B in MSP430FR5969's user's guide. Who can show me the location of the information in the user's guide or other documents. Thank you!
Part Number:MSP430F5529
Hi All,
As a quick background, I am working on a project which involves an ADXL345 (three axis accelerometer). I have currently got the accelerometer communicating to an arduino (via I2C), and the arduino is printing the XYZ data to the serial port, which I am reading into matlab. This process of sending serial data via an arduino is very simple, using the Serial.print(data).
I am now looking to replace the arduino with my MSP430F5529 Launchpad. Could anyone advise me on the steps involved in sending serial data over the serial port ? Im using IAR if that makes a difference.
Thanks in advance,
Part Number:MSP430F6736A
Hi everyone
I have a measurement question relating to the I+/I- pins (ie pins 3&4) on the MSP430 that is being used in a power meter....
In the circuit above (note that this is the V+/V- inputs to the SD24B) points 3 and 4 are floating and not actually connected to the chip
The AC is 120V and voltage across 1&2=0.094V (This was predicted and measured) and voltage across 3&4=0.094V (this was also predicted and measured)
But now in the circuit above (note that this is now the I+/I- inputs to the SD24B) points 5 and 6 are floating and NOT actually connected to the chip...
The AC between AGND & LIVE (shunt) is 120V and the Load through the shunt is: 8.60A
Voltage across 1&2=2.081mV (This was predicted and measured)
Voltage across 3&4=4.6mv (measured)
Voltage across 5&6=4.6mv (measured)
And when disconnecting the Load (0A): Voltage across 5&6=4.0mv (measured)
And, since points 5 & 6 are not connected to the MCU, there is no current path.
So we now placed a 1K resistor across points 5 & 6 to complete a current path and we observed the following:
When Load: 0A Voltage across 5&6=1.3mv (measured)
When Load: 8.6A Voltage across 5&6=1.64mv (measured) The change compared to 0A is 26%.
And then we also replaced Capacitors C8 & C12 with 33nF (instead of the 47pF shown above) and observed the following:
When Load: 0A Voltage across 5&6=0.44v (measured)
When Load: 8.6A Voltage across 5&6=0.42v (measured) The change compared to 0A is now -4.5%.
So we can easily predict our inputs for (or rather the pd across) points 1 & 2 because the current loop is complete and the impact of the capacitors is minimal based on the given current flow.
However, this is not the case for points 5 & 6 (ie pins 3 & 4) which, it seems, are VERY sensitive to any noise.
And hence we need to know, or have a benchmark, of deliverable values to the MCU regarding Pins 3 & 4.
So NOW the questions...
In order to provide correct inputs for pins 3 & 4 (ie points 5 & 6 above) we would like to know:
thanks in advance
Part Number:MSP430FR2311
Tool/software: Code Composer Studio
Could anyone please confirm this. And if it is so- Why?
There are two versions of the project: one in Resource Explorer, and a slightly different one in the MSP430FR231x Examples. They behave the same way. No matter how strong light you expose the photo diode to, I cannot make the ADC_Conversion_Result pass 511. In driverlib adc.c it says that the ADC defaults to 10 bit 0-1023. Setting the resolution in a call make no difference.
Strangely enough the main.c file has a test:
if(ADC_Conversion_Result >= 256) //Normalize data for lower brightness
which could mean that the program is meant to present only 9 bit / 512 values.
I am making a micro/nano ampere meter, and need the 1024 steps to get some 0.1% resolution.
Thanks in advance.
Roy
Part Number:MSP430F2272
Tool/software: Code Composer Studio
Hi all,
I'm using a Lauchpad as a debugger with CCS 7.1.0.
The main code is a state machine as follows:
At each step, GPIO operations are done and the result is captured by the ADC10.
The state machine variable is declared as follows:
in .h file:
typedef enum
{
IDLE,
CHECK_INSERTION,
INVALID_INSERTION,
VALID_INSERTION,
}Status_t;
in .c
static Status_t state = IDLE;
The problem is that at each loop of the state machine, the state variable changes to another state without any reason. It exits the state machine in the correct state and re-enters the state machine with another state.
I would really appreciate help on this.
Thanks a lot
Salim.
Part Number:MSP-GANG
Hi
I'm using an MSP-FET to successfully load my firmware into the MSP430-F6736A on my custom board.
I'm using a custom JTAG cable that i made up from a 8 wire ribbon cable.
This works with no problems.
So i can assume my cable is fine (length 180mm).
This is the JTAG connector on my board....each track goes to the applicable MSP430 pin.
I am now wanting to load my firmware using an MSP-GANG and using the same cable as above.
The board has its own power (naturally) and the GANG has been set up to NOT supply power to target.
When i try and load the MSP I get error 14 "Vcc too high"...but when measured, Vcc is 3.25 so clearly its not too high so the error message must mean something else.
As a test, I did lower the board voltage so Vcc was 2.8V but then i got an error 23 (Failed to initialise MCU) which i would think is quite correct as that voltage is too low.
I did try lowering the data rate but that still gave the same error 14.
I know the GANG is not faulty because i've successfully read the flash on an MSP430F47197 using a std JTAG cable and TS430PZ100A.
This is the GANG setup..
My Question is: What could be wrong??
thanks
Part Number:MSP430FR5994
The TLV memory is all zero in my MSP-EXP43FR5994. Should I expect to find actual TLV material, in particular the ADC and temperature calibration values, in production FR5994 processors?
(After finding that a program was fetching zeros, I looked and found all zeros in the memory display window of IAR EW430 V7.1.4 and have verified that I can write to and read from that memory.)
Less important but I'm curious: Why is the TLV space all zero in my launch pad processor?
Part Number:MSP430G2553
Hi, I have a very basic question but I can not clarify me. I am using the MSP430G2553. When a GPIO pin of the microcontroller is connected to a pin enable of an integrated circuit, can it be connected directly or is it necessary (or better) to use external pull-up or pull-down resistors? In this way, would you ensure that the ICs are in a controlled state while the values of the MSP430G2553 registers are set to the value programmed in the code? Thanks
Best regards,
Fran Martin.
Part Number:MSP432P401R
Dear all TI Engineers,
I have a new board of MSP432P401R Launchpad. I encounter 2 problems about tooling:
Thanks for your attention. ^^
Part Number:MSP430F5359
Hi,
I'm new to msp430 controller
We are planing to use msp430f5359, kindly suggest suitable launchpad that suits msp430f5359
Thank you
Part Number:MSP430F5359
Hi,
I'm new to MSP430,
Can you please tell me the maximum Power consumption of MSP430F5359 (Worst case).
Thank you
Part Number:MSP430F5152
Dear all,
In my application, I want to use 5V Tolerant I/O by 3.3V and 5V I/O on MSP430F5152 as following.
- Leave the DVIO pin.
- Supply external pull-up source(3.3V or 5V) through a resistor on I/O line.
Is it possible?
Sincerely,
Eui-heon
Part Number:MSP430FR6972
Tool/software: Starterware
Hi, sir
I set MCLK to 12MHz from DCO . From FRAM Part of msp430fr6972's user guide ,I knew "The system clock for the CPU or DMA can exceed the FRAM access and cycle time requirements. For these scenarios, a wait state generator mechanism is implemented. The Recommended Operating Conditions of the device-specific data sheet list the frequency ranges with the required wait state settings. " The Recommend Operating Conditions is following:
I confused the "NWAITSx" means. Do it represent the every bit of NWAITS[2:0], or not ? What should be set in NWAITS[2:0], if MCLK is 12MHz?
Another question , From msp430fr6072's device-specific data sheet ,the Supply Current is showed at different frequency of MCLK . I want to kow the speed of operation at different frequency of MCLK.
Cloud I understand that the speed of 16MHz MCLK is 16 times the speed of 1MHz MCLK ? So, 1MHz 's current consumption is assumed to be 210 uA, 16MHz‘s current consumption is assumed to be 1845 uA. Executing the same codes , 1MHz's time consumption is 16 times 16MHz. The 1MHz's current consumption is 210uA * 16 , and 16MHz's current consumption is 1845uA*1. Therefore, 1MHz's current consumption is large than 16MHz , when they execute same codes. Is it right ?
Best regards
Jent
Part Number:MSP430F447
hi
I am planning to interface I2C eeprom to microcontroller msp430f447 .I want to know how to design schematics.Because i don find SDA,SCL pins in the pindetails but the datasheet shows u can interface I2c devices to this processor.
with regards
senthil
Part Number:MSP432P401M
Hello Everyone,
I want to connect XDS100V3(emulator board) to MSP432P401M controller. when i debug sample code (toggle a port pin) this error message comes up:
Error connecting to the target:
(Error -182 @ 0x0)
The controller has detected a cable break that is near-to itself.
The user must connect the cable/pod to the controller.
(Emulation package 6.0.504.1)
CCS Version: 7.2.0.201705101800
-The adapter appears in Device Manager correctly. TDIS on the 14-pin TI header is also connected to GND properly.
-When test the JTAG conection in CCS V7, the following message is coming:
[Start: Texas Instruments XDS100v3 USB Debug Probe]
Execute the command:
%ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -F inform,logfile=yes -S pathlength -S integrity
[Result]
-----[Print the board config pathname(s)]------------------------------------
C:\Users\NIKHIL~1\AppData\Local\TEXASI~1\
CCS\ti\3\0\BrdDat\testBoard.dat
-----[Print the reset-command software log-file]-----------------------------
This utility has selected a 100- or 510-class product.
This utility will load the adapter 'jioserdesusbv3.dll'.
The library build date was 'Jul 21 2017'.
The library build time was '19:36:41'.
The library package version is '7.0.48.0'.
The library component version is '35.35.0.0'.
The controller does not use a programmable FPGA.
An error occurred while hard opening the controller.
-----[An error has occurred and this utility has aborted]--------------------
This error is generated by TI's USCIF driver or utilities.
The value is '-182' (0xffffff4a).
The title is 'SC_ERR_CTL_CBL_BREAK_NEAR'.
The explanation is:
The controller has detected a cable break that is near-to itself.
The user must connect the cable/pod to the controller.
[End: Texas Instruments XDS100v3 USB Debug Probe]
-In Target configurations, I made some changes:-
Any idea how I can fix this error and connect the device?
Part Number:MSP432P401R
Tool/software: Code Composer Studio
Hello,
I'm beginner in MSP432 and also in programming.
I'm trying to read four sensors: 2x SHT31(temperature and humidity sensor) and 2x SFM3000(flow sensor).
I succeeded to read just two by two,but never all of them. I need a code example for multiple slave devices or something that could help me.
Here is my code:
#include "msp.h" unsigned char RXData; const unsigned int cu16SFM3000MeasureCommand = 0x1000; const unsigned char cu8SFM3000Address = 0x40; const uint16_t cu16SHT31MeasureCommand = 0x240B; const uint8_t cu8SHT31Address = 0x44; typedef struct { unsigned char u8TxCount; unsigned char u8RxCount; unsigned int u16FlowData; float fFlowDataCalculated; unsigned char u8CRC; uint16_t u16TempData; float fTempDataCalculated; uint8_t u8CRCTemp; uint16_t u16HumData; float fHumDataCalculated; uint8_t u8CRCHum; }var; var FirstSensorF,SecondSensorF,FirstSensorT,SecondSensorT; #define OFFSET_FLOW 32000.0F // offset flow #define SCALE_FLOW 140.0F // scale factor flow extern void EUSCIB1_IRQHandler(); int main(void) { volatile uint32_t i; WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD; // stop watchdog timer // Configure GPIO P6SEL0 |= BIT4 | BIT5; // I2C pins P1SEL0 |= BIT6 | BIT7; // I2C pins __enable_interrupt(); NVIC->ISER[0] |= 1 << ((EUSCIB1_IRQn) & 31); // Enable eUSCIB1 interrupt in NVIC module NVIC->ISER[0] |= 1 << ((EUSCIB0_IRQn) & 31); // Configure USCI_B1 for I2C mode while (1) { // Configure USCI_B1 for I2C mode UCB1CTLW0 |= UCSWRST; // Software reset enabled UCB1CTLW0 |= UCMODE_3 | UCMST | UCSYNC; // I2C mode, Slave mode, sync UCB1BRW = 192; UCB1CTLW0 |= UCTR; UCB1I2CSA = cu8SFM3000Address; FirstSensorF.u8TxCount = 2; UCB1CTLW0 &= ~UCSWRST; UCB1IE = UCTXIE | UCNACKIE; UCB1CTLW0 |= UCTXSTT; // I2C start condition for (i = 20000; i > 0; i--); UCB1CTLW0 |= UCSWRST; UCB1CTLW0 |= UCMODE_3 | UCMST | UCSYNC; UCB1CTLW1 |= UCASTP_2; // Automatic stop generated UCB1CTLW0 &= ~UCTR; // after UCB0TBCNT is reached UCB1BRW = 192; // baudrate = SMCLK / 192 UCB1TBCNT = 3; // number of bytes to be received FirstSensorF.u8RxCount = 3; UCB1I2CSA = cu8SFM3000Address; UCB1CTLW0 &= ~UCSWRST; UCB1IE |= UCRXIE | UCNACKIE | UCBCNTIE; for (i = 20000; i > 0; i--); while (UCB1CTLW0 & UCTXSTP); // Ensure stop condition got sent UCB1CTLW0 |= UCTXSTT; // I2C start condition UCB0CTLW0 |= UCSWRST; UCB0CTLW0 |= UCMODE_3; UCB0CTLW0 |= UCMST; UCB0CTLW0 |=UCSYNC; UCB0BRW = 192; UCB0CTLW0 |= UCTR; //Transmitter UCB0I2CSA = cu8SHT31Address; SecondSensorT.u8TxCount = 2; //send two bytes of data UCB0CTLW0 &= ~UCSWRST;//Software reset enable UCB0IE = UCTXIE | UCNACKIE;//Transmit interrupt enable +Not-acknowledge interrupt enable UCB0CTLW0 |= UCTXSTT; // FirstSensorT start condition for (i = 10000; i > 0; i--); UCB0CTLW0 |= UCSWRST; // Software reset enabled UCB0CTLW0 |= UCMODE_3 | UCMST | UCSYNC; // FirstSensorT mode, Slave mode, sync UCB0CTLW1 |= UCASTP_2; UCB0CTLW0 &= ~UCTR; //receiver // after UCB0TBCNT is reached UCB0BRW = 192; // baudrate = SMCLK / 192 UCB0TBCNT = 6; // number of bytes to be received SecondSensorT.u8RxCount = 6; UCB0I2CSA = cu8SHT31Address; UCB0CTLW0 &= ~UCSWRST; //Software reset enable UCB0IE |= UCRXIE | UCNACKIE | UCBCNTIE; enable UCB0CTLW0 |= UCTXSTT; for (i = 10000; i > 0; i--); } } // I2C interrupt service routine void EUSCIB1_IRQHandler(void) { if (UCB1IFG & UCNACKIFG) { UCB1IFG &= ~ UCNACKIFG; UCB1CTLW0 |= UCTXSTT; // I2C start condition } if (UCB1IFG & UCRXIFG0) { if(FirstSensorF.u8RxCount == 3) { FirstSensorF.u8RxCount --; FirstSensorF.u16FlowData = UCB1RXBUF << 8; } else if(FirstSensorF.u8RxCount == 2) { FirstSensorF.u8RxCount --; FirstSensorF.u16FlowData |= UCB1RXBUF; FirstSensorF.fFlowDataCalculated = (FirstSensorF.u16FlowData - OFFSET_FLOW) / SCALE_FLOW; } else if (FirstSensorF.u8RxCount == 1) { FirstSensorF.u8RxCount = 3; FirstSensorF.u8CRC = UCB1RXBUF; } UCB1IFG &= ~ UCRXIFG0; } if (UCB1IFG & UCBCNTIFG) { UCB1IFG &= ~ UCBCNTIFG; P1OUT ^= BIT0; } /* TX */ if(UCB1IFG & UCTXIFG0) { if(FirstSensorF.u8TxCount == 2) { UCB1TXBUF = (cu16SFM3000MeasureCommand >> 8) & 0xFF; FirstSensorF.u8TxCount --; } else if(FirstSensorF.u8TxCount == 1) { UCB1TXBUF = cu16SFM3000MeasureCommand & 0xFF; FirstSensorF.u8TxCount --; } else { UCB1CTLW0 |= UCTXSTP; // I2C start condition } UCB1IFG &= ~UCTXIFG0; } } void EUSCIB0_IRQHandler(void) { if (UCB0IFG & UCNACKIFG) { UCB0IFG &= ~ UCNACKIFG; UCB0CTLW0 |= UCTXSTT; // FirstSensorT start condition } if (UCB0IFG & UCRXIFG0) { if(SecondSensorT.u8RxCount == 6) { SecondSensorT.u8RxCount --; SecondSensorT.u16TempData = UCB0RXBUF << 8; } else if(SecondSensorT.u8RxCount == 5) { SecondSensorT.u8RxCount --; SecondSensorT.u16TempData |= UCB0RXBUF; SecondSensorT.fTempDataCalculated = -45 + (175 * ((float) SecondSensorT.u16TempData / (float) 0xFFFF)); } else if (SecondSensorT.u8RxCount == 4) { SecondSensorT.u8RxCount --; SecondSensorT.u8CRCTemp = UCB0RXBUF; } else if(SecondSensorT.u8RxCount == 3) { SecondSensorT.u8RxCount --; SecondSensorT.u16HumData = UCB0RXBUF << 8; } else if(SecondSensorT.u8RxCount == 2) { SecondSensorT.u8RxCount --; SecondSensorT.u16HumData |= UCB0RXBUF; SecondSensorT.fHumDataCalculated = 100 * ((float) SecondSensorT.u16HumData / (float) 0xFFFF); } else if (SecondSensorT.u8RxCount == 1) { SecondSensorT.u8RxCount = 6; SecondSensorT.u8CRCHum = UCB0RXBUF; } UCB0IFG &= ~ UCRXIFG0; } if (UCB0IFG & UCBCNTIFG) { UCB0IFG &= ~ UCBCNTIFG; P1OUT ^= BIT0; // Toggle LED on P1.0 } /* TX */ if(UCB0IFG & UCTXIFG0) { if(SecondSensorT.u8TxCount == 2) { UCB0TXBUF = (cu16SHT31MeasureCommand >> 8) & 0xFF; SecondSensorT.u8TxCount --; } else if(SecondSensorT.u8TxCount == 1) { UCB0TXBUF = cu16SHT31MeasureCommand & 0xFF; SecondSensorT.u8TxCount --; } else { UCB0CTLW0 |= UCTXSTP; // FirstSensorT start condition } UCB0IFG &= ~UCTXIFG0; } }