This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FG6626:查看和访问 CTSD16寄存器

Guru**** 2204270 points
Other Parts Discussed in Thread: MSP430FG6626
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/948866/ccs-msp430fg6626-visibility-and-access-to-ctsd16-registers

器件型号:MSP430FG6626

工具/软件:Code Composer Studio

您好!

我正在与 MSP430FG6626合作,对于 CTSD16在调试模式下的寄存器可见性以及对这些寄存器的访问一般而言,我有2个问题:

1.调试时,我只能在寄存器选项卡中查看通道0的寄存器,例如 CTSD16CCTL0

如何使其他 AD 通道的寄存器可见、例如 CTSD16CCTL1

作为 IDE,我使用的是 CCS 10.1.0

 

 

2.如何访问其他通道的寄存器?

我在...ti/ccs1010/ccs/ccs_base/msp430/include 文件夹的 msp430fg6626.h 文件中定义了通道1的 ADC 寄存器、并尝试通过将通道0寄存器替换为通道1寄存器来调试示例项目 msp430fg662x_ctsd16_04。 不幸的是、结果变量始终为0。 如何解决此问题?

#include 

unsigned int 结果; // CTSD16转换结果

void main (void){
WDTCTL = WDTPW | WDTHOLD; //停止 WDT

P6SEL |= BIT6 | BIT7; //选择 AD1+/-模拟输入引脚

CTSD16CTL = CTSD16REFS; //内部参考
CTSD16CCTL1 |= CTSD16SNGL | CTSD16DF; //单个样本、二进制补码
CTSD16INCTL1 |= CTSD16INCH_11; //为 CH1选择 AD1+/AD1-

_DELAY_CYCLES (2000); //对于1.2V 基准电压稳定、延迟~120us

while (1){
CTSD16CCTL1 |= CTSD16SC; //将位设置为开始转换
while (!(CTSD16IFG 和 CTSD16IFG)); //轮询 IFG 直到转换完成
结果= CTSD16MEM1; //保存 CTSD16转换结果
__no_operation(); //在此设置断点
}
} 

