1)ucs
时钟如同处理器的心脏,每一个周期就是心脏的一次脉动。以前使用其他处理器时,只需要选择合适频率的晶体,接在xt1和xt2两端,再加两个电容就可以了。而msp430f5418的时钟系统略显复杂,容易让刚开始接触它的人一头雾水。5418的时钟设置由ucs(unified clock system)来管理,使用起来比较灵活,其结构图如下所示。
ucs模块有xt1clk和xt2clk两个外部时钟源,以及vloclk、refoclk和dcoclk(dcoclkdiv是dcoclk的分频输出)三个内部时钟源。其中xt1clk、refoclk和xt2clk可以作为fllrefclk输入到fll单元来改变dco的输出。所有这些时钟源经分频后都可以作为mclk、smclk和aclk输出。
下面是一个ucs设置的例子,使用32768hz的内部时钟源refoclk,并通过fll倍频使mclk为16.384mhz。
void ucs_init(void)
{
ucsctl3 |= selref__refoclk; // 选取refoclk作为fllrefclk
__bis_sr_register(scg0); // 禁止fll
ucsctl0 = 0x0000;
ucsctl1 = dcorsel_6;
ucsctl2 = flld_1 + 499; // 将refoclk 500倍频到16.384mhz
__bic_sr_register(scg0); // 使能fll
ucsctl5 |= divs__32; // smclk 32分频后输出
ucsctl4 |= sela__refoclk; // 选取refoclk为aclk
do
{// 清除时钟错误标志位
ucsctl7 &= ~(xt2offg + xt1lfoffg + xt1hfoffg + dcoffg);
sfrifg1 &= ~ofifg; // 清除时钟错误中断标志
} while (sfrifg1 & ofifg); // 等待时钟稳定
}
2)spi
在进行spi接口的设置时,如果处理器作为主器件,那么一定要根据从器件的时序确定正确的时钟相位和时钟极性。如果使能了spi的发送中断,需要注意的一点是,在发送第一个字节来启动整个发送过程时,该字节的发送不是瞬间的,需要等待一定的时间,以ucb1为例即:
ucb1txbuf = data;
while (ucb1stat & ucbusy); // 等待data发送完毕
3)uart
通过串口调试助手向uart发送数据时,如果使能了接收中断,那么每接收一个字符都会触发一次中断,两次中断之间程序是会回到主程序继续执行的。如何判断接收数据的结束?一种方法是固定指令的长度,以长度来界定;另一种更常用的方法是设计一定的通信协议来针对不定长的指令,如把每个指令都封装成帧,给其加上特定的帧头、帧尾。
4)rtc
msp430f5418的rtc在日历模式下存在bug,直接对日期及时间寄存器赋值经常会不成功。解决的方法是读写日期和时间寄存器时使用ti公司在rtc_workaround中给出的例程。
5)其他
设计中应尽量避免中断嵌套,中断服务程序中的代码量尽量少。
基于5G技术的新型可穿戴设备实现监测身体多项体征指标
ADF41020频率合成器的性能及特点分析
加拿大禁华为当地运营商将面临较高的5G成本
直流电机定子的作用
目前我国EDA技术的发展现状介绍
MSP430F5418的详细解析
数电票红利悄然而至 百望云数据驱引“供应链协同”新纪元
日渐崛起的虚拟现实来到我们的生活
工业新基建发展的关键是以三个“新”作为抓手
引入智能制造解决方案为半导体行业能带来哪些好处?
锡线含锡量越高越好?
浅谈LTI系统 PCB或者和SI有什么关系
工业机器视觉自动化检测的未来趋势
SK海力士推出全球最快移动DRAM——LPDDR5T
西数与东芝纠纷与和解,东芝半导体股份有可能花落西数
白炽灯淘汰路线图
小米显示器新品上市
排风机轴承室磨损淘汰传统修复方法,这种方法更有效
可穿戴技术有哪些 新静电纺丝技术带来更多可能
汽车零部件用激光焊接的优势