RISCV_ADC使用参考
REVISION HISTORY¶
Revision No. | Description |
Date |
---|---|---|
1.0 | 10/30/2022 |
1. 概述¶
1.1. 概述¶
PWM-ADC有24个Channel,获取到的值的范围在0~0xFFF之间,参考电压有1个挡位为3.3V。
1.2. 说明¶
ADC的主要功能是将连续变量的模拟信号转换为离散的数字信号,即可以将输入电压V转换为表示一定比例下的寄存器数值,当已知参考电压,计算公式为:
电压 = ( 寄存器数值 / 满量程 )* 参考电压
2. 基础配置¶
2.1. CONFIG配置¶
CONFIG_PWM_SUPPORT=TRUE
2.2. sysdesc配置¶
1. <pwm_out> 2. [reg_u32_u16] = 0x1F203600 0x200 0x1F200E00 0x200; 3. [interrupts_u8] INT_FIQ_ADC_FIQ; 4. [clkfrequency_u32] 12000000; 5. [camclk_u16] CAMCLK_pwm_adc; 6. [status_u8] 1;
2.3. Padmux配置¶
1. <padmux> 2. [schematic_u32_u32_u32] 3. PAD_SAR_ADC_0 PINMUX_FOR_ADC0_MODE1 MDRV_PUSE_PWMADC0, 4. PAD_SAR_ADC_1 PINMUX_FOR_ADC1_MODE1 MDRV_PUSE_PWMADC1, 5. PAD_SAR_ADC_2 PINMUX_FOR_ADC2_MODE1 MDRV_PUSE_PWMADC2, 6. PAD_SAR_ADC_3 PINMUX_FOR_ADC3_MODE1 MDRV_PUSE_PWMADC3, 7. PAD_SAR_ADC_4 PINMUX_FOR_ADC4_MODE1 MDRV_PUSE_PWMADC4, 8. PAD_SAR_ADC_5 PINMUX_FOR_ADC5_MODE1 MDRV_PUSE_PWMADC5, 9. PAD_SAR_ADC_6 PINMUX_FOR_ADC6_MODE1 MDRV_PUSE_PWMADC6, 10. PAD_SAR_ADC_7 PINMUX_FOR_ADC7_MODE1 MDRV_PUSE_PWMADC7, 11. PAD_SAR_ADC_8 PINMUX_FOR_ADC8_MODE1 MDRV_PUSE_PWMADC8, 12. PAD_SAR_ADC_9 PINMUX_FOR_ADC9_MODE1 MDRV_PUSE_PWMADC9, 13. PAD_SAR_ADC_10 PINMUX_FOR_ADC10_MODE1 MDRV_PUSE_PWMADC10, 14. PAD_SAR_ADC_11 PINMUX_FOR_ADC11_MODE1 MDRV_PUSE_PWMADC11, 15. PAD_SAR_ADC_12 PINMUX_FOR_ADC12_MODE1 MDRV_PUSE_PWMADC12, 16. PAD_SAR_ADC_13 PINMUX_FOR_ADC13_MODE1 MDRV_PUSE_PWMADC13, 17. PAD_SAR_ADC_14 PINMUX_FOR_ADC14_MODE1 MDRV_PUSE_PWMADC14, 18. PAD_SAR_ADC_15 PINMUX_FOR_ADC15_MODE1 MDRV_PUSE_PWMADC15, 19. PAD_SAR_ADC_16 PINMUX_FOR_ADC16_MODE1 MDRV_PUSE_PWMADC16, 20. PAD_SAR_ADC_17 PINMUX_FOR_ADC17_MODE1 MDRV_PUSE_PWMADC17, 21. PAD_SAR_ADC_18 PINMUX_FOR_ADC18_MODE1 MDRV_PUSE_PWMADC18, 22. PAD_SAR_ADC_19 PINMUX_FOR_ADC19_MODE1 MDRV_PUSE_PWMADC19, 23. PAD_SAR_ADC_20 PINMUX_FOR_ADC20_MODE1 MDRV_PUSE_PWMADC20, 24. PAD_SAR_ADC_21 PINMUX_FOR_ADC21_MODE1 MDRV_PUSE_PWMADC21, 25. PAD_SAR_ADC_22 PINMUX_FOR_ADC22_MODE1 MDRV_PUSE_PWMADC22, 26. PAD_SAR_ADC_23 PINMUX_FOR_ADC23_MODE1 MDRV_PUSE_PWMADC23;
2.4. 驱动路径¶
rtk\proj\sc\driver\sysdriver\pwm\drv\src\drv_pwm_out.c.
3. 接口使用¶
3.1. Regular Channel采样¶
3.1.1. 配置步骤¶
1、进行通道功能配置
1. drv_pwmadc_init(struct pwmadc_set *pwm_adc_set, pwm_out_channel channel, u8 enable) //参数:struct pwmadc_set *pwm_adc_set 所需要配置的成员描述如下
- 配置说明 | struct pwmin_set的成员 | 描述 | |-----------|--------| | chan_sel | 设置PWM_ADC采样的通道类型,1表示regular channel,0表示inject channel,常规使用regular channel,inject channel一般用于某个特定时刻的监测采样,优先级高于regular channel| | regu_len | 表示regular channel的序列长度| | inj_len | 表示inject channel的序列长度| | adc_seq | 设置PWM_ADC采样的具体的通道序列| | tri_mode | 设置PWM_ADC采样的触发类型,0~11表示PWM_PN触发,12表示sw触发,13表示外部触发,14表示freerun,freerun的触发类型仅适用于regular channel| | tri_method | 设置trigger method,1表示每次触发完成一个sequence的采样,0表示每次触发完成一个channel的采样| | con_mode | 设置采样的模式,0表示single mode,当完成一个采样序列后会停止采样,1表示continuous mode,当完成一个采样序列之后不会停止采样,而是继续采样|
2、获取采样结果
1. drv_pwmadc_get_data(struct pwmadc_set *pwm_adc_set, u8 id, u16 *adc_data);
- 参数 | 参数 | 描述 | |-----------|--------| | id | channel index| | adc_data | 获取到的采样数据|
2、其他命令
1. drv_pwmadc_cmd(struct pwmadc_set *pwm_adc_set, pwm_out_channel channel, pwm_out_cmd cmd); //不同的pwm_out_cmd对应不同的pwmadc_set成员配置
-
pwm_out_cmd:PWM_OUT_CON | 参数 | 描述 | |-----------|--------| | chan_sel | 设置PWM_ADC采样的通道类型,1表示regular channel,0表示inject channel| | con_mode | 设置采样的模式,0表示single mode,当完成一个采样序列后会停止采样,1表示continuous mode,当完成一个采样序列之后不会停止采样,而是继续采样|
-
pwm_out_cmd:PWM_OUT_TRI_MODE | 参数 | 描述 | |-----------|--------| | chan_sel | 设置PWM_ADC采样的通道类型,1表示regular channel,0表示inject channel| | tri_mode | 设置PWM_ADC采样的触发类型,0~11表示PWM_PN触发,12表示sw触发,13表示外部触发,14表示freerun,freerun的触发类型仅适用于regular channel|
-
pwm_out_cmd:PWM_OUT_SW_TRI(sw trigger) | 参数 | 描述 | |-----------|--------| | chan_sel | 设置PWM_ADC采样的通道类型,1表示regular channel,0表示inject channel|
-
pwm_out_cmd:PWM_OUT_STAR(开启采样) | 参数 | 描述 | |-----------|--------| | chan_sel | 设置PWM_ADC采样的通道类型,1表示regular channel,0表示inject channel|
-
pwm_out_cmd:PWM_OUT_END(结束采样) | 参数 | 描述 | |-----------|--------| | chan_sel | 设置PWM_ADC采样的通道类型,1表示regular channel,0表示inject channel|
4. DEMO路径¶
4.1. 头文件路径¶
rtk\proj\sc\driver\sysdriver\pwm\drv\pub\drv_pwm_out.h
4.2. Demo路径¶
rtk\proj\sc\driver\sysdriver\pwm\drv\src\drv_pwm_out_test.c