请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430G2553 主题中讨论的其他部件:CC2650、 TRF7970A
您好!
我们正在开发库存更新系统、其中 MSP430G2553 + TRF7970A 用于读取 RFID 标签、CC2650用于将标签详细信息更新到移动应用。
我们遵循了该参考设计并设计了我们的定制板。
电路板根据需要工作正常、但问题仅在于、MSP 会在读取标签时自动复位、并且会随机发生。
下面是 MSP + TRF 电路的原理图
我们只是有一个疑问、可能是由于使用振荡器的许多功能、我们缺少了一些与振荡器相关的东西。
发布相关代码的块、我们将在其中初始化每个功能的频率。
MSP 振荡器校准:
void McuOscSel (void) { //如果 (CALBC1_8MHZ!= 0xFF) { //遵循建议的流程,则选择 DCO 为8MHz。 首先、清除所有 DCOx 和 MODx 位。 //然后应用新的 RSELx 值。 最后、应用新的 DCOx 和 MODx 位 //值。 DCOCTL = 0x00; BCSCTL1 = CALBC1_8MHZ; DCOCTL = CALDCO_8MHZ; } //禁用 XT1引脚 P2SEL &=~(BIT6 + BIT7); //禁用 XT1高频模式、ACLK = 12kHz/4 = 3kHz BCSCTL1 &=~μ S | BCL1 = 2; //将 TXTCL1设置为1 | BCSCTL1 + BCL1 + BCL1;//返回到1 TCL1 | 2;/ 2
SPI 配置:
void SpiUCsciSet (void)//使用 USCI_B0 { UCB0CTL1 |= UCSWRST;//启用软件复位 UCB0CTL0 |= UCCKPH + UCMSB + UCMST + UCSYNC;// 3引脚8位 SPI 主 器件 UCB0CTL0 &=~UCCKPH | UCC0BR0 + UCS0BR0;// UCB0BR0 = UCB0 | UCB0 + UCB0 | UCB0BR0 = UCB0 // P1.5、1.6、1.7 UCBOCLK、UCB0SIMO、UCB0SOMI,选项选择 P1SEL2 |= BIT5 + BIT6 + BIT7;// P1.5、1.6、1.7 UCBOCLK、UCB0SIMO、UCB0SOMI,选项选择 SLAVE_SELECT_SET;//选择 UCS2.1** ~从机/ UCB0SIMO;//选择 UCB0ST_UCTL1高电平从机/ UCB0SIMO;//选择 UCB0SIMO;// UCB0SIMO;// UCB0ST_RESULSE = UCTL1**选择 UCB0ST_INST_RESUCTL UCT
UART 初始化:
void UartSetup (void)//使用 USCI_A0 { //修改为在-G2553 LaunchPad P1SEL 上使用 eZ430-RF256x |=(BIT2 + BIT1);// P1.2=TXD //这仅用于 TX…… (将板载 P1.1上的 TX 和 RX 短接至 P1.2) P1SEL2 |=(BIT2 + BIT1);// P1.2=TXD UCA0CTL1 |= UCSWRST;//禁用 UART UCA0CTL0 = 0x00; UCA0CTL1 |= UCSSEL_2;// SMCLK UCA0TR1 = 0x00 ;// UCA01150 = 0x00;UCA0BR0 = 0x200;// SMCLK = UCA0BR0 = 0xBCA0 = 0x200 //调制 UCBRSx = 2 UCA0CTL1 &=~UCSWRST;//初始化 USCI 状态机 UC0IE |= UCA0RXIE; }
TimerA 初始化:
void McuCounterSet (void) { TACTL |= tassel_1 + TACLR;// ACLK = 1.5kHz,计时器停止 TACCTL0 |= CCIE;//比较中断使能 }
谢谢你
此致、
Maddineni