关于使用c8051fxxx系列单片机用户常见问题如下:
关于振荡器

问:内部时钟振荡器是不是不稳定?是否可以用于产生波特率的时基?
答:不同器件的内部时钟振荡器的精度是不同的(±20%)。随电源电压变化,它也将发生变化(6.5%/V)。但基本不随温度变化(<1%温度变化范围-40-+85℃)。由于不同器件内部振荡器的离散性较大,所以不能用于产生波特率,应该外接标准晶体 (而C8051F300/301内部振荡器精度为±2%,可用于产生波特率) 。

问:片内/外振荡器如何配置?
答:正确步骤:
  1. 允许外部振荡器;
  2. 等待1ms;
  3. 查询XTLVLD '0'->'1'
  4. 切换到外部振荡器。
注意:振荡器频率的选择,即OSCXCN寄存器的配置(外部振荡器频率控制位的设置)。
汇编和C的部分源代码如下:
汇编:
mov OSCXCN, #67h       ;允许外部振荡器频率为 18.432MHz
clr A              ; 最少等待1ms
djnz acc, $           ; 等待 ~512us
djnz acc, $          ; 等待 ~512us
osc_wait:           ; 查询 XTLVLD是否为1
mov a, OSCXCN
jnb acc.7, osc_wait
orl OSCICN, #08h       ; 选择外部振荡器作为系统时钟源
orl OSCXCN, #80h        ; 使能丢失时钟检测器
C语言:
void SYSCLK_Init (void)
{
int i              ; //延时计数器
OSCXCN = 0x67         ; //启动外部振荡器用 22.1184MHz 晶体
for (i=0; i < 256; i++)    ; // 最少等待>1ms
while (!(OSCXCN & 0x80))    ; // 等待晶体稳定
OSCICN = 0x88         ; //选择外部振荡器作为系统时钟源
                 //使能丢失时钟检测器
}

关于模数转换

问:从上电(或退出掉电模式)到ADC稳定开始转换需要多长时间?
答:模拟建立时间也就是等待参考电平稳定的时间。它取决于接在VREF引脚的电容容量。此电容越大VREF的噪音就越小,ADC转换结果的噪音也就越小。如果用4.7uF电容,则稳定时间大约为2ms,如果无旁路电容(不推荐),稳定时间大约为10us。
注意:在开始转化之前,需要一个1.5us的跟踪时间,这也就决定了ADC多路转换开关(MUX)的切换速度。

问:ADC的最大VREF电压:
答:内部参考:2.40±0.03V;
外部参考:VA+-0.3V。

问:ADC的最大输入电压及输入阻抗?
答:ADC的最大输入电压为VREF。输入电容为10pF;输入阻抗等价于一个5kΩ电阻和一个10pF电容的串联。
请参考应用笔记AN019"计算开关电容ADC的建立时间"。

问:ADC可编程窗口检测器有什么用途?
答:ADC可编程窗口检测器在很多应用中非常有用。它不停地将ADC输出与用户编程的限制量进行比较,并在检查到越限条件时通知系统控制器。这在中断驱动的系统中尤其有效。既可以节省代码空间和CPU带宽又能提供快速响应的时间。

问:C8051F020/F021的内部参考如何使用?
答:F020:如果ADC0、ADC1及DAC都使用内部参考,将VREF连接到VREF0、VREF1、VREFD引脚,
   F021:将VREF连到VREFA引脚即可。

关于端口

问:器件IO口的吸收(sink)电流和源(source)电流是多少?
答:GPIO(通用IO)引脚当电压为0.6V时可以吸收8.5mA的电流。当电压为VDD-0.7V时的源电流为3mA。

问:在GPIO引脚上的弱上拉的值是多少?
答:当VDD=3.0V时,上拉值大约为100KΩ左右。

问:Silicon Lab C8051FXXX系列单片机的IO口与传统8051单片机相比有什么区别?
答:①Cygnal C8051FXXX系列单片机的IO口全部为三态双向口(而传统8051单片机P1、P2、P3口为准双向口),内部有弱上拉可禁止(传统8051单片机固有),可配置为开漏输出和推挽输出(传统8051单片机只有开漏输出)。
  ②片内数字资源要通过数据交叉开关(crossbar)按一定的优先级配置到IO引脚(C8051F2XX系列除外,而传统8051单片机不具备这一功能)。

