RK3399 SRADC应用案例

ADC转换步骤

1.SARADC_CTRL[3] 设置为0 adc断电

2.SARADC_CTRL[2:0] 选择adc通道

  • 000 输入通道0
    001 输入通道1
    010 输入通道2
    011 输入通道3
    100 输入通道4
    101 输入通道5*

3.SARADC_CTRL[5] 设置为1使能adc中断

4.SARADC_CTRL[3] 设置为1 adc工作

5.等待ADC中断或SARADC_SATA状态寄存器轮询判断是否采集结束

6.从SRADC_DATA[9:0]读取转换结果

Rochchicp逐次逼近寄存器(SAR) A/D 转换器绑定(设备树)

所需属性

-compatible “产商-详细名称”
-reg “控制器物理基址和内存映射区域的长度”
-interrupts “CPU中断号,中断指示符格式取决于中断控制器”
  中断类型 :GIC_SPI 共享外设中断 GIC_PPI 私有外设中断
    `#define IRQ_TYPE_NONE 0 内核不改变,开机或uboot怎么设置就是什么
    #define IRQ_TYPE_EDGE_RISING 1 上升沿触发
    #define IRQ_TYPE_EDGE_FALLING 2 下降沿触发
    #define IRQ_TYPE_EDGE_BOTH ( IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING ) 双边沿触发
    #define IRQ_TYPE_LEVEL_HIGH 4 高电平
    #define IRQ_TYPE_LEVEL_LOW 8 低电平
-clocks “每个时钟名称必须包含一个表项”
    aclk 一般用于数据传输 hclk 和 pclk 一般用于寄存器读写
-clocks-name “时钟名称为xxx”,“外围时钟名称为xxx”
verf-supply “调压器提供ADC参考电压”
#io-chanel-cells “应该是1,可参考…/iio-bindings.txt”

static const struct of_device_id rockchip_saradc_match[] = {
	{
		.compatible = "rockchip,saradc",
		.data = &saradc_data,
	}, {
		.compatible = "rockchip,rk3066-tsadc",
		.data = &rk3066_tsadc_data,
	}, {
		.compatible = "rockchip,rk3399-saradc",
		.data = &rk3399_saradc_data,
	}, {
		.compatible = "rockchip,rk3568-saradc",
		.data = &rk3568_saradc_data,
	},
	{},
};
MODULE_DEVICE_TABLE(of, rockchip_saradc_match);//of 设备类型  rockchip_saradc_match设备列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值