Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all 3634 articles
Browse latest View live

有些好资料要每年都发出来一次才行:比如最好的MSP430入门学习资料

$
0
0

(请访问站点以查看此文件)


GRACE为何多年不再更新了?

$
0
0

据我所知,TI是第一个推出图形化配置单片机IO与时钟外设工具的厂家。

几年后ST跟随脚步推出了cubeMX图形化IO与外设初始化工具,新唐推出了PIN配置工具与时钟系统配置工具。

近年来国产单片机也推出了代码初始化工具,非常非常方便。今年,MicrcoChip也推出了MCC外设图形化配置工具。

然而我却发现,该类工具第一个吃螃蟹的TI,却停滞不前了,自动2015年后,就再也没有更新过该工具。近期看了GRACE

的主页,才知道,早在2015年底,就放弃了该项目,并声明不再升级,也不为CCS6之后的版本提供GRACE支持了。很稀罕

这么好用的图形化配置工具竟然就这么悄无声息的消失了。

我相信随着单片机越来越复杂,种类越来越多,图形化配置肯定是个方向,这样不用记忆太多的寄存器了。可以做到上手即用,更容易脱离底层代码,做到可移植。

最后奉上GRACE主页,怀念一下。

最后的版本支持的特定MSP430器件是:

  • MSP430FR57xx / 58xx / 59xx器件
  • MSP430G2xx价值线设备
  • MSP430F2xx器件

打开CCS后出现"CrashReportJob"错误

$
0
0

我是win10系统,在安装CCS6.2之前,卸载了加密软件,杀毒软件也已经禁用,之后才开始安装CCS6.2,但是在安装完成后,打开CCS,就报如下错误:

An internal error occurred during: "CrashReportJob".
C:\Users\HP\AppData\Local\Temp\proxy_vole8215972263738513720.dll: 拒绝访问。

在编译软件工程是,一直报如下错误:

gmake: *** [source/srvc_src/srvc_mdcu_can.obj] Error 5
source/test_src/subdir_rules.mk:7: recipe for target 'source/test_src/test_draw.obj' failed
process_begin: CreateProcess(C:\Users\HP\AppData\Local\Temp\make21080-25.bat, C:\Users\HP\AppData\Local\Temp\make21080-25.bat, ...) failed.
make (e=5): 拒绝访问。

没办法编译软件。

请各位帮忙看看,为什么会出现这种错误,怎么就解决呢,谢谢!

MSP430F5438A 代码空间分配问题

$
0
0

在用MSP430F5438A做自己的IAP功能,在xcl文件中发现对FLASH存储空间的划分有许多疑问:

1.FLASH中的BankA并不是连续的,如果要执行擦除BankA的操作,系统是不是自动调整擦除地址,从而保证正确擦除所有BankA内容呢?

2.我的程序空间是这样规划的:

  BOOT代码(0x5C00 - 0x73FF 6KB) 

  中断向量表 -Z(CODE)INTVEC=FF80-FFFF

  APP代码(0x7400 - 0xFFDF  0x10040 - 0x45BFF )

  中断向量表(0xFE80 - 0xFEFF)

  不同于第一个问题,我的APP代码如果是50K,那么意味着我的程序必须占用第二个代码空间,BankA也不连续,在擦除和写入FLASH时,

  是不是需要自己精确控制写入的地址?

3. xcl文件中,代码段和常量段在第二段的代码空间相差一个0x40这是怎么回事?对于存储程序来说,岂不是又把BankB给分割的七零八碎的?

// ---------------------------
// Code
//

-P(CODE)CODE=5C00-FF7F,10000-45BFF

// ---------------------------
// Constant data
//

-Z(CONST)DATA20_C,DATA20_ID,CODE_ID=5C00-FF7F,10040-45BFF

开发板EVM430-FR6043

$
0
0

您好, 

