往期系列文章推荐:
全球主流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系列微控制器设计的电动自行车控制器技术
医用传感器方案的应用范围和案例剖析
工信部宣布5G商用正式启动,中国正式进入5G商用时代
Maxim发布隔离式碳化硅栅极驱动器,提供业界最佳电源效率、有效延长系统运行时间
基于MAX16834大功率高亮HB LED驱动方案
使用氧化锆氧传感器时应避免哪些气体和化学品以及哪些接口板
全球主流8位MCU芯片详细解剖No.2:英飞凌 XC866
温晓君:大力推动4K+5G+AI制作传输融合应用创新,实现全产业链协同发展
可再生能源制氢:电价低于2毛6时具有一定的优势
德州仪器推出了两个具有出色的抗电磁干扰和热性能的宽VIN同步直流/直流降压稳压器系列
电警超速抓拍补光灯会对环境造成污染吗
中国氢能源与燃料电池发展战略及未来展望
工业互联网发展的十三个趋势解析
赫联新增美国Circuit Assembly授权
锂电池的正确充电方法
Altera第二代Nios II嵌入式评估套件,主要应用在最新的MAX 10 FPGA套件
新能源车整体产能恢复率在20-30%左右
极海推出APM32F411新风系统应用方案
飞兆半导体积极扩展手机应用实现便携设计差异化
锂电池和燃料电池的能量密度瓶颈
意法半导体推全球首款全非接触式测试技术晶圆