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

msp430f5438a 请教 软件是否可以判断单片机是正常上电重启还是看门狗复位重启?

$
0
0

额,我的程序需要针对正常上电重启和看门狗复位重启分别做不同的准备工作,因此,我需要判断当前单片机的上电方式。

手册上说可以通过使用SYSRSTIV寄存器进行判断,但是我不知道该如何使用。

恳请各位不吝赐教,感谢!


【TI 测评】+msp432 虚拟数据显示和记录仪

$
0
0

基于labview的数据采集显示记录

1.    基本原理描述

       本次测试是基于测试二中等间隔采样测试基础上的测试,其基本设计想法是,labview的数据采集和记录系统通过串口触发MSP432P401R开始采样,当MSP432P401R完成1024点采样后,将数据通过串口发送到记录和采集系统中,记录和采集系统接收到数据后转换为实际值即对应的电压值,然后显示和记录。

AD转换信号频率为128次/20ms,单次转换时间为156.25us。采用P55作为模拟量输入引脚。如下图开发板引脚定义中A0-P5.5。

开发板引脚定义:

 

2.    数据采集和记录系统简捷

Labview上位基于官方例程修改而来,修改了显示处理和串行接口数据处理。

2.1.  串行接口数据处理

串行端口打开。

数据获取和再触发,数据获取后根据采样关系转换为实际对应的电压值,并形成波形数据,供显示和记录。

 

2.2.  主画面

中间空白处为波形显示区,限免提供4个按钮,程序运行后,按“开始”按钮,开始数据采集和记录,按“停止”按钮停止数据采集和记录,“设置”按钮可以设置数据记录的位置,“退出”按钮结束程序。

2.3.  数据记录

 

设置记录路径,信号类型暂时没有启用。

数据采用labview支持的tdms格式记录。

 

3.    实测效果

     将A0多次在gnd和3.3V之间切换。A0接3.3V时,

 

 A0接GND时

记录的数据展示。

 

 

TMS320F28054相似芯片推荐

$
0
0

我现在选择的芯片是TMS320F28054MPNT,但是这个芯片是双电机驱动的芯片,尺寸有些略大,请问有在性能上和这个芯片持平,引脚较少封装较小的芯片吗?需要用到的外设有CAN、内部集成的运算放大器及内部集成算法。

【TI 测评】从两段点亮msp432的LED的程序说起

$
0
0

第一个程序:

/*******************************************************************************
 * MSP432 GPIO - Toggle Output High/Low
 *
 * Description: In this very simple example, the LED on P1.0 is configured as
 * an output using DriverLib's GPIO APIs. An infinite loop is then started
 * which will continuously toggle the GPIO and effectively blink the LED.
 *
 *                MSP432P401
 *             ------------------
 *         /|\|                  |
 *          | |                  |
 *          --|RST         P1.0  |---> P1.0 LED
 *            |                  |
 *            |                  |
 *            |                  |
 *            |                  |
 *
 * Author: Timothy Logan
 ******************************************************************************/
/* DriverLib Includes */
#include "driverlib.h"

/* Standard Includes */
#include <stdint.h>

#include <stdbool.h>

int main(void)
{
    volatile uint32_t ii;

    /* Halting the Watchdog */
    MAP_WDT_A_holdTimer();

    /* Configuring P1.0 as output */
    MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);

    while (1)
    {
        /* Delay Loop */
        for(ii=0;ii<5000;ii++)
        {
        }

        MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
    }
}

第二个程序:

//***************************************************************************************
//  Blink the LED Demo - Software Toggle P1.0
//
//  Description; Toggle P1.0 inside of a software loop.
//  ACLK = n/a, MCLK = SMCLK = default DCO
//
//                MSP432P4xx
//             -----------------
//         /|\|              XIN|-
//          | |                 |
//          --|RST          XOUT|-
//            |                 |
//            |             P1.0|-->LED
//
//  E. Chen
//  Texas Instruments, Inc
//  March 2015
//  Built with Code Composer Studio v6
//***************************************************************************************

#include <ti/devices/msp432p4xx/driverlib/driverlib.h>

int main(void)
{
    volatile uint32_t i;

    // Stop watchdog timer
    WDT_A_hold(WDT_A_BASE);

    // Set P1.0 to output direction
    GPIO_setAsOutputPin(
        GPIO_PORT_P1,
        GPIO_PIN0
        );

    while(1)
    {
        // Toggle P1.0 output
        GPIO_toggleOutputOnPin(
            GPIO_PORT_P1,
			GPIO_PIN0
			);

        // Delay
        for(i=100000; i>0; i--);
    }
}

MSP430FR5964的FRAM要分别放48K CODE,其他都是DATA.一下载CODE就把整个FRAM清空了,DATA也没有了,如果要下载CODE时,保留DATA有办法嘛?

$
0
0

