PWM(Pulse Width Modulation)模块是一个用户可编程的PWM控制器,在AI-P 加速模块中,可以利用GPIO管脚复用功能,配置GPIO端口复用为PWM模式,通过控制PWM的方波脉冲信号的占空比可以控制风扇的转速。
可使用PWM为PWM0和PWM1,PWM3和4已配置成上电管脚,不可使用。
1 PWM1 调测参考
1.1 寄存器描述 AI-P 加速模块提供了PWM1管脚复用控制寄存器,描述如下。
主片PWM寄存器基地址为0x0084000000,从片PWM寄存器基地址为0x8084000000,寄存器偏移部分描述如下表。
1.2 调测参考
PWM寄存器管脚复用配置
PWM1管脚与GPIO管脚复用,使用PWM1管脚时,需配置复用关系:配置寄存器IOMUX(主片基地址为0x84020000,从片基地址为0x8084020000,偏移地址为0xC4)为0,配置管脚功能为PWM1。
PWM寄存器配置
通过配置PWM1寄存器可实现管脚外接风扇的转速读写控制,以PWM1的1通道为例具体配置步骤如下。
1.2.1_配置寄存器MEASURE_TIME(偏移地址为0x108,Bit[13-0]),配置风扇测量时间窗大小。
1.2.2_配置寄存器PWM_PRD1(偏移地址为0x14,Bit[27-0]),设置脉冲周期。
1.2.3_配置寄存器CH1_PWL (偏移地址为0x18,Bit[27-0]),设置低电平开始时刻。
1.2.4_配置寄存器CH1_PWH(偏移地址为0x1C,Bit[27-0]),设置高电平开始时刻,即设置PWM占空比(风扇转速百分比)。
1.2.5_查询寄存器CH1_PWH(偏移地址为0x1C,Bit[27-0]),查询高电平开始时刻,可查询PWM占空比(风扇转速百分比)。
1.3 案例参考
1.3.1_设置PWM1管脚复用关系为pad_pwm1。
./devmem 0x00840200C4 32 0
1.3.2_设置PWM风扇测量时间窗大小为250ms。
./devmem 0x0084000108 32 2000
1.3.3_设置PWM脉冲周期为10000。
./devmem 0x0084000014 32 10000
1.3.4_设置PWM低电平开始时刻。
./devmem 0x0084000018 32 0
1.3.5_设置PWM高电平开始时刻,即可设置PWM占空比(风扇转速百分比),此处以PWM占空比为45%举例。
./devmem 0x008400001C 32 4500
1.3.6_查询PWM占空比(风扇转速百分比)。
./devmem 0x008400001C
此处可查询到PWM占空比为45%。
2 PWM2 调测参考
2.1 寄存器描述 AI-P 加速模块提供了PWM2管脚复用控制寄存器,描述如下。
主片PWM寄存器基地址为0x0084000000,从片PWM寄存器基地址为0x8084000000,寄存器偏移部分描述如下表。
2.2 调测参考
PWM寄存器管脚复用配置
PWM2管脚与GPIO管脚复用,使用PWM2管脚时,需配置复用关系:配置寄存器IOMUX(主片基地址为0x84020000,从片基地址为0x8084020000,偏移地址为0xC8)为0,配置管脚功能为PWM2。
PWM寄存器配置
通过配置PWM2寄存器可实现管脚外接风扇的转速读写控制,以PWM2的2通道为例具体配置步骤如下。
2.2.1_配置寄存器MEASURE_TIME(偏移地址为0x108,Bit[13-0]),配置风扇测量时间窗大小。
2.2.2_配置寄存器PWM_PRD2(偏移地址为0x20,Bit[27-0]),设置脉冲周期。
2.2.3_配置寄存器CH2_PWL (偏移地址为0x24,Bit[27-0]),设置低电平开始时刻。
2.2.4_配置寄存器CH2_PWH(偏移地址为0x28,Bit[27-0]),设置高电平开始时刻,即设置PWM占空比(风扇转速百分比)。
2.2.5_查询寄存器CH2_PWH(偏移地址为0x28,Bit[27-0]),查询高电平开始时刻,可查询PWM占空比(风扇转速百分比)。
2.3 案例参考
2.3.1_设置PWM2管脚复用关系为pad_pwm2。
./devmem 0x00840200C8 32 0
2.3.2_设置PWM风扇测量时间窗大小为250ms。
./devmem 0x0084000108 32 2000
2.3.3_设置PWM脉冲周期为10000。
./devmem 0x0084000020 32 10000
2.3.4_设置PWM低电平开始时刻。
./devmem 0x0084000024 32 0
2.3.5_设置PWM高电平开始时刻,即可设置PWM占空比(风扇转速百分比),此处以PWM占空比为45%举例。
./devmem 0x0084000028 32 4500
2.3.6_查询PWM占空比(风扇转速百分比)。
./devmem 0x0084000028
此处可查询到PWM占空比为45%。
PWM(Pulse Width Modulation)模块是一个用户可编程的PWM控制器,在AI-P 加速模块中,可以利用GPIO管脚复用功能,配置GPIO端口复用为PWM模式,通过控制PWM的方波脉冲信号的占空比可以控制风扇的转速。
可使用PWM为PWM0和PWM1,PWM3和4已配置成上电管脚,不可使用。
1 PWM1 调测参考
1.1 寄存器描述 AI-P 加速模块提供了PWM1管脚复用控制寄存器,描述如下。
管脚名称
信号名称定义
MUX Base Address
Offset Address
Reset Value
复用关系
PWM1
GPIO185/PWM1
0x84020000(主片)
0x808402000(从片)
0xC4
0x00000001
Bits[31:3]:预留
Bits[2:0]:
000:pad_pwm1;
001:pad_gpio185;
010:pad_sda11;
100:pad_probe_b8;
111:pad_probe_b8;
其它:保留
主片PWM寄存器基地址为0x0084000000,从片PWM寄存器基地址为0x8084000000,寄存器偏移部分描述如下表。
寄存器名称
描述
偏移地址
宽度
默认值
字段名称
字段范围
字段属性
字段默认值
字段释义
PWM_PRD1
1通道脉冲周期寄存器
0x14
32
0x0FFFFFFF
reserved
31:28
-
0x0
保留
pwm_prd1
27:0
RW
0xFFFFFFF
1通道输出PWM信号的周期
CH1_PWL
1通道脉冲低电平起始寄存器
0x18
32
0x00000000
reserved
31:28
-
0x0
保留
ch1_pwl
27:0
RW
0x0000000
1通道PWM信号脉冲低电平开始时刻
CH1_PWH
1通道脉冲高电平起始寄存器
0x1C
32
0x00000000
reserved
31:28
-
0x0
保留
ch1_pwh
27:0
RW
0x0000000
1通道PWM信号脉冲高电平开始时刻
MEASURE_TIME
风扇测量时间窗大小
0x0108
32
0x0000
reserved
31:14
RW
0x00
保留
set_cnt500ms
13:0
RW
0x00
风扇测量时间窗大小,表示有多少个8KHz时钟
1.2 调测参考
PWM寄存器管脚复用配置
PWM1管脚与GPIO管脚复用,使用PWM1管脚时,需配置复用关系:配置寄存器IOMUX(主片基地址为0x84020000,从片基地址为0x8084020000,偏移地址为0xC4)为0,配置管脚功能为PWM1。
PWM寄存器配置
通过配置PWM1寄存器可实现管脚外接风扇的转速读写控制,以PWM1的1通道为例具体配置步骤如下。
1.2.1_配置寄存器MEASURE_TIME(偏移地址为0x108,Bit[13-0]),配置风扇测量时间窗大小。
1.2.2_配置寄存器PWM_PRD1(偏移地址为0x14,Bit[27-0]),设置脉冲周期。
1.2.3_配置寄存器CH1_PWL (偏移地址为0x18,Bit[27-0]),设置低电平开始时刻。
1.2.4_配置寄存器CH1_PWH(偏移地址为0x1C,Bit[27-0]),设置高电平开始时刻,即设置PWM占空比(风扇转速百分比)。
1.2.5_查询寄存器CH1_PWH(偏移地址为0x1C,Bit[27-0]),查询高电平开始时刻,可查询PWM占空比(风扇转速百分比)。
1.3 案例参考
1.3.1_设置PWM1管脚复用关系为pad_pwm1。
./devmem 0x00840200C4 32 0
1.3.2_设置PWM风扇测量时间窗大小为250ms。
./devmem 0x0084000108 32 2000
1.3.3_设置PWM脉冲周期为10000。
./devmem 0x0084000014 32 10000
1.3.4_设置PWM低电平开始时刻。
./devmem 0x0084000018 32 0
1.3.5_设置PWM高电平开始时刻,即可设置PWM占空比(风扇转速百分比),此处以PWM占空比为45%举例。
./devmem 0x008400001C 32 4500
1.3.6_查询PWM占空比(风扇转速百分比)。
./devmem 0x008400001C
此处可查询到PWM占空比为45%。
2 PWM2 调测参考
2.1 寄存器描述 AI-P 加速模块提供了PWM2管脚复用控制寄存器,描述如下。
管脚名称
信号名称定义
MUX Base Address
Offset Address
Reset Value
复用关系
PWM2
GPIO186/PWM2
0x84020000(主片)
0x808402000(从片)
0xC8
0x00000001
Bits[31:3]:预留
Bits[2:0]:
000:pad_pwm2;
001:pad_gpio186;
011:pad_boot_cfg2;
100:pad_probe_b9;
101:pad_probe_b9;
其它:保留。
主片PWM寄存器基地址为0x0084000000,从片PWM寄存器基地址为0x8084000000,寄存器偏移部分描述如下表。
寄存器名称
描述
偏移地址
宽度
默认值
字段名称
字段范围
字段属性
字段默认值
字段释义
PWM_PRD2
2通道脉冲周期寄存器
0x20
32
0x0FFFFFFF
reserved
31:28
-
0x0
保留
pwm_prd2
27:0
RW
0xFFFFFFF
2通道输出PWM信号的周期
CH2_PWL
2通道脉冲低电平起始寄存器
0x24
32
0x00000000
reserved
31:28
-
0x0
保留
ch2_pwl
27:0
RW
0x0000000
2通道PWM信号脉冲低电平开始时刻
CH2_PWH
2通道脉冲高电平起始寄存器
0x28
32
0x00000000
reserved
31:28
-
0x0
保留
ch2_pwh
27:0
RW
0x0000000
2通道PWM信号脉冲高电平开始时刻
MEASURE_TIME
风扇测量时间窗大小
0x0108
32
0x0000
reserved
31:14
RW
0x00
保留
set_cnt500ms
13:0
RW
0x00
风扇测量时间窗大小,表示有多少个8KHz时钟
2.2 调测参考
PWM寄存器管脚复用配置
PWM2管脚与GPIO管脚复用,使用PWM2管脚时,需配置复用关系:配置寄存器IOMUX(主片基地址为0x84020000,从片基地址为0x8084020000,偏移地址为0xC8)为0,配置管脚功能为PWM2。
PWM寄存器配置
通过配置PWM2寄存器可实现管脚外接风扇的转速读写控制,以PWM2的2通道为例具体配置步骤如下。
2.2.1_配置寄存器MEASURE_TIME(偏移地址为0x108,Bit[13-0]),配置风扇测量时间窗大小。
2.2.2_配置寄存器PWM_PRD2(偏移地址为0x20,Bit[27-0]),设置脉冲周期。
2.2.3_配置寄存器CH2_PWL (偏移地址为0x24,Bit[27-0]),设置低电平开始时刻。
2.2.4_配置寄存器CH2_PWH(偏移地址为0x28,Bit[27-0]),设置高电平开始时刻,即设置PWM占空比(风扇转速百分比)。
2.2.5_查询寄存器CH2_PWH(偏移地址为0x28,Bit[27-0]),查询高电平开始时刻,可查询PWM占空比(风扇转速百分比)。
2.3 案例参考
2.3.1_设置PWM2管脚复用关系为pad_pwm2。
./devmem 0x00840200C8 32 0
2.3.2_设置PWM风扇测量时间窗大小为250ms。
./devmem 0x0084000108 32 2000
2.3.3_设置PWM脉冲周期为10000。
./devmem 0x0084000020 32 10000
2.3.4_设置PWM低电平开始时刻。
./devmem 0x0084000024 32 0
2.3.5_设置PWM高电平开始时刻,即可设置PWM占空比(风扇转速百分比),此处以PWM占空比为45%举例。
./devmem 0x0084000028 32 4500
2.3.6_查询PWM占空比(风扇转速百分比)。
./devmem 0x0084000028
此处可查询到PWM占空比为45%。