问:Silicon Lab 8051FXXX系列单片机电源电压全部为2.7-3.6V,那么是否有与5V系统接口的比较简单的解决方案?
答:所有IO口允许5V(极限值为5.8V)输入,但是输出为VDD电平。如果与5V系统接口,最简单的方法是在输出端加上拉电阻,关键是上拉电阻的选择。具体参考应用笔记AN011"在5V系统中使用C8051FXXX"。
建议:如果可能,请尽量选用电压供电兼容的芯片,这是一种最理想的选择。

问:模拟引脚能否简单地用于数字I/O?
答:如果模拟引脚是独立的是不可以的。但是如果模拟引脚和数字IO是复用的,是可以通过SFR的设置来完成配置。

问:C8051F020/022的p4-p7口和p0-p3口有什么不同?
答:P0-P3口复位时为通用口,可通过Crossbar(数据交叉开关)寄存器按优先级设置成第二功能。而P4-P7口是通用口,另外P4-P7寄存器不能位寻址。

关于电源管理

问:Silicon Lab 8051FXXX系列单片机有几种电源管理模式?是否可以在低功耗中应用?在低功耗应用时应该怎么做?
答:8051FXXX系列单片机有两种电源管理模式,空闲(IDLE)和停止(STOP)。在IDLE模式CPU停止,而振荡器和所有的数字和模拟外设可以处于激活状态。IDLE模式可由复位或一个中断请求来结束。在STOP模式,停止振荡器、CPU和所有的外设。STOP模式只能通过复位结束。
IDLE和STOP提供了一种低功耗备用模式。此外,振荡器的控制也能用于提供一种低功耗工作模式。实现方法为:你可以在XTAL引脚接一个低频音叉晶体(32.768kHz)。当你的系统需要高速运行时,可以选择内部振荡器作为时钟源(2、4、8、16或25MHz(仅限F3XX)),接着将系统时钟切换到外部进入低功耗模式。
请参考应用笔记:AN016"电源管理技术及计算"。


问:当器件在休眠/停止模式,看门狗定时器(WDT)是否运行?在休眠模式和停止模式时的电流是多少?
答:Silicon Lab单片机有两种电源管理模式:"空闲(Idle)" 和 "停止(Stop)"。在停止模式,所有的外设,CPU和振荡器停止,也包括看门狗定时器。在此模式,当VDD=3V时,电流为5uA(以F005为例,且不同系列也不同,请参考数据手册)。退出STOP状态需要一个复位。注意:如果使能丢失时钟检测器,当振荡器停止一段时间后,器件将复位,这样可以退出STOP状态。
在空闲模式,振荡器和所有外设(包括看门狗定时器)能被使能,但是CPU将被禁,且访问FLASH将被禁止。可通过复位或中断退出IDLE模式。在IDLE模式的电流大约是正常工作模式的65%。

关于存储器

问:Silicon Lab C8051Fxxx系列单片机的片内FLASH可用于非易失数据存储,但FLASH的寿命是多少呢?
答:FLASH的擦/写次数:保证10,000次擦/写,典型值为:100,000次。

问:片内flash擦除及写入过程及所需时间?
答:片内flash擦除及写入的时序由芯片内自动控制,当发出擦除或写入指令时,CPU暂时停止工作,外围设备(串行口、ADC、Timer等仍处于活动状态),外围设备产生的中断此时被挂起,中断在擦除或写入完成后按优先级顺序执行。扇区(512字节)擦除时间为10m-14ms;典型值12ms写入时间50us。
片内flash读用movc指令,与传统8051相同。


问:可以保护一段FLASH不被读/写吗?
答:FLASH访问限制,能够保护一段FLASH不会被MOVC指令读,同时也不会被MOVX指令写。但是,因为FLASH擦除是以512字节/页(一个扇区)为单位,而FLACL执行256字节/页,所以你要将FLACL对齐到512字节页。


问:请问F00x/F01x/F2xx如何扩展外部RAM, WR\RD信号如何产生?
答:请参考应用笔记AN006"外部SRAM与C8051F000接口"。笔记中给出了硬件接口电路和软件。WR/RD/ALE由IO口模拟。

