标题：C8051F340
概述
C8051F340器件是完全集成的混合信号片上系统型MCU。
􀁹 高速、流水线结构的8051兼容的微控制器内核（可达48MIPS）
􀁹 全速、非侵入式的在系统调试接口（片内）
􀁹 通用串行总线（USB）功能控制器，有8个灵活的端点管道，集成收发器和1K FIFO RAM
􀁹 电源稳压器
􀁹 真正10位200 ksps的单端/差分ADC，带模拟多路器
􀁹 片内电压基准和和温度传感器
􀁹 片内电压比较器（两个）
􀁹 精确校准的12MHz内部振荡器和4倍时钟乘法器
􀁹 多达64KB的片内FLASH存储器
􀁹 多达4352字节片内RAM（256+4KB）
􀁹 硬件实现的SMBus/ I2C、增强型UART（最多两个）和增强型SPI串行接口
􀁹 4个通用的16位定时器
􀁹 具有5个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列（PCA）
􀁹 片内上电复位、VDD监视器和时钟丢失检测器
􀁹 多达40个端口I/O（容许5V输入）
具有片内上电复位、VDD监视器、电压调整器、看门狗定时器和时钟振荡器的C8051F340/1/2/3/4/5/6/7器件是真正能独立工作的片上系统。FLASH存储器还具有在系统重新编程能力，可用于非易失性数据存储，并允许现场更新8051固件。用户软件对所有外设具有完全的控制，可以关断任何一个或所有外设以节省功耗。
片内Silicon Labs二线（C2）开发接口允许使用安装在最终应用系统上的产品MCU进行非侵入式（不占用片内资源）、全速、在系统调试。调试逻辑支持观察和修改存储器和寄存器，支持断点、单步、运行和停机命令。在使用C2进行调试时，所有的模拟和数字外设都可全功能运行。两个C2接口引脚可以与用户功能共享，使在系统调试功能不占用封装引脚。
每种器件都可在工业温度范围（-45℃到+85℃）内用2.7V-5.25V的电压工作。电源电压大于3.6V时，必须使用内部稳压器。对于USB通信，电源电压最小值为3.0V。端口I/O和/RST引脚都容许5V的输入信号电压。C8051F340/1/2/3/4/5/6/7采用48脚TQFP封装或32脚LQFP封装。
  
图1： 原理框图1.1 与8051完全兼容C8051F340/1/2/3/4/5/6/7系列器件使用Silicon Labs的专利CIP-51微控制器内核。CIP-51与MCS-51TM指令集完全兼容，可以使用标准803x/805x的汇编器和编译器进行软件开发。CIP-51内核具有标准8052的所有外设部件，包括4个16位计数器/定时器、两个具有扩展波特率配置的全双工UART、一个增强型SPI端口、多达4352字节的内部RAM、128字节特殊功能寄存器（SFR）地址空间及多达40个I/O引脚。1.2 速度提高CIP-51采用流水线结构，与标准的8051结构相比指令执行速度有很大的提高。在一个标准的8051中，除MUL和DIV以外所有指令都需要12或24个系统时钟周期，最大系统时钟频率为12-24MHz。而对于CIP-51内核，70%的指令的执行时间为1或2个系统时钟周期，只有4条指令的执行时间大于4个系统时钟周期。
CIP-51共有111条指令。下表列出了指令条数与执行时所需的系统时钟周期数的关系。
执行周期数122/333/444/558指令数2650516731211.3 增加的功能C8051F340/1/2/3/4/5/6/7 SoC系列MCU在CIP-51内核和外设方面有几项关键性的改进，提高了整体性能，更易于在最终应用中使用。
扩展的中断系统向CIP-51提供16个中断源（标准8051只有7个中断源），允许大量的模拟和数字外设中断微控制器。一个中断驱动的系统需要较少的MCU干预，因而有更高的执行效率。在设计一个多任务实时系统时，这些增加的中断源是非常有用的。
C8051F340/1/2/3/4/5/6/7有多达9个复位源：上电复位电路（POR）、片内VDD监视器（当电源电压低于VRST时强制复位）、USB控制器（USB总线复位或VBUS状态变化）、看门狗定时器、时钟丢失检测器、由比较器0提供的电压检测器、软件强制复位、外部复位输入引脚和FLASH读/写错误保护电路复位。除了POR、复位输入引脚及FLASH操作错误这三个复位源之外，其他复位源都可以被软件禁止。在一次上电复位之后的MCU初始化期间，WDT可以被永久性使能。
高速内部振荡器在出厂时已经被校准为12MHz ±1.5%。时钟恢复电路允许内部振荡器与4倍时钟乘法器配合，提供全速方式USB时钟源。内部振荡器还被用作低速方式下的USB时钟源。外部振荡器也可以与4倍时钟乘法器配合使用。器件内集成了一个低频振荡器，可以在功耗关键的应用中使用。器件内还集成了外部振荡器驱动电路，允许使用晶体、陶瓷谐振器、电容、RC或外部CMOS时钟源产生系统时钟。系统时钟可以被配置为使用内部振荡器、外部振荡器或时钟乘法器输出二分频。如果需要，可以在CPU运行时切换系统时钟振荡源。低频内部振荡器或外部振荡器在低功耗系统中是非常有用的，它允许MCU从一个低频率（节电）的时钟源运行，当需要时再周期性地切换到高速时钟源。
  
