肌无力吃什么药| 鸭肫是什么| 隐翅虫吃什么| 鱼爱吃什么| 肠易激综合征是什么原因造成的| 脑梗长期吃什么药好| 女性尿路感染什么原因引起的| 攻坚是什么意思| 煎牛排用什么油好| 拔完牙不能吃什么| 刘少奇属什么生肖| 打了鸡血是什么意思| 汧是什么意思| 无创是什么意思| ph值什么意思| 粉底和气垫的区别是什么| 大便咖啡色什么原因| 乘风破浪是什么意思| 高挑是什么意思| 人潮涌动是什么意思| 小确幸是什么意思| 表述是什么意思| 寸头适合什么脸型| 赧然是什么意思| 多多保重是什么生肖| 较前相仿是什么意思| 花卉是什么意思| 101什么意思| 什么品种的芒果最好吃| 闲鱼卖出的东西钱什么时候到账| 耳心痒是什么原因| 腹泻恶心想吐是什么原因| 为什么喜欢你| 生姜水泡脚有什么好处| 尿颜色很黄是什么原因| 女人晚上盗汗是什么原因| 红颜薄命的意思是什么| 睾丸炎吃什么药最有效| a7是什么意思| 白细胞计数偏高是什么原因| 痛风看什么科| 美国白宫是干什么的| 焦虑症应该挂什么科室| 脾大是怎么回事有什么危害| 电销是什么工作| 头疼是什么原因引起的| jnby是什么牌子| 肠功能紊乱吃什么药| 巴黎世家是什么| eland是什么牌子| 房颤挂什么科| 什么叫遗精| 方方土是什么字| 丧门是什么意思| 为什么佛山有三个车牌| 泌尿感染是什么原因引起的| 活检是什么| 嗜酸性气道炎症是什么意思| 代偿期和失代偿期是什么意思| 1997年属什么| 菠菜是什么季节的菜| 脚底痛挂什么科| 脚气应该挂什么科| 什么是烤瓷牙| 吃什么瘦肚子脂肪最快| 零七年属什么生肖| 左枕前位是什么意思| 为什么总是做噩梦| 宝宝吐奶是什么原因引起的| 祎字五行属什么| 长期吃面条对身体有什么影响| 头发有什么用处| her是什么意思| 长寿菜是什么菜| 1688是什么| 十的偏旁有什么字| 打篮球有什么好处| 正骨挂什么科| 什么食物含胶原蛋白最多| 梦到自己拔牙齿是什么预兆| d二聚体是查什么的| 谷草谷丙比值偏高说明什么| 甘油三酯低有什么危害| 什么病会晕倒| hr医学上是什么意思| 重日是什么意思| 牙龈肿胀吃什么药| miss什么意思| 雪燕是什么东西| 肚脐眼连接体内的什么器官| 总口渴是什么原因| 哺乳期不能吃什么| 硬度不够吃什么好| 咽喉肿痛吃什么消炎药| 脑血管堵塞有什么症状| 地球上什么东西每天要走的距离最远| 女人吃善存有什么好处| 泪点低什么意思| 呼吸内镜检查什么| 牙龈为什么会肿痛| 汗臭和狐臭有什么区别怎么辨别| 为什么十二生肖老鼠排第一| 下腹痛挂什么科| 各位同仁用在什么场合| 发烧38度吃什么药| 草鱼吃什么草| oa是什么| 封建社会是什么意思| 晴雨伞是什么意思| 各自安好什么意思| 喉咙痛吃什么水果| esrd医学上是什么意思| 咳血鲜红是什么病呢| 桑葚是什么季节的| 吸尘器什么牌子好| 无非是什么意思| 做头发是什么意思| 为什么会得牙周炎| 童养媳是什么意思| 10.16是什么星座| 紫藤什么时候开花| 梦见笑是什么意思| 黄芪和什么泡水壮阳| 蛀牙是什么原因引起的| 林俊杰的粉丝叫什么| 喝茶叶茶有什么好处| 什么叫黑户| 震字五行属什么| 算命先生是什么生肖| 血脂高能吃什么水果| 孕妇吃什么补铁| gm是什么单位| 肝区在什么位置| 四川有什么好大学| 梦见游泳是什么预兆| 宫颈息肉有什么症状| 吃什么可以补气血| 驴打滚是什么意思| 什么是逆向思维| 世界上最贵的东西是什么| 低血压平时要注意什么| 99年的兔是什么命| 望尘莫及什么意思| 海马体是什么意思| 右腿麻木是什么征兆| 晚的反义词是什么| 化疗吃什么补白细胞| 坐月子可以吃什么蔬菜| 马与什么属相相克相冲| 渡船是什么意思| 朝朝暮暮是什么意思| 见到黑猫代表什么预兆| 口臭要做什么检查| 乳头为什么会痛| 大男子主义是什么意思| 104是什么意思| 横行霸道的意思是什么| 变蛋吃多了有什么危害| 日本古代叫什么| pigeon是什么牌子自行车| 升血压吃什么药| 红蜘蛛是什么虫| 北宋六贼为什么没高俅| 痛风是什么原因引起的| 女人左眼跳是什么意思| 焦虑症什么症状| 口气重吃什么药效果好| 山魈是什么| ggdb是什么牌子| 胡青是什么| 四川芽菜是什么菜| 辐射是什么| 睡眠模式是什么意思| n1是什么意思| 菊花茶泡了为什么会变绿| 我的星座是什么| 萎缩性胃炎吃什么好| 阿根廷讲什么语言| 中暑不能吃什么| 土的行业有什么工作| 高见是什么意思| 经期喝咖啡有什么影响| 姨妈期间不能吃什么| 没谁了是什么意思| 明年属什么生肖| 血小板减少会出现什么症状| 肝火大吃什么药| 经期吃凉的东西有什么影响| 泪沟是什么| 智商是什么意思| 小孩眼屎多是什么原因引起的| 伪娘是什么| 晚饭吃什么英语怎么说| 鲁冰花是什么意思| 侏罗纪是什么意思| 一月十八号是什么星座| 减肥期间可以吃什么| 做梦梦到自己怀孕了是什么意思| 故宫什么时候建的| 阿胶什么人不能吃| 人为什么没有尾巴| 云想衣裳花想容是什么意思| 杭州灵隐寺求什么最灵| 孝敬是什么意思| 和田玉五行属什么| 桑葚泡酒有什么功效| 什么是肛瘘| 尿道感染吃什么药最好| 脚烧热是什么原因| 尿酸高说明什么问题| 小叶增生是什么原因导致的| 疱疹在什么情况下传染| 舌裂纹吃什么可以恢复| 2月11号是什么星座| 女人什么时候停经| 墨菲定律是什么意思| 什么进曹营一言不发| 1108是什么星座| 脸上过敏是什么症状| 阳历5月20日是什么星座| 顾虑是什么意思| 心脏杂音是什么意思| 什么饮料不含糖| 斯密达什么意思| 五谷中的菽是指什么| 潘海利根香水什么档次| 狮子座女和什么星座最配| 飞刃是什么意思| 属猪的护身佛是什么佛| 狗感冒了吃什么药| 什么车最长| 什么是马甲线| 什么床最环保没甲醛| 男人屁股翘代表什么| 梦见吃桃子是什么预兆| 边缘是什么意思| 欢喜是什么意思| 兔子尾巴像什么| 护士是干什么的| 人加三笔是什么字| 早上口干舌燥是什么原因| 青少年腰疼是什么原因引起的| 女性出汗多是什么原因| cab是什么意思| 手足口病的症状是什么| 壁虎的尾巴有什么用| 手指头红是什么原因| 男人小腿肿是什么原因| 年下恋是什么意思| 谷丙转氨酶偏高吃什么好| 手指关节疼痛挂什么科| 花洒不出水什么原因| 反流性食管炎是什么症状| 液基细胞学检查是什么| 鱼鳔是什么东西| 克是什么单位| 腹泻什么意思| 彩金是什么| 酷的意思是什么| 红枣桂圆泡水喝有什么好处和坏处| 什么是血液病| 虐狗什么意思| 符咒是什么意思| 缺铁性贫血吃什么药最好| 百度
打印
[RISC-V MCU 应用开发]

