3.2.1.5 矢量引擎/PMD/ADC的协作
矢量引擎通过马达控制电路(PMD)和A/D转换器(ADC)的协作来控制马达。矢量引擎可以直接存取PMD和ADC寄存器的数据。具体如图3-4所示,矢量引擎通过比较寄存器向PMD给出3相PWM的占空比和输出控制设定以及AD转换时机设定,PMD按照收到的时机设定,向ADC给出开始转换的指示。ADC在转换结束后向矢量引擎发出结束信号,矢量引擎收到结束信号,开始从ADC获取转换结果。
矢量引擎 PMDMODESEL寄存器PMD PWM生成 通电控制 Port端口输出 U0 V0 W0 X0 Y0 Z0 PMDCMPU寄存器 MUX Buffer 输出任务 VECMPU0寄存器 PMDCMPV寄存器 VECMPV0寄存器 PMDCMPW寄存器 VECMPW0寄存器 PMDMDOUT寄存器 VEOUTCR0寄存器 PMDEMGCR
-----------------------------------------------------------------------------
- 26/46 -
输入输出端口
使用端口C的第0~5位(PMD 通道0 输出)、端口G的第0~5位(PMD 通道1 输出)进行马达驱动输出 (U,X,V,Y,W,Z)。
使用端口C的第6位(PMD 通道0 输入)、端口G的第6位(PMD通道1 输入)进行EMG信号输入 (外部电路所生成的异常检测信号的输入)
使用端口C的第7位(PMD 通道0 输入)、端口G的第7位(PMD通道1 输入)进行OVV信号输入 (外部电路所生成的过电压检测信号的输入)。
使用端口H (ADC单元A AIN0~7)、端口I (ADC单元A AIN8~14、ADC单元B AIN0~2,13~15)、端口J (ADC单元B AIN3~10,16)、端口K (ADC单元B AIN11,12)作为马达电流?电压检测的模拟输入端口。使用内置运算放大器时,使用PI1~PI3与PJ0。另外、PI1~PI3与ADC两单元A,B都相连接。表3-3所示为端口输入与ADC单元以及内置运算放大器的关联关系。
表 3-3 端口输入与 A/D转换器的 AIN输入的对应
微处理器 端口名 PH0 PH1 PH2 PH3 PH4 PH5 PH6 PH7 PI0 PI1 PI2 PI3 注1)ADC单元A AIN编号 0 1 2 3 4 5 6 7 8 9 注122) 10 注132) 11 注142) - - - - - - - - - - - ADC单元B AIN编号 - - - - - - - - - 0 13141516注2) 注1)1 注2)注1)2 注2)PJ0 PJ1 PJ2 PJ3 PJ4 PJ5 PJ6 PJ7 PK0 PK1
3 注2)4 5 6 7 8 9 10 11 12 运算放大器 连接通道 - - - - - - - - - - A - B - C - D - - - - - - - - - 注1) 来自这些端口的模拟输入,被输入到ADC的两个单元A和B中。
注2) 通过内置运算放大器放大后的模拟信号被输入到这些AIN中。
-----------------------------------------------------------------------------
- 27/46 -
各输入输出端口有下述设定用寄存器,这些寄存器可按每位进行设定。这里 x 表示 C,G,H,I,J,K。
a) PxDATA: 通用输出数据的写入。
寄存器设定值的读出或者端口输入的读出。 b) PxCR:
端口输出的允许、禁止。 0:输出禁止(Hi-z)、1: 输出允许
※ 马达驱动输出所用端口设定为 '1' 。 c) PxIE:
通用输入以及功能输入的允许、禁止。
0: PORT输入禁止 读取PxDATA时,寄存器值被读出。 1: PORT输入允许 读取PxDATA 时,端口输入值被读出。 ※ EMG信号以及OVV信号输入所使用的端口设定为 '1' 。 ※ 模拟输入所使用端口设定为 '0' 。
d) PxFR1: 通用输入输出、功能输入输出的选择。 0: 通用输入输出、1: 功能输入输出
※ 马达驱动输出、EMG输入以及OVV输入所使用的端口设定为 '1' 。 ※ 模拟输入所使用端口设定为 '0' 。 e) PxOD : f) PxPUP: g) PxPDN:
在功能输入输出选择时使用PMD通道0、1的EMG的保护控制可以禁止端口C,G的第0~5位的输出,既呈现高阻状态。
开漏输出的选择。 0:CMOS输出、1: 开漏输出 向端口添加上拉电阻。0: 无、1: 有 向端口添加下拉电阻。0: 无、1: 有
-----------------------------------------------------------------------------
- 28/46 -
3.2.2
A/D 转换器
TMPM370内置有转化时间为2[μs]的2单元12位 A/D转换器(ADC) (ADCA,ADCB),带有12个转换结果寄存器,可对应22通道的模拟输入。
本ADC根据转换触发的条件,有下述4种转换方式: 其中马达驱动使用的是PMD触发。 1) 软件触发:根据软件随时执行转换。
2) PMD触发:根据来自PMD的触发(PMDTRGn)输入执行转换。 3) 定时器触发:根据TMRB中断执行转换。 4) 重复转换:重复执行转换。
以上转换方式可以进行组合。多种方式发生时,按照以下优先度执行转换,特别是最优先的PMD触发的转换,可以中断其它条件触发的转换而立即执行该转换。
优先顺序: PMD触发 > 定时器触发 > 软件触发 > 重复转换
ADCA,ADCB各自带有12 通道的转换结果寄存器0~11用来存放A/D转换结果。各转换结果寄存器内有转化程序,可进行A/D 转换输入的选择以及指定 A/D 转化触发信号等。该转换程序0~11并非对应各 A/D 转换输入,而是对应各转换结果寄存器,这点需要注意。例如,在不同时间点对同一A/D 转换输入进行A/D 转换,结果可以被储存到不同的转换结果寄存器中。因此,可以对1路的同一输入通道进行两次测量。
3.2.2.1 A/D转换初始设定
(1) 转换时钟(SCLK)的设定
可以通过ADxCLK寄存器的AD预分频器输出选择(ADCLK位)进行以下设定。
000:fc、001:fc/2、010:fc/4、011:fc/8、1**:fc/16 注) fc为晶振时钟或者8倍频时钟
请将转换时钟选择在40MHz以下。
(2) DAC控制
ADxMOD0寄存器的DACON位设为 '1'(DAC 开启)。
-----------------------------------------------------------------------------
- 29/46 -
(3) A/D转换允许
请将ADxMOD1寄存器ADEN位设为 '1'(A/D转换允许)。
注) 只允许ADEN仍无法进行A/D转换,还需对转换执行方式以及各方式进行程序设定。 转换执行方式 软件触发: PMD触发: 定时器触发: 重复转换:
ADxMOD0寄存器的软件转换开始(ADSS)设定 '1' 转换设定所允许的PMD触发输入 定时器5中断 INTTB51
ADxMOD1寄存器的重复A/D转换允许(ADAS)设定 '1'
-----------------------------------------------------------------------------
- 30/46 -