[导读] XC866是新型8位微控制器系列(XC800)的第一代系列产品,集成高性能8051核、片内FLASH及功能强大的外设集。此外,XC800系列产品内部集成的片 内振荡器和支持3.3V或5.0V单电源供电的嵌入式电压调节器(EVR)进一步增强了产品性能并有效地节省了系统成本。

  往期系列文章推荐:

  全球主流8位MCU芯片详细解剖No.1:飞思卡尔 MC9S08AC60

  简介

  XC866是 新型8位微控制器系列(XC800)的第一代系列产品,集成高性能8051核、片内FLASH及功能强大的外设集。此外,XC800系列产品内部集成的片 内振荡器和支持3.3V或5.0V单电源供电的嵌入式电压调节器(EVR)进一步增强了产品性能并有效地节省了系统成本。XC866除了提供片内 FLASH的产品外,同时推出同系列兼容ROM 产品,为大批量生产提供了进一步节省成本的空间。

  单片机结构图

  引脚图

  多功能引脚举例

  -P0.0 引脚12

  TCK_0 JTAG 时钟输入

  T12HR_1 CCU6 定时器12 硬件运行输入

  CC61_1 捕获/比较通道1 输入/输出

  CLKOUT 时钟输出

  RXDO_1 UART 发送数据输出

  -P0.1 引脚14

  TDI_0 JTAG 串行数据输入

  T13HR_1 CCU6 定时器13 硬件运行输入

  RXD_1 UART 接收数据输入

  COUT61_1 捕获/比较通道1 输出

  EXF2_1 定时器2 外部标志输出

  模块分析

  存储器结构

  -8K 启动(boot)ROM 地址:C00H-E000H

  -256字节片内RAM,0~7FH使用直接寻址,80~FFH使用

  (1)寄存器间接寻址

  -128字节SFR 地址80~FFH,使用直接寻址

  -512字节XRAM 地址F000~F200,使用MOVX访问。当使用R0,R1作地址寄存器时,其XRAM地址的高位地址由寄存器XADDRH 中的值定义。

  -8K/16K 程序存储器,起始地址0000

  -特殊的EO寄存器操作,允许切换DPTR以及对程序ROM

  -写操作(指令:MOVC @(DPTR++),A)实现软件更新

  (2)基本端口结构图

  (3)端口相关寄存器

  - PX_PUDSEL 上拉/下拉选择寄存器

  -PX_PUDEN 上拉/下拉使能寄存器

  -PX_OD 漏极开路控制寄存器

  - PX_DIR 方向寄存器(P2口只能作为输入)

  - PX_ALTSEL0 第二功能选择寄存器0

  -PX_ALTSEL1 第二功能选择寄存器1

  - PX_DATA 端口数据寄存器

  其中PX的X为端口编号,寄存器都是8位,每位对应一个引脚

  I2C总线和SPI总线

  I2C总线和SPI总线同属于“位同步”的串行接口,但又有一些不同点:

  nn I2C总线的数据信号需要:起始、停止和ACK信号,要求对方作应答

  I2C总线电路链接

  SPI总线:两条串行数据线,一条时钟线。数据线分输出和输入。对多个部芯片,还需要片选CS。

  SPI总线结构

  XC866的SSC

  XC866具有高速同步串行通道SSC,可与SPI兼容,也可与8051串口方式0兼容;

  -波特率可独立编程:它具有专用的,具有重装载功能的16位波特率发生器;

  -数据宽规定为2~8位“字符”;

  -可先发送LSB(与8051串口方式0兼容),也可先发送MSB(与SPI兼容);

  -可在时钟的上升沿或者下降沿对数据进行移位;

  -可产生移位时钟或者接收移位时钟;

  -名称有所不同:MOSI=MTSR, MISO=MRST ;

  SSC组成框图

  数模转换器(DA)

  工作原理

  DA转换器芯片

  DA转换器主要组成部分是电阻网络和相应的模拟开关阵列。

    模拟量输出通常为电流输出,图中的运算放大器把电流输出转换成电压输出,按厂家设计的反馈电阻连接,输出电压与参考电压之间满足如下关系:

  Vout= - Vref X (data /(2n-1))

  其中:n为数字量的位数,data为输入的数字量有的芯片自带数据锁存器、自己提供参考电压。芯片型号繁多,常见的有DAC0832等。

  AD转换器

  -逐次逼近

  -8位或者10位精度,8路模拟通道

  -4个独立的结果寄存器

  -单次转换和自动扫描功能

  -采样时钟可编程,时钟分频器可编程

  -集成的采样保持电路

  -数据压缩滤波

  -灵活的中断产生方式,中断服务节点可配置

  -可以关闭ADC模块,以便降低功耗

  XC866的AD转换器框图

  AD转换初始化解说

  AD转换器初始化程序:

  -SFR_PAGE(_ad0, noSST); // switch to page 0

  -ADC_GLOBCTR = 0x70; // f32,8位宽度

  -ADC_PRAR = 0x94; // 设定仲裁方式和优先

  - SFR_PAGE(_ad1, noSST); // switch to page 1

  -ADC_QMR0 = 0x00; // ADC模式,禁止外部触发

  -ADC_CRMR1 = 0x01; // ADC模式,开启请求源

  -SFR_PAGE(_ad0, noSST); // switch to page 0

  -ADC_GLOBCTR |= 0x80; // 开启模拟部分

  - XC866的ADC使用SFR的7个页面,每个页面占用地址CAH~CFH和D2H,D3H。随页不同具有不同的内容,用D1H作为分页寄存器,确定使用那个页。GLOBCTR和PRAR在0页,QMR0和CRMR1在6页。

  可编程序计数器阵列PCA和捕获比较单元CCU

  增强的定时器/计数器模块,或者多个模块组合,称为PCA/CCU

  - 定时器时钟可选择:另一个定时器溢出或者固定分频器输出

  -可选择捕获/比较/重装/PWM输出等多种功能

  - 多个捕获/比较/重装数据寄存器组成多路PWM输出

  - 捕获/溢出/匹配均可产生中断

  - 单独的重装载寄存器可以设定PWM的周期

  XC866的捕获比较单元CCU6

  捕获/比较单元6(CCU6)中有两个独立的定时器(T12,T13)、可被用来产生脉宽调制(PWM)信号,尤其适用于控制交流电机的应用场合。CCU6 也支持一些用于块切换和多相电机的专用控制模式。

  定时器T12 的3 路通道可工作在捕获和/或比较模式。定时器T13 只能工作在比较模式。

  多通道控制单元产生的输出序列可由T12 和/或T13 调制。调制源可选择并组合使用。

  定时器T12,T13 特性:

  -定时器T12 特性:

  1. 3 路捕获/比较通道,每路可用作捕获或比较通道

  2. 支持产生三相PWM(6 路输出,每路信号对应上桥臂或下桥臂开关)

  3. 16 位精度,最大计数频率 = 外设时钟频率

  4. 单通道死区时间控制 ,避免功率级短路

  5. 同步刷新T12/T13 寄存器

  6. 产生中间对齐和边缘对齐PWM

  -定时器T13 特性:

  1. 单一比较通道,单输出

  2. 16 位精度,最大计数频率 = 外设时钟频率

  3. 可与T12 同步

  三相马达PWM生成简单介绍

  三相不同的脉宽值需实时写入CCU6i的映射寄存器CCU6iSR

  U,V,W三相输出通过CCU6i和COUT6i引脚配对输出,极性相反

  各种设置:时钟选择,预分频选择,死区时间,输出脚配置,以及多种模式选择,在此略讲。

  三相马达SPWM信号原理

  三角波称为“载波”,正弦波称为“调制波”。A,B,C三相相位差120度,他们的SPWM波形参数表其实也是相同的,但是也是差120度。

  SPWM波形参数表实际就是每个三角波周期内相应的脉冲宽度

  三相马达/无刷电机控制举例

  单片机CCU6输出的U+/U-;V+/V -和W+/W-经驱动后连接到IGBT。

  实时改变周期和脉宽,可以达到变频目的,以及调整输出功率,从而控制马达转速。

  工程师们对于XC866的使用问答:

  (1)XC866 应该选择哪种IDE

  A:“Miniwigger+KEIL V3破解版

  keil for c51 v8

  infineon dave v2.1

  infineon memtool v4.01.05

  fload 下载器”

  (2)想用Proteus仿真英飞凌的XC866,可是元件库里没有,该怎么办?

  A:“由于Proteus的元件库里没有英飞凌的MCU,自己制作比较困难,如果是其他常用器件,找一个相近的替换一下。可以采用miniwager, 是英飞凌自家的仿真器,也可以用南京伟福的Multi-Infineon仿真器。 ”

  (3)英飞凌XC866中SCLK时钟问题

  Q:在DAVE中SSC都已经设置好了,但在keil中编完程序进行仿真时发现SCLK始终为0,XC866不是SSC设置好就能产生时钟信号吗?

  A:“自带的SPI外设,发数据的时候才会有时钟输出。”

  (4)XC866 mbc 电平 ocds模式求助

  Q: xc866开发板。使用ulink通过ocds接口调试,书上说:如果(MBC,TMS,P0.0)= (0,1,1),将进入OCDS 模式进行程序代码的调试。首先初始化OCDS,接下来跳转到程序存储器的地址0000H 处,执行Flash 或ROM存储器中的用户代码,开始进行调试。在OCDS 模式下,内部数据存储器的低64 字节(地址00H- 3FH)可选择映射为64 字节的监控RAM或内部数据RAM。

  为什么用ulink调试时,mbc引脚为始终高电平啊,跟书上说的不一样啊。用万用表看的,难道是mbc瞬间置低电平后进入ocds模式,然后又置高。

  用xc800_fload烧写程序时,必须将mbc引脚专门给接到地,要不不能烧写。

  A1:“(MBC,TMS,P0.0)= (0,1,1) 指的是芯片复位后这些脚的电平,xc866在复位后会自动检测这三个脚的电平决定芯片进入下载模式、JTAG模式,还是运行程序。对于你的问题

  1。  OCDS模式:你的理解可能是对的,因为MBC, TMS, P0.0都会连到Ulink, 所以我猜实际流程是这样的,Ulink先将MBC, TMS, P0.0设置为0,1,1. 然后复位芯片(Ulink 拉低Reset),释放复位芯片,这时候芯片就进入 OCDS模式了。

  2。 如果MBC = 0. TMS = 0,则芯片复位后进入BSL 模式,进行串口下载(通过FLoad)”

  A2:也就说,在ulink连接下,keil软件界面点击debug按钮后,ulink首先让芯片复位,然后设定MBC, TMS, P0.0为(0,1,1)让芯片进入ocds模式。进入模式后,则MBC, TMS, P0.0的设定则恢复的正常模式。这样的话,比如在断点调试时,人为的按下reset键后,芯片可以进入正常运行模式,程序在正常运行,而不是又进入ocds模式。

  而fload模式,从电路上看,mbc只能被ulink的ocds信号控制,所以需要人工的加低电平,并且烧完程序后,程序是不能运行。

  XC86相关资料下载

  1、基于XC866的步进电机阀门控制系统

  2、基于XC866的PWM直流无刷电机的正弦波控制

  3、XC866系列微控制器设计的电动自行车控制器技术