【领克01汽车图片】领克

[复制链接]
1833|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TI, ni, ST, IO, pi
本帖最后由 RISCVLAR 于 2021-1-21 14:48 编辑

CH32V103应用教程——TIM-互补输出和死区插入

本章教程通过高级定时器TIM1演示三种带死区互补输出模式:带死区插入的互补输出、死区波形延迟大于负脉冲、死区波形延迟大于正脉冲。

1、TIM简介及相关函数介绍
定时器比较捕获通道一般有两个输出引脚(比较捕获通道 4 只有一个输出引脚),能输出两个互补的信号(OCx 和 OCxN),并且能够管理输出的瞬时关断和接通。这段时间通常被称为死区,用户应该根据连接的输出器件和它们的特性(电平转换的延时、电源开关的延时等)来调整死区时间。

建议以下描述介绍对照CH32V103应用手册定时器(TIM)章节寄存器描述部分阅读。

OCx和OCxN可以通过比较/捕获使能寄存器(TIM1_CCER)CCxP和CCxNP 位独立地设置极性,通过 CCxE 和 CCxNE 独立地设置输出使能,通过刹车和死区寄存器(TIM1_BDTR)MOE、OSSI、OSSR 位、控制寄存器(TIM1_CTLR2)OIS和OISN位进行死区和其他的控制。同时使能 OCx 和OCxN 输出将插入死区,每个通道都有一个 10 位的死区发生器。如果存在刹车电路则还要设置 MOE 位。
OCx 和 OCxN 由 OCxREF(参考信号)关联产生
1、如果OCx和OCxN都是高有效,那么OCx与OCxREF相同,只是OCx的上升沿相当于OCxREF有一个延迟;
2、如果OCxN与OCxREF相反,它的上升沿相对参考信号的下降沿会有一个延迟
如果延迟大于有效输出宽度,则不会产生相应的脉冲。
下面3图展示死区发生器的输出信号和当前参考信号OCxREF之间的关系(假 设CCxP=0、CCxNP=0、MOE=1、CCxE=1并且CCxNE=1):
1、带死区插入的互补输出
2、死区波形延迟大于负脉冲
3、死区波形延迟大于正脉冲
关于CH32V103定时器(TIM)具体信息,可参考CH32V103应用手册。关于TIM标准库函数,在第七章已介绍,在此不再赘述。