非常感谢。

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Patrick:

    看起来很奇怪、 它应该能够正常查看 MCU 内部的所有寄存器。 我将与团队进行核实、然后回来。

    谢谢!

    此致

    Johnson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Patrick:

    您是否尝试使用 CCS 或 IAR 的较低版本? 我现在没有该设备。 我已经申请了、我将在收到后进行测试和分析。

    谢谢!

    此致

    Johnson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Johnson:

    感谢您的回复。

    我尝试了 CCS 8.3.0 CCS 9.3.0版本、但遗憾的是、它不起作用。

    如上所述、我在 msp430fg6626.h 文件的 CTSD16部分中定义了通道1的寄存器、并在文件夹中定义了 msp430fg6626.cmd 文件、该文件夹包含... ti/ccs1010/Ccs_base/msp430/include 中、具有 MSP430x6xx 系列用户指南的给定偏移。  

    我是否可能忘记在这里定义某些内容、从而无法看到寄存器?

    /*********
    * CTSD16 -Σ-Δ 16位
    /CTSD16CTL
    = 0x0A80;
    CTSD16CTL_L = 0x0A80;
    CTSD16CTL_H = 0x0A81;
    CTSD16IFG = 0x0AAC;
    CTSD16IFG_L = 0x0AAC;
    CTSD16IFG_H = 0x0AAD;
    CTSD16IE = 0x0AAE;
    CTSD16IE_L = 0x0AAE;
    CTSD16IE_H = 0x0AAF;
    CTSD16IV = 0x0AB0;
    CTSD16IV_L = 0x0AB0;
    CTSD16IV_H = 0x0AB1;
    CTSD16CCTL0 = 0x0A82;
    CTSD16CCTL0_L = 0x0A82;
    CTSD16CCTL0_H = 0x0A83;
    CTSD16MEM0 = 0x0AB2;
    CTSD16MEM0_L = 0x0AB2;
    CTSD16MEM0_H = 0x0AB3;
    CTSD16INCTL0 = 0x0A84;
    CTSD16INCTL0_L = 0x0A84;
    CTSD16INCTL0_H = 0x0A85;
    CTSD16PRE0 = 0x0A86;
    CTSD16PRE0_L = 0x0A86;
    CTSD16PRE0_H = 0x0A87;
    
    CTSD16CCTL1= 0x0A88;//新
    的 CTSD16CCTL1_L = 0x0A88;//new
    CTSD16CCTL1_H = 0x0A89;//新
    的 CTSD16MEM1 = 0x0AB4;//new
    CTSD16MEM1_L = 0x0AB4;//new
    CTSD16MEM1_H = 0x0AB5;//新
    的 CTSD16INCTL1 = 0x0A8A;//新
    的 CTSD16INCTL1_L = 0x0A8A;//新
    CTSD16INCTL_1_H = 0x0A8B;//新
    CTSD16PRE1 = 0x0A8C;//新建 

    #define _MSP430_HAS_CTSD16_1__//新 SFR_16BIT (CTSD16CCTL1); /* CTSD16通道1控制寄存器*/ //新 SFR_8位(CTSD16CCTL1_L); /* CTSD16通道1控制寄存器*/ //新 SFR_8位(CTSD16CCTL1_H); /* CTSD16通道1控制寄存器*/ //新 SFR_16BIT (CTSD16MEM1); /* CTSD16通道1转换内存*/ //新 SFR_8位(CTSD16MEM1_L); /* CTSD16通道1转换内存*/ //新 SFR_8位(CTSD16MEM1_H); /* CTSD16通道1转换内存*/ //新 SFR_16BIT (CTSD16INCTL1); /* CTSD16通道1输入控制寄存器*/ //新 SFR_8位(CTSD16INCTL1_L); /* CTSD16通道1输入控制寄存器*/ //新 SFR_8位(CTSD16INCTL1_H); /* CTSD16通道1输入控制寄存器*/ //新 SFR_16BIT (CTSD16PRE1); /* CTSD16通道1预载寄存器*/ //新 SFR_8位(CTSD16PRE1_L); /* CTSD16通道1预载寄存器*/ //新 SFR_8位(CTSD16PRE1_H); /* CTSD16通道1预载寄存器*/ //new //* CTSD16IFG */ #define CTSD16IFG1 (0x0002) /* CTSD16通道1中断标志*/ //new #define CTSD16OVIFG1 (0x0200) /* CTSD16通道1上溢中断标志*/ //new #define CTSD16IFG1_L (0x0001) /* CTSD16通道1中断标志*/ //new #define CTSD16OVIFG1_H (0x0001) /* CTSD16通道1上溢中断标志*/ //new /* CTSD16IE */ #define CTSD16IE2 (0x0004) /* CTSD16通道2中断使能*/ //new #define CTSD160VI2 (0x0400) /* CTSD16通道2上溢中断使能*/ //new #define CTSD16IE1_L (0x0001) /* CTSD16通道0中断使能*/ //new #define CTSD16OVIE1_H (0x0001) /* CTSD16通道0上溢中断使能*/ //新建 //* CTSD16IV 定义*/ #define CTSD16IV_NONE (0x0000) /*无中断挂起*/ #define CTSD16IV_CTSD16OVIFG (0x0002) /* CTSD16OVIFG */ #define CTSD16IV_CTSD16MEM0 (0x0004) /* CTSD16MEM0-CTSD16IFG0 */ #define CTSD16IV_CTSD16MEM1 (0x0006) //新建

    谢谢!

    此致

    Patrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Patrick:

    我想你不应该错过任何东西。 接收到样片后、我将测试并验证 CTSD16寄存器。

    该问题可能与 CCS 有关、但还不确定。 我将在测试后更新这里。

    谢谢!

    此致

    Johnson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Patrick:

    我检查此器件(FG6626)、发现 FG6626中只有一个 CTSD16模块、因此您只能/使用 CH0寄存器。

    谢谢!

    此致

    Johnson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Johnson:

    感谢您的回复。

    我认为您是对的、但我仍然有点困惑、因为寄存器是在 MSP430x5xx 和 MSP430x6xx 系列中指定的
    用户指南。

    那么、这意味着我无法使用它们、或者它们甚至不存在?

    谢谢!

    此致

    Patrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Patrick Bisinger ]我认为您是对的、但我仍然有点困惑、因为寄存器是在 MSP430x5xx 和 MSP430x6xx 系列中指定的

    用户指南。

    因此、这意味着我无法使用它们、或者它们甚至不存在?系列用户指南第30.1节 CTSD16简介包含:

    [引用]多达七个独立的同步采样 ADC (通道数取决于器件、请参阅器件特定数据表)[/引用]

    MSP430FG6626 数据表 第9.12.16.1节 CTSD16包含:

    [引用] CTSD16模块集成了一个单个 Σ-Δ ADC、该 ADC 具有10个外部输入和4个内部输入。 [/报价]

    [引用 USER="Patrick Bisinger]*这意味着我无法使用它们、甚至不存在它们?我认为  这意味着 MSP430FG6626内的 CTSD16模块仅包含单个 ADC (通道)、因此 器件中仅存在 CTSD16通道零寄存器。