我司最近購買一套开发板EVM430-FR6043, 依照TI官網上的指示與說明, 下載並安裝完成相關的軟體後, 接上開發中的氣體流量計, 進行掃頻測試時,出現錯誤訊息, 嘗試多種不同的參數設定,仍無法解決. 後來我們工程師將EVM430-FR6043开发板換成另一塊EVM430-FR6047(水中超声波检测应用)開發板, 並將電腦上軟體關於硬件的選項切換至水中應用, 掃頻測試即可正常運作, 顯示電腦軟體方面應無問題,應該是开发板EVM430-FR6043出了問題.

工程師描述,之前剛購買EVM430-FR6047開發板時, 也遇到類似的問題, 經詢問TI 論壇, TI工程師回覆並提供了一個更新的韌體(firmware), 韌體更新後,即可正常操作測試. 請問开发板EVM430-FR6043是否也需要做類似的韌體更新 ? 哪裡可找到所需的韌體 ?

Thanks very much ~

 

EVM430-FR6043 demo板的液晶怎样才能显示?

$
0
0

在贸泽买了一块EVM430-FR6043 demo板,连上USB线,打开USS应用程序,可以正常连接。只是板上的液晶怎么不显示,也看了资料和硬件向导,没发现怎么打开液晶,请指教

MSP430F5529

$
0
0

MSP430F5529和TI TivaTM4C123G(ARM Cortex-M4)的区别是什么?两者的程序能通用吗?

CCS仿真器

$
0
0

为什么我用CCS9.0.0创建Project时找不到TM4C123GXL?

还有就是安装时已经选择了TM4系列,还是没有该端口?


使用模拟IIC读写EEPROM,增加WP后读写数据不对

$
0
0

使用MSP430的模拟IIC对EEPROM进行读写,其中增加了WP的保护,但在读写数据时不对,但不增加WP,读写数据就可以,想请教下是什么原因导致此现象;

WP是在写之前关闭,在写之后关闭,中间增加1s延时,有无问题?

TM4C的数据库

$
0
0

谁有TM4C的数据库能发一下吗?顺便能教下装到CCS里面用

MSP430FR5949IDAR FRAM中应用程序内存区域中代码会有个别字节被篡改

$
0
0

我们使用的芯片型号为MSP430FR5949IDAR,编程软件为IAR,通过IAR生成的文本文件烧写进入片子的FRAM中。设备运行一个月左右,发现FRAM中应用程序内存区域中代码会有个别字节被篡改,导致程序运行不正常。对于造成代码被更改的可能原因我们尚未有明确的判断,希望原厂能给些建议,谢谢!

MSP430FR5043: usslib采集的ADC,计算的tof,vol输出到上位机分别是多少的放大倍数和偏移量,请问有相关资料吗?

$
0
0
Part Number: MSP430FR5043

usslib采集的ADC,计算的tof,vol输出到上位机分别是多少的放大倍数和偏移量,请问有相关资料吗?

MSP430FR2111: 关于MSP430读取内部ADC

$
0
0
Part Number: MSP430FR2111

msp430用两节干电池供电,电压3.0V,在电池取出断电后,有220UF电容持续给MCU供电,由于MCU处在休眠状态电流只有1UA,所以电容对MCU放电时间很长,超过1分钟

现想做这样的处理,利用MCU内部电压监测MCU供电电压,每5S读取一次内部电源电压,当第二次读取比上一次读取电压差超过0.2V时MCU打开LED灯以快速放电,请问MSP430FR2111能否做到

以上动作?贵司有无类似的demo程序?

MSP430FR2433: 使用DCO时,是否需要对DCOFFG进行处理?

$
0
0
Part Number: MSP430FR2433

使用eusci_a_uart_ex1_loopbackAdvanced例程,学习MSP430FR2433的时钟,在debug模式下运行一段时间暂停,看到的关于CS模块的寄存器如下:

片子运行时钟SMCLK = MCLK = BRCLK = DCOCLKDIV = ~1MHz, ACLK = 32.768kHz;

即这里使用了DCO作为SMCLK的时钟源,又使用SMCLK作为波特率的时钟源,但是在初始化的时候并未对DCO进行配置;

