芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

芯片解密PIC32输出比较(PWM)

一.芯片解密输出比较初始化
步骤:
1.复用端口映射为OCx     
例如:RPA0Rbits.RPA0R=0b0101; 即RPA0引脚作为外设OC1使用             
2.OCM<2:0>:输出比较模式选择位
例如:OC1CON=0X06;      //输出比较端口1配置为PWM故障禁止模式。
3.OC32<5>:32 位比较模式位
例如:OC1CONCLR=0X010;  //将第五位清零,设置为16位单定时器模式。
4.OCTSEL<3>:输出比较定时器选择位
例如:OC1CONSET=0X08;  //将第三位设置为一,选择定时器3为基时钟
5.定时器使能初始化
例如:OpenTimer3(T1_ON|T1_SOURCE_INT|T1_PS_1_1,pwmn);
Pwmn周期数={ FB外设/pwmfp频率 } - 1;
6.ON<15>:输出比较外设使能位
例如:OC1CONSET=0X8000;         //将第15位置一,输出比较使能。
二.中断触发条件
单比较模式
比较匹配事件强制OCx 引脚为高电平;该引脚的初始状态为低电平。在发生单比较匹配事件
时,产生中断。
比较匹配事件强制OCx 引脚为低电平;该引脚的初始状态为高电平。在发生单比较匹配事件时,产生中断。
比较匹配事件使OCx 引脚电平翻转。翻转事件是连续的,且每次翻转事件都会产生一次中断。
双比较模式
当OCx引脚被驱动为低电平(单脉冲的下降沿)时,相应通道的中断标志OCxIF会置为有效。
PWM模式
TyIF 中断标志在每个PWM 周期边界处置为有效。
当使能了具有故障保护输入模式的PWM 时,必须通过将相应的TRIS SFR 位置1 以将OCFx 故
障引脚配置为输入。选择PWM 故障模式时, OCFx 故障输入引脚不会自动配置为输入。
三.芯片解密计算各项值
所需的PWM通过写入OCxRS 寄存器来指定PWM 占空比。可以在任何时候写OCxRS 寄存器,但是在PRy和TMRy 发生匹配(即周期结束)前占空比值不会被锁存到OCxR 中。
PWM 周期 = [(PR 1) ?? TPB ?? (TMR 预分频值)]  或T=PR 1/(Fpb/PS)
PWM 频率 = 1/[PWM 周期]
最大PWM 分辨率:在一个PWM周期内有n个时基(PR),为2的x次方,分辨率为x。
以频率为52.08 kHz为例
FPB = 10 MHz
Timer2 预分频比设置: 1:1
1/52.08 kHz = (PR2 1) ?? TPB ?? (Timer2 预分频值)=(PR2 1)/(FPB/Timer2预分频)
19.20 us = (PR2 1) ?? 0.1 us ?? (1)
PR2 = 191
确定可用于52.08 kHz PWM 频率和10 MHz 外设总线时钟速率的占空比的最大分辨率。
1/52.08 kHz = 2^PWM 分辨率?? 1/10 MHz ?? 1
19.20 us = 2^PWM 分辨率?? 100 ns ?? 1
192 = 2^PWM 分辨率
log10(192) = (PWM 分辨率) ?? log10(2)
PWM 分辨率 = 7.6 位
四.拓展
#用PWM绘制新波形
峰峰值最大为PR定时器数。
每个PWM周期为一个样本
所需波形频率:
所需频率=1/(n个样本*PWM周期)
每个样本波形的幅度值(占空比*PR):
波形/n,将n个值列入数组表格,OCxRS引用。
每个PWM周期输出通过RC滤波电路转换为模拟信号,约为一条幅值为 高电平*占空比 的直线,
通过改变占空比控制赋值y轴,再通过控制周期数控制产生的x轴
正弦波波形产生,占空比计算值 OC1RS=偏移量 振幅*SIN(2*pi/周期样本值),但如此短的时间无法
来的及计算sin,最好制成表格数组引用。
#发出声音
绘制相应的频率可发出相应的音高(do,re,me…),再调整波形幅度决定音色(不同的乐器)。



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信