12
新传感器的配置寄存器,这会使传感器工作于单步模式,每更新一次就会测量一次温度。
要读取传感器测量值寄存器的内容,MCU必须首先发送传感器地址和寄存器指针。MCU发出一个启动信号,接着发出传感器地址,然后将RD/WR管脚设为高电平,就可以读取测量值寄存器。
为了读出传感器测量值寄存器中的16位数据,MCU必须与传感器进行两次8位数据通信。当传感器上电工作时,默认的测量精度为9位,分辨力为0.5 C/LSB(量程为-128.5 C至128.5 C)。本方案采用默认测量精度,根据需要,可以重新设置传感器,将测量精度提高到12位。如果只要求作一般的温度指示,比如自动调温器,那么分辨力达到1 C就可以满足要求了。这种情况下,传感器的低8位数据可以忽略,只用高8位数据就可以达到分辨力1 C的设计要求。由于读取寄存器时是按先高8位后低8位的顺序,所以低8位数据既可以读,也可以不读。只读取高8位数据的好处有二,是可以缩短MCU和传感器的工作时间,降低功耗;*二是不影响分辨力指标。
数据处理完毕并显示结果之后,MCU会向传感器发出一个单步指令。单步指令会让传感器启动一次温度测试,然后自动进入等待模式,直到模数转换完毕。MCU发出单步指令后,就进入LPM3模式,这时MCU系统时钟继续工作,产生定时中断唤醒CPU。定时的长短可以通过编程调整,以便适应具体应用的需要。
因为DSP应用要求高度优化的代码,大多数DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作。例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。 GPP厂商通常并不提供这样的工具,主要是因为GPP程序员通常并不需要详细到这一层的信息。GPP缺乏到指令周期的仿真工具,是DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能GPP对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。 [2]
8位MCU工作频率在16~50MHz之间,强调简单效能、低成本应用,在目前MCU市场总值仍有一定地位,而不少MCU业者也持续为8bit MCU开发频率调节的节能设计,以因应绿色时代的产品开发需求。
16位MCU,则以16位运算、16/24位寻址能力及频率在24~100MHz为主流规格,部分16bit MCU额外提供32位加/减/乘/除的指令。由于32bit MCU出现并持续降价及8bit MCU简单耐用又便宜的低价优势下,夹在中间的16bit MCU市场不断被挤压,成为出货比例中的产品。
32位MCU可说是MCU市场主流,单颗报价在1.5~4美元之间,工作频率大多在100~350MHz之间,执行效能更佳,应用类型也相当多元。但32位MCU会因为操作数与内存长度的增加,相同功能的程序代码长度较8/16bit MCU增加30~40%,这导致内嵌OTP/FlashROM内存容量不能太小,而芯片对外脚位数量暴增,进一步局限32bit MCU的成本缩减能力。