但实际上DCOFFG显示是有错误的,这里不需要对该错误进行处理吗?

附main.c中的代码:

/* --COPYRIGHT--,BSD
 * Copyright (c) 2016, Texas Instruments Incorporated
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * *  Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * *  Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * *  Neither the name of Texas Instruments Incorporated nor the names of
 *    its contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * --/COPYRIGHT--*/
//******************************************************************************
//!  EUSCI_A0 External Loopback test using EUSCI_A_UART_init API
//!
//!  Description: This demo connects TX to RX of the MSP430 UART
//!  The example code shows proper initialization of registers
//!  and interrupts to receive and transmit data.
//!
//!  SMCLK = MCLK = BRCLK = DCOCLKDIV = ~1MHz, ACLK = 32.768kHz
//!
//!
//!            Tested on MSP430FR4133
//!             -----------------
//!       RST -|     P1.0/UCA0TXD|----|
//!            |                 |    |
//!            |                 |    |
//!            |     P1.1/UCA0RXD|----|
//!            |                 |
//!
//! This example uses the following peripherals and I/O signals.  You must
//! review these and change as needed for your own board:
//! - UART peripheral
//! - GPIO Port peripheral (for UART pins)
//! - UCA0TXD
//! - UCA0RXD
//!
//! This example uses the following interrupt handlers.  To use this example
//! in your own application you must add these interrupt handlers to your
//! vector table.
//! - USCI_A0_VECTOR.
//******************************************************************************
#include "driverlib.h"

uint16_t i;
uint8_t RXData = 0, TXData = 0;
uint8_t check = 0;
uint32_t clockValue;

void main(void)
{
    // stop watchdog
    WDT_A_hold(WDT_A_BASE);

    // XT1 Setup
    //Set P4.1 and P4.2 as Function Input.
    /*

     * Select Port 4
     * Set Pin 1, 2 to input Module Function, XT1.
     */
    GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_P2,
        GPIO_PIN0 + GPIO_PIN1,
        GPIO_PRIMARY_MODULE_FUNCTION
        );

    //Set external clock frequency to 32.768 KHz
    CS_setExternalClockSource(32768);
    //Set ACLK=XT1
    CS_initClockSignal(CS_ACLK,CS_XT1CLK_SELECT,CS_CLOCK_DIVIDER_1);
    //Start XT1 with no time out
    CS_turnOnXT1(CS_XT1_DRIVE_0);
    //Set SMCLK = DCO with frequency divider of 1
    CS_initClockSignal(CS_SMCLK,CS_DCOCLKDIV_SELECT,CS_CLOCK_DIVIDER_1);
    //Set MCLK = DCO with frequency divider of 1
    CS_initClockSignal(CS_MCLK,CS_DCOCLKDIV_SELECT,CS_CLOCK_DIVIDER_1);

    // Configure UART pins
    //Set P1.0 and P1.1 as Secondary Module Function Input.
    /*

     * Select Port 1
     * Set Pin 0, 1 to input with function, (UCA0TXD/UCA0SIMO, UCA0RXD/UCA0SOMI).
     */
    GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_P1,
        GPIO_PIN4 + GPIO_PIN5,
        GPIO_PRIMARY_MODULE_FUNCTION
        );

    /*
     * Disable the GPIO power-on default high-impedance mode to activate
     * previously configured port settings
     */
    PMM_unlockLPM5();

    //Configure UART
    //SMCLK = 1MHz, Baudrate = 115200
    //UCBRx = 8, UCBRFx = 0, UCBRSx = 0xD6, UCOS16 = 0
    EUSCI_A_UART_initParam param = {0};
    param.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK;
    param.clockPrescalar = 8;
    param.firstModReg = 0;
    param.secondModReg = 0xD6;
    param.parity = EUSCI_A_UART_NO_PARITY;
    param.msborLsbFirst = EUSCI_A_UART_LSB_FIRST;
    param.numberofStopBits = EUSCI_A_UART_ONE_STOP_BIT;
    param.uartMode = EUSCI_A_UART_MODE;
    param.overSampling = EUSCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION;

    if(STATUS_FAIL == EUSCI_A_UART_init(EUSCI_A0_BASE, &param))
    {
        return;
    }

    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 interrupt

    //Verify if the Clock settings are as expected
    clockValue = CS_getMCLK();
    clockValue = CS_getACLK();
    clockValue = CS_getSMCLK();

    __enable_interrupt();
    while(1)
    {
        TXData = TXData + 1;                            // Increment TX data
        // Load data onto buffer
        EUSCI_A_UART_transmitData(EUSCI_A0_BASE,
                                  TXData);
        while(check != 1)
        {
            ;
        }
        check = 0;
    }
}

