1.3 片内存储器
CIP-51有标准8051的程序和数据地址配置。它包括256字节的数据RAM,其中高128字节为双映射。用间接寻址访问通用RAM的高128字节,用直接寻址访问128字节的SFR地址空间。数据RAM的低128字节可用直接或间接寻址方式访问。前32个字节为4个通用寄存器区,接下来的16字节既可以按字节寻址也可以按位寻址。
程序存储器包含8KB的FLASH。该存储器以512字节为一个扇区,可以在系统编程,且不需特别的编程电压。图1.5给出了MCU系统的存储器结构。
图1.5 片内存储器组织
5
1.4 片内调试电路
C8051F330/1器件具有片内Silicon Labs 2线(C2)接口调试电路,支持使用安装在最终应用系统中的产品器件进行非侵入式、全速的在系统调试。
Silicon Labs的调试系统支持观察和修改存储器和寄存器,支持断点和单步执行。不需要额外的目标RAM、程序存储器、定时器或通信通道。在调试时所有的模拟和数字外设都正常工作。当MCU单步执行或遇到断点而停止运行时,所有的外设(ADC和SMBus除外)都停止运行,以保持与指令执行同步。
USB
图1.6 开发/在系统调试示意图
1.5 可编程数字I/O和交叉开关
C8051F330有17个I/O引脚(两个8位口和一个1位口)。C8051F330/1端口的工作情况与标准8051相似,但有一些改进。每个端口引脚都可以被配置为模拟输入或数字I/O。被选择作为数字I/O的引脚还可以被配置为推挽或漏极开路输出。在标准8051中固定的“弱上拉”可以被总体禁止,这为低功耗应用提供了进一步节电的能力。
数字交叉开关允许将内部数字系统资源映射到端口I/O引脚(见图1.7)。可通过设置交叉开关控制寄存器将片内的计数器/定时器、串行总线、硬件中断、比较器输出以及微控制器内部的其它数字信号配置为出现在端口I/O引脚。这一特性允许用户根据自己的特定应用选择通用端口I/O和所需数字资源的组合。
6
图1.7 数字交叉开关原理框图
1.6 串行端口
C8051F330/1系列MCU内部有一个SMBus/IC接口、一个具有增强型波特率配置的全双工UART和一个增强型SPI接口。每种串行总线都完全用硬件实现,都能向CIP-51产生中断,因此需要很少的CPU干预。
2
7
1.7 可编程计数器阵列
除了4个16位的通用计数器/定时器之外,MCU中还有一个片内可编程计数器/定时器阵列(PCA)。PCA包括一个专用的16位计数器/定时器时间基准和3个可编程的捕捉/比较模块。时间基准的时钟可以是下面的六个时钟源之一:系统时钟/12、系统时钟/4、定时器0溢出、外部时钟输入(ECI)、系统时钟和外部振荡源频率/8。外部时钟源对于实时时钟功能是非常有用的,可以在使用内部振荡器驱动系统时钟的同时由外部振荡器给PCA提供时钟。
每个捕捉/比较模块都有六种工作方式:边沿触发捕捉、软件定时器、高速输出、8位或16位脉冲宽度调制器、频率输出。此外,捕捉/比较模块2还提供看门狗定时器(WDT)功能。在系统复位后,捕捉/比较模块2被配置并被使能为WDT方式。PCA捕捉/比较模块的I/O和外部时钟输入可以通过数字交叉开关连到端口I/O。
图1.8 PCA原理框图
8
1.8 10位模/数转换器
C8051F330/1内部有一个10位SAR ADC和一个16通道差分输入多路选择器。该ADC工作在200ksps的最大采样速率时可提供真正10位的线性度,INL和DNL为±1LSB。ADC系统包含一个可编程的模拟多路选择器,用于选择ADC的正输入和负输入。端口0~1作为ADC的输入;另外,片内温度传感器的输出和电源电压(VDD)也可以作为ADC的输入。用户固件可以将ADC置于关断状态以节省功耗。
A/D转换可以有6种启动方式:软件命令、定时器0溢出、定时器1溢出、定时器2溢出、定时器3溢出或外部转换启动信号。这种灵活性允许用软件事件、外部硬件信号或周期性的定时器溢出信号触发转换。一次转换完成可以产生中断(如果被允许),或者用软件查询一个状态位来判断转换结束。转换结束后10位结果数据字被锁存到ADC数据寄存器中。
窗口比较寄存器可被配置为当ADC数据位于一个规定的范围之内或之外时向控制器申请中断。ADC可以用后台方式监视一个关键电压,当转换数据位于规定的范围之内/外时才向控制器申请中断。
图1.9 10位ADC原理框图
9