图2： 片内时钟和复位电路1.4 片内存储器CIP-51有标准8051的程序和数据地址配置。它包括256字节的数据RAM，其中高128字节为双映射。用间接寻址访问通用RAM的高128字节，用直接寻址访问128字节的SFR地址空间。数据RAM的低128字节可用直接或间接寻址方式访问。前32个字节为4个通用寄存器区，接下来的16字节既可以按字节寻址也可以按位寻址。
程序存储器包含64KB（C8051F340/2/4/6）或32KB（C8051F341/3/5/7）的FLASH。该存储器以512字节为一个扇区，可以在系统编程，且不需特别的编程电压。该系列器件都包含片内XRAM。64KB FLASH器件（C8051F340/2/4/6）具有4KB的XRAM，32KB FLASH器件（C8051F341/3/5/7）具有2KB的XRAM。所有器件都有独立的1KB USB FIFO RAM。图1.4给出了64KB FLASH器件的存储器组织。注意，对于64KB器件，位于0xFC00 ~ 0xFFFF的1024字节被保留。1.5通用串行总线控制器通用串行总线控制器（USB0）符合USB2.0规范，可以全速或低速工作，集成了收发器和端点FIFO RAM。共有8个端点：一个双向控制端点（端点0）和三对输入/输出端点（端点1-3 输入/输出）。
有1KB的RAM块被用作USB FIFO空间。该FIFO空间被分配给端点0-3；端点1-3 的FIFO可以被配置为输入（IN）、输出（OUT）或输入/输出（分割模式）。最大的FIFO大小为512字节（端点3）。
USB0可以工作在全速或低速方式。片内4倍时钟乘法器和时钟恢复电路允许使用内部高精度振荡器作为USB时钟源，实现全速和低速通信。外部振荡器也可以与4倍时钟乘法器配合使用来产生USB时钟。CPU时钟源与USB时钟相互独立。
USB收发器符合USB2.0规范，并包含内部匹配和上拉电阻。上拉电阻可以被用软件使能/禁止，可以根据软件选择的速度设置（全速或低速）出现在D+或D-引脚。
  
图3：USB控制器原理框图1.6 稳压器C8051F340/1/2/3/4/5/6/7器件内部包含一个稳压器（REG0）。当被使能时，REG0输出连到VDD引脚，并可为外部器件提供电源。REG0可以被软件使能/禁止。1.7片内调试电路C8051F340/1/2/3/4/5/6/7器件具有片内Silicon Labs 2线（C2）接口调试电路，支持使用安装在最终应用系统中的产品器件进行非侵入式、全速的在系统调试。
Silicon Labs的调试系统支持观察和修改存储器和寄存器，支持断点和单步执行。不需要额外的目标RAM、程序存储器、定时器或通信通道。在调试时所有的模拟和数字外设都正常工作。当MCU单步执行或遇到断点而停止运行时，所有的外设（USB、ADC和SMBus除外）都停止运行，以保持与指令执行同步。
开发套件C8051F340DK具有开发应用代码和对C8051F340/1/2/3/4/5/6/7 MCU进行在系统调试所需要的全部硬件和软件。开发套件中包括开发者工作室软件和调试器、8051汇编器和链接器、评估版C编译器和一个调试适配器。套件中还包括一块装有C8051F340MCU的目标应用板、与PC机连接的电缆及一个墙装电源。通过使用连接电缆与编程引脚正确连接，开发套件还可用于对产品PCB上的器件进行调试和编程。
对于开发和调试来说，Silicon Labs IDE接口比采用标准MCU仿真器要优越得多。标准的MCU仿真器要使用在板仿真芯片和目标电缆，还需要在应用板上有MCU的插座。Silicon Labs的调试环境既便于使用又能保证精确模拟外设的性能。1.8可编程数字I/O和交叉开关C8051F340/1/4/5有40个I/O引脚（5个8位口）；C8051F342/3/6/7有25个I/O引脚（3个8位口、和一个1位口）。C8051F340/1/2/3/4/5/6/7端口的工作情况与典型8051端口相似，但有一些改进。每个端口引脚都可以被配置为模拟输入或数字I/O引脚。被选择作为数字I/O的引脚还可以被配置为推挽或漏极开路输出。在标准8051中固定的“弱上拉”可以被总体禁止，这为低功耗应用提供了进一步节电的能力。
数字交叉开关允许将内部数字系统资源映射到端口I/O引脚（见图1.6）。可通过设置交叉开关控制寄存器将片内的计数器/定时器、串行总线、硬件中断、比较器输出以及微控制器内部的其它数字信号配置为出现在端口I/O引脚。这一特性允许用户根据自己的特定应用选择通用端口I/O和所需数字资源的组合。
  
图4：数字交叉开关原理框图1.9 串行端口C8051F340/1/2/3/4/5/6/7系列MCU内部有一个SMBus/I2C接口、一或两个全双工UART和一个增强型SPI接口。每种串行总线都完全用硬件实现，都能向CIP-51产生中断，因此需要很少的CPU干预。1.10 可编程计数器阵列除了4个16位的通用计数器/定时器之外，MCU中还有一个片内可编程计数器/定时器阵列（PCA）。PCA包括一个专用的16位计数器/定时器时间基准和5个可编程的捕捉/比较模块。PCA的时钟可以是下面的六个时钟源之一：系统时钟/12、系统时钟/4、定时器0溢出、外部时钟输入（ECI）、系统时钟和外部振荡源频率/8。外部时钟源对于实时时钟功能是非常有用的，可以在使用内部振荡器驱动系统时钟的同时由外部振荡器给PCA提供时钟。
每个捕捉/比较模块都有六种工作方式：边沿触发捕捉、软件定时器、高速输出、8位或16位脉冲宽度调制器、频率输出。此外，捕捉/比较模块4还提供看门狗定时器（WDT）功能。在系统复位后，捕捉/比较模块4被配置并被使能为WDT方式。PCA捕捉/比较模块的I/O和外部时钟输入可以通过数字交叉开关连到端口I/O。
  
图5：PCA原理框图1.11 10位模/数转换器C8051F340/1/2/3/4/5/6/7内部有一个10位SAR ADC和一个差分输入多路选择器。该ADC工作在200ksps的最大采样速率时可提供真正10位的线性度，INL为±1LSB。ADC系统包含一个可编程的模拟多路选择器，用于选择ADC的正输入和负输入。端口I/O引脚中的20个（48脚封装）或21个（32脚封装）引脚可用作ADC的输入；另外，片内温度传感器的输出和电源电压（VDD）也可以作为ADC的输入。用户固件可以将ADC置于关断状态以节省功耗。
A/D转换可以有6种启动方式：软件命令、定时器0溢出、定时器1溢出、定时器2溢出、定时器3溢出或外部转换启动信号。这种灵活性允许用软件事件、周期性信号（定时器溢出）或外部硬件信号触发转换。一个状态位用于指示转换完成，或产生中断（如果被允许）。转换结束后10位结果数据字被锁存到ADC数据寄存器中。
窗口比较寄存器可被配置为当ADC数据位于一个规定的范围之内或之外时向控制器申请中断。ADC可以用后台方式连续监视一个关键电压，当转换数据位于规定的范围之内/外时才向控制器申请中断。1.12 比较器C8051F340/1/2/3/4/5/6/7器件内部有两个电压比较器，可以由用户软件使能/禁止和配置。端口I/O引脚可以通过多路选择器被配置为比较器输入。如果需要，可以将两个比较器输出连到端口引脚：一个锁存输出和/或一个未锁存的输出（异步）。比较器的响应时间是可编程的，允许用户在高速和低功耗方式之间选择。比较器的正向和负向回差电压也是可配置的。
比较器能在上升沿、下降沿产生中断，或在两个边沿都产生中断。当MCU工作在空闲方式时，这些中断可用于唤醒MCU。比较器0还可以被配置为复位源。图1.10给出了比较器0的原理框图。
  
图6：比较器原理框图
引脚和封装定义