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.

[参考译文] RF430FRL152H:如何将 CLKIN 用于 ACLK?

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1343129/rf430frl152h-how-to-use-clkin-for-aclk

器件型号:RF430FRL152H

你(们)好!

我想使用 CLKIN (外部时钟、P1.4)作为 ACLK 的源

外部时钟为32.768kHz。

但它似乎不起作用。 始终为64kHz

我会错过什么吗?

空 DeviceInit (空)
{
//禁用 JTAG
P1SEL1 = 0x00;//P1.6 = 0
P1SEL0 = 0x00;//P1.6 = 0

P1REN = 0;

RFPMMCTL0 = RFPMMCTL0EN_VFREG_BATSWITCH_VDOUB;

CCSCTL0 = CCSKEY;//解锁 CCS

CCSCTL6 = 0x00;
CCSCTL1 = 0;//不是时钟速度的一半

CCSCTL4 = SELA_2 + SELM_0 + SELS_0;
CCSCTL5 = DIVA_2 + DIVM_1 + DIVS_1;//将 ACLK (4)、MCLK 和 SMCLK 的分频器设置为1


CCSCTL8 = ACLKREQEN + MCLKREQEN + SMCLKREQEN;//如果未使用时钟,则禁用它们

TA0CCTL0 = CCIE;//计时器 A0捕捉/比较中断启用
TA0CTL = TASSEL__ACLK +// Timer_A 时钟源选择-> ACLK
         MC_1 +//模式控制、计时器向上计数到 TA0CCR0中存储的值
         ID_3;//输入分频器-> 1/2 (4MHz /2 = 2MHz)-这是进入比较寄存器的频率


TA0CCR0 = 1590;
CCSCTL0_H |= 0xFF;//锁定 CCS

P1DIR |= 0x04;// P1.2输出

返回;

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

    Chris、您好!

      此产品的论坛支持已缩减为首先参考我们现有的文档和配套资料。 如需支持、请查看该主题页面右下角的"类似主题"部分。 此外、请参阅 RF430FRL152H 产品网页的"技术文档"部分中的现有配套资料 以及 常见问题解答文档。 或者、您可以使用您选择的搜索引擎来查找相关的 E2E 主题。 借助这些资源、我们相信可以帮助解决您的问题。

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

    尊敬的 Charles:

    感谢您提供的信息。

    根据--外部时钟源:  CLKIN/XIN 是 ACLK 的时钟源(SELA = 2且 OSCOFF = 0)

    我们检查以下设置、但它不起作用。


    CCSCTL6 = 0x00;

    CCSCTL4 = SELA_2 + SELM_0 + SELS_0;

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

    您好!

     我也不熟悉该器件。 如果您从引脚外部提供 XT、但将整个 CCSCTL6设置为-、则读取 TRM、XTBYASS 的值应为1。 您可以尝试将 XTBYASS 设置为1吗? 您看到不同的结果吗?

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

    尊敬的 Charles:

    感谢您提供的信息。

    我们进行检查、它不会改变任何内容。  

    CCSCTL6 = 0x10;

    CCSCTL6 = 0x00;


    CLKIN 为32.768kHz

    CCSCTL5 = DIVA_2  + DIVM_1 + DIVS_1;  

    (DIVA_2除以4)

    并且我们将 Aclk 时钟源设置为   SELA _2 (CLKIN  )或 SELA _1 (LFCLK)、 Aclk 始终为64KHz

    CCSCTL4 = SELA_2 + SELM_0 + SELS_0;

    CCSCTL4 = SELA_1 + SELM_0 + SELS_0;

    Acclk 似乎源自 LF-OSC、即使设置  SELA _2 (CLKIN)也是如此

    Aclk 时钟源似乎未成功更改。

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

    Chris、您好!

     我建议您检查几项内容。  

     -您能否测量 CLKIN 以查看您是否获得32kHz 的输入。  

     -您有什么类型的 CLKIN ? 是外部振荡器吗?

     -是否有振荡器故障?

     -可以展示 CCS 模块的整个寄存器转储吗?

      

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

    尊敬的 Charles:

    感谢提供信息。

    1.外部 OSC: TG-3541CE

    2.检查外部 OSC 以连接到 p1.4和输出32.768kHz

    3。我们使用 CCS 工具来查看寄存器、但 CLKIN 和 TCK 是相同的引脚。

    那么、当使用外部 OSC 时、我不能通过 JTAG 转储所有寄存器。

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

    3。我们使用 CCS 工具来查看寄存器、但 CLKIN 和 TCK 是相同的引脚。

    那么、当使用外部 OSC 时、我不能通过 JTAG 转储所有寄存器。

    [/报价]

    如果可以连接到器件、则可以查看记录在连接调试器之前发生的器件状态的寄存器。 我想如果存在 CLKIN 故障、那么在您连接调试器时、尽管在 P1.4上使用了 TCK、但 CCSCTL7寄存器仍具有故障状态。  

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

    尊敬的 Charles:

    谢谢您的建议。

    (断开 JTAG)

    写入 CCSCTL6:0x0010

    寄存器转储到 FRAM 中并由 NFC 读取:

    P1SEL0: 0x0000
    P1SEL1: 0x0006
    P1DIR:  0x0046
    CCSCTL1: 0x0000
    CCSCTL4: 0x0200
    CCSCTL5: 0x0311
    CCSCTL6: 0x0000
    CCSCTL7:0x0001
    P1OUT:  0x00B0
    P1REN:  0x0000

    CCSCTL6写入0x0010、但回读0x0000

    CCSCTL7为0x0001、(XOFFG 为1)

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

    Chris、您好!

     您是否可以首先将 CCSCTL7设置为零以清除 XOFFG 标志、同时将  CCSCTL6设置为0x0010? 让它运行、 然后读回寄存器? XOFFG 是1位还是0位?

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

    尊敬的 Charles:

     您是否可以首先将 CCSCTL7设置为零以清除 XOFFG 标志、同时将 CCSCTL6设置为0x0010? 让它运行、 然后读回寄存器? XOFFG 是1位还是0位?

    我们清除 CCSCTL7 =0x0000、然后设置 CCSCTL6 = 0x0010

    void DeviceInit(void)
    {
    	P1SEL1 = 0x00; //P1.6 = 0
    	P1SEL0 = 0x00; //P1.6 = 0
    	
        P1SEL1 |= 0x06; //P1.1(ACLK), P1.2(MCLK)
        P1DIR |= 0x06;	//P1.1 OUTPUT, P1.2 OUTPUT
        P1REN = 0;
    
        RFPMMCTL0 = RFPMMCTL0EN_VFREG_BATSWITCH_VDOUB;
    
    
        CCSCTL0 = CCSKEY;                        // Unlock CCS
    
    	CCSCTL7 = 0x0000;
    
        CCSCTL1 = 0;                             // do not half the clock speed
    	CCSCTL4 = SELA_2 + SELM_0 + SELS_0;
        CCSCTL5 = DIVA_3 + DIVM_1 + DIVS_1;      // Set the Dividers for ACLK (4), MCLK, and SMCLK to 1
    	
        CCSCTL8 = ACLKREQEN + MCLKREQEN + SMCLKREQEN; //disable clocks if they are not being used
    
    
        TA0CCTL0 = CCIE;                        // Timer A0 Capture/compare interrupt enable
        TA0CTL = TASSEL__ACLK +                 // Timer_A clock source select -> ACLK
                     MC_1 +                     // Mode control, Timer counts up to the value stored in TA0CCR0
                     ID_3;                      // Input divider -> 1/2 (4MHz/2 = 2MHz) - this is the frequency which goes to comparison register
    
    
        TA0CCR0 = 1590; 
    	
    	CCSCTL6 = 0x0010;
    
        CCSCTL0_H |= 0xFF;                       // Lock CCS
    	
    	P1DIR |= 0x04; // P1.2 output
    
      return;
    }

    然后、读回寄存器:

     

    CCSCTL6: 0x0000
    CCSCTL7:0x0001

    这是一件奇怪的事情:我们设置 CCSCTL6:0x0010、但回读 CCSCTL6:0x0000

    和 CCSCTL7:0x0001

    ---
    此外、我们检查并设置 TA0CCR0 = 1590、回读  TA0CCR0:0x0636

    我们的代码应正确设置这些寄存器。

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

    这是一件奇怪的事情:我们设置 CCSCTL6:0x0010、但回读 CCSCTL6:0x0000

    和 CCSCTL7:0x0001

    [/报价]

    根据我从数据表中了解到的情况、如果先清除 CCSCTL7、然后您看到它再次变为0x0001、这意味着它检测到振荡器故障。 是否存在会导致 CCSCTL6和 CCSCTL7显示默认值的复位事件?

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

    感谢您的回复。

    可以为 P1.4使用1.5V OSC 吗?

    2.是否有用于外部时钟的示例代码?   我们将检查固件或硬件。

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

    Chris、您好!

     我需要咨询过去支持该器件的专家、因为我也不熟悉该器件。 从我看到的情况来看、您的代码似乎很好、但我不确定。 什么是 CCSKEY? 我要确保您写入15:8位。  

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

    尊敬的 Charles:

    感谢继电器。

    CCSKEY 将在 rf430frl152.h 中定义

    #define CCSKEY          (0xA500)    /* CCS 密码*/

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

    Chris、您好!   

    CSSKEY 看起来对我是正确的。 我需要咨询专家 CLKIN 设置有什么问题。

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

    Chris、您好!

     咨询我们的专家、他有以下建议。

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

    尊敬的 Charles:

    感谢您的回复。

    1.根据数据表,设置 p1sel0.6和 p1sel1.6以禁用 JTAG。

    我们的代码已设置如下:

    	P1SEL1 = 0x00; //P1.6 = 0
    	P1SEL0 = 0x00; //P1.6 = 0

    2.我们的代码和  MSP430-示例代码没有什么不同。  

    CCSCTL4 = SELUM_2;

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

    Chris、您好!

     我真的不知道问题的原因。 可以尝试几种方法吗?

     -提供设计原理图。

    -显示 CLKIN 的示波器电容波形。 它处于 RF430的电压范围内吗?

    -您的  TG-3541CE 具有 OE 输入吗? 您如何控制此输入?

      

    -您是否在所有定制板上都有同样的问题?

    -可以在 EVM 板上重复该问题吗?

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

    尊敬的 Charles:

    根据我们的 EE:  

    1.示意图 为 Link

    https://www.dropbox.com/scl/fi/px0w7b16ziu9ru7iyeu22/SCHEMATIC_For-OSC.pdf?rlkey=de6snssz2smnyg3ktfgy2htx0&st=80w0h0a0&dl=0


    2.如图所示,1.5V,32.768kHz


    3. OE 直接连接到 VCC。 NFC 打开时、如果 VDDSW 上电、OE 将变为高电平。

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

    Chris、您好!

     您能否将原理图直接附加到此处。 我公司阻止访问第三方云存储。  

     看着波形、这在我看来很正常、但我真的不知道什么是错的。  

     您能回答我遇到的另外两个问题吗?

       -您是否在所有定制板上都有同样的问题?

       -可以在 EVM 板上重复该问题吗?

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

    您好,Charles

    我是 EE、分享 RF430FRL152H 周围元件的原理图。

    如图所示、信号(CLOCK、32.768kHz、1.5V)连接到引脚22 (P1.4、CLKIN)。

    OSC 的电源连接至 VDDSW。 (我们已尝试连接到 VDDB、但结果是相同的。)

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

    您好、Nick。

     我认为您的原理图没有问题。  

    [报价 userid="600497" url="~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1343129/rf430frl152h-how-to-use-clkin-for-aclk ]CCSCTL4 = SELM_2 + SELM_0 + SELS_0;
    CCSCTL5 = DIVA_2 + DIVM_1 + DIVS_1;//将 ACLK (4)、MCLK 和 SMCLK 的分频器设置为1 [/报价]

    据我所知、在您的 CCSCTL4寄存器中、您只为 ACLK 选择 CLKIN。 但是、您为 SMCLK 和 MCLK 选择 HFCLK。  您是否也可以将 SMCLK 和 MCLK 设置为使用 CLKIN? 例如、CCSCTL4 = SELM_2 + SELM_2 + SELS_2;

    另请确保所有标志都相应地设置为零。 请参见下面以黄色突出显示的部分。  

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

    亲爱的查尔斯:

    谢谢重播。

    我们检查了与 MSP430示例代码相同的代码:

    CCSCTL4 = SELM_2 + SELM_2 + SELS_2;

    CCSCTL5 = DIVA_0 + DIVM_0 + DIVS_0;  

    while (1);

    它似乎仍然不是源自 CLKIN。

    oscoff 由低功耗模式控制。  

    我们的测试条件为工作模式、但 LPM0~4。

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

    Chris、

     我希望确保该器件没有任何问题。 你能做些实验吗?我有些想法不多了。

    -如果你不使用 P1.4作为 CLKIN 而是使用它作为 TCK ,你可以通过 JTAG 连接到器件吗?

    -如果您不使用 P1.4作为 CLKIN、而是在 GPIO 模式下使用它、那么当外部振荡器仍然连接到 P1.4时、您能检测并生成上升沿或下降沿的中断吗?

    -您可以在电路板上换用其它 RF430设备吗? 您可以重复同样的问题吗? 我想知道问题是只出在一个器件还是所有器件。 我想确定问题是否是由于引脚损坏造成的。 如果所有设备都有相同的问题、则一定是某些配置问题。  

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

    亲爱的查尔斯:

    谢谢重播。

    根据 P1.4多功能表、仅禁用更改为 CLKIN 功能的 JTAG 模式。
    但是、禁用 JTAG 模式时、它可以正常工作:P1.4/TIMER/SMCLK/CLKIN。

    与 P1DIR.x/P1SEL1.x/P1SEL0.x 无关的 CLKIN 函数、  

    芯片如何知道用户想要使用哪个功能?

    如果 CLKIN 和 P1.4的路径不同、则 CLKIN 应始终启用、并且在禁用 JTAG 后易于使用。  

    2.我们检查了另一个电路板,但它仍然无法从 CLKIN 获得。

    3.在 P1.6禁用后无法使用 JTAG。

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

    尊敬的 Charles:

    您是否从 TI Dallas 获得了有关此 CLKIN (外部 OSC)内置在 RF430FRL152H 中的回复?

    以及它如何通过 IC 中的原理图进行工作?

    谢谢。

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

    如果 CLKIN 和 P1.4的路径不同、则 CLKIN 应始终启用、并且在禁用 JTAG 后易于使用。  

    [/报价]

    我测试 JTAG 模式和 GPIO 模式的目的是确定物理引脚是否损坏。 如果物理引脚损坏、则 JTAG 和 GPIO 模式也将失效。 这是进行测试的原因。 但是、如果您说所有电路板都有相同的 CLKIN 问题、那么这不是硬件问题。  

    按照方框图、CLKIN 直接连接到 CCS、输入焊盘与所有接收模块(例如 CCS、JTAG、GPIO)共享。

    您是否从 TI Dallas 获得了有关此 CLKIN (外部 OSC)内置在 RF430FRL152H 中的回复?

    [/报价]

    在数据表和 TRM 中记录了多年后、没有理由相信不支持该功能。  

    我现在正在寻找专家来帮助这个帖子。  

    我将不在办公室,访问互联网的有限,直到下周二。  

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

    Chris、您好!

    Chris、您好!

     咨询我们的专家、他有以下建议。

    [/报价]

     我希望确保在切换到使用 CLKIN 之前、CLKIN 是否一直等到 CLKIN 稳定。 下面是 RF430FRL152H 所基于的 MSP430x09x 代码。 如果您查看突出显示的红色代码、它会等待 OFIFG 标志被清零、然后再继续对其余的 CCS 寄存器进行编程。  

    CCSCTL0 = CCSKEY; // Unlock CCS

    while (SFRIFG1 & OFIFG) // Oscillator Flag(s)?
    {
    CCSCTL7 = 0; // Clear HF & LF OSC fault flags
    SFRIFG1 = 0; // Clear OFIFG
    }
    CCSCTL5 = DIVA_0 + DIVM_0 + DIVS_0; // Set the Dividers for ACLK, MCLK, and SMCLK to 1
    CCSCTL4 |= SELA_2 + SELM_2 + SELS_2; // Select CLKIN/XOSC as the source for ACLK, MCLK, and SMCLK
    CCSCTL0_H |= 0xFF; // Lock CCS
    /* Lock by writing to upper byte */

    while(1);

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

    亲爱的查尔斯:

    非常感谢。

    它解决了问题。

    while (SFRIFG1 & OFIFG) // Oscillator Flag(s)?
    {
    CCSCTL7 = 0; // Clear HF & LF OSC fault flags
    SFRIFG1 = 0; // Clear OFIFG
    }

    我们想知道为什么它通过等待并清除故障标志来工作?

    它是否通过清除故障标志来复位外部时钟?

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

    Chris、您好!

     很高兴您的问题得到解决。 我过去曾接触过多个 MCU。 在使用主振荡器之前、始终需要等待主振荡器稳定。 您可以咨询您的晶体振荡器、了解其器件的启动时间是多长。 在时钟稳定之前、MCU 会将其检测为故障。 清零故障标志不会复位外部时钟。 我认为您的晶体振荡器没有复位输入。