主题中讨论的其他器件: CC1120、 MSP430WARE
工具/软件:Code Composer Studio
大家好、朋友。
我的设备有问题。
该器件基于 msp430f5510而构建、由3.6V 电池供电。
通过 SPI (基于 USCI_B)连接到5510、然后将 闪存存储器 AT25256B-SSHL-T 和 CC1120无线电模块连接。 此外、通过 USCI_A、还会对 UART 协议 Modbus 进行定期轮询。
到 MCU 上连接一个外部石英(32768Hz)、ACLK 和 RTC_A 从这个频率上供电。
我决定使用 MCLK = 8MHz、SMCLK = 4MHz、ACLK = XT1 = 32768Hz。
这将提高信息的处理速度并使芯片更快地进入 LPM3。 由于根据数据表、1MHz 频率下的典型功耗为0.25mA、8MHz 频率下的典型功耗= 1.55mA、这会导致6.2与1MHz 之间的差异。 但8MHz 时的处理速度要高8倍、这将使芯片能够在更短的时间内处理命令并进入睡眠状态。
电压为1.8V 的闪存可在5MHz 的频率下运行。 因此、我想将 SMCLK 频率降低到4MHz、这样、当电池电压下降时、也可以在较高的水平上保持闪存和无线电模块的可操作性。
基于上述情况、我得到以下情况。
1) 1)我无法正确计算8MHz 频率的寄存器值。
P5SEL |= BIT4+BIT5; //在 P5.4 и P5.5 UCSCTL6上启用 XIN XOUT |= XT2OFF; //解 ~ XT2 UCSCTL6 &=μ H (XT1OFF); //启用 XT1 UCSCTL6 |= XCAP_3; //使用内部电容 UCSCTL3 = SELREF_2; // DCO FLL 基准= REFO UCSCTL4 = SEL_0; //ACLK = XT1 UCSCTL0 = 0x0000; // //等待 OCS 稳定 DO{ UCSCTL7 &=~XT1LFOFFG; //清除 XT1故障标志 } while (UCSCTL7 & XT1LFOFFG); __bis_SR_register (SCG0); //禁用 FLL 控制 UCSCTL1 = DCORSEL_5; //选择 DCO 范围16MHz UCSCTL2 |= 249; //将 DCO 多倍频器设置为8MHz //(N + 1)* FLLRef = Fdco //(122+1)* 32768 = 4030464 //(249 + 1)* 32768 = 8192000不是8MHz,功率高达1、8V!! _BIC_SR_register (SCG0); //启用控制 FLL // DCO 范围位已 更改时 DCO 的最坏情况趋稳时间//为 n x 32 x 32 x f_MCLK/f_FLL_reference。 有关优化、请参阅5xx // UG 中的 UCS 一章。 // 32 x 32 x 8 MHz / 32、768 Hz = 250000 = MCLK 周期,DCO 要使 __DELAY_CYCLLES (250000)稳定; /****** 初始化 USCI_B UART 模式***** */ UCA1CTLW0 |= UCSWRST; //重置 UART UCA1CTLW0 |= UCSSEL_SMCLK; //CLK = SMCLK //计算端口速度 // 8000000/(16*9600)= 52 //使用系列用户指南 中的表34-6 UCA1BR0 = 52; //800000000 / 16/115200 UCA1BR1 = 0x00; UCA1MCTL |= UCBRS_6 + UCBRF_0 + UCOS16;//设置调制、 UCA1CTL1 &=~UCSWRST; //启动 UART UCA1IE|=UCRXIE; //等待通信请求 UCB1CTL1 |= UCSWRST; //复位 SPI UCB1CTL0 |= UCCKPH + UCMSB + UCMST + UCSYNC; //时钟相位+第一个 MSB + SPI 主器件+同步模式 UCB1CTL1 |= UCSSEL_2; //时钟= SMCLK UCB1BR0 = 0x52; //按表39-5 UCB1BR1 = 0; ///////UCB1MCTL = 0;//清除 SPI UCB1CTL1 &=~Ω UCSWRST; // USCI 启动 UCB1IE |= UCRXIE;
但根据我的计算、MCU 频率不是8、000、000、而是8、192、000。因此所获得的分频器未正确应用。
在1.8V 电源下、DCO 频率不能为8192000。 我也不理解如何将 SPI 的 SMCLK 频率正确设置为4MHz。
2) 2)、如果在我的冲突设置期间闪存和 CC1120芯片发生冲突、那么 SPI 的设置是否正确。 它们是具有相同的 SPI 端口模式、还是 CC1120将接受 msp430f5510指示的内容、并且我可以指定闪存的设置。
抱歉、我不熟悉芯片编程。 英语有问题、所以我使用谷歌翻译。 但我需要在一周内修改器件的固件。 因此、为了正确运行、我希望正确配置所有模块、然后完成该功能。
提前感谢您的合作。