28377D晶元EPWM模組除錯記錄(1)

2021-09-25 14:35:39 字數 2677 閱讀 2790

cpusysregs.pclkcr2.bit.epwm1=1;

開啟epwm時鐘

eallow;

clkcfgregs.perclkdivsel.bit.epwmclkdiv = 0;

第一步pwm時鐘對於系統時鐘不分頻

cpusysregs.pclkcr0.bit.tbclksync = 0;

關閉所有tb時鐘

edis;

epwm1regs.tbctl.bit.syncosel = 0;

同步輸出訊號選擇

epwm1regs.tbctl.bit.phsen = 0;

同步輸出功能開關

epwm1regs.tbphs.all = 0;

同步輸出觸發時復位偏移量

epwm1regs.tbprd = pwm_timer_tbprd_init;

設定tb計數週期

epwm1regs.tbctl.bit.ctrmode = tb_count_updown;

決定tb計數模式

epwm1regs.tbctl.bit.clkdiv = tpwm_ktdiv;

epwm1regs.tbctl.bit.hspclkdiv = 0;

決定最終pwm時鐘相對於系統時鐘是幾分頻,clkdiv 和hspclkdiv 兩個分頻係數是相乘關係

epwm1regs.tbctr = 0x0000;

tb計數清零

epwm1regs.cmpa.bit.cmpa = pwm_timer_tbprd_init>>1;

epwm1regs.cmpb.bit.cmpb = pwm_timer_tbprd_init>>1;

設定ab兩比較暫存器數值

epwm1regs.cmpctl.bit.shdwamode = cc_shadow;

epwm1regs.cmpctl.bit.shdwbmode = cc_shadow;

比較暫存器工作模式選擇

epwm1regs.cmpctl.bit.loadamode = cc_ctr_loadmd;

epwm1regs.cmpctl.bit.loadbmode = cc_ctr_loadmd;

選擇在何時載入比較暫存器數值

epwm1regs.aqctla.bit.cau = cmpa_set;

epwm1regs.aqctla.bit.cbu = cmpb_set;

pwma向上計數時cmpa與b位置輸出變化狀態

epwm1regs.aqctla.bit.cad = cmpa_clear;

epwm1regs.aqctla.bit.cbd = cmpb_clear;

pwma向下計數時cmpa與b位置輸出變化狀態

epwm1regs.aqctlb.bit.cau = cmpa_clear;

epwm1regs.aqctlb.bit.cbu = cmpb_clear;

pwmb向上計數時cmpa與b位置輸出變化狀態

epwm1regs.aqctlb.bit.cad = cmpa_set;

epwm1regs.aqctlb.bit.cbd = cmpb_set;

pwmb向下計數時cmpa與b位置輸出變化狀態

epwm1regs.aqctla.bit.prd = prd_clear;

epwm1regs.aqctla.bit.zro = zro_set;

epwm1regs.aqctlb.bit.prd = prd_set;

epwm1regs.aqctlb.bit.zro = zro_clear;

在零與週期值時輸出變化狀態

epwm1regs.aqsfrc.bit.actsfa = 2;

epwm1regs.aqsfrc.bit.actsfb = 2;

呼叫一次性軟體強制a和b時的操作

epwm1regs.aqsfrc.bit.otsfa = 1;

epwm1regs.aqsfrc.bit.otsfb = 1;

禁用強制事件

epwm1regs.dbctl.bit.out_mode = db_full_enable;

死區輸出模式選擇

epwm1regs.dbctl.bit.in_mode = dbb_all;

死區輸入模式選擇

epwm1regs.dbctl.bit.polsel = db_actv_loc;

死區極性選擇

epwm1regs.dbred.bit.dbred = i;

死區時間

eallow;

cpusysregs.pclkcr0.bit.tbclksync =1;

使能時鐘

edis;

epwm1regs.etsel.bit.intsel = et_ctr_zero;

生成中斷位置選擇

epwm1regs.etsel.bit.inten = 1;

使能pwm中斷

epwm1regs.etps.bit.intprd = et_1st;

epwm 中斷 (epwmx_int) 期間選擇

eallow;

pievecttable.epwm1_int = &pwm_interrupt;

中斷函式選擇

edis;

ier |= m_int3;

開啟中斷位

piectrlregs.pieier3.bit.intx1 = 1;

使能中斷

28377D晶元CLA模組除錯記錄(2)

cla1regs.mvect1 uint16 t cla1task1 將cla的任務1設定為cla1task1,以此類推 dmaclasrcselregs.cla1tasksrcsel1.bit.task1 1 選擇任務1觸發方式,具體資料在晶元技術參考手冊6.2.4章節 dmaclasrcselr...

F28377D的CAN使用筆記

1.cpu1中配置系統,分配引腳到cpu2,初始化引腳功能。2.cpu2中,使能時鐘,初始化暫存器,設定波特率,配置中斷向量,函式,使能can 3.使用郵箱canmassage,晶元內一共有32個郵箱,注意的是這32個ram不能直接操作,是通過其他暫存器間接操作的,庫函式已經做好封裝。4.canma...

LKT4100D 8位防盜版加密晶元

概述 lkt4100d是凌科芯安科技最新推出的一款8位防盜版加密晶元,採用增強型8051金融級安全晶元為基礎。使用者可將關鍵演算法 程式內嵌入晶元中,從根本上杜絕程式被破解的可能。支援io模擬及uart通訊,具有超高的價效比。產品安全 引數型別 cpu 核心 增強型8051 4kv 靜電保護 工作電...