全球主流8位MCU芯片详细解剖No.2:英飞凌 XC866 - 全文的更多相关文章

  1. 全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗

    号称全球最低功耗蓝牙单芯片DA14580在可穿戴市场.健康医疗.ibeacon定位等市场得到广泛的应用,但是因为其较为封闭的技术/资料支持导致开发人员有较高的技术门槛,网络上也极少看到有关DA1458 ...

  2. 4月第4周业务风控关注 | 网络犯罪经济每年1.5万亿美元 GDP居全球第12位

    本文由  网易云发布. 易盾业务风控周报每周呈报值得关注的安全技术和事件,包括但不限于内容安全.移动安全.业务安全和网络安全,帮助企业提高警惕,规避这些似小实大.影响业务健康发展的安全风险. 1.网络 ...

  3. 全球最低功耗蓝牙单芯片DA14580的软件体系 -层次架构和BLE消息事件处理过程

    在作者之前发表的<全球最低功耗蓝牙单芯片DA14580的系统架构和应用开发框架分析>.<全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗>.<全球最低功耗蓝牙单芯片 ...

  4. 全球最低功耗蓝牙单芯片DA14580的软件体系 -RW内核和消息处理机制

    上一篇文章<蓝牙单芯片DA14580的硬件架构和低功耗>阐述了DA14580的硬件架构和低功耗的工作原理.本文文章阐述该平台的软件体系,并着重分析消息事件的处理机制. 一.DA14580S ...

  5. ELINK编程器支持芯片详细列表

    支持MCU芯片包括:STM32  F0.F1.F2.F3.F4.L0.L1全系列: GD32 F10XX系列. 各系列芯片支持详情如下:

  6. 联发科MT8377 MT8389 MT6589 MT6577等芯片详细解析

    MT8389大家都比较陌生,但如果我说MT6589估计大家都懂了,实质上MT8389是MT6589的一个分支,一个克隆分支,说得再明了些,就是MT6589的高耗版.如果把它看成是同一个CPU也是可以的 ...

  7. 全球最低功耗蓝牙单芯片(DA14580)系统架构和应用开发框架分析

    DA14580是Dialog公司研制的蓝牙单芯片,号称全球功耗最低,是TI CC2541的四分之一,是运动手环等穿戴类电子产品的常用芯片.但是DA14580的开发门槛不低,适合有蓝牙开发经验的团队来开 ...

  8. Z字头:逐浪字库入选微软全球主流字体厂商列表

    北京时间2019年6月20日消息: 来自中国的字库厂商--逐浪,成功获得全球软件巨擎.电子出版与数字印刷权威平台-微软的认证,成为获此国际认证的首家字体厂商. 微软公司为了更好的规范国际字库与出版,制 ...

  9. 中颖4位MCU的减法汇编指令

    1, SUB M 执行动作: M - A -> A, 如果M-A的过程中没有产生借位,则CY= 1,如果产生了借位,则CY= 0. 其中,A为累加器. 2, SBI M, I 执行动作:M - ...