//******************************************************************************
//
//This is the USCI_A0 interrupt vector service routine.
//
//******************************************************************************
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCI_A0_VECTOR
__interrupt
#elif defined(__GNUC__)
__attribute__((interrupt(USCI_A0_VECTOR)))
#endif
void EUSCI_A0_ISR(void)
{
    switch(__even_in_range(UCA0IV,USCI_UART_UCTXCPTIFG))
    {
    case USCI_NONE: break;
    case USCI_UART_UCRXIFG:
        RXData = EUSCI_A_UART_receiveData(EUSCI_A0_BASE);
        if(!(RXData == TXData))                       // Check value
        {
            while(1)
            {
                ;
            }
        }
        check = 1;
        break;
    case USCI_UART_UCTXIFG: break;
    case USCI_UART_UCSTTIFG: break;
    case USCI_UART_UCTXCPTIFG: break;
    }
}

MSP430F5172: 程序烧录不良

$
0
0
Part Number: MSP430F5172
Other Parts Discussed in Thread: MSP-GANG, UNIFLASH
我们购买一批MSP430F5172芯片
订单号:T01828184,数量2K
订单号:T01755412,数量2K
订单号:T01755410,数量4K
总数量8K,投产上机后已测试4910PCS,发现烧录不良979PCS,现场工作人员有佩戴防静电手环,操作规范,烧录数据脚测试连接芯片正常,但无法烧录,请尽快帮忙安排解决方案。
We bought a batch of msp430f5172 chips

Order No.: t01828184, quantity 2K

Order No.: t01755412, quantity 2K

Order No.: t01755410, quantity 4K



The total quantity is 8K. After putting into operation, 4910 PCs. have been tested, and 979 PCs. are found to have poor burning. The on-site staff wear anti-static bracelets. The operation is standard. The burning data pin test connection chip is normal, but it cannot be burned. Please help arrange a solution as soon as possible. e2echina.ti.com/.../799e3f3afa22a303d32c4adab15cae27.mp4

MSP430G2553: ADC10采样问题。

$
0
0
Part Number: MSP430G2553

各位大神,我用信号源产生一个2kHz的正弦波信号,幅度1v,然会通过MSP430G2553的ADC10来采集信号,再将采集到数据通过UART发送到matlab中进行波形的还原,但是还原出来的信号总是会有毛刺(有时候也正常)。请问这是我程序哪里出问题了嘛?(信号源产生的信号是准确的,已经测试过了)。

下图为两种出现毛刺的情况

正常现象

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


#define nn 100;
uint16_t adcbuff[100] = {0}; 
uint8_t combuff[20]={0}; 
uint8_t iscomend =0 ;
/**
* main.c
*/
void InitSystemClock(void)
{
DCOCTL = CALDCO_16MHZ;
BCSCTL1 = CALBC1_16MHZ;
BCSCTL2 &= ~SELS; 
BCSCTL2 &= ~(DIVS0 | DIVS1); 
}

void InitUART(void)
{
UCA0CTL1 |= UCSWRST; 

UCA0CTL0 &= ~(UCMODE1 | UCMODE0); 
UCA0CTL0 &= ~UCSYNC; 
UCA0CTL1 |= (UCSSEL1 | UCSSEL0); 


UCA0BR0=0x82;
UCA0BR1=0x06;
UCA0MCTL |= (UCBRS1| UCBRS2);

P1SEL |= BIT1 + BIT2;
P1SEL2 |= BIT1 + BIT2;

UCA0CTL1 &= ~UCSWRST;

IE2 |= UCA0RXIE; 
IFG2 &= ~UCA0RXIFG ;
}

