![]() ![]() |
超低压SoC处理器C8051F9xx应用解析
《超低压SoC处理器C8051F9xx应用解析》介绍新型超低压、超低功耗SoC处理器C8051F9xx,共分为17章,具体内容包括: C8051F9xx内核与功能总汇,可编程输入/输出端口与外设资源匹配,片上可编程基准电路与比较器,10位低功耗突发模式自动平均累加A/D转换器,片上DC/DC转换器与高效率稳压器,具有加密功能的数据程序Flash存储器,增强型循环冗余检查单元(CRC0),多模式外设总线扩展和片上XRAM的访问,系统复位源,多模式时钟发生源,smaRTClock时钟单元,SMBus总线,异步串口 UART0,增强型全双工同步串行外设接口SPI0/SPI1,定时器,可编程计数器阵列,综合实例应用。综合实例应用中的例子均在C8051F930平台上调试通过,具有较强的针对性,读者可放心使用。《超低压SoC处理器C8051F9xx应用解析》所有的程序均采用C语言编程,有较强的可读性和移植性。 《超低压SoC处理器C8051F9xx应用解析》可作为工程技术人员进行C8051F系列单片机开发时的硬件和软件设计参考书,对其他类型单片机的开发也具有一定的参考借鉴价值。
微处理器技术应用越来越普及,几乎渗透到了各行各业。随着技术的进步与市场的划分,处理器大致可分为4位、8位、16位、32位几大类。 32位系列是最近几年才发展起来的新系列,应用领域在迅速扩大,尤其是在一些信息量较大基于操作系统以及文件系统的应用场合,如掌上设备,便携媒体工具;其典型芯片有各公司生产的基于ARM内核的产品。16位产品种类较少,MCS96系列产品注定只能充当过渡角色,现在已很少见了,影响较大的如MSP430,走着低功耗手持应用的道路。16位机不能成为主流的原因有两个:一是在运算量小控制要求不是很复杂的中低端场合,4位或8位机更具性价比优势;二是中高端应用场合,其性能又无法和32位机相比,其价格优势也并不明显。 8位机是低端控制领域的主力军,这种趋势短时期不会改变。它所具有的结构简单、应用灵活方便、性价比高的特点使其很好地适应了中低端市场,并具有旺盛的生命力。在我国,普及程度最高的8位机非MCS51莫属,其实51系列相对于其他种类的8位机并没有绝对技术优势,甚至还有先天劣势,但认同就是硬道理。几十年的应用与普及,使其影响巨大,因此,各家公司开发的产品,许多都是基于51内核的。现在基于MCS51内核的系列单片机都进行了技术层面的发展与进步,性能提高与功能多样是改造的方向,新产品一般都比传统产品性能高出许多,同时片内集成了多种常用外设。处理器技术的革新使得单片机在CPU结构、外围模块及总线和集成开发环境等各个方面,都发生了巨大变化。单片机的设计也已经从积木扩展模式跨入了集成度、可靠性、性价比更高的片上系统SoC时代。 继承与创新是相辅相成的,二者不可偏废。绝大多数新型51系列产品都是在原有地址空间上增加外设及相应的控制寄存器,内核一般都继承了原有的指令,指令的执行效率因此大大提高。C8051F系列SoC单片机就是这样的改造路线。它最大程度地兼容了传统的MCS51,保留了所有MCS51的指令与8052的所有资源,同时尽可能地提升性能。该系列单片机把原51内核改造为功能更强大的CIP51内核,废除了原51单片机中的机器周期,由原来12个时钟执行1条指令改进为1个时钟执行1条单周期指令。大多数指令执行所需的时钟周期数与指令的字节数相同,运行速度和性能大大提高,平均性能约为同频MCS51的10倍。除此之外,还改变了原51系统外围模块单一、复杂系统必须扩展的缺陷,在片内扩展了丰富的外设,如Flash、XRAM、A/D转换器、D/A转换器、时钟源、基准源、PCA单元以及温度传感器,有的还扩展了smaRTClock、CRC引擎、触感输入等,使用户设计时不需要考虑太多的扩展,甚至可以单片完成设计任务。编译环境得到了KEIL C支持,而开发过程并没有改变,很好地适应了过去51开发的方法和习惯。C8051F系列Soc单片机采用强大的非侵入式JTAG/C2在系统调试手段,非传统仿真器调试模式所能比拟;内核和全部资源完全透明化和可操作化,可以方便地完成下载、硬件仿真,并且还不占用片内资源;C2接口更是通过共享技术实现I/O口0占用;支持多种总线模式,除了SMBus/I2C、SPI、UART这些必备的接口外,有的产品线还支持CAN、USB、LIN等;晶振和片上温度传感器等外设集成一体,除大幅减小PCB的占用面积外,还带来了可靠性的提高。交叉开关可灵活地将片内资源分配到I/O端口,使开发人员可以根据需要分配外设,对系统的总体规划非常有益。系统可以根据需要工作在多种电源模式下,使系统功耗进一步降低。 C8051F系列产品划分为许多类,如通用型C8051F02x、数据采集型C8051F06x、USB型C8051F32x/F34x等。不同系列有一个最佳应用方向,此举满足了产品设计科学化、个性化的需求。本书所论述的C8051F9xx是一个崭新的系列,它是面向超低压超低功耗场合设计的,这些场合一般使用电池供电,系统大多数时间处于低功耗的休眠态,仅在必要时内核处在活动态。这些特点使其对电池寿命有了苛刻的要求,电池的典型预期寿命会超过3年,有的场合甚至长达15年。为了提高电池使用效率以及能源管理的方便,在芯片内集成了DC/DC,使电源电压降至 0.9 V仍能保证系统正常工作。其供电范围为0.9~3.6 V,包含了大部分电池的正常工作电压。 该芯片的设计思想就是低功耗,在内核与外设的应用细节处理上无不贯穿这一主线。片内多种基准源、多种振荡时钟源及多种唤醒源,尽可能地降低了模拟外设的工作电压,同样也是这一思想的体现。低功耗并不意味着低性能,它最大程度地兼容了C8051F系列的通用外设,前面所述的外设均集成在片内。除此之外,还扩展了外设的功能,比如增加了CRC单元、smaRTClock单元、A/D数据硬件累加功能,扩展了比较器的触感输入功能,扩展了定时器与PCA功能。 为了更准确地掌握芯片的使用,作者在编写本书时,参阅了英文原版资料,尽量使用第一手资料;各外设的应用代码,均经过在系统调试通过,所得到的数据也来源于实测。本书提供所有程序代码,需要的读者请到北航出版社网站的“下载中心”中单击“超低压SoC处理器C8051F9xx应用解析”链接下载即可。 本书在编辑过程中得到了新华龙电子有限公司的大力支持,特别感谢门铎工程师,他为本书的编写给予了大力支持。参与本书编写工作的还有韩素英、包明洲、武丽敏、包初胜等,对他们的辛勤劳动表示衷心的感谢。 大连理工大学数字化研究所的各位同仁在本书的编写过程中给予了大力协助,他们是高媛、马雅丽、朱林剑、孙守林、毛范海、董慧敏、梁丰、陈庆红、杨光辉、钱峰、姜立学、陈观慈等。特别感谢所长王德伦教授的大力支持。 另外,韩素英、包明周、武丽敏、包初胜、尹云、王皓、刘建伟完成了资料收集与文字校对工作,在此一并感谢。
第1章 C8051F9xx内核与功能总汇11.1 内核的兼容性与差异性21.2 功能的改进与扩展31.3 存储空间的映射41.4 扩展的中断系统51.4.1 中断源和中断向量61.4.2 中断的优先级与响应时间71.4.3 外部中断源81.4.4 中断控制寄存器的使用与说明81.5 内核指令集说明131.6 C8051F9xx的工作状态131.6.1 内核的几种工作模式131.6.2 各工作状态的设置与功耗特点141.6.3 工作状态唤醒源的配置与识别161.6.4 与工作方式相关的配置寄存器181.7 特殊功能寄存器191.7.1 寄存器的分页191.7.2 特殊功能寄存器的分布191.7.3 特殊功能寄存器的定义211.8 芯片的仿真与调试和C2端口共享211.8.1 内置的C2仿真接口211.8.2 C2引脚共享231.9 芯片引脚定义及电气参数241.10 应用实例25中断设置与应用25第2章 可编程输入/输出端口与外设资源匹配292.1 I/O口优先权交叉开关译码器原理302.2 外设资源初始化与配置322.2.1 端口引脚分配模拟功能332.2.2 端口引脚分配数字功能332.2.3 端口引脚分配外部数字及数字捕捉功能332.3 交叉开关译码功能寄存器的配置342.4 通用端口I/O功能配置362.4.1 端口匹配功能的设置362.4.2 端口I/O配置的特殊功能寄存器372.5 端口I/O的电气参数432.6 I/O匹配应用实例43第3章 片上可编程基准电路与比较器483.1 片上基准源483.1.1 基准原理概述483.1.2 程控电流基准(IREF0)493.1.3 程控电压基准(REF0)与模拟地参考基准(GND)503.2 比较器533.2.1 比较器基本的输入输出特性533.2.2 比较器输入输出设置553.2.3 比较器容性触感模拟多路分配器583.2.4 容性触感模拟多路分配器设置593.2.5 比较器电气参数613.3 应用实例62可编程电流基准测试62第4章 10位低功耗突发模式自动平均累加A/D转换器684.1 A/D转换器结构和功能框图684.2 片内10位A/D转换器的主要特性694.3 ADC0的基本操作与配置694.4 A/D转换器输入端选择714.5 A/D转换的启动源选择734.6 单次及累加模式下输出码格式选择734.7 A/D输入信号的跟踪方式754.8 低功耗突发工作方式764.9 采样时间与增益控制774.10 可编程窗口检测784.11 片内温度传感器804.11.1 温度传感器的校准814.11.2 温度传感器校准所使用的寄存器824.12 A/D转换应用实例824.12.1 立即更新824.12.2 时控触发源方式854.12.3 硬件累加器应用894.12.4 中断采样处理944.12.5 外部CNVSTR采样应用984.12.6 硬件门限比较1034.12.7 片内温度传感器1094.12.8 ADC0的突发工作方式113第5章 片上DC/DC转换器与高效率稳压器1185.1 片上DC/DC的工作原理1185.2 DC/DC的外部电路连接1205.3 DC/DC寄存器定义与说明1215.4 片上稳压器设置1225.5 电气参数124第6章 具有加密功能的数据程序Flash存储器1256.1 Flash存储器编程操作1256.1.1 Flash编程锁定和关键字设置1256.1.2 Flash擦写的操作1266.2 Flash数据的安全保护1286.3 Flash可靠写和擦除的几点要求1296.3.1 电源和电源监视器的要求1296.3.2 写允许操作位PSWE的操作1306.3.3 系统时钟稳定性1306.4 Flash读定时设置与电气特性1316.5 Flash存储器的电气特性1316.6 Flash存储器应用设计1316.6.1 Flash非易失临时存储页应用1316.6.2 Flash非易失数据全地址随机读写137第7章 增强型循环冗余检查单元1437.1 循环冗余检查单元原理图1437.2 片内CRC单元计算过程及输出示例1437.3 CRC单元的配置1447.4 CRC功能寄存器说明与应用1457.5 CRC的位反转功能1477.6 CRC数据检验功能演示1477.6.1 16位CRC数据校验功能示例1477.6.2 位序反转及软件CRC功能示例151第8章 多模式外设总线扩展和片上XRAM的访问1578.1 片外可寻址XRAM空间的配置1578.2 外部存储器总线的扩展1588.3 XRAM地址空间的访问模式1598.3.1 仅访问片上XRAM1598.3.2 以不分页的方式访问地址空间重叠的片内外XRAM1608.3.3 以分页的方式访问片内外地址空间重叠的片内外XRAM1608.3.4 仅访问片外XRAM1608.4 外部XRAM扩展的时序1608.5 总线匹配寄存器的定义与设置1638.6 应用实例165片上4KB环形RAM的应用165第9章 系统复位源1699.1 系统复位概述1699.2 C8051F9xx的复位源1719.2.1 上电复位1719.2.2 掉电复位和VDD/DC+监视器1719.2.3 外部复位1739.2.4 时钟丢失检测器复位1749.2.5 比较器0复位1749.2.6 PCA看门狗定时器复位1759.2.7 Flash错误复位1759.2.8 smaRTClock(实时时钟)复位1759.2.9 软件复位1759.3 复位源的设置与使用1769.3.1 软件复位实例1769.3.2 看门狗复位应用178第10章 多模式时钟发生源18310.1 片内振荡器的设置18410.1.1 可编程内部精密振荡器18410.1.2 低功耗内部振荡器18510.2 外部振荡器的配置与使用18510.2.1 外部晶体模式18510.2.2 外部RC模式18610.2.3 外部电容模式18710.2.4 外部CMOS时钟方式18710.3 时钟源配置功能寄存器说明18710.4 时钟源配置与使用18910.4.1 片外电容振荡器模式18910.4.2 片内低功耗振荡器模式19110.4.3 片内精密振荡器模式19310.4.4 片内精密振荡器频率调整19510.4.5 使用smaRTClock振荡器作为系统振荡器200第11章 smaRTClock时钟单元20311.1 smaRTClock时钟结构和功能概述20311.2 smaRTClock全局寄存器20411.2.1 smaRTClock全局寄存器功能解析20411.2.2 smaRTClock锁定与解锁20511.2.3 smaRTClock全局寄存器访问方式示例20611.3 smaRTClock的时钟源定义与设置20711.3.1 标准晶振模式20711.3.2 片内自激振荡模式20811.3.3 可编程容性匹配负载设置20811.3.4 时钟故障检测和保护20911.4 smaRTClock定时和报警功能20911.4.1 定时功能的设置与使用21011.4.2 报警功能的设置与使用21011.4.3 smaRTClock报警的双模式选择21011.5 smaRTClock内部寄存器定义21111.6 smaRTClock功能应用213smaRTClock唤醒源在低功耗系统中的应用213第12章 SMBus总线21912.1 SMBus配置与外设扩展21912.2 SMBus的通信概述22112.2.1 总线的仲裁22112.2.2 总线的时序22112.2.3 总线的状态22112.3 SMBus寄存器的定义与配置22212.3.1 SMBus初始配置寄存器22312.3.2 SMBus状态控制寄存器22512.3.3 硬件从地址识别22712.3.4 SMBus数据收发寄存器22812.4 SMBus工作方式选择22912.4.1 主发送方式22912.4.2 主接收方式22912.4.3 从接收方式23012.4.4 从发送方式23112.5 SMBus状态译码23212.6 SMBus总线扩展应用实例23564KB非易失铁电存储器FM24C512应用235第13章 异步串口UART024513.1 增强的波特率发生器24513.2 串行通信工作方式选择24713.2.1 8位通信模式24813.2.2 9位通信模式24813.3 多机通信24913.4 串行通信相关寄存器说明25013.5 串口UART0实例251串口自环调试实例251第14章 增强型全双工同步串行外设接口SPI0/SPI125614.1 SPI0的信号定义25614.2 SPI0/SPI1主工作方式25814.3 SPI0/SPI1从工作方式25914.4 SPI0/SPI1中断源说明26014.5 串行时钟相位与极性26014.6 SPI特殊功能寄存器26214.7 SPI主工作方式下扩展实例267第15章 定时器26815.1 定时器0和定时器126815.1.1 定时器0/定时器1的方式0——13位计数器/定时器26915.1.2 定时器0/定时器1的方式1和方式227015.1.3 定时器0的方式327115.1.4 定时器0/定时器1的相关寄存器27115.2 定时器227515.2.1 定时器2的16位自动重装载方式27515.2.2 定时器2的8位自动重装载定时器方式27615.2.3 比较器0/smaRTClock捕捉方式27715.2.4 定时器2的相关寄存器27815.3 定时器328015.3.1 定时器3的16位自动重装载方式28015.3.2 定时器3的8位自动重装载定时器方式28015.3.3 比较器1/外部振荡器捕捉方式28115.3.4 定时器3的相关寄存器28315.4 定时器应用实例28515.4.1 利用定时器测试比较器的输出28515.4.2 利用定时器实现节拍时控系统289第16章 可编程计数器阵列29416.1 PCA计数器/定时器与中断源29516.2 PCA的捕捉/比较模块29716.2.1 PCA边沿触发的捕捉方式29716.2.2 PCA软件定时器方式29816.2.3 PCA高速输出方式29816.2.4 PCA频率输出方式29916.2.5 8、9、10、11位脉宽调制器方式30016.2.6 16位脉宽调制器方式30116.3 看门狗定时器方式30316.3.1 看门狗定时器操作30316.3.2 看门狗定时器的配置与使用30416.4 PCA寄存器说明30416.5 PCA应用实例30916.5.1 8位PWM发生程序30916.5.2 16位PWM发生程序31216.5.3 11位PWM波输出31616.5.4 方波发生输出32016.5.5 频率捕捉功能应用32216.5.6 软件定时器功能应用326第17章 综合实例应用33017.1 USB接口的扩展33017.1.1 UART串口应用实际33017.1.2 UART转USB功能实现33117.2 基于等效面积法的SPWM波发生34117.2.1 SPWM技术基本原理34117.2.2 SPWM波发生算法与方式34217.2.3 SPWM波在C8051F9xx上的实现34317.2.4 互补SPWM波的发生程序34317.3 利用PWM实现D/A输出34817.3.1 PWM转D/A的技术特点分析34817.3.2 简易PWM转D/A的方案34917.3.3 高分辨率D/A转换设计35117.3.4 PWM转D/A程序设计35317.4 大容量串行DataFlash存储器扩展35717.4.1 NORFlash和NANDFlash技术与性能比较35717.4.2 串行DataFlash35817.4.3 AT45DB161B芯片引脚和功能简介35817.4.4 存储器与单片机接口实例36317.5 温湿度数字传感器应用37617.5.1 单片数字温度、湿度传感器SHT1x/SHT7x37617.5.2 数字传感器SHT1x相关内容37717.5.3 数字温湿传感器扩展应用38217.6 电容式触摸按键扩展39117.6.1 概述39117.6.2 电容式触摸按键的原理39217.6.3 电容式触摸按键的影响因素39517.6.4 触摸开关的校准39817.6.5 触摸按键的软件设计思路39917.6.6 触摸按键软硬件设计实例399附录A CIP51指令集413附录B 特殊功能寄存器417附录C C8051F9xx引脚定义及说明421
C8051Fxxx单片机是混合信号系统级芯片,具有与8051兼容的微控制器内核,并且该内核有与传统MCS51兼容的指令集。它除了具有标准8052的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。 MCu中的外设或功能部件包括模拟多路选择器、可编程增益放大器、A/D转换器(ADC)、D/A转换器(DAC)、电压比较器、电压基准、温度传感器、SMBus/IC、UART、SPI、可编程计数器/定时器阵列(PCA)、定时器、数字I/0端口、电源监视器、看门狗定时器(WDT)和时钟振荡器等。所有器件都有内置的Flash程序存储器和256字节的内部RAM,有些器件内部还有位于外部数据存储器空间的RAM,即XRAM。 C8051Fxxx单片机采用流水线结构,机器周期由标准的12个系统时钟周期降为1个系统时钟周期,处理能力大大提高,峰值性能可达25MIPS。 C8051Fxxx单片机是真正能独立工作的片上系统(SoC)。每个MCU都能有效地管理模拟和数字外设,可以关闭单个或全部外设以节省功耗。Flash存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。 应用程序可以使用MOVC和MOVX指令对Flash进行读或改写,每次读或写一个字节。 这一特性允许将程序存储器用于非易失性数据存储以及在软件控制下更新程序代码。 片内集成了调试支持功能,允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。在使用JTAG调试时,所有的模拟和数字外设都可全功能运行。 不同系列的单片机,其扩展的中断系统的中断源不同系列最多达到22个,而标准8051只有7个中断源,允许大量的模拟和数字外设中断微控制器。一个中断驱动的系统需要较少的MCU干预,却有更高的执行效率。在设计一个多任务实时系统时,这些增加的中断源是非常有用的。 SiliconLabs根据市场的需要开发了小体积、低功耗、高性能、低价格的新产品。 C8051F9xx系列也符合这样的思想,但它与其他小体积的产品又有着不同的市场定位。该产品的主要应用目标是使用可换电池的系统。这些装置往往并不希望经常更换电池,有时可能不方便更换,可能期望电池的寿命超过3年,有些场合可能要长达15年。 为保证有效工作时间,对功耗的要求是非常严格的,通常这类系统主要的时间都是花费在超低电流睡眠状态,必要时或周期性地唤醒执行测量任务,然后再迅速地返回到它们的低功耗睡眠模式。
你还可能感兴趣
我要评论
|