Part Number:MSP430F5528
Tool/software: Code Composer Studio
NEED SOURCE CODE FOR MSP430F5528 USED ON TMP1075EVM
ANY HELP IS MUCH APPRECIATED.
THANKS!
Part Number:MSP430F5528
Tool/software: Code Composer Studio
NEED SOURCE CODE FOR MSP430F5528 USED ON TMP1075EVM
ANY HELP IS MUCH APPRECIATED.
THANKS!
Part Number:MSP432E401Y
Hi,
I am trying to generate a UART Break field for LIN protocol purposes. Since there is no timing generator for break in this device, I am trying to use the break error flag on the receiver to tell me when 11 bits have expired. I have shorted the TX and RX pins on the hardware !
My code:
(UART6->LCRH) |= UART_LCRH_BRK;
while(~((UART6->RIS) & UART_RIS_BERIS)) {}
(UART6->LCRH) &= ~(UART_LCRH_BRK);
What I am noticing is that the device never exits the while loop since the first moment the register is read it clears it. I tried the DR, RSR and the RIS register they all have the same effect. If I step the function through the debugger then it works fine.
Am I doing something wrong here or is this an Errata item?
Thank you.
Viktor.
Part Number:MSP430FR5994
Tool/software: Code Composer Studio
Hi,
Environment: Using the MSP-EXP430FR5994 board. Development using CCS Version: 8.1.0.00011.
Problem: UART data transmission stops working when I move .data section to the FRAM. --data-model=large, --code-model=large
TestApp_A - I have a small test application (adapted Blink LED example) which can successfully use the UART to send messages to my PC COM4 port. I am also using driverlib for interfacing with the UART. I can see the UART messages coming through on my PC just fine.
TestApp_B - I want to use this UART code in another larger application (TestApp_B), which, due to it's size, has it's .data section moved to the FRAM via the linker.
So, now to experiment on the smaller app, I made the same change in TestApp_A : i.e. moved the .data section to the FRAM. Kept CCS default config for the MPU settings. I'm not using #pragma PERSISTENT as I want ALL of the .data in the FRAM rather than a few global variables. But once I do this, I can no longer see any messages coming through the UART. The program runs without crashing, as I can see the LED blinking (adapted Blink LED app as mentioned earlier) and I can step through using the CCS Debugger.
From the thread below - I think it's an issue with the write protection - the MPU is enabled and the linked by default is placing the .data in FRAM in a location that is Read Only.
However, I can't figure out an easy way to tell the linker to place the .data in a R+W location in FRAM. I still want to use the automatic MPU/segment management. how can I setup the .cmd so that I can tell the linker to place the .data in a R+W region ?
Many thanks !
Rosh
Linker changes:
.data : {} > FRAM (HIGH) /* Global & static vars */
Snippet of the UART code (can't post full code as it's from a work colleague) - to clarify the UART works fine before placing .data into FRAM
... ... CS_setDCOFreq(CS_DCORSEL_0, CS_DCOFSEL_6); CS_initClockSignal( CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 ); ... ... UartParams = {//8MHz EUSCI_A_UART_CLOCKSOURCE_SMCLK, 52, // clockPrescalar 1, // firstModReg 73, // secondModReg EUSCI_A_UART_NO_PARITY, EUSCI_A_UART_LSB_FIRST, EUSCI_A_UART_ONE_STOP_BIT, EUSCI_A_UART_MODE, EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION } ... ... EUSCI_A_UART_initParam param = UartParams; EUSCI_A_UART_enable(EUSCI_A0_BASE); 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 globale interrupt __enable_interrupt(); // Select UART TXD on P2.0 GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2, GPIO_PIN0, GPIO_SECONDARY_MODULE_FUNCTION); ... ... EUSCI_A_UART_transmitData(EUSCI_A0_BASE, (uint8_t)'a'); ... ..
Hi there,
I am currently evaluating EMDC (on an MSP430F67621A, with some changes made to the ADC parts of EMDC to support the ADC10 unit in this part).
For our application, we are not using the HID connection that the evaluation kits suggest in the EMDC documentation - instead we are using the SPI bus to send the necessary data to an embedded Linux host. As such, we've been wrapping up the various routines to be able to send and receive data.
I'm now looking at how to get calibration working. There is not much in the way of detailed documentation (this is what I could find), but it is clear enough that the "scaling factors" are IQ fixed-point based numbers which are multiplied by the relevant values. I've tested this and changing these values seems to have the expected effect. However, the "phaseCorrection" value is unclear in its meaning. The documentation just says "register units" - can someone clarify what this means? What algorithm would I need to use to calculate this phase correction value?
Thanks.
Part Number:CCSTUDIO-MSP
Tool/software: TI C/C++ Compiler
HI all,
I have started working on MSP430 devices for a dc dc converter .Please suggest a compiler and a debugger tool which is suitable for MSP430 devices with CCS platform.
For development on MSP 430 devices can i use same CCS IDE environment, which i am using for C2000 piccolo devices like F28035 and F2808 ?
Thanks & Regards
Naveen
Part Number:MSP430F5507
Dear TIs,
Would you pls give a good choice for MSP430F5507 replacement? the details is USB host , ROM:32-64kB, UART/SPI , 48PIN,low power.
Thanks a lot.
Part Number:MSP430F5327
Hi , we used MSP430F5327IPNR but now need more FLash and RAM. what processor from this family with more memory can I use to have minimum FW changes ( I prefer to be FW compatible). thanks, david
Part Number:MSP432P4111
Tool/software: Code Composer Studio
Hi,
I am trying to use ADC of MSP432P4111 . I am new at msp series. So i have a msp-exp432p4111 launch pad. But i couldnt manage to use ADC. Before adding my code i want to ask a question. For example i am using A1 as ADC pin. So i need to check ADC_MEM1 and if i am using A2, i need to check ADC_MEM2 ?
#include <driverlib.h> #include <lcd_hal.h> #include <unistd.h> #include <sysctl.h> #include <sysctl_a.h> float Volt; int counter; static void adcInit(void) { /* Initializing ADC (MCLK/1/1) with temperature sensor routed */ ADC14_enableModule(); ADC14_initModule(ADC_CLOCKSOURCE_MCLK, ADC_PREDIVIDER_1, ADC_DIVIDER_1, ADC_TEMPSENSEMAP); /* Configuring GPIO P5.5 (A0) for Analog In */ GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P5,GPIO_PIN5, GPIO_TERTIARY_MODULE_FUNCTION); /* Configuring ADC Memory (ADC_MEM0 A22 (Temperature Sensor) in repeat * mode). */ ADC14_configureSingleSampleMode(ADC_MEM0, true); ADC14_configureConversionMemory(ADC_MEM0, ADC_VREFPOS_INTBUF_VREFNEG_VSS, ADC_INPUT_A22, false); /* Configuring the sample/hold time for TBD */ ADC14_setSampleHoldTime(ADC_PULSE_WIDTH_192,ADC_PULSE_WIDTH_192); /* Enabling sample timer in auto iteration mode and interrupts*/ ADC14_enableSampleTimer(ADC_AUTOMATIC_ITERATION); /* Enabling the interrupt when a conversion on channel 1 (end of sequence) * is complete and enabling conversions */ ADC14_enableInterrupt(ADC_INT1); /* Setting reference voltage to 2.5 and enabling temperature sensor */ REF_A_enableTempSensor(); REF_A_setReferenceVoltage(REF_A_VREF2_5V); REF_A_enableReferenceVoltage(); ADC14_enableConversion(); ADC14_setResolution(ADC_14BIT); ADC14_configureSingleSampleMode(ADC_MEM0,1); } int main() { LCD_init(); adcInit(); WDT_A_hold(WADT_A_BASE); while(1){ Volt = ADC14_getResult(ADC_MEM4) * (2.5 / 16384); LCD_showTemperatureC(Volt); for(counter = 0;counter<100000;counter++); } }
Part Number:MSP430FR2311
Tool/software: Code Composer Studio
Hello. I started using TI's microcomputer last week. This is my first time to use the TI microcomputer. We are developing the device driver downloaded from www.ti.com/.../MSPDRIVERLIB. TIMER_B_COUNTER_16 BIT is present in driverlib / MSP430FR2xx_4xx / timer_b.h and its value is CNTL_3. When I looked up CNTL_3 in ccsv8 / ccs_base / msp430 / include / msp430fr2311.h, / * 8-bit, TBxR (max) = 0FFh * / was described in the comment of CNTL_3. Is it a bug that the value of TIMER_B_COUNTER_16 BIT is CNTL_3?
Part Number:MSP430FR2433
Champs,
I am asking this for our customers.
On the customer's board and codes, we found FR2433 "usually" (>50%) would get hanged for the first-time cold boot up. That is, when we power off the system for several seconds, and then power up the system, MSP430FR2433 usually get hanged. However, if we reset MSP430 by hardware reset pin (pin1 of the RGE package), then MSP430 works well.
When MSP430 got hanged, we connected it to JTAG and found it was stuck in 0x00ceea, which is in boot_special.c. We showed location in the below figure.
We were suspecting and examined the HW. However, we have not yet seen anything wrong so far.
Vcc are supplied by 3.3V.
We saw the power ramping up from 0 to 3.3V smoothly.
There is no voltage observed across any pin, which is larger than Vcc+0.3. But there are several pins pulled up by same Vcc and they ramp up with Vcc concurrently.
No ADC is used.
Do you know why FR2433 is stuck in c_int00_noargs_noexit() of boot_special.c?
Why does it happen for the first time but disappear after hardware reset?
Do you have any suggestion for us to debug?
Wayne
Part Number:MSP430F5529
Tool/software: Code Composer Studio
Hi everybody,
I hope that you are doing well. I have a question about the programmation of the MSP430F5529 launchpad, I want to use internal ADC like P7.0 as an example because I already uses all the ADC pins where we can connect what we want. I would like to know if it is possible to use a pin on the board to connect a sensor and uses the internal ADC to make the conversion to numeric values and if so how to manage to do it.
I wrote the code below for the P7.0 configuration, can you tell me how to make a link between the P7.0 port and as an example the P2.0 port where my sensor is connected ?
int ADCDigData;
P7SEL |= 0x0F; // Enable A/D channel A12
ADC12CTL0 = ADC12ON + ADC12MSC + ADC12SHT0_2; // Turn on ADC12, set sampling time
ADC12CTL1 = ADC12SHP + ADC12CONSEQ_1; // Use sampling timer, single sequence
ADC12MCTL12 = ADC12INCH_12 + ADC12EOS; // ref+=AVcc, channel = A12
ADC12CTL0 |= ADC12ENC; // Enable conversions
ADC12CTL0 |= ADC12SC; // Start conversion-software trigger
ADCDigData = ADC12MEM12;
Thank you :)
Part Number:MSP430G2553
Tool/software: Code Composer Studio
With the following code, I would await, that the pulse at P2.1 is 27µs, if I load 27 in the variable "pulswidth".
However: to get a 27µs - Pulswidth, I need to load 41. That is strange, because on page 357 in the documentation (SLAU144J) one can read:
"The 16-bit timer/counter register TAR, increments or decrements with each rising edge of the clock signal....."
So is it a bug or maybe I do someting wrong?
Franz Peter Zantis
BCSCTL1 |= CALBC1_1MHZ; //DCOCLK = 1MHz
BCSCTL2 = 0; //MCLK = SMCLK = DCOCLK
DCOCTL |= CALDCO_1MHZ; //frequency: 1MHz internal
WDTCTL = WDTPW + WDTHOLD; //Stop WatchDogTimer
P2SEL |= BIT1; //P2.1 für Timer output
P2DIR |= BIT1; //P2.1 für Timer output
P2SEL2 &= ~BIT1; //P2.1 für Timer output
TA1CTL |= MC_0; //stop the timer
TA1CTL |= TASSEL_2; //use SMCLK as timer-clock
TA1CTL |= ID_0; //clock divider=1
TA1CCTL1 = OUTMOD_7; //reset/set depending on register CCR1
TA1CCR0 = 0xFFFE; //longest period in up mode; this can be changed by the Poti or via SPI
TA1CCR1 = pulswidth; //Pulswidth
TA1CTL |= MC_1; //start Timer in up-mode; runs until TA1CCR0 is reached and decreases again to 0
Part Number:MSP430F5418A
Hello,
I have setup the debugger with the workbench, it does connect to my computer, there is power as well.
When i try to downoad and debug, it gives me an error saying:
Fatal error: Device not found (or device not supported)
I am not sure what the problem here is, please help.
Regards,
Rajan
Part Number:MSP430FR5969
Tool/software: Code Composer Studio
Hi all,
I have already asked this question, but since I did not get a response, I thought I would ask it again for clarity.
I am trying to use the MSP430FR5969 RTC_C module. I have breakpoints for the RTCIV_RTCTEVIFG and the RTCIV_RTCAIFG interrupts. But only the first interrupt is being called. I am attaching my code to help with any questions about setup you may have. For the most part, my setup is similar to the example TI code. Thank you for your help!
/* * mainTest.c * * Created on: Jul 31, 2018 * Author: Sanskriti Joshi */ #include <msp430fr5994.h> int PollingInterval = 2; volatile int counter = 0; int main(void){ MCU_Init(); MCU_Init_Clock(); RTCsetup(); while(1){ __bis_SR_register(GIE|LPM3_bits); } } void MCU_Init() { // configure MCU Pins WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer PM5CTL0 &= ~LOCKLPM5; //disable the GPIO power-on default high-impedance } void MCU_Init_Clock() { PJSEL0 = BIT4 | BIT5; //initialize the LFXT pins CSCTL0_H = CSKEY >> 8; // Unlock CS registers CSCTL0 = CSKEY; CSCTL1 = DCOFSEL_0; // Set DCO = 1MHz (measured with Oscilloscope to be slightly less that 1 MHz) CSCTL2 = SELA__VLOCLK | SELS__DCOCLK | SELM__DCOCLK; // set ACLK=VLO;SMCLK=DCO Note: the VLO is typically 10 kHz (measured with Oscilloscope to be slightly less that 10 MHz) CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1; // set all dividers //start of code added for RTC CSCTL4 &= ~LFXTOFF; //enable the crystal do{ CSCTL5 &= ~LFXTOFFG; //clear LFXT fault flag SFRIFG1 &= ~OFIFG; }while (SFRIFG1 & OFIFG); //test oscillator fault flag //end of code added for real time clock CSCTL0_H = 0; // Lock CS Registers } void RTCsetup(void){ //RTC_C setup RTCCTL0_H = RTCKEY_H; // unlock RTC registers RTCCTL0_L = RTCTEVIE_L | RTCRDYIE_L; //Enable RTC Ready Interrupt and Time Event Interrupt RTCCTL13 = RTCBCD | RTCMODE | RTCHOLD; // Enable BCD mode, enable RTC in calendar mode, hold while date/time values are set //SET date time info RTCYEAR = 0x2018; RTCMON = 0x7; RTCDAY = 0x25; RTCDOW = 0x4; RTCHOUR = 0x12; RTCMIN = 0x50; RTCSEC = 0x00; //RTC clock alarm setup RTCalarmSet(PollingInterval); RTCAMIN |= RTCAE; //enable minute alarm RTCCTL13 &= ~(RTCHOLD); //start RTC RTCCTL0_H = 0; } void RTCalarmSet(int PollingInterval){ RTCAMIN = 0x00; RTCAHOUR = 0x00; RTCADOW = 0x00; RTCADAY =0x00; unsigned int Temp_time = 0; Temp_time = (((RTCMIN >> 4) & 0x0F) * 10) + (RTCMIN & 0x0F); Temp_time += PollingInterval; if(Temp_time > 59){ Temp_time -= 60; RTCAMIN = (Temp_time / 10) << 4; RTCAMIN |= (Temp_time % 10); }else{ RTCAMIN = (Temp_time / 10) << 4; RTCAMIN |= (Temp_time % 10); } } #pragma vector = RTC_C_VECTOR __interrupt void RTC_C_ISR(void){ switch(__even_in_range(RTCIV, RTCIV__RT1PSIFG)){ case RTCIV_RTCTEVIFG: //minuteInterrupt counter = counter - 1; break; case RTCIV_RTCRDYIFG: //secondInterrupt break; case RTCIV_RTCAIFG: //alarm interrupt //RTCalarmSet(PollingInterval); RTCAMIN |= RTCAE; //enable minute alarm counter = counter + 1; break; default: break; } __bic_SR_register_on_exit(LPM3_bits); }
Part Number:MSP430F5638
Using ports 1, 3, or 4 for I/O and counter/timer.
Using port 3, can I set and use 6 individual I/O pins to read or write individual bits. Some will be connected to individual external hall effect switches which will have to generate an interrupt for that specific bit input. Can I also use 1-2 TAx Out pins for the counter/timer simultaneously on the same port? Switch input interrupts are more important than TAx out for this port.
Using port 4, same question, but need to use TB0 for very precise PWM output. TB0 output is more important than I/O port out only, no bit input interrupts.
Part Number:MSP430F5659
Hi,
I'm trying to invoke the USB TI-BSL with a hard reset, but it looks like the device fails to enumerate (I get a "Device Descriptor Request Failed" in Windows' Device Manager).
I have attached a simplified version of the current circuit. Basically, we use USB on the MSP430 (not continuously), so D+ is pulled-up to USB_PUR with a 1.4k resistor. We have a button used with a GPIO, but if this button is pressed for more than 10 seconds, then a chip (U8 on the schematic) forces the RST_SBWTDIO of the MSP430 to 0V, thus resetting the device. When this reset occurs, we want to then connect the USB, release the button, and force the MSP430 to go into TI-BSL mode. From what I've read, I need to pull USB_PUR to VUSB through a 100 Ohm for that to happen.
Now, when I do this, I see that our main firmware isn't called after the device has reset, so the MSP430 is probably in the BSL, but it doesn't enumerate correctly via USB. Furthermore, if I have the USB already connected before entering the "hard reset" mode with the button, then even though the MSP430 is reset, it's still enumerated on the computer. It only disconnects when I release the button, then I get a "USB device not recognized".
What modification to the circuit do you suggest? Should the hard reset control the Vcc of the MSP430 instead of the RST_SBWTDIO?
Thank you,
Fred
(Please visit the site to view this file)
Part Number:MSP430FR5969
I am facing a weird issue that when I put all over the circuit of the prototype in a box (casing) mainly antenna there is some network registration like fetching IP issue and sometimes and My MCU will resetting. So, I will solve IP issue but I can't find why MCU continuously restart again n again after approx 10 Sec start of code and GSM module network registration time and when I pull out antenna outside from the casing or Box circuit working fine.
Another thing I noticed when I put my GSM cellular Module Antenna in the casing but behind the MCU PCB working also fine and there no resetting issue but if I placed top side of PCB or facing toward to Topside of PCB Actually i am using cable Antenna so, I can place everywhere in BOX or casing of my product.
Please if anyone faced the same problem and solved it please help me. I am attaching a MCU circuit section also So, Please find the images,schematic of MCU power supply booster section And
Part Number:MSP-EXP430FR2433
Tool/software: Linux
Hello
I am an electronics hobbyist and interested in the new MSP-EXP430FR2433 development board.
Previously I bought a couple of MSP430F2002 devices, because I was looking for a simple and inexpensive MCU for learning about MSP430. But currently I don't have any means to upload programs to this IC. On competitor's devices I can use a simple circuit (1 transistor and a bunch of resistors, caps and diodes) and PC serial port for uploading programs into the IC. However unfortunately I haven't found any way to do the same on on 'F2002 device. Is it possible to use the MSP-EXP430FR2433 for programming other MSP430 microcontrollers?
Thanks in advance!
Part Number:MSP432E401Y
Hi team,
I have a customer with an existing product that needs to incorporate AES 256 encryption. Looks like the MSP432E401Y supports AES 256, so i wanted to provide a couple more details and ask a couple questions:
They have a modem product that will be provided a real time video stream data, unencrypted but probably compressed, 10/100 BaseT, and they want to pass it to a device to be encrypted and spat back out. They can either pass the data through Ethernet to the device directly, or receive it with our OMAP processor that already exists in their system, and send it to the MCU for encryption via some other digital protocol.
Any other suggestions? Also, do we have, or will we have, FIPS PUB 140-2 support?
Thanks,
Brian
Part Number:MSP430FR2433
SLAU445h, the family user guide for 2xx and 4xx family on page 124, "Chapter 4 CPUX" says (paraphrasing since it wouldn't cut and paste nicely) that the CPUX architecture for this family has different cycle counts from the 2xx and 4xx families. But this document is about the 2xx and 4xx families! My guess is that the document was produced by sloppy find and replace from an earlier document, without enough review later, and this note is meaningless within this document.
The TI website for FR2433 leads me to the SLAU445h document. But it continues to baffle me whether the 2433 is part of the 2xx or 4xx families?
My real quandry now is whether the FR2433 has the CPUX architecture, and thus 20-bit addressing, and thus on an interrrupt pushes two 16-bit words on the stack for the return address and then one word for the SR? On an NMI I am trying to save to FRAM the PC that generated an NMI, from the stack, using " MOV 2(SP), &lastPC", but that doesn't seem to work (I find lastPC still contains zero) and I am guessing I need " MOV 4(SP), $lastPC"