搜索
bottom↓
回复: 28

求教MSP430F5438A的外接25M晶振问题

[复制链接]

出0入0汤圆

发表于 2011-7-10 14:13:41 | 显示全部楼层 |阅读模式
MSP430F5438A的最小系统,XT1外接32.768K,XT2外接25M晶振。现想用ACLK=XT1,MCLK=SMCLK=XT2。

请教,5438A的datasheet里面说是可以外接25M的,但是具体设置应该是如何?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2011-7-10 14:32:25 | 显示全部楼层
//*****************************************************************************
//
//                MSP430F5438A
//             -----------------
//        /|\ |              XIN|-
//         |  |                 | 32kHz(no capacitors)
//         ---|RST          XOUT|-
//            |                 |
//            |                 |
//            |            XT2IN|-
//            |                 | 25MHz(add capacitors 33pF*2)
//            |           XT2OUT|-
//            |                 |
//            |            P11.0|--> ACLK = 32kHz Crystal Output
//            |                 |
//            |            P11.2|--> SMCLK = 25MHz Crystal Output
//            |                 |
//            |            P11.1|--> MCLK = 25MHz Crystal Output
//            |                 |
//            |                 |
//******************************************************************************

#include "msp430x54x.h"

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

  P11DIR = BIT2 + BIT1 + BIT0;              // P11.2,1,0 to output direction
  P11SEL = BIT2 + BIT1 + BIT0;              // P11.2 to output SMCLK, P11.1
                                            // to output MCLK and P11.0 to
                                            // output ACLK
  P5SEL |= 0x0C;                            // Port select XT2
  P7SEL |= 0x03;                            // Port select XT1

  UCSCTL6 &= ~(XT1OFF + XT2OFF);            // Set XT1 & XT2 On
  UCSCTL6 |= XCAP_3;                        // Internal load cap

  // Loop until XT1,XT2 & DCO stabilizes
  do
  {
    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
                                            // Clear XT2,XT1,DCO fault flags
    SFRIFG1 &= ~OFIFG;                      // Clear fault flags
  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

  UCSCTL6 &= ~XT2DRIVE0;                    // Decrease XT2 Drive according to
                                            // expected frequency
  UCSCTL4 |= SELS_5 + SELM_5;               // SMCLK=MCLK=XT2

  while(1);                                 // Loop in place
}

出0入0汤圆

 楼主| 发表于 2011-7-10 14:43:19 | 显示全部楼层
回复【1楼】wanpujame
-----------------------------------------------------------------------

感谢您提供的帮助!
5系列的接触不多,最近正在做一个5438A相关的小系统。不知道您可不可以把5438A的例程发一份给我呢?我只有5438的,但是还是有些区别。

出0入0汤圆

发表于 2011-7-10 17:55:09 | 显示全部楼层
TI没有提供MSP430F5438A的例程,事实上MSP430F5438和MSP430F5438A没有太大的差别,直接使用MSP430F5438的例程即可。“A”版本的MSP430F5438在晶圆上提供了更好的性能、功耗和MSP430F5xx家族所标称的所有功能。MSP430F5438和MSP430F5438A主要差异见下表:

(原文件名:1.JPG)
更多详细介绍以及从MSP430F5438移植到MSP430F5438A所要注意的一些事项参见TI文档:
点击此处下载 ourdev_656480UI43MQ.pdf(文件大小:124K) (原文件名:Migrating From MSP430F541x,F543x to MSP430F541xA,F543xA.pdf)

出0入0汤圆

发表于 2011-7-10 20:21:52 | 显示全部楼层
官方很多文档的

出0入0汤圆

发表于 2011-7-10 20:40:23 | 显示全部楼层
要注意一点,当使用外部晶振为25m时候注意要设置的芯片的核电压啊。否则好像工作不稳定。当时为了这个问题郁闷了好几天。
5438A解决了5438的RTC的BUG问题。

出0入0汤圆

发表于 2011-7-10 22:47:19 | 显示全部楼层
跑最高速,电源一般要在3.3V以上,最好到3.6V。问清楚卖晶体的负载电容多少。PCB的分布电容记得一般是5pF吧。

出0入0汤圆

发表于 2011-7-10 23:17:36 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-7-11 10:00:55 | 显示全部楼层
回复【5楼】shipingjing
-----------------------------------------------------------------------

目前问题还是没有解决,用的官方例程也不行,但是用XT1配合FLL可以倍频到22M左右来供给系统,没有问题,但是XT2还是相当于没有用。

你说的这个核电压的设置是如何设置的?这一点我还真的不清楚,能否说的详细一点?

出0入0汤圆

 楼主| 发表于 2011-7-11 10:06:53 | 显示全部楼层
回复【5楼】shipingjing
-----------------------------------------------------------------------

我用的2楼提供的示例代码还是无法正常运行,所以我怀疑我的电路方面是不是出了什么问题。我25M晶振配的电容是2个15p的,比官方说的33p略小,这个应该不会造成很大的影响吧?

出0入0汤圆

发表于 2011-7-11 16:50:44 | 显示全部楼层
回复【9楼】wilbur35715
-----------------------------------------------------------------------

