DSP28_Ev.h头文件说明(一)

本文详细解读了TMS320F2812微控制器中用于电机控制的两个事件管理器模块EVA和EVB的相关寄存器,包括Timer、Compare、Capture和Interrupt寄存器的功能和配置,重点分析了EVA的Timer寄存器如GPTCONA、T1CNT、T1CMPR、T1PR、T1CON等关键寄存器的作用。

         DSP28_Ev.h头文件较长,文章中不再贴出,需要网友的可以在网上整套下载。

        TMS320F2812具有两个事件管理器模块EVA和EVB,每个EV模块都具有2个通用定时器、3个比较单元、3个捕获单元以及1个正交编码电路,这两个模块与电机控制密切相关,PWM输出,正交解码,比较,脉冲捕获等都可以通过它们实现。由于实现功能较多,与之配套的寄存器配置也比较复杂。

        EVA的寄存器映射在0×7400~0×7431的区域,EVB的寄存器映射在0×7500~0×7531的区域,需要注意的是寄存器在地址的映射上是不连续的。由于EVA与EVB的功能相同,故以EVA作为代表,分析它的相关寄存器。

TMS320F2812的EV寄存器主要分为四类:Timer寄存器、Compare寄存器、Capture寄存器和Interrupt寄存器。
1. Timer寄存器

表1. EVA Timer寄存器映射地址表
    image

1.1. GPTCONA寄存器
image

Bit(s) Name Description
15 Reserved 读为0,写无效
14 T2STAT 通用定时器2的状态位(只读)
    0   递减计数
    1   递增计数
13 T1STAT 通用定时器1的状态位(只读)
    0   递减计数
    1   递增计数
12 T2CTRIPE T2CTRIP使能位,使能/屏蔽定时器2比较输出(T2CTRIP)当EXTCON(0)=1,该位有效,EXTCON(0)=0,该位保留。
    0   T2CTRIP屏蔽,T2CTRIP屏蔽不影响定时器2的比较输出、GPTCON(5)、PDPINT标志。
    1   T2CTRIP使能,定时器2比较输出进入高阻态,GPTCON(5)设为0,PDPINT标志设为1
11 T1CTRIPE T1CTRIP使能位,使能/屏蔽定时器1比较输出(T1CTRIP)当EXTCON(0)=1,该位有效,EXTCON(0)=0,该位保留。
    0   T1CTRIP屏蔽,T1CTRIP屏蔽不影响定时器2的比较输出、GPTCON(4)、PDPINT标志。
    1   T2CTRIP使能,定时器2比较输出进入高阻态,GPTCON(4)设为0,PDPINT标志设为1
10-9 T2TOADC 定时器2时间启动ADC
    00   定时器2事件不启动ADC
    01   下溢中断启动ADC
    10   周期中断启动ADC
    11   比较中断启动ADC
8-7 T1TOADC 定时器1时间启动ADC
    00   定时器2事件不启动ADC
    01   下溢中断启动ADC
    10   周期中断启动ADC
    11   比较中断启动ADC
6 TCMPOE 定时器比较输出使能,使能/屏蔽定时器比较输出。当EXTCON(0)=0,该位有效,EXTCON(1)=1,该位保留。当TCMPOE有效,PDPINT/T1CTRIP为0,且EVIMRA(0)=1时,TCMPOE复位为0。
    0   定时器比较输出T1/2PWM_T1/2CPM输出高阻
    1   定时器比较输出T1/2PWM_T1/2CPM输出由各自定时器独立触发驱动
5 T2CMPOE 定时器2比较输出使能,使能/屏蔽定时器2比较输出T2PWM
_T2CMP。当EXTCON(0)=1,该位有效,EXTCON(0)=0,该位保留。如果T2CTRIP被使能且为低电平,则T2CMPOE复位为低电平。
    0   定时器2比较输出T2PWM_T2CPM输出高阻
    1   定时器比较输出T2PWM_T2CPM输出由定时器2触发驱动
4 T1CMPOE 定时器1比较输出使能,使能/屏蔽定时器1比较输出T1PWM
_T1CMP。当EXTCON(0)=1,该位有效,EXTCON(0)=0,该位保留。如果T1CTRIP被使能且为低电平,则T1CMPOE复位为低电平。
    0   定时器1比较输出T1PWM_T1CPM输出高阻
    1   定时器比较输出T1PWM_T1CPM输出由定时器1触发驱动