2、硬件设计
本章教程通过高级定时器TIM1演示三种带死区互补输出模式:带死区插入的互补输出、死区波形延迟大于负脉冲、死区波形延迟大于正脉冲。需要用到3个引脚,PA8引脚、PB13引脚和PB12引脚。使用逻辑分析仪连接PA8、PB12和PB13引脚即可对其进行分析。

3软件设计
本章教程主要进行时钟选择实验,具体程序如下:
tim.h文件
#ifndef __TIM_H
#define __TIM_H

#include "ch32v10x_conf.h"

void TIM1_Dead_Time_Init( u16 arr, u16 psc, u16 ccp );

#endif
tim.h文件主要进行函数声明;
tim.c文件
#include "tim.h"

/*******************************************************************************
* Function Name  : TIM1_Dead_Time_Init
* Description    : Initializes TIM1 complementary output and dead time.
* Input          : arr: the period value.
*                  psc: the prescaler value.
*                  ccp: the pulse value.
* Return         : None
*******************************************************************************/
void TIM1_Dead_Time_Init( u16 arr, u16 psc, u16 ccp )
{
    GPIO_InitTypeDef GPIO_InitStructure;
    TIM_OCInitTypeDef TIM_OCInitStructure;
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
    TIM_BDTRInitTypeDef TIM_BDTRInitStructure;

    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA  | RCC_APB2Periph_GPIOB | RCC_APB2Periph_TIM1, ENABLE );

    //GPIO初始化配置
    /* TIM1_CH1 */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;   //复用推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init( GPIOA, &GPIO_InitStructure );

    /* TIM1_CH1N */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init( GPIOB, &GPIO_InitStructure );

    /* TIM1_BKIN */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init( GPIOB, &GPIO_InitStructure );

    //时基结构体初始化配置
    TIM_TimeBaseInitStructure.TIM_Period = arr;  //设置重装载值
    TIM_TimeBaseInitStructure.TIM_Prescaler = psc;  //设置预分频器
    TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;  //设置分频因子
    TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;  //设置向上计数模式
    TIM_TimeBaseInit( TIM1, &TIM_TimeBaseInitStructure);  //初始化定时器

    //输出比较结构体初始化
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;  //配置为PWM模式1
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;  //输出使能
    TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;  //互补输出使能
    TIM_OCInitStructure.TIM_Pulse = ccp;  //设置占空比大小
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  //输出通道电平极性配置
    TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;  //互补输出通道电平极性配置
    TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;  //输出通道空闲电平极性配置
    TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;  //互补输出通道空闲电平极性配置
    TIM_OC1Init( TIM1, &TIM_OCInitStructure );  //初始化

    //刹车和死区结构体初始化,有关刹车和死区结构体的成员具体可参考刹车和死区寄存器(TIMx_BDTR)的描述
    TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable;
    TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable;
    TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_1;
    //输出比较信号死区时间配置,具体如何计算可参考 BDTR:DTG[7:0]的描述
    //这里配置的死区时间为152ns
    TIM_BDTRInitStructure.TIM_DeadTime = 11;
    TIM_BDTRInitStructure.TIM_Break = TIM_Break_Enable;
    //当BKIN引脚检测到高电平的时候,输出比较信号被禁止,就好像是刹车一样
    TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_High;
    TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable;
    TIM_BDTRConfig( TIM1, &TIM_BDTRInitStructure );

    TIM_CtrlPWMOutputs(TIM1, ENABLE );  //开启定时器PWM输出
    TIM_OC1PreloadConfig( TIM1, TIM_OCPreload_Enable );