15pF电容小了,起振不了,另外测量VCORE引脚电压看看是否为1.8V。
MSP430F5435A不支持内核电源管理(PMM模块),F55xx系列才支持调整内核电压。

出0入0汤圆

发表于 2011-7-11 16:55:09 | 显示全部楼层
电容小了点,如果手里没有30左右的就再并上一个15P的试试看,

其实代码和不带A的是一样的

出0入0汤圆

 楼主| 发表于 2011-7-12 10:39:38 | 显示全部楼层
回复【10楼】wanpujame
-----------------------------------------------------------------------

回复【11楼】alengend
-----------------------------------------------------------------------

谢谢,我试试看。

出0入0汤圆

发表于 2011-7-12 15:35:59 | 显示全部楼层
现在有F55XX系列的了吗?

出0入0汤圆

发表于 2013-8-30 13:03:02 | 显示全部楼层
楼主,接了25M晶振后现在可以用了吗?我这边有人说不能接大于16M的!!!

出0入0汤圆

发表于 2013-11-22 10:06:37 | 显示全部楼层
这么麻烦啊...我正准备用这颗MCU

出0入0汤圆

发表于 2013-11-22 22:18:47 | 显示全部楼层
    P7SEL|=BIT0+BIT1;//XIN+XOUT时钟脚置位启用
    P5SEL|=BIT2+BIT3;
    PMMCTL0=PMMPW+PMMCOREV_3;
    UCSCTL6 &= ~(XT1OFF + XT2OFF);            // Set XT1 & XT2 On
    UCSCTL6 |= XCAP_3;                        // Internal load cap
    UCSCTL6 |= XT2DRIVE_3;                    // Decrease XT2 Drive according to
    // expected frequency
    // Loop until XT1,XT2 & DCO stabilizes
    do
    {
        UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
        // Clear XT2,XT1,DCO fault flags
        SFRIFG1 &= ~OFIFG;                      // Clear fault flags
    }
    while (SFRIFG1&OFIFG);                    // Test oscillator fault flag
    UCSCTL4 |= SELA_0 + SELS_5 + SELM_5;               // Select SMCLK, ACLK source and DCO source

出0入0汤圆

发表于 2013-11-24 18:04:29 | 显示全部楼层
wanpujame 发表于 2011-7-11 16:50
回复【9楼】wilbur35715
-----------------------------------------------------------------------

ls你好,我的5438A无法下载程序时Vcore脚电压是1.4V。如果程序下载正常的话是1.9V

请问1.4V问题怎么解决呢。我新的板子经常无法下载程序

出0入0汤圆

发表于 2013-11-24 18:27:15 | 显示全部楼层
skylsk 发表于 2013-8-30 13:03
楼主,接了25M晶振后现在可以用了吗?我这边有人说不能接大于16M的!!! ...

肯定是振荡器错误标志位清零的时候死循环了
我使用的25M无压力,将XTS去掉即可

出0入0汤圆

发表于 2013-11-24 18:27:58 | 显示全部楼层
guxingganyue 发表于 2013-11-24 18:04
ls你好,我的5438A无法下载程序时Vcore脚电压是1.4V。如果程序下载正常的话是1.9V

请问1.4V问题怎么解决 ...

外接电源试试看

出0入0汤圆

发表于 2013-11-24 21:23:38 | 显示全部楼层
ifree64 发表于 2013-11-24 18:27
肯定是振荡器错误标志位清零的时候死循环了
我使用的25M无压力,将XTS去掉即可  ...

我在旧的双层板上跑25M也是没有问题的

但是新做的4层板上就出现这个问题了。

出0入0汤圆

发表于 2013-11-24 21:24:28 | 显示全部楼层

现在就是外接的电源。

VCC=3.3V,非常的稳定

出0入0汤圆

发表于 2013-11-24 21:25:59 | 显示全部楼层
ifree64 发表于 2013-11-24 18:27
肯定是振荡器错误标志位清零的时候死循环了
我使用的25M无压力,将XTS去掉即可  ...

怎么去掉XTS???

出0入0汤圆

发表于 2013-11-24 21:54:13 | 显示全部楼层
wanpujame 发表于 2011-7-10 14:32
//*****************************************************************************
//
//                ...

这句话应该不要吧:

UCSCTL6 &= ~XT2DRIVE0;         // Decrease XT2 Drive according to
                                              // expected frequency


这样的话驱动能力就小了。


11时即不要这句话时驱动效果最好。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-11-25 11:58:53 | 显示全部楼层

在清除OFFG的有一个XTS标志位
我也不知道怎么说,仔细看一下代码就有了

出0入0汤圆

发表于 2013-11-28 14:24:37 | 显示全部楼层
wanpujame 发表于 2011-7-11 16:50
回复【9楼】wilbur35715
-----------------------------------------------------------------------

电容用多大的要看晶振的参数

出0入0汤圆

发表于 2014-3-22 08:29:02 | 显示全部楼层
shipingjing 发表于 2011-7-10 20:40
要注意一点,当使用外部晶振为25m时候注意要设置的芯片的核电压啊。否则好像工作不稳定。当时为了这个问题 ...

芯片的核电压该怎么设置,我也打算用25M.能给个例子吗、

出0入0汤圆

发表于 2014-7-9 15:09:38 | 显示全部楼层
mark!mark!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 12:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表