MSP430FR5964的FRAM要分别放48K CODE,其他都是DATA.一下载CODE就把整个FRAM清空了,DATA也没有了,如果要下载CODE时,保留DATA有办法嘛?

1.现在用的是IAR.

2.没有采用Bootloader.

MSP430F149 P1.1 P1.2 P1.3 TA0 TA1 TA2频率捕获问题

$
0
0

void cap_init(void)
{
P1SEL =BIT2; //选择1.2作为捕获的输入端子


TACCTL1|=CM0+SCS+CCIS_0+CAP+CCIE;//上升沿触发,同步模式,使能中断


TACTL |=TASSEL1+ID_0; //选择8M-SMCLK时钟

}

#pragma vector=TIMERA1_VECTOR
__interrupt void TimerA1(void)
{

switch(TAIV)
{
case 2:
{
count++;
break;
};
case 4:
break;
case 10:
break;
}
}

之前的程序实现了P1.2 TA1的频率捕获。

现在想要加上TA0和TA2两个捕获,TA0,TA2对应的中断应该怎么设置?

MSP430F2619,官方例程就修改了一下端口,GPIO口没有变化?

$
0
0

程序和Debug就是这样。新手求指教

【TI 测评】+MSP-EXP432P401R 小黑板下载那些事

$
0
0

经过几天的折腾,终于把MSP-EXP432P401R的下载搞定了,把经验给大家分享下。

首先是板载XDS110-ET的firmware的版本,一定要是Rev 1.0的,千万不要升级,升级完后降级是很困难的。

MDK检测到的 Rev1.2  XDS110-ET的信息如下所示:

其次是下载的方式,可以通过CCS(这个只能debug间接下载,无法直接下载)、MDK、IAR、UNIFLASH、DSLite(一个批处理下载文件)这些方式下载。

首先是CCS的下载,CCS软件的版本一定不要用最新的,最新的CCS软件是RevB版本的芯片的。而且用最新的CCS会自动更新固件,更新后的XDS110-ET固件会变为Rev1.2 的版本,下载的提示如下所示:

这个时候怎么办呢?换CCS的版本,换CCS8以下的版本,我这里换的是CCS7.4的版本,使用XDS110-ET  Rev1.2 和XDS110-ET  Rev1.0的版本都是可以下载的。debug运行界面如下所示:

注意:如果用XDS110-ET  Rev1.2 第一次用CCS7.4给板子下载,会给XDS110-ET降级为Rev1.0的,因为CCS7.4自带的XDS110的固件版本就是Rev1.0的。

           但我插入另一块Rev1.2小黑板,不提示升级了,这个需要找到在哪更新的,或许TI的员工可以来提示下。

 

然后是MDK的下载,MDK的下载有两点需要注意的:

1.仿真下载器需要选择CNSIS-DAP Debugger

2.XDS110-ET 的版本必须是 Rev1.0的,在MDK5.24环境下 Rev1.2版本的固件是不支持下载的。使用Rev1.2下载的报错如下所示:

 

最后要讲的是UNIFLASH的下载,UNIFLASH的下载同样对XDS110-ET的固件版本没要求,但是对UNIFLASH的版本有要求,最新的UNIFLASH5.1的版本是不支持的,我用的是UNIFLASH4.0的版本,UNIFLASH4.0的下载链接如下所示:

 

 


msp430f5324 timer周期与最小定时中断怎么协调?

$
0
0

想要设置周期1s,但是1s内依次在100us,120us,140us处触发定时中断,周期内不想用延时的方式占用cpu

目前的想法是smclk=1m,定时器先4分频再5分频到50k,这样1tick=20us,16位定时器50000*20us=1s,这样可以勉强实现定时中断和周期时间

但是定时器1tick就进一个中断,定时的时间很不准。大时间周期和小时间中断怎么处理呢?

请问有推荐的方案吗?

CC2640R2F 是否跟CC2640一樣 內建cap-array 來調整XTAL頻率?

TMDSEMU560V2STM-UE 产品问题

$
0
0

Hi 

目前购买4块 TMDSEMU560V2STM-UE  仿真器,到手一周后,有一块仿真器出现问题,电源指示灯也发生异常,需求帮助如何解决,谢谢! 

MSP DSP library库函数 FFT

$
0
0
我也在看这个MSP DSP library库函数,这个例子的结果怎么看,也没搞懂,期待TI技术支持的解释;

MSP432P401R RTC时钟偏差较大

$
0
0

目前通过MSP432P401R的RTC时钟,作为系统时间,通过测试发现RTC时钟24小时慢在6分钟以上;

系统时钟采用内部DCO时钟:

FlashCtl_setWaitState( FLASH_BANK0, 2 );
FlashCtl_setWaitState( FLASH_BANK1, 2 );
CS_setDCOCenteredFrequency( CS_DCO_FREQUENCY_48 );
CS_initClockSignal( CS_HSMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );
CS_initClockSignal( CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_4 );
CS_initClockSignal( CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );
CS_initClockSignal( CS_ACLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1 );
CS_initClockSignal( CS_BCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1 );