//    TIM_ARRPreloadConfig( TIM1, ENABLE );
    TIM_Cmd( TIM1, ENABLE );  //使能定时器
}
tim.c文件主要对TIM1的互补输出和死区时间进行初始化配置。
main.c文件
int main(void)
{
    USART_Printf_Init(115200);
    printf("SystemClk:%d\r\n",SystemCoreClock);

    /* Complementary output with dead-time insertion */
//    TIM1_Dead_Time_Init( 9, 8, 5 );

    /* Dead-time waveforms with delay greater than the negative pulse */
//    TIM1_Dead_Time_Init( 9, 8, 3 );

    /* Dead-time waveforms with delay greater than the positive pulse. */
    TIM1_Dead_Time_Init( 9, 48, 8 );

    while(1);
}
main.c文件主要进行三种带死区互补输出模式的初始化。

4下载验证
分别在3种不同模式下将编译好的程序下载到开发版,使用逻辑分析仪采集波形,分别如下:
1、带死区插入的互补输出
2、死区波形延迟大于负脉冲
3、死区波形延迟大于正脉冲

54、TIM-互补输出和死区插入.rar

470.79 KB

相关帖子

沙发
gejigeji521| | 2021-2-22 12:00 | 只看该作者
生成PWM波形用的吗,看看。
板凳
RISCVLAR|  楼主 | 2021-2-22 14:17 | 只看该作者
gejigeji521 发表于 2021-2-22 12:00
生成PWM波形用的吗,看看。

查看波形工具用的逻辑分析仪
地板
单片小菜| | 2021-2-23 15:24 | 只看该作者
这个波形看上去很棒。
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

296

帖子

44

粉丝
左胸疼什么原因 积食吃什么药 什么不可当 胸口不舒服挂什么科 耦合是什么意思
属鼠和什么属相相冲 空调为什么要加氟 早晨起来手肿是什么原因 慢性非萎缩性胃炎吃什么药 屁为什么是臭的
括约肌是什么 袋鼠吃什么 小孩上吐下泻吃什么药 胸膜炎是什么症状 1921年中国发生了什么
结婚13年是什么婚 尿结石是什么引起的 减肥每天吃什么三餐 1946年属什么生肖属相 巴旦木是什么树的果实
做什么生意好挣钱hcv8jop1ns0r.cn 撒贝宁是什么族travellingsim.com dem是什么hcv8jop9ns0r.cn 盆腔炎用什么药好hcv8jop7ns7r.cn 6月底什么星座xscnpatent.com
维生素c主治什么hcv8jop0ns7r.cn 拉肚子能吃什么水果hcv9jop7ns3r.cn 胃痛按什么部位可以缓解疼痛hcv7jop9ns7r.cn 什么是散光bfb118.com 肺动脉增宽是什么意思hcv8jop2ns6r.cn
窦性心律早期复极是什么意思hcv9jop8ns1r.cn 荨麻疹忌口什么食物hcv9jop4ns9r.cn 血糖高能喝什么粥hcv9jop5ns3r.cn 总价包干是什么意思hcv9jop1ns8r.cn 痔疮便血吃什么药hcv8jop7ns2r.cn
忤逆是什么意思hcv8jop4ns8r.cn 身上痒但是什么都没有hkuteam.com 老生常谈是什么意思hcv8jop7ns4r.cn 意念是什么意思hcv8jop7ns9r.cn 破伤风伤口有什么症状hcv7jop6ns6r.cn
百度