Other Parts Discussed in Thread: UNIFLASH, MSP-FET
UNIFLASH进行BSL烧录时提示UNKNOWN ACK value如图所示
怀疑是接线问题,交换了TST和RST引脚后报错如下
同时测试了读flash也不成功。固件使用的是led定时闪烁的demo,请问是password问题还是接线或是其他问题呢?
UNIFLASH进行BSL烧录时提示UNKNOWN ACK value如图所示
怀疑是接线问题,交换了TST和RST引脚后报错如下
同时测试了读flash也不成功。固件使用的是led定时闪烁的demo,请问是password问题还是接线或是其他问题呢?
各位大虾们:
你们好,个人在使用proteus8.6仿真msp430G2553的串口UART时,结果出现PI端口都为低电平,希望大家能够看一下,给点建议。(因疫情原因,购买的开发版不配送 ),下图为仿真的原理图;
代码:寄存器部分已经配置麻木了 参考他人代码也很难受
#include <msp430.h>
/**
* main.c
*/
#define uchar unsigned char
#define CPU_CLOCK 1000000
#define delay_us(us) __delay_cycles(CPU_CLOCK/1000000*(us))
#define delay_ms(ms) __delay_cycles(CPU_CLOCK/1000*(ms))
void SendData(uchar Data)
{
UCA0TXBUF = Data;
delay_ms(1000);
P1OUT &= 0XFE;
// TX -> RXed character
while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?
if ((IFG2&UCA0TXIFG));
{
P2OUT = UCA0TXBUF ;
}
delay_ms(1000);
}
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
DCOCTL = CALDCO_1MHZ;
BCSCTL1 = CALBC1_1MHZ;
P2DIR |= BIT0;
P1DIR |= BIT0;
BCSCTL2 = 0;//SMCLK的时钟来源为DCOCTL 分频为1分频
//复位USCI_AX
UCA0CTL1 |= UCSWRST;
UCA0CTL0 =0;//USIC 选择USART
UCA0CTL1 = UCSSEL1+(UCSWRST); //配置为usic 时钟为 SMCLK
UCA0BR0 = 104;
UCA0BR1 = 0x00;
UCA0MCTL = 0X02;
//IO端口使能
P1SEL |= 0x06 ;
P1SEL2 |= 0x06;
UCA0CTL1 &= (~UCSWRST);
IE2 |= UCA0RXIE;
while(1)
{
P2OUT = 1 ;
P1OUT |= BIT0;
SendData(0x00);
delay_ms(1000);
}
最后在来个附件
Dear TI专家,
您好,目前客户在使用TI MSP430时候,烧写遇到问题,请帮忙看下,多谢。
单片机型号:
MSP430F449IPZR,8MHz工作频率,4*4OLCD,2*16bit定时器,12位ADC,16*16乘法器,60KBFlash,2KBSRAM,GPIO:56,LQRF100,-40~85℃,TI
问题描述:
这款单片机最近的领航鲸水表上发现一个问题:下载程序时直接用BSL方式下不进去程序,先用JTAG方式下载,再用BSL方式就能下成功。
我下载官网的MSP430的USB开发包 MSP430USBDevelopersPackage_5_20_07_01.zip,解压后到解压目录下
MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC
准备使用msp430-elf-gcc 编译这个工程
简单修改Makefile中的第4行
原本是
REDHAT_GCC =
改为:
REDHAT_GCC = /home/jjinl/gcc_set/msp430-gcc
用于指定msp430 gcc路径
改动Makefile的第17行:
添加了 -L $(SUPPORT_FILE_DIRECTORY) 不然会报错如下:
接着再次进行make时候会报重定义,报错如下
make /home/jjinl/gcc_set/msp430-gcc/bin/msp430-elf-gcc -I /home/jjinl/gcc_set/msp430-gcc/include -I ./../../../.. -I ./../../../../driverlib/MSP430F5xx_6xx -I ./../../../../examples/CDC_virtualCOMport/C0_SimpleSend -I ./../../../../examples/CDC_virtualCOMport/C0_SimpleSend/USB_config -I ./../../../../USB_API -D__MSP430F5529__ -DDEPRECATED -mmcu=msp430f5529 -O3 -Os -g -fdata-sections -w -L /home/jjinl/gcc_set/msp430-gcc/include -T ./../../../../USB_API/msp430USB.ld -T /home/jjinl/gcc_set/msp430-gcc/include/msp430f5529.ld -Wl,--gc-sections ../system_pre_init.c ../hal.c ../main.c ../USB_config/UsbIsr.c ../USB_config/descriptors.c ../USB_app/usbConstructs.c ../USB_app/usbEventHandling.c ../../../../USB_API/USB_PHDC_API/UsbPHDC.c ../../../../USB_API/USB_HID_API/UsbHid.c ../../../../USB_API/USB_HID_API/UsbHidReq.c ../../../../USB_API/USB_CDC_API/UsbCdc.c ../../../../USB_API/USB_Common/usb.c ../../../../USB_API/USB_Common/usbdma.c ../../../../USB_API/USB_MSC_API/UsbMscScsi.c ../../../../USB_API/USB_MSC_API/UsbMscStateMachine.c ../../../../USB_API/USB_MSC_API/UsbMscReq.c ../../../../driverlib/MSP430F5xx_6xx/dac12_a.c ../../../../driverlib/MSP430F5xx_6xx/usci_b_spi.c ../../../../driverlib/MSP430F5xx_6xx/usci_b_i2c.c ../../../../driverlib/MSP430F5xx_6xx/ctsd16.c ../../../../driverlib/MSP430F5xx_6xx/rtc_a.c ../../../../driverlib/MSP430F5xx_6xx/tec.c ../../../../driverlib/MSP430F5xx_6xx/ucs.c ../../../../driverlib/MSP430F5xx_6xx/ldopwr.c ../../../../driverlib/MSP430F5xx_6xx/battbak.c ../../../../driverlib/MSP430F5xx_6xx/sd24_b.c ../../../../driverlib/MSP430F5xx_6xx/gpio.c ../../../../driverlib/MSP430F5xx_6xx/dma.c ../../../../driverlib/MSP430F5xx_6xx/wdt_a.c ../../../../driverlib/MSP430F5xx_6xx/adc10_a.c ../../../../driverlib/MSP430F5xx_6xx/pmm.c ../../../../driverlib/MSP430F5xx_6xx/usci_a_uart.c ../../../../driverlib/MSP430F5xx_6xx/comp_b.c ../../../../driverlib/MSP430F5xx_6xx/sysctl.c ../../../../driverlib/MSP430F5xx_6xx/mpy32.c ../../../../driverlib/MSP430F5xx_6xx/flashctl.c ../../../../driverlib/MSP430F5xx_6xx/oa.c ../../../../driverlib/MSP430F5xx_6xx/lcd_b.c ../../../../driverlib/MSP430F5xx_6xx/tlv.c ../../../../driverlib/MSP430F5xx_6xx/eusci_a_uart.c ../../../../driverlib/MSP430F5xx_6xx/aes.c ../../../../driverlib/MSP430F5xx_6xx/timer_a.c ../../../../driverlib/MSP430F5xx_6xx/rtc_c.c ../../../../driverlib/MSP430F5xx_6xx/timer_b.c ../../../../driverlib/MSP430F5xx_6xx/ram.c ../../../../driverlib/MSP430F5xx_6xx/eusci_b_i2c.c ../../../../driverlib/MSP430F5xx_6xx/ref.c ../../../../driverlib/MSP430F5xx_6xx/timer_d.c ../../../../driverlib/MSP430F5xx_6xx/pmap.c ../../../../driverlib/MSP430F5xx_6xx/eusci_b_spi.c ../../../../driverlib/MSP430F5xx_6xx/adc12_a.c ../../../../driverlib/MSP430F5xx_6xx/rtc_b.c ../../../../driverlib/MSP430F5xx_6xx/eusci_a_spi.c ../../../../driverlib/MSP430F5xx_6xx/usci_a_spi.c ../../../../driverlib/MSP430F5xx_6xx/sfr.c ../../../../driverlib/MSP430F5xx_6xx/crc.c -o C0_SimpleSend.out /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/ccmmI6UN.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: multiple definition of `CdcReadCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/ccmmI6UN.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: multiple definition of `CdcWriteCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/cc7ugCZa.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: multiple definition of `CdcReadCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/cc7ugCZa.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: multiple definition of `CdcWriteCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/ccrOYl9x.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: multiple definition of `CdcReadCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/ccrOYl9x.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: multiple definition of `CdcWriteCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/ccR2FhpV.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: multiple definition of `CdcReadCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/ccR2FhpV.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: multiple definition of `CdcWriteCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/cchKoC7q.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/../../../../USB_API/USB_CDC_API/../USB_CDC_API/UsbCdc.h:94: multiple definition of `CdcWriteCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/cchKoC7q.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/../../../../USB_API/USB_CDC_API/../USB_CDC_API/UsbCdc.h:107: multiple definition of `CdcReadCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/ccBjRddP.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/../../../../USB_API/USB_Common/../USB_CDC_API/UsbCdc.h:107: multiple definition of `CdcReadCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:107: first defined here /home/jjinl/gcc_set/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /tmp/ccBjRddP.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/../../../../USB_API/USB_Common/../USB_CDC_API/UsbCdc.h:94: multiple definition of `CdcWriteCtrl'; /tmp/ccBnxKTq.o:/home/jjinl/wksp/msp430/5501/MSP430USBDevelopersPackage_5_20_06_03/MSP430_USB_Software/MSP430_USB_API/examples/CDC_virtualCOMport/C0_SimpleSend/GCC/./../../../../USB_API/USB_CDC_API/UsbCdc.h:94: first defined here collect2: error: ld returned 1 exit status Makefile:79: recipe for target 'C0_SimpleSend' failed make: *** [C0_SimpleSend] Error 1
我仔细看了,原因是在 MSP430_USB_Software/MSP430_USB_API/USB_API/USB_CDC_API/UsbCdc.h这个文件中,在头文件中定义两个结构体变量,多处包含头文件后,会导致重复定义
/* * ======== UsbCdc.h ======== */ #ifndef _UsbCdc_H_ #define _UsbCdc_H_ #ifdef __cplusplus extern "C" { #endif /*---------------------------------------------------------------------------- * The following function names and macro names are deprecated. These were * updated to new names to follow OneMCU naming convention. +---------------------------------------------------------------------------*/ #ifndef DEPRECATED #define kUSBCDC_sendStarted USBCDC_SEND_STARTED #define kUSBCDC_sendComplete USBCDC_SEND_COMPLETE #define kUSBCDC_intfBusyError USBCDC_INTERFACE_BUSY_ERROR #define kUSBCDC_receiveStarted USBCDC_RECEIVE_STARTED #define kUSBCDC_receiveCompleted USBCDC_RECEIVE_COMPLETED #define kUSBCDC_receiveInProgress USBCDC_RECEIVE_IN_PROGRESS #define kUSBCDC_generalError USBCDC_GENERAL_ERROR #define kUSBCDC_busNotAvailable USBCDC_BUS_NOT_AVAILABLE #define kUSBCDC_waitingForSend USBCDC_WAITING_FOR_SEND #define kUSBCDC_waitingForReceive USBCDC_WAITING_FOR_RECEIVE #define kUSBCDC_dataWaiting USBCDC_DATA_WAITING #define kUSB_allCdcEvents USBCDC_ALL_CDC_EVENTS #define kUSBCDC_noDataWaiting USBCDC_NO_DATA_WAITING #define USBCDC_intfStatus USBCDC_getInterfaceStatus #define USBCDC_bytesInUSBBuffer USBCDC_getBytesInUSBBuffer #endif #define USBCDC_SEND_STARTED 0x01 #define USBCDC_SEND_COMPLETE 0x02 #define USBCDC_INTERFACE_BUSY_ERROR 0x03 #define USBCDC_RECEIVE_STARTED 0x04 #define USBCDC_RECEIVE_COMPLETED 0x05 #define USBCDC_RECEIVE_IN_PROGRESS 0x06 #define USBCDC_GENERAL_ERROR 0x07 #define USBCDC_BUS_NOT_AVAILABLE 0x08 //returned by USBCDC_rejectData() if no data pending #define USBCDC_NO_DATA_WAITING 0X01 #define USBCDC_WAITING_FOR_SEND 0x01 #define USBCDC_WAITING_FOR_RECEIVE 0x02 #define USBCDC_DATA_WAITING 0x04 #define USBCDC_BUS_NOT_AVAILABLE 0x08 #define USBCDC_ALL_CDC_EVENTS 0xFF #ifdef _CDC_ struct _CdcWrite { uint16_t nCdcBytesToSend; //holds counter of bytes to be sent uint16_t nCdcBytesToSendLeft; //holds counter how many bytes is still to be sent const uint8_t* pUsbBufferToSend; //holds the buffer with data to be sent uint8_t bCurrentBufferXY; //is 0 if current buffer to write data is X, or 1 if current buffer is Y uint8_t bZeroPacketSent; //= FALSE; uint8_t last_ByteSend; } CdcWriteCtrl[CDC_NUM_INTERFACES]; struct _CdcRead { uint8_t *pUserBuffer; //holds the current position of user's receiving buffer. If NULL- no receiving //operation started uint8_t *pCurrentEpPos; //current positon to read of received data from curent EP uint16_t nBytesToReceive; //holds how many bytes was requested by receiveData() to receive uint16_t nBytesToReceiveLeft; //holds how many bytes is still requested by receiveData() to receive uint8_t * pCT1; //holds current EPBCTxx register uint8_t * pCT2; //holds next EPBCTxx register uint8_t * pEP2; //holds addr of the next EP buffer uint8_t nBytesInEp; //how many received bytes still available in current EP uint8_t bCurrentBufferXY; //indicates which buffer is used by host to transmit data via OUT endpoint3 } CdcReadCtrl[CDC_NUM_INTERFACES]; #endif
这个问题怎么解决,直接修改标准头文件, 还是USB库故意这样做??
P1.3 io口配置成输入模式,并且外部通过这种方式输入检测。上电后发现,会一直检测到低电平,而光耦是没有导通的。 必须光耦导通一次,输入才会判断正常。
在上电后测试输入电压,一直为高电平,但程序却判断一直为低。
我在芯片的25引脚外接有源晶振16.384M后,使用旁路模式进行仿真,发现延时间隔与我设定的延时时间相差太多,和使用内部晶振时一样差的非常多,导致我的在使用UART传输协议时,与其他芯片通信时的波特率无法匹配上。
以下是我调试时写的简单例程仿真结果。(设定延时1ms LED灯闪烁)
#include "msp430.h"
void main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop Watchdog Timer
CSCTL0 = DCOBYP;
P2DIR|=BIT2;
while(1)
{
P2OUT|=BIT2;
__delay_cycles(16384);
P2OUT&=~BIT2;
__delay_cycles(16384);
}
}
TI 很高兴地宣布推出新的 MSP430 编译器版本 21.6.0.LTS,其包括以下新特性。
新特性:
– 在内存范围内生成 CRC。
– 枚举类型变更。
– 已弃用 Misra 支持。
- 根据 BIC 指令用法提升性能。
- 根据 MUST_ITERATE、UNROLL 和 CODE_ALIGN 等 pragma 提升性能。
有关更多详细信息,请访问 MSP 编译器版本 21.6.0.LTS 的下载页面。
帮助混合和匹配微控制器上的常见模拟和数字功能的培训系列。
为什么选择Housekeeping型?
我们知道您正在寻找更高效的电路板设计方法,从而降低 BOM 成本、减少元件数量并简化版原理图和布局设计。
此培训系列首先介绍如何实现不同的Housekeeping功能,例如驱动 LED、监控系统电压电平以及在检测事件时唤醒主处理器。学习如何在 MCU 上执行这些功能,而不是使用分立式元件来执行这些功能。
课程概览
本系列中的每个内务管理示例都附带了各种内容,可帮助您在任何 MSP 器件上快速入门。软件和 GUI 在 MSP430FR2433 LaunchPad 上进行了测试。
请查看下面的视频列表,所有视频均以中英文分别录制:
Hi,
As shown in document, the MSP430FR5969 has error-correcting code FRAM. We implemented the ECC code with the method shown in the "MSP430 Assembly Language Tools".
After a data error was injected, we downloaded the code to the MSP430 board. The data error was not corrected after power on.
How can we implement the ECC function with CCS? Could you please provide more details and give us some document on it? Thanks a lot!
#include <msp430.h>
/**
* main.c
*/
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
FLL_CTL0 |= XCAP18PF; // Configure load caps
P2SEL |= 0x30; // P2.4,5 = USART0 TXD/RXD
ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD
UCTL0 |= CHAR; // 8-bit character
// UTCTL0 |= SSEL1; // UCLK = SMCLK
// UBR00 = 0x6D; // 1MHz 9600
// UBR10 = 0x00; // 1MHz 9600
// UMCTL0 = 0x03; // modulation
UTCTL0 |= SSEL0;
UBR00 = 0x03;
UBR10 = 0x00;
UMCTL0 = 0x4A;
UCTL0 &= ~SWRST; // Initialize USART state machine
IE1 |= URXIE0; // Enable USART0 RX interrupt
P2DIR |= 0x10; // P2.4 output direction
while (!(IFG1 & UTXIFG0));
TXBUF0 = 'H';
while (!(IFG1 & UTXIFG0));
TXBUF0 = 'E';
while (!(IFG1 & UTXIFG0));
TXBUF0 = 'L';
while (!(IFG1 & UTXIFG0));
TXBUF0 = 'L';
while (!(IFG1 & UTXIFG0));
TXBUF0 = 'O';
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0 w/ interrup
//while(1);
}
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(USART0RX_VECTOR))) usart0_rx (void)
#else
#error Compiler not supported!
#endif
{
while (!(IFG1 & UTXIFG0)); // USART0 TX buffer ready?
TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0
}
把程序下载 MSP430F437 的单片机上 ,然后PC的串口工具先接收到 HELLO ,然后不停的接收 到 LOLOL0... ...
IAR程序版本为:UltrasonicGasFR6043_02_30_00_01
上位机软件版本为:Ultrasonic Sensing Design Center version 02_30_00_03
从配置软件上生产Header文件,原样复制到工程中,写入到demo板中,采集到的时差偏大,并且稳定性不好,时差大约为600~1500us
但是从上位机执行Request Update以后,时差就变的很小,并且比较稳定,时差大约为-40ps~200ps。
请问执行Request Update与将Header文件直接写入到工程中有什么区别?
过年好!
这几天在调试一个UART的问题,配置如下:
UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
UCA1CTL0 = UCMODE_0; // 选择串口功能
UCA1CTL0 &= ~UCPEN; //无校验
UCA1CTL0 &= ~UC7BIT; //8位数据位
UCA1CTL0 &= ~UCSPB; //1位停止位
UCA1CTL1 |= UCSSEL_1; // CLK = ACLK
UCA1BR0 = 0x03; // 32kHz/9600=3.41
UCA1BR1 = 0x00; //
UCA1MCTL = UCBRS_3 + UCBRF_0; // Modulation UCBRSx=3, UCBRFx=0
// UCA1CTL1 &= ~UCDORM;
UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA1IE |= UCRXIE; // Enable USCI_A0 RX interrupt
接收:
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR( void )
{
switch( __even_in_range( UCA1IV, 4 ) )
{
case 0:
break; // Vector 0 - no interrupt
case 2: // Vector 2 - RXIFG
at_buf[at_buf_ptr++] = UCA1RXBUF;
if ( UCA1RXBUF == 0x0A )
{
}
break;
case 4:
break; // Vector 4 - TXIFG
default:
break;
}
}
描述:
1,使用的配置是波特率9600,在与其它9600的通讯中,是正常的。比如转为U口后使用串口调试,将串口工具设置为9600,工具及MCU都是正常的;
2,与明确配置为9600的模组进行通信,也是正常的,可收可发;
问题:
3,当模组为自适应波特率时,不能正常通讯,收发均不正常,丢包乱码;
4,不与外界连接,将TX与RX短接后,数据无触发,多数情况下只能收到0D 0A之类的字符。
我这是哪里设置的少一个步骤吗?
谢谢。
最近要采用msp430l092开发一个低功耗项目,但是在使用目标板时总是无法成功进入仿真,设备连接关系如下:
但是每当我进行仿真时,就会跳出一下警告,告诉我出错了
重试之后就变成下面这样,之后再次尝试警告就不会变了,一直是仿真器已经在使用中
我已经不知道接下来要从哪里找问题了,我是第一次接触MSP430,希望可以得到帮助。另外我所使用的软件是CCS11.0.0,仿真器为MSP-FET430UIF,MSP430L092的有源线缆和目标板均为TI原装
Hi,
目前我客户正使用MSP430FR2676进行新项目开发,客户希望TI协助提供CSC环境下的printf例程,不知道是否有这样的guideline或者例程提供?多谢!
ccs如何从外部文本文件中自动读取数据存入flash指定地址中
例如我外部有一个二进制数据的文本有1000个二进制数据怎么能将这一千个数据写进msp430f5529的flash中
我已经将数据存入了430的flash中,首地址是0x001800,现在我想读取从0x1800开始的100个数据将他们放到我定义的一个数组value中
我是这样写的
char *Flash_ptr = (char *)0x001800;
for(i = 0; i < 100; i++)
{
value[i] = *Flash_ptr++ ;
}
但是value中数值一直是0,应该如何正确的读取?
做了一个测试板,器件包括一个F5438,一个外接XT1的32768晶振,及一个稳压芯片,稳压芯片的功耗为1ua,目前配置:
1,所有管脚均配置为输出低电平;
2,使用XT1(也测试过不配置);
3,启动后进入LPM3.
在此情况下,电流为13到15ua,我想这个应该在5ua以下才对
这个还有其它的方面需要配置吗?谢谢