Xilinx zynq xadc

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

同步内核缓冲区 sync、fsync和fdatasync函数

用户态接口

每次需调用fflush接口,如果不close文件的话,否则数值无法刷新。

sprintf(file, "%s/%s/name", SYS_PATH_IIO, namelist[i]->d_name);
//printf("i %d, file %s\n", i, file);
fp = fopen(file, "r");
if (!fp)
{
	//printf("open file %s failed\n", file);
	continue;
}
memset(name, 0, 64);
s = fgets(name, 64, fp);
if (!s)
{
	printf("fgets file %s failed\n", file);
	return -1;
}
fclose(fp);

设备树

设备树中描述xadc的通道,对应在sysfs的iio中会形成对应文件,用于读取电压,需要注意的是reg = <0>表示的是VP/VN,而AD0~AD151~16

&adc {
	xlnx,channels {
		#address-cells = <1>;
		#size-cells = <0>;
		channel1V8@0 {
			reg = <0>;		
		};
		channel1V5@1 {
			reg = <1>;
		};
		channel3V3@2 {
			reg = <2>;
		};
		channel1V@9 {
			reg = <9>;
		};
		channel5V@10 {
			reg = <10>;
		};
	};
};

多个xadc

z7+k7架构,系统中存在两个xadc,修改源码,在设备树中添加aliasesid,修改官方驱动代码(petalinux2015.2),添加对多个xadc的支持,

aliasesid = of_alias_get_id(pdev->dev.of_node, "xadc");
if (aliasesid >= 0) {
	indio_dev->id = aliasesid;
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值