3-2 T2PIN 通用定时器2比较输出极性
    00   强制低
    01   低有效
    10   高有效
    11   强制高
1-0 T1PIN 通用定时器1比较输出极性
    00   强制低
    01   低有效
    10   高有效
    11   强制高

注:1). 当EXTCON[1]第一次设为1时,GPTCONA[11]和GPTCONA[12]的默认值为1;

1.2. T1CNT寄存器
image 

Bit(s) Name Description
15-0 T1CNT 定时器1的当前计数值

1.3. T1CMPR
image 

Bit(s) Name Description
15-0 T1CMPR 定时器1计数的比较值

1.4. T1PR
image 

Bit(s) Name Description
15-0 T1PR 定时器1计数的周期值

1.5. T1CON
image 

Bit(s) Name Description
15-14 FREE,SOFT 仿真控制位
    00   仿真挂起时,立即停止
    01   仿真挂起时,当前定时器周期完成后停止
    10   仿真挂起不影响操作
    11   仿真挂起不影响操作
13 RESERVED 读为0,写无效
12-11 TMODE1-TMODE2 计数模式选择
    00   停止/保持
    01   连续增/减计数模式
    10   连续增计数模式
    11   定向增/减计数模式
10-8 TPS2-TPS0 输入时钟预分频器
    000   x/1
    001   x/2
    010   x/4
    011   x/8
    100   x/16
    101   x/32
    110   x/64
    111   x/128(HSPCLK)
7 T2SWT1 T2SWT1是EVA的定时器控制位,它是使用定时器1启动定时器2的使能位,在T1CON中位保留位。
    0   使用自己的使能位(TENABLE)
    1   使用T1CON的使能位,忽略自己的使能位
6 TENABLE 定时器使能位
    0   定时器禁用,定时器被置为保持状态且预分频器复位
    1   定时器使能
5-4 TCLKS(1,0) 时钟源选择
    00   内部时钟(例如,HSPCLK)
    01   外部时钟(例如,TCLKINx)
    10   保留位
    11   QEP电路
3-2 TCLD(1,0) 定时器比较寄存器装载条件
    00   计数器值为0
    01   计数器值为0或等于周期计数器值
    10   立即装载
    11   保留位
1 TECMPR 定时器比较使能
    0   禁用定时器比较操作
    1   使能定时器比较操作
0 SELT1PR SELT1PR是EVA的定时器控制位,周期寄存器选择位。当T2CON等于1时,定时器1和定时器2都使用定时器1的周期寄存器。T1CON的该位为保留位。

1.6. EXTCONA寄存器
image 

Bit(s) Name Description
15-4 Reserved 读为0,写无效
3 EVSOCE EV转换输出使能。该位可以使能/禁止EV的ADC转换输出(对于EVA是EVASOCn,对于EVB是EVBSOCn).使能后,由被选择EV的ADC驱动事件产生一个32*HSPCLK的负极性脉冲。这一位不影响送往ADC模块的EVTOADC信号。
    0   禁止EVSOC‘输出,EVSOC’处于高阻态
    1   使能EVSOC‘输出
2 QEPIE QEP索引使能位
1 QEPQUAL CAP3_QEPI1索引确认模式
0 INDCOE 比较输出的单独使能模式

注:EXTCONA寄存器,基本上不能理解其作用,看看随着学习的深入是不是可以学习到相关的知识.