问:F0xx的128字节ISP FLASH是什么意思?
答:MCU的FLASH存储器中有一个附加的128字节的小扇区,以C8051F00X为例,位于0x8000-0x807F。该扇区可用于存储程序代码或数据。它较小的扇区容量尤其适用于作为通用的非易失性数据临时存储。尽管FLASH存储器可以每次写一个字节,但必须首先擦除整个扇区。为了修改一个多字节数据集中的某一个字节,整个数据集必须被保存到一个临时存储区。接下来将扇区擦除,更新数据集,最后将数据集写回到原扇区。128字节的扇区规模使数据更新更容易,可以使用内部数据RAM作为临时存储区而不浪费程序存储器空间。

关于开发工具及调试

问:C8051FXX系列单片机的开发工具是不是串行适配器(PC机串口和JTAG协议转换适配)相同而目标板不同?
答:开发套件中串行适配器(核心部件)是通用的,只是目标板不同。只要您购买一套开发套件,就可以开发全系列单片机。为了加快您的开发进程,您只要购买带有相关型号单片机的目标板就可以了。

问:Silicon Lab单片机下载器与EC2的区别?EC2不是也可以用来将程序下载到单片机内的吗,为什么还要下载器呢?
答:EC2与下载器的区别:EC2不但可以下载程序,而且可以在系统调试程序。目前为进口部件,因而在价格上稍高一些。而下载器只具有下载程序代码(.hex格式)、擦除FLASH、校验、运行程序、停止程序运行、加密和识别芯片类型等功能,也就是相当于一个多功能的编程器,但不具有如单步、断点等调试功能。而EC2具有调试您的目标系统的所有功能。下载器是由我公司自行研制的,因而在价格上要比EC2低。我们是针对用户的需求开发此产品。

问:Silicon Lab单片机是怎样调试用户系统的?
答:Silicon Lab单片机是用开发套件来调试用户系统的。单片机开发套件包括开发软件IDE(集成开发环境),EC2-PC机串行口和单片机JTAG接口的协议转换模块和一个目标板(板上有Cygnal MCU)。IDE中集成了编译器,汇编器和连接器,支持汇编语言和C语言(第三方支持);EC2是从RS-232到JTAG协议的转换模块。目标板上带有一块相应的Silcon Lab MCU和一些简单的外围电路构成一个最小单片机系统,并将所有引脚连接到插座。Silcon Lab单片机片内集成了一个以JTAG协议为基础的调试电路,这样在调试您的系统时,不需要专用仿真芯片、目标仿真头及目标RAM等。您在IDE上编译生成程序代码后,通过EC2(连接到计算机串口和JTAG接口)将代码下载到用户系统板的Silcon Lab MCU的Flash存储器中,然后您就可以调试您的目标系统了。

问:可以用Keil uVision2 IDE调试全系列Silicon Lab单片机(c8051f00x/01x/02x /2xx/3xx)应用系统吗?
答:可以。但必须安装动态链接库。uVision2(IDE)简要说明请参考本册字"如何用Keil uVision2 调试你的目标系统"部分。
动态链接库.dll安装说明:
1.将 CYGC8051F.DLL Copy到 C:\KEIL\C51\BIN目录;
2.将TP51.DLL Copy到 C:\KEIL\C51\BIN目录(如果TP51.DLL存在,备份);
3.将如下行加到C:\KEIL\TOOLS.INI 文件中的[C51]项。
TDRV0=c:\keil\c51\bin\CYGC8051F.DLL ("Cygnal C8051F Driver")
如果TDRV0存在,可以使用TDRV1(或2、3....)
4.将 UV2.CDB Copy到 C:\KEIL\UV2目录(如果UV2.CDB存在,备份)
5.启动uVision2。

问:开发套件中的目标板主要做什么用的?
答:目标板(直译)(Target Board), 实际是一个带MCU的原型设计板,可以在上面做您的设计。在您设计好您的目标系统(板)后,您就可以调试您的目标系统(板)了,而不再使用"目标板"。

关于手工焊接

问:如何焊接TQFP表贴芯片?
答:购买一可焊接表贴器件的进口电烙铁(烙铁头(端部)不超过1mm),优质助焊剂,放大镜,吸锡网(必备),及其他工具。就可以焊接了。
(一用户:现在我是用自制的吸锡线:将带屏蔽网的音频线抽去线芯和外皮,在酒精松香溶液中浸一下晾干。比进口的吸锡线还好用。)
 
门市销售部电话:022-27376292 传真:022-27471810
版权所有:©-天津芯慧科技
门市销售部地址:天津市南开区鞍山西道323号增1号
项目研发部地址:天津市南开区复康路33号