1.关于CC430时钟问题,正确的PMM,UCI设置顺序是怎样的,是先设置Core电压,然后设置主时钟,最后设置各个模块如SCI的时钟吗?
以下程序不知道哪里有错?经常启动不了;需要的是使用XT2时钟,全性能模式,不要低功耗
WDTCTL = WDTPW + WDTHOLD;
SetVCore(3);
//使用XT2主时钟
UCSCTL6 &= ~XT2OFF; // Enable XT2
UCSCTL3 |= SELREF_2; // FLLref = REFO Since LFXT1 is not used,sourcing FLL with LFXT1 can cause XT1OFFG flag to set
UCSCTL4 = SELA__REFOCLK + SELS__DCOCLKDIV + SELM__DCOCLKDIV;// ACLK=REFO,SMCLK=DCO,MCLK=DCO
do{ // Loop until XT1,XT2 & DCO stabilizes
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);// Clear XT2,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
UCSCTL4 |= SELA__REFOCLK + SELS__XT2CLK + SELM__XT2CLK; // SMCLK=MCLK=XT2
UCSCTL5 = 0X0111;
// SCI
PMAPPWD = 0x02D52; // Get write-access to port mapping regs
P1MAP5 = PM_UCA0RXD; // Map UCA0RXD output to P1.5 P1MAP6 = PM_UCA0TXD; // Map UCA0TXD output to P1.6 PMAPPWD = 0; // Lock port mapping registers P1DIR |= BIT6; // Set P1.6 as TX output
P1SEL |= BIT5 + BIT6; // Select P1.5 & P1.6 to UART function
//SCI 时钟设置
__delay_cycles(2500000);
UCA0CTL1 |= UCSWRST; // **Put state machine in reset**
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 203; // 26MHz 128000 (see User's Guide)
UCA0BR1 = 0; // UCA0MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
2.CC430 RF模块初始化后PMM会出现全局高电压请求标志,PMMHPMRE=1,是否需要处理此标志?此时Core电压已经是1.9V
3.CC430 RF使用500kbps速度有没有什么设置要求?按照SmartRF Studio设置的不能接收数据,RF寄存器显示操作数错误,设置如下图,请问有什么问题?
不是射频专业,具体不知道哪里有问题。低波特率如38kbps通讯正常,通讯距离<20cm
jian liu:
SmartRF Studio设置图
Nutcracker:
38 kpbs 数据率下通讯距离 < 20 cm 肯定有问题。
你是用什么板子?跑的自己写的程序测的?
500 kbps 速率太高,不推荐使用 CC430。 MSP430 + CC1200 可以达到这个速率。
jian liu:
回复 Nutcracker:
距离近为什么会出问题呢?
用的是网上买的Demo板,给的测试程序是38.4kbps,可以正常通信,就是延迟有点大,示波器测试发5个字节出来,接收端要延迟4ms以上才能收的到;
想要做的是一个低延迟的方案,连续传输数据包延迟<1ms,安装时传输距离<5cm,500kbps速率,最好能到1M;数据包4个字节