riscv32-elf-gcc -O2 -nostartfiles -static -L../../../zigbee/lib/riscv -L../../../platform/ota -L../../../platform/lib -L../../../platform/riscv -flto -mcmodel=small -fpack-struct -fshort-enums -mcpu=d25f -ffunction-sections -fdata-sections -mext-dsp -mabi=ilp32f -fmessage-length=0 -fomit-frame-pointer -fno-strict-aliasing -fshort-wchar -fuse-ld=bfd -T"/cygdrive/E/MKZB-4A_CR/src/build/tlsr_riscv/boot.link" -Wl,--gc-sections -o "MKZB-4A_C.elf" ./.metadata/.plugins/org.eclipse.cdt.make.core/specs.o ./apps/common/MTEL.o ./apps/common/factory_reset.o ./apps/common/firmwareEncryptChk.o ./apps/common/main.o ./apps/common/module_test.o ./apps/common/point2point.o ./apps/common/ring_buf.o ./apps/common/sys_timer.o ./apps/common/user_uart.o ./apps/common/wireless_down.o ./apps/sampleGW/app_ui.o ./apps/sampleGW/sampleGateway.o ./apps/sampleGW/sampleGatewayEpCfg.o ./apps/sampleGW/zb_afTestCb.o ./apps/sampleGW/zb_appCb.o ./apps/sampleGW/zcl_sampleGatewayCb.o ./platform/boot/b91/cstartup_b91.o ./platform/boot/link_cfg.o ./platform/chip_b91/flash/flash_common.o ./platform/chip_b91/flash/flash_mid146085.o ./platform/chip_b91/flash/flash_mid156085.o ./platform/chip_b91/flash/flash_mid166085.o ./platform/services/irq_handler.o ./platform/services/plic_isr.o ./proj/common/list.o ./proj/common/mempool.o ./proj/common/string.o ./proj/common/tlPrintf.o ./proj/common/utility.o ./proj/drivers/drv_adc.o ./proj/drivers/drv_calibration.o ./proj/drivers/drv_flash.o ./proj/drivers/drv_gpio.o ./proj/drivers/drv_hw.o ./proj/drivers/drv_i2c.o ./proj/drivers/drv_nv.o ./proj/drivers/drv_pm.o ./proj/drivers/drv_putchar.o ./proj/drivers/drv_pwm.o ./proj/drivers/drv_spi.o ./proj/drivers/drv_timer.o ./proj/drivers/drv_uart.o ./proj/drivers/usb/app/usbcdc.o ./proj/drivers/usb/app/usbkb.o ./proj/drivers/usb/app/usbmouse.o ./proj/drivers/usb/app/usbvendor.o ./proj/drivers/usb/usb.o ./proj/drivers/usb/usbdesc.o ./proj/os/ev.o ./proj/os/ev_buffer.o ./proj/os/ev_poll.o ./proj/os/ev_queue.o ./proj/os/ev_timer.o ./zbhci/uart/hci_uart.o ./zbhci/usbCDC/zbhci_usb_cdc.o ./zbhci/usbHID/zbhci_usb_hid.o ./zbhci/usbPrint/hci_usbPrint.o ./zbhci/zbhci.o ./zbhci/zbhciCmdProcess.o ./zbhci/zbhci_zclHandler.o ./zigbee/af/zb_af.o ./zigbee/aps/aps_group.o ./zigbee/bdb/bdb.o ./zigbee/common/zb_config.o ./zigbee/common/zb_version.o ./zigbee/gp/gp.o ./zigbee/gp/gpEpCfg.o ./zigbee/gp/gp_proxy.o ./zigbee/gp/gp_proxyTab.o ./zigbee/gp/gp_sink.o ./zigbee/gp/gp_sinkTab.o ./zigbee/gp/gp_trans.o ./zigbee/gp/gp_transCfg.o ./zigbee/mac/mac_phy.o ./zigbee/mac/mac_pib.o ./zigbee/ss/ss_nv.o ./zigbee/wwah/wwah.o ./zigbee/wwah/wwahEpCfg.o ./zigbee/zcl/closures/zcl_door_lock.o ./zigbee/zcl/closures/zcl_door_lock_attr.o ./zigbee/zcl/closures/zcl_window_covering.o ./zigbee/zcl/closures/zcl_window_covering_attr.o ./zigbee/zcl/commissioning/zcl_commissioning.o ./zigbee/zcl/commissioning/zcl_commissioning_attr.o ./zigbee/zcl/general/zcl_alarm.o ./zigbee/zcl/general/zcl_alarm_attr.o ./zigbee/zcl/general/zcl_basic.o ./zigbee/zcl/general/zcl_basic_attr.o ./zigbee/zcl/general/zcl_binary_input.o ./zigbee/zcl/general/zcl_binary_input_attr.o ./zigbee/zcl/general/zcl_binary_output.o ./zigbee/zcl/general/zcl_binary_output_attr.o ./zigbee/zcl/general/zcl_devTemperatureCfg.o ./zigbee/zcl/general/zcl_devTemperatureCfg_attr.o ./zigbee/zcl/general/zcl_diagnostics.o ./zigbee/zcl/general/zcl_diagnostics_attr.o ./zigbee/zcl/general/zcl_greenPower.o ./zigbee/zcl/general/zcl_greenPower_attr.o ./zigbee/zcl/general/zcl_group.o ./zigbee/zcl/general/zcl_group_attr.o ./zigbee/zcl/general/zcl_identify.o ./zigbee/zcl/general/zcl_identify_attr.o ./zigbee/zcl/general/zcl_level.o ./zigbee/zcl/general/zcl_level_attr.o ./zigbee/zcl/general/zcl_multistate_input.o ./zigbee/zcl/general/zcl_multistate_input_attr.o ./zigbee/zcl/general/zcl_multistate_output.o ./zigbee/zcl/general/zcl_multistate_output_attr.o ./zigbee/zcl/general/zcl_onoff.o ./zigbee/zcl/general/zcl_onoff_attr.o ./zigbee/zcl/general/zcl_pollCtrl.o ./zigbee/zcl/general/zcl_pollCtrl_attr.o ./zigbee/zcl/general/zcl_powerCfg.o ./zigbee/zcl/general/zcl_powerCfg_attr.o ./zigbee/zcl/general/zcl_scene.o ./zigbee/zcl/general/zcl_scene_attr.o ./zigbee/zcl/general/zcl_time.o ./zigbee/zcl/general/zcl_time_attr.o ./zigbee/zcl/hvac/zcl_thermostat.o ./zigbee/zcl/light_color_control/zcl_light_colorCtrl.o ./zigbee/zcl/light_color_control/zcl_light_colorCtrl_attr.o ./zigbee/zcl/measument_sensing/zcl_electrical_measurement.o ./zigbee/zcl/measument_sensing/zcl_electrical_measurement_attr.o ./zigbee/zcl/measument_sensing/zcl_illuminance_measurement.o ./zigbee/zcl/measument_sensing/zcl_illuminance_measurement_attr.o ./zigbee/zcl/measument_sensing/zcl_occupancy_sensing.o ./zigbee/zcl/measument_sensing/zcl_occupancy_sensing_attr.o ./zigbee/zcl/measument_sensing/zcl_temperature_measurement.o ./zigbee/zcl/measument_sensing/zcl_temperature_measurement_attr.o ./zigbee/zcl/ota_upgrading/zcl_ota.o ./zigbee/zcl/ota_upgrading/zcl_ota_attr.o ./zigbee/zcl/security_safety/zcl_ias_ace.o ./zigbee/zcl/security_safety/zcl_ias_wd.o ./zigbee/zcl/security_safety/zcl_ias_wd_attr.o ./zigbee/zcl/security_safety/zcl_ias_zone.o ./zigbee/zcl/security_safety/zcl_ias_zone_attr.o ./zigbee/zcl/smart_energy/zcl_metering.o ./zigbee/zcl/smart_energy/zcl_metering_attr.o ./zigbee/zcl/zcl.o ./zigbee/zcl/zcl_nv.o ./zigbee/zcl/zcl_reporting.o ./zigbee/zcl/zcl_wwah/zcl_wwah.o ./zigbee/zcl/zcl_wwah/zcl_wwah_attr.o ./zigbee/zcl/zll_commissioning/zcl_toucklink_security.o ./zigbee/zcl/zll_commissioning/zcl_zllTouchLinkDiscovery.o ./zigbee/zcl/zll_commissioning/zcl_zllTouchLinkJoinOrStart.o ./zigbee/zcl/zll_commissioning/zcl_zll_commissioning.o ./zigbee/zdo/zdp.o -lzb_coordinator -lm -ldrivers_b91 -lmsmpdbg_download_d -lfirmware_encrypt /cygdrive/c/Andestech/AndeSight_RDS_v323/toolchains/nds32le-elf-mculib-v5f/bin/../lib/gcc/riscv32-elf/7.4.0/../../../../riscv32-elf/bin/ld.bfd: /cygdrive/c/Users/pangchen/AppData/Local/Temp/ccZ4714G.ltrans0.ltrans.o: in function `.L2139': <artificial>:(.text.ten_ms_TimerCb+0xd2): undefined reference to `zbhciMgmtLeaveRspMsg' /cygdrive/c/Andestech/AndeSight_RDS_v323/toolchains/nds32le-elf-mculib-v5f/bin/../lib/gcc/riscv32-elf/7.4.0/../../../../riscv32-elf/bin/ld.bfd: <artificial>:(.text.ten_ms_TimerCb+0xe4): undefined reference to `zbhciMgmtLeaveRspMsg' collect2: error: ld returned 1 exit status
最新发布
08-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值