随机推荐

  1. linq any() all() 返回true 或者false

    一.any()只要有一个符合条件就返回true static void Main(string[] args) { //any 有符合条件的就返回true ,,,,,,,,,}; ); Console ...

  2. C#窗口实现最小化到系统托盘

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. CodeForces 429B Working out 动态规划

    Description Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to loo ...

  4. ServletConfig与ServletContext对象(接口)

    ServletConfig:封装servlet的配置信息. 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. <ser ...

  5. JAVA-基本知识

    1.JAVA跨平台 其实就是在每个平台上要安装对应该操作系统的JVM,JVM负责解析执行,即实现了跨平台.JVM是操作系统与java程序之间的桥梁. 2.JRE:java运行环境,包含JVM+核心类库 ...

  6. zend frameword 基本语法

    #resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"#resources.frontCo ...

  7. php 四种基础算法 ---- 快速排序法

    4.快速排序法 代码: function quick_sort($arr) {    //先判断是否需要继续进行    $length = count($arr);    if($length < ...

  8. linux 下载安装tomcat

    1.下载tomcat 2.tar -zxvf apache-tomcat-7.0.67.tar.gz 3.cd bin目录  启动  ./startup.sh [root@fuyuanming bin ...

  9. 运行第一个SparkKPI程序

    1.复制一个examples中SparkPi.scala到IntelliJ IDEA编辑器,运行,出现错误: “org.apache.spark.SparkException: A master UR ...

  10. HDU 2102 A计划 经典搜索

    A计划 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissio ...