微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51手记之C8051F

51手记之C8051F

时间:11-10 来源:互联网 点击:
使用Silicon Lab的专利CIP-51微控制器内核,可以使用标准803x/805x的汇编器和编译器进行软件开发,CIP-51采用流水线结构,与标准的8051结构相比指令执行速度有很大的提高,70%的指令的执行时间为1或2个系统时钟周期,只有4条指令的执行时间大于4个系统时钟周期。


CIP-51共有111条指令。下表列出了指令条数与执行时所需的系统时钟周期数的关系。

器件内部包含一个稳压器(REG0)。当被使能时,REG0输出连到VDD引脚,并可为外部器件提供电源。REG0可以被软件使能/禁止。

可在工业温度范围(-45℃到+85℃)内用2.7V-5.25V的电压工作。电源电压大于3.6V时,必须使用内部稳压器。

包含C2调试接口,支持FLASH编程和使用安装在最终应用系统中的器件进行在系统调试。

1.基本特性

时钟源:有1个可编程内部高频振荡器、1个可编程内部低频振荡器、1个外部振荡器驱动电路和1个4倍时钟乘法器。

高速内部振荡器在出厂时已经被校准为12MHz±1.5%。时钟恢复电路允许内部振荡器与4倍时钟乘法器配合,提供全速方式USB时钟源。内部振荡器还被用作低速方式下的USB时钟源。器件内集成了外部振荡器驱动电路,允许使用晶体、陶瓷谐振器、电容、RC或外部CMOS时钟源产生系统时钟。

系统时钟可以被配置为使用内部振荡器、外部振荡器或时钟乘法器输出二分频。如果需要,可以在CPU运行时切换系统时钟振荡源。低频内部振荡器或外部振荡器在低功耗系统中是非常有用的,它允许MCU从一个低频率(节电)的时钟源运行,当需要时再周期性地切换到高速时钟源。

使用外部振荡器时,必须在OSCXCN寄存器中选择外部振荡器类型,必须对所有端口引脚进行配置,对于晶体/陶瓷谐振器、电容或RC方式,应将所有端口配置为模拟输入,对于CMOS时钟方式,应将所有端口引脚配置为数字输入;对于外部晶体或陶瓷谐振器,必须在XTAL1和XTAL2引脚之间并接一个10MΩ的电阻。使用RC、电容或CMOS时钟配置,时钟源应接到XTAL2引脚。

外部晶体使用步骤:a.使能外部振荡器;b.等待至少1ms;c.查询XTLVLD =>‘1’;d.将系统时钟切换到外部振荡器。

4倍时钟乘法器配置:a.通过向寄存器CLKMUL写0x00来复位时钟乘法器;b.用MULSEL位选择时钟乘法器的输入;c.用MULEN位使能时钟乘法器(CLKMUL | = 0x80);d.延时大于5 μs;e.用MULINIT位初始化时钟乘法器(CLKMUL | = 0xC0);f.查询等待MULRDY =>‘1’。

当使用外部振荡器作为4倍时钟乘法器的输入时,外部振荡源必须在乘法器初始化之前被使能并稳定运行。

有9个复位源:上电复位电路(POR)、片内VDD监视器(当电源电压低于VRST时强制复位)、USB控制器(USB总线复位或VBUS状态变化)、看门狗定时器、时钟丢失检测器、由比较器0提供的电压检测器、软件强制复位、外部复位输入引脚和FLASH读/写错误保护电路复位。除了POR、复位输入引脚及FLASH操作错误这三个复位源之外,其他复位源都可以被软件禁止。在一次上电复位之后的MCU初始化期间,WDT可以被永久性使能。

2.存储器

1)程序存储器

内部有可再编程的FLASH存储器,用于程序代码和非易失性数据存储。可以通过C2接口或由软件使用MOVX指令对FLASH存储器进行在系统编程,每次一个字节。可在系统编程,扇区大小为512字节。

64KB的片内FLASH存储器可用作程序存储器或可编程数据存储器,实际使用过程中需注意,程序默认从低地址开始存放,如需使用该空间存放数据,需避开程序代码区。只有未锁定的FLASH页可使用。

2)数据存储器

片上256字节RAM+4KB的XRAM,1KB的USB FIFO也可以被映射到外部数据存储器空间,作为通用数据存储器使用。有用于访问片外存储器和存储器映射器件的外部存储器接口EMIF。

3.通用I/O口

有40/25个I/O口,均耐5V电压,大灌电流。每个端口引脚都可以被配置为模拟输入或数字I/O引脚,被选择为数字I/O的引脚还可以被配置为推挽或漏极开路输出。

数字交叉开关允许将内部数字系统资源映射到端口I/O引脚,交叉开关根据优先权译码表为所选择的内部数字资源分配I/O引脚。寄存器XBR0、XBR1和XBR2用于选择内部数字功能。。PnSKIP寄存器允许软件跳过那些被用作模拟输入、特定功能或GPIO的引脚。

端口I/O初始化包括以下步骤:

a.用端口输入方式寄存器(PnMDIN)选择所有端口引脚的输入方式(模拟或数字)。

b.用端口输出方式寄存器(PnMDOUT)选择所有端口引脚的输出方式(漏极开路或推挽)。

c.用端口跳过寄存器(PnSKIP)选择应被交叉开关跳过的那些引脚。

d.将引脚分配给要使用的外设(

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top