单元模块介绍
XMC1000的BCCU-亮度色彩控制单元
1 概述
BCCU是亮度色彩控制单元(Brightness and Color Control Unit),用于控制多至9个不同的LED。
通过12bit的Delta Sigma反变换把亮度控制值转换为比特流。这种结构使得BCCU还可以连接一个外部RC电路作为DAC使用。
XMC1000系列中,XMC1200和XMC1300带有BCCU模块
2 特性
1)包括3个独立的Dimming Engine(亮度控制引擎)
2)Dimming Engine支持12位(4096)不同的亮度输出
3)亮度按照指数曲线调节,且步长可调
4)9个独立的输出通道,输出比特流,可以控制9个不同的LED或作为DAC使用
5)通道可连接一个Linear Walker,它的输出时LED的饱和度(Intensity),支持12位调节
6)通道和Dimming Engine之间可自由连接
7)通道也可连接饱和度调节器和Dimming Engine输出值的乘积
8)每个通道可连接一个Packer,当需要降低开关频率是可用到
9)有两个通道可以连接ADC
3 通道结构
每个通道都是相同的结构,其中左侧是通道的输入(包括Dimming Engine和Linear Walker),右侧BCCU.OUTy是通道的输出,从这个结构框图可以看出BCCU通道的工作分为几步
1)输入的选择和配置
2)输入通过Delta Sigma转换为比特流
3)比特流通过一个可选的Packer,某些LED或其驱动芯片有最短开通时间的限制,Packer可以用于类似的需要降低开关速度的情况。
4)外部使能是否输出
5)同时Delta Sigma的输出可以产生一个Tigger,用以出发ADC转换等
通道的输入可以有两种,这可以通过修改寄存器DBP来选择,其中Linear Walker的输出为饱和度Intensity
1)Dimming Engine输出和Linear Walker输出的乘积
2)Linear Walker的直接输出
XMC1000的随机数生成单元PRNG
1 背景
PRNG(Preeudo Random Number Generator)是随机码生成模块,可以产生8/16位随机码。
2 工作原理
1)框图
2)工作原理
这个模块通过向随机数序列生成器写入Key,来产生8/16位的随机数,其中随机数序列的产生和Key是唯一对应的。随机Key写入完毕后,可以读出随机序列,随机Key写入和随机序列读出的位置都是PRNG_WORD,不过他们在不同的步骤中操作,所以不会产生冲突。
3)使用
a.首先设定KLD=1,进入Key写入模式,写入随机key,key可以是任意位数,推荐80位,分为5个16bit写入PRNG_WORD中。注意,只有当PRNG_CHK.RDV=1时,才能向PRNG_WORD中写入Key
b.Key写完后,把KLD置为0。然后,当PRNG_CHK.RDV=1,可以从PRNG_WORD中读出随机序列。随机序列可以为8、16位数据,这个通过PRNG_CHK.RDBS来控制。
c.若在随机码产生过程中把KLD置为1,则可继续写入Key,新写入的Key会和之前的Key共同作用于随机序列
d.通过RDBS置为00,可以重启该模块
e.若在重启前,记录随机序列至少80位,重新作为key写入,则随机序列会接着上次的输出继续产生。
XMC1300的MATH协处理器
1 XMC1300芯片带有一个MATH协处理器,它包含以下两个子模块
除法器
Cordic协处理器
2 除法器
特性
可做32位/32位,32位/16位,16位/16位除法
操作
-除法器启动,启动方式有两种,通过设定DIVCON.STMODE来选取,
a. 当DIVCON.STMODE=0,写入DVS即启动除法
b. 当DIVCON.STMODE=1,写入DIVCON.ST位即启动除法
-除法器忙,当除法器工作时,DIVST.BSY = 1,这时不要再试图启动其他的除法
-除法器需要35个周期结束,结束时可选择产生中断,并会出现结果置位,这个结果置位需要手动清除。
3 Cordic协处理器
Cordic协处理器可进行三角函数、双曲线函数和一次线性函数,其中函数模式通过CON.MODE来选择。
计算模式包括向量模式和旋转模式,通过CON.ROTVEC来选择
特性
24位精度,
Circula模式
旋转模式
输入X,Y,Z
输出
X= K*[X*cos(Z)-Y*sin(Z)]/MPS
Y= K*[Y*cos(Z)+X*sin(Z)]/MPS
Z=0
其中K=1.646760258121
向量模式
输入X,Y,Z
输出
X= K*sqrt(X^2+Y^2)/MPS
Y= 0
Z=Z+atan(Y/X)
主要应用
-计算sin(z),cos(z),tan(z),ctg(z)等
3) 双曲线模式
- 旋转模式
输入X,Y,Z
输出
X=k[Xcosh(Z)+Ysinh(Z)]/MPS
Y= k[Ycosh(Z)+Xsinh(Z)]/MPS
Z=0
-向量模式
输入X,Y,Z
输出
X=k*sqrt(X^2-Y^2)/MPS
Y= 0
Z=Z+atanh(Y/X)
其中k = 0.828159360960
-主要应用,计算sinh(Z),cosh(Z),tanh(Z),ctgh(Z)等,同时可以计算ln(w),sqrt(W),acosh(w),asinh(W)等
一次线性模式
输入X,Y,Z
输出
X=X/MPS
Y=[Y+X*Z]/MPS
Z=0
-向量模式
输入X,Y,Z
输出
X=X/MPS
Y= 0
Z=Z+Y/X
4 除法器和Cordic的互联
除法器的输入可以由除法器的结果或Cordic的结果直接输入,这样构成了除法器和Cordic的级联。
比如计算tan(z),可以直接把Cordic的输出sin(z)连接到DVD,cos(z)连接到DVS,这样就可以得到tan(z)。
XMC1000的中断控制器
1 概述
XMC1000系列的中断处理器包括32个中断处理节点
每个节点支持4级中断优先级
支持尾链(tail-chaining )
支持软中断
2 中断对应表格,可查相应数据手册活产品手册
3 中断功能
由以上框图可以看出,对应于每个中断,都可以由外部或软件触发产生,不过每个中断又需要单独使能才能最终进入中断处理。
同时中断也可以被软件清除,或者当进入中断处理后,硬件会自动清除。
另外要注意的是,当硬件中断和软件清除同时到来,软件清除会被系统忽略,即硬件中断置位优先级高。
从中断触发到进入中断处理程序,一般要花费21个系统周期。
注:尾链技术(Tail-Chain)
这个技术是ARM推出的可以减小中断等待时间的技术。
一般情况下的中断处理,需要先保存堆栈,再出栈,如果中途有新的更高优先级的中断,则需要重新做上一步骤。如果使用了尾链技术,则第二个中断到来时候,不需要重复保存堆栈,再出栈的过程。
评论