void InitADCTrigByTimerA(void)
{
ADC10CTL1 |= ADC10SSEL_2;


ADC10CTL1 |= SHS0; 
ADC10CTL1 |= CONSEQ1; 

ADC10CTL0 |= SREF_1;
ADC10CTL0 |= ADC10SHT_1; 

ADC10CTL0 &= ~ADC10SR;

ADC10CTL0 |= REF2_5V; 
ADC10CTL0 |= REFON; 

ADC10CTL1 |= INCH_4;

ADC10AE0 |= 1 << 4;
ADC10DTC0 |= ADC10CT;

ADC10SA = (uint16_t)(adcbuff); 


ADC10CTL0 |= ADC10ON;


ADC10CTL0 |= ENC;

}

void InitTimerA()
{
TA0CTL |=TASSEL1;
TA0CTL |= MC0; 

TA0CCR0 =0x004F;
TA0CCR1= 0x002F;
TA0CCTL0 &= ~CAP;
TA0CCTL1 &= ~CAP;
TA0CCTL1 |= OUTMOD_6;

P1SEL |= BIT6;
P1DIR |= BIT6;

}

int main(void)
{
uint16_t cnt = 0;

WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
InitSystemClock();
InitUART();
InitADCTrigByTimerA();
InitTimerA();
__bis_SR_register(GIE);

while(1)
            {
               if(iscomend)
                 {
                   iscomend =0; 
                   for(cnt = 0; cnt<100;cnt ++)
                        { 
                               while(UCA0STAT & UCBUSY);
                              UCA0TXBUF=*(adcbuff+cnt)/256; 
                              __delay_cycles(30000); 
                              while(UCA0STAT & UCBUSY);
                             UCA0TXBUF=*(adcbuff+cnt)%256; 
                             __delay_cycles(30000);
                          }

                }
            }
return 0;
}

#pragma vector = USCIAB0RX_VECTOR
__interrupt void UART_Receive_ISR(void)
{
            static uint8_t cnt2 = 0;
            if(IFG2 & UCA0RXIFG)
                {
                    IFG2 &= ~UCA0RXIFG;
                     combuff[cnt2++] = UCA0RXBUF;
                    cnt2 %= 20;
                     if(combuff[cnt2 - 1] == '#')
                           {
                               cnt2 = 0;
                               iscomend = 1;
                           }
                }
}

MSP-EXP430G2: 问一个目标板的问题?

$
0
0
Part Number: MSP-EXP430G2

手头有一块MSP-EXP430G2,发现它有一个SBW的对外接口,

不知道这个SBW的接口可不可以仿真另一个目标板。就是将跳线J3全部断开,使用J4的2.3.4.5四个脚,对应 VCC,SBWTCK ,SBWTDIO,GND.

如果看可以的话,能仿真全系列的MSP430吗?

MSP430F5529: msp430f5529

$
0
0
Part Number: MSP430F5529

定义了一个数组S【5】={1,1,1,1,0}

以SMCLK(500KHz)为参考,想通过引脚将数组输出,即引脚输出8us高电平,2us低电平的循环

想用定时器来做,但是不知道该怎么设置

MSP430F4250: msp430f4250

$
0
0
Part Number: MSP430F4250

需要保留的控制通讯接口(如下图)和我们下载通讯驱动接口(如下图)产生冲突,控制通讯接口如何接,你这样子说我们不明白,你要告诉我们怎么把控制信号(CE,SCL,DATA,MODE)分别接到贵司IC对应引脚上;能否提供一些外围电路资料或者别人设计过的资料供我们技术参考?

MSP430F5438A: MSP430F5438A rtc

Viewing all 3634 articles
Browse latest View live