RTC初始化:

 MAP_RTC_C_initCalendar(&RtcData, RTC_C_FORMAT_BINARY);

/* Specify an interrupt to assert every minute */
MAP_RTC_C_setCalendarEvent(RTC_C_CALENDAREVENT_MINUTECHANGE);

MAP_RTC_C_clearInterruptFlag( RTC_C_TIME_EVENT_INTERRUPT );
MAP_RTC_C_enableInterrupt( RTC_C_TIME_EVENT_INTERRUPT);
/* Start RTC Clock */
MAP_RTC_C_startClock();

/* Enable interrupts and go to sleep. */
MAP_Interrupt_enableInterrupt(INT_RTC_C);
RtcData=MAP_RTC_C_getCalendarTime();//RTC时钟初始化

RTC时钟读取:

void RTC_C_IRQHandler(void)
{
uint32_t status;
static bool TempbasalModeState=false;//临时基础率运行状态
status = MAP_RTC_C_getEnabledInterruptStatus();
MAP_RTC_C_clearInterruptFlag(status);

if (status & RTC_C_CLOCK_READ_READY_INTERRUPT)
{
//MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
}

if (status & RTC_C_TIME_EVENT_INTERRUPT)//分中断
{
/* Interrupts every minute - Set breakpoint here */
asm("nop");//__no_operation();
RtcData = MAP_RTC_C_getCalendarTime();

}

}

系统主要工作在LPM3;

 

编译时copy_decompress_lzss.c可以去掉吗?

$
0
0

我用msp430fr2311做开发,代码空间有些紧张,看项目里的msp文件,发现除我的代码外,CCS9编译器还添加了许多目标文件:

 D:\Program Files\ti\ccs910\ccs\tools\compiler\ti-cgt-msp430_18.12.2.LTS\lib\rts430x_lc_sd_eabi.lib
       copy_decompress_lzss.c.obj   238    0         0     
       autoinit.c.obj               106    0         0     
       div32u.asm.obj               88     0         0     
       cpy_util.asm.obj             64     0         0     
       copy_zero_init.c.obj         62     0         0     
       lsr32.asm.obj                62     0         0     
       copy_decompress_none.c.obj   60     0         0     
       div16s.asm.obj               44     0         0     
       mult32.asm.obj               38     0         0     
       boot.c.obj                   28     2         0     
       div16u.asm.obj               22     0         0     
       mult16.asm.obj               20     0         0     
       isr_trap.asm.obj             8      0         0     
       exit.c.obj                   6      0         0     
       pre_init.c.obj               4      0         0     
       int45.asm.obj                0      2         0     
       int46.asm.obj                0      2         0     
       int50.asm.obj                0      2         0     
       int51.asm.obj                0      2         0     
       int53.asm.obj                0      2         0     
       int54.asm.obj                0      2         0     
       int55.asm.obj                0      2         0     
       int57.asm.obj                0      2         0     
       int58.asm.obj                0      2         0     
       startup.c.obj                2      0         0     
    +--+----------------------------+------+---------+---------+
       Total:                       852    20        0     

占238字节的copy_decompress_lzss.c文件是做什么的,我程序里似乎没有用到,可否优化掉省点空间。

MCU推荐

$
0
0

dear

       请问有可以替换的MCU吗?


MSP430FR6043的开发板TIDM-02003接地问题

$
0
0

如图所示,在TIDM-02003开发板中的外部超声波信号发送和接收处理部分电路接地为何这样处理?

Grace 支持MSP430FG4270吗?

DRV8711 怎么测试步进电机的驱动电流?

$
0
0

示波器的探笔的正极接的是AISENP  负极接的是BISENP ,这种接法测试时我可以在示波器上得到一个正弦波。 但如果是正极接的是AISENP  负极接的是AISENN的话得到就是半个正弦波 类似三角波。那种接法是正确的了?

msp430fr6043的uss模块相关问题

$
0
0

您好,关于6043的uss模块,PGA的输入范围我记得是35mv-1000mv,而给出的测试信号是包含y轴下半部分波形的,这个是因为在外部对信号进行了处理吗?还是uss模块设置后本身就能采集负电压?

有关MSP430 USSLib的一点疑问

$
0
0

我刚刚接触MSP430的超声波流量表应用,有一点点疑问

1.超声波流量库中提到的hilbert hilbertWide lobe lobeWide这四种算法有没有更详细一点的介绍,文档中一笔就带过了,光按照名字百度也百度不到

2.我们的项目涉及到 “自主可控” 的需要,不知道TI是否能够提供这个库的源代码呢?

Viewing all 3634 articles
Browse latest View live