Driver: QDEC & PWM¶
1 功能概述¶
本文主要介绍PAN1080 EVB板QDEC外设模块的使用,检测外部PWM信号,触发QDEC计数。
2 环境要求¶
PAN1080 EVB 一块
USB-TypeC 线一条(用于供电和查看串口打印 Log)
硬件接线:
使用 USB 线,将 PC USB 与 EVB USB-TypeC(USB->UART)相连
根据 EVB 核心板芯片的封装不同,使用杜邦线将 EVB 底板上的:
TX0 与 P00 相连, RX0 与 P01 相连(若 EVB 板芯片为 QFN32 或 LQFP64 封装)
TX0 与 P30 相连, RX0 与 P31 相连(若 EVB 板芯片为 QFN48 封装)
PC 软件: 串口调试助手(UartAssist)或终端工具(SecureCRT),波特率921600
3 编译和烧录¶
例程位置:zephyr\samples_panchip\drivers\qdec\qdec_pwm
使用 ZAL 工具可以对其进行编译、烧录、打开 VS Code 调试等操作。关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍。
4 演示说明¶
5 开发说明¶
5.2 初始QDEC¶
const struct device *qdec_dev = DEVICE_DT_GET(DT_NODELABEL(qdec));
5.3 配置QDEC¶
在“pan108xxb5_evb.overlay”文件中添加QDEC参数配置:
&qdec {
	event-threshold = <100>;
	polarity = "polarity-low";
	resolution = "cnt-resolution-1x";
	filter-threshold = "filter-threshold-3";
	pinctrl-0 = <&p2_0_qdec_z0 &p2_1_qdec_z1>;
	status = "okay";
};
Config Type  | 
Description  | 
|---|---|
event-threshold  | 
设置qdec事件触发阈值(此处是100)  | 
polarity  | 
设置qdec电平极性,可设置为高或者低电平有效(此处是低电平有效)  | 
resolution  | 
设置qdec分辨率,可设置为1x、2x、4x(此处是1x)  | 
filter-threshold  | 
设置qdec短脉冲过滤,设置范围为0~7(此处是3)  | 
QDEC PIN 脚配置为使用 Z0/Z1 两个通道:
pinctrl-0 = <&p2_0_qdec_z0 &p2_1_qdec_z1>;
同理配置 X0/X1 和 Y0/Y1 等所有通道:
pinctrl-0 = <&p0_4_qdec_x0 &p0_5_qdec_x1 &p0_6_qdec_y0 &p0_7_qdec_y1 &p2_0_qdec_z0 &p2_1_qdec_z1>;
5.4 QDEC中断配置使能¶
通道配置:
uint8_t channel = QDEC_CNT_IDX_Z; /* 使用 QDec 模块的 Z 通道 */
qdec_clear_event_cnt(qdec_dev, channel);
代码默认配置通道 Z,也可配置成 QDEC_CNT_IDX_X、QDEC_CNT_IDX_Y。
qdec_irq_add_cb(qdec_dev, qdec_irq_cb);
qdec_clear_int_msk(qdec_dev, ENABLE, QDEC_INT_CNT_OVERFLOW_Msk | QDEC_INT_CNT_UNDERFLOW_Msk);
qdec_clear_event_cnt(qdec_dev, channel);
qdec_clear_int_flag(qdec_dev, QDEC_FUNC_ALL);
qdec_clear_raw_int_flag(qdec_dev, QDEC_FUNC_ALL);
qdec_set_enable(qdec_dev, ENABLE, QDEC_EN_Msk | QDEC_FILTER_EN_Msk |  (QDEC_CHANNEL_X_EN_Msk << channel) | QDEC_EVENT_EN_Msk);
注册中断回调函数“qdec_irq_cb”,配置通道X、向上计数和向下计数中断,清中断标志位。
6 RAM/Flash资源使用情况¶
Memory region         Used Size  Region Size  %age Used
FLASH:       19596 B       256 KB      7.48%
SRAM:        3920 B        64 KB      5.98%