Other Parts Discussed in Thread: OPA2333,
求助,最近在用MSP430F5438A的ADC功能,采用ADI的LTC6115进行电流采集,信号经过ADI的模拟开关ADG708BRUZ以及TI的运算放大器OPA2333后输入给MSP430。信号电压范围设计的是0~5V,OPA2333做了个二分之一,给到MSP430信号电压是0~2.5V。如下图,绿色和黄色分别为ADG708输入前通道2和通道4的信号,红色为ADG708输出信号…
求助,最近在用MSP430F5438A的ADC功能,采用ADI的LTC6115进行电流采集,信号经过ADI的模拟开关ADG708BRUZ以及TI的运算放大器OPA2333后输入给MSP430。信号电压范围设计的是0~5V,OPA2333做了个二分之一,给到MSP430信号电压是0~2.5V。如下图,绿色和黄色分别为ADG708输入前通道2和通道4的信号,红色为ADG708输出信号…
程序初始化时,单对Timer1CCR1进行定时初始化,并且打开定时器,但是定时器没有进入中断,装载一下Timer1CCR0,Timer1CCR1就能正常工作。程序如下:
// TA1CTL=TASSEL_2+TACLR;
//TA1CCR0=45000;
TA1CTL=TASSEL_2+TACLR;
TA1CCR1=45000; //配置定时值
TA1CCTL1=CCIE; //Timer1 CCR1中断使能
TA1CTL |= MC_1; …
如上图所示,我为5438A配置了20MHz的有源晶振
时钟配置部分代码如下:
如此配置后,利用
clockValue = UCS_getSMCLK();
clockValue = UCS_getMCLK();
这两个函数回读的主时钟和子时钟都是1048576MHz,实际利用串口通讯测试也确实如此,
请问这是为什么呢,我希望将主时钟和子时钟都配置为20MHz
我需要采集15路脉冲信号的周期并计算每路脉冲的上升沿个数
所以我在430产品线中选择了5438A
刚好有15路捕获
以timerA0为例 可以捕获5路脉冲信号
不过CCR0是有独立的中断的,CCR1至CCR4是公用一个中断信号的
timerA1情况类似,CCR0有独立中断,CCR1到CCR2公用一个中断信号
timerB也是这样的,CCR0有独立中断,CCR1到CCR6公用一个中断信号
各个timer的时钟都是用的XT2高速时钟分频得到(做32分频…
我的工程编译advice中,有这样一条处理建议
随后我在“msp430ware_3_80_14_01”中检索关键字“math”,得到了下面的检索结果
从检索结果看,mathlib分别对应以下产品线
energy_measurement
26xx
2522
2676
captivate
问题1…
我需要用5438A采集外部信号边沿以计算信号周期,为了提高采集精度,对于XT2,我想使用高精度、低温漂的有源晶振
但是我不确定应该配多少V的有源晶振呢 TRM文档描述如下
我在手册里没有找到DVIO是多少
而且我计划用24MHz的有源晶振作为XT2时钟
那么我是应该用1.8V供电的晶振 还是应该用3.3V供电的晶振呢
公司刚买了三个,使用一个,Serial: 22*******,在fet-pro430中将固件从1.0升级到3.11。但在用IAR仿真时,提示要升级固件
如果选择“是”,则固件降回1.0
发现是IAR不能正确识别固件版本:
Wed Feb 22, 2023 14:01:29: IAR Embedded Workbench 7.12.1 (C:\Program Files (x86)\IAR Systems\Embedded…
我的程序中,没有设置SVSMLACE和SVSLMD,这两个位的默认值都是0
所以应该对应表2-5的第一行,即SVSL Control Mode对应antomatic,SVML Control Mode对应manual
我同样没有配置过SVSLE,这个位的默认值是0,我比较关系的唤醒时间,可以看出是fast模式,也是我希望的模式
以上理解,不指导正确与否?
问题1.请问表2-6中的Off是什么含义呢?
问题2.下图中的红框的两列是什么含义呢…
如图所示,为了能够动态观测变量,我在调试时勾选了Halt the target before any debugger access
不过后面括号里说会影响中断执行
那么请问调试的时候开启这个功能可以吗?这个是仅影响调试吗,如果固化代码后脱离仿真器,程序运行会收到什么影响吗?
关于Vcore TRM文档中有如下描述
默认情况下,PMMCOREV为最小值
5438A数据手册中有如下图片
按照这张图片,如何理解TRM手册中“enables operation of MCLK over a very wide frequency range.”
从这张图片看,我的理解是,PMMCOREV设置为最小值0,MCLK最大不能超过8MHz,但是Supply Voltage可以从1.8V到3.6V,Supply…
//***************************************************************************//
//
// Main Function
//
//***************************************************************************//
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
如这段描述,LPM0 through LPM4是通过设置SR寄存器中的CPUOFF, OSCOFF, SCG0, and SCG1位实现不同的低功耗模式的
从这张图看,LPM模式应该不会影响SMCLK的吧?如果XT2在电路上配置了一个高频晶体,并且将SMCLK的源设置为XT2
LPM3会影响SMCLK吗?进入LPM3,会将SMCLKOFF进行相应的设置从而关闭SMCLK吗
我用CCS进行调试,使用5438A头文件中定义的LPM3使单片机进入低功耗模式…
请问,大家有用 MSP430F5438A-ET (BGA)芯片开发产品的经验的吗?
下载代码总是一直出现“ Fatal error: Could not find device (or device not supported) session aborted!
但是如果换成MSP430F5438A一切正常,有哪位大神能给指导一下吗…
当选用定时器B,来做脉冲计数的时候,选用P4.7作为时钟输入,P4.0的输入方波作为捕捉信号
请问:
TBSSEL=0时,选用了外部时钟输入, 计数的时候,是根据外部信号的上升沿计数,还是下降沿计数?
谢谢
Timer B使用了捕捉功能,设置成上升沿捕捉,下面是中断程序的两种写法:
///////////////////第一种/////////////////////
#pragma vector = TIMER0_B0_VECTOR
__interrupt void timer_b0_isr(void)
{
if( TB0CCTL0 & CCI ){ //捕捉到低电平
//进行处理
TB0CCTL0 &= (~CCIFG) ; /…
void TimrA1Init_captrue(void)
{
undefined
TA0CTL = TASSEL0+TACLR+TAIE+MC1; //时钟信号选择MCLK,计数模式为连续增计模式
TA0CCTL1 = CM1+SCS+CAP+CCIE; //输入下降沿捕获,CCI1A为捕获信号源
P1SEL |=BIT2; //设置P1.2端口为功能模块CCI1A输入捕获
}
unsigned int TimeGap=0;
#pragma…
程序目的:捕捉的信号是P4.0,上下沿都捕捉,并且产生中断信号,当捕捉到P4.0的上升沿时,把此刻的P4.7输入的方波信号的计数值保存起来
void TIMEB_init( void )
{
//P4.7 为时钟输入,P4.0为上下沿捕捉
TB0CTL = TBSSEL_0 + ID_0 + TBCLR ; //TB0CLK输入,不分频,自动清0和分频参数
TB0CCTL0 = CM_3 | CAP | CCIE | CNTL_0…
void TIMEB_init( void )
{
//P4.7 为时钟输入,P4.0为上下沿捕捉
TB0CTL = TBSSEL_0 + ID_0 + TBCLR ; //TB0CLK输入,不分频,自动清0和分频参数
TB0CCTL0 = CM_3 | CAP | CCIE | CNTL_0 | CCIS_0 ;
//上下沿捕捉,捕捉模式,有中断, 16位模式,P4.0输入,必须是异步捕捉
//P4…
参考
https://dev.ti.com/tirex/explore/node?node=AIsx3essEcHIyKbkidrtgQ__IOGqZri__LATEST
重复序列采样A0 - A3
但是传感器的电压信号是持续不断的,这样就会一直触发ADC的采样中断,无法进行正常程序。
我想每个10s进行一次采样,其他时间正常使用板卡进行其他操作。
请问有什么方法不进行中断就可以adc采样或者可以采样完成后跳出中断,进行完其他程序再进行中断
在使用iar +msp430f5438a 库函数时,用下面操作寄存器地址来改写寄存器的值,感觉非常方便。于是不要库函数时,也想这样操作,却不行,编译是对的,基地地址和偏移地址是对的,但仿真时寄存器值却不改变。@TI FAE如何在不使用库函数下使用 HWREG8这种方式写寄存器。
#define HWREG32(x) \
(*((volatile uint32_t *)((uint16_t)x)))
#define HWREG16(x) \
(*((volatile…
我以前使用IAR 430汇编语言l编程序转换到CCS时,伪指令出错,哪位高手指导一下,IAR伪指令与CCS对应伪指令。IARAl的ORG ASEG DB DW 与CCS哪些伪指令对应?