news 2026/7/14 15:23:00

zynq中linux环境xadc的使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
zynq中linux环境xadc的使用

参考

zynq纯PL读取XADC.csdn
zynq在PS测用XADC读取外部引脚电压.csdn

PL

只用 Linux 读 XADC:设备树启通道即可,不用加 vauxp0/vauxn0 顶层端口约束。 用 PL/XADC Wizard 接 VAUX:才需要在 Vivado/XDC 里约束这些模拟端口。 PL 设计里把 XADC 外部模拟输入作为顶层端口使用 时才加这种约束 set_property PACKAGE_PIN C20[get_ports vauxp0]set_property IOSTANDARD LVCMOS33[get_ports vauxp0]set_property ANALOGtrue[get_ports vauxp0]set_property PACKAGE_PIN B20[get_ports vauxn0]set_property IOSTANDARD LVCMOS33[get_ports vauxn0]set_property ANALOGtrue[get_ports vauxn0]

设备树

#include <dt-bindings/gpio/gpio.h>#include <dt-bindings/input/input.h>#include <dt-bindings/media/xilinx-vip.h>#include <dt-bindings/phy/phy.h>/{model="ant_boot Board 321";compatible="xlnx,zynq-zc702","xlnx,zynq-7000";chosen{bootargs="console=ttyPS0,115200 earlycon=cdns,mmio,0xe0000000,115200n8 keep_bootcon earlyprintk root=/dev/mmcblk0p2 rw rootwait";stdout-path="serial0:115200n8";};leds{compatible="gpio-leds";gpio-led1{label="led2";gpios=<&gpio00GPIO_ACTIVE_HIGH>;default-state="on";};gpio-led5{label="ps_led0";gpios=<&gpio07GPIO_ACTIVE_HIGH>;default-state="on";};gpio-led6{label="ps_led1";gpios=<&gpio08GPIO_ACTIVE_HIGH>;linux,default-trigger="timer";};};ming_axi_dma0: ming-axi-dma{compatible="ming,axi-dma";dmas=<&axi_dma_00>;dma-names="rx";dma-buffer-size=<0x00100000>;slot0-ctrl-base=<0x43c00000>;status="okay";};};&uart0{u-boot,dm-pre-reloc;port-number=<0>;status="okay";};&sdhci0{u-boot,dm-pre-reloc;status="okay";};&qspi{u-boot,dm-pre-reloc;flash@0{compatible="winbond,w25q32","jedec,spi-nor";reg=<0x0>;spi-max-frequency=<50000000>;#address-cells = <1>;#size-cells = <1>;partition@0{label="boot";reg=<0x00000000 0x00100000>;};partition@100000{label="bootenv";reg=<0x00100000 0x00010000>;};partition@110000{label="space";reg=<0x00110000 0x002F0000>;};};};&gem0{local-mac-address=[00 0a3500 8b87];phy-handle=<&ethernet_phy>;ethernet_phy: ethernet-phy@7{reg=<0x7>;device_type="ethernet-phy";};};&axi_dma_0{status="okay";#dma-cells = <1>;};&adc{status="okay";xlnx,channels{#address-cells = <1>;#size-cells = <0>;channel@0{reg=<0>;/* VP/VN */};channel@1{reg=<1>;/* VAUX0 */};channel@2{reg=<2>;/* VAUX1 */};channel@3{reg=<3>;/* VAUX2 */};channel@4{reg=<4>;/* VAUX3 */};channel@5{reg=<5>;/* VAUX4 */};channel@6{reg=<6>;/* VAUX5 */};channel@7{reg=<7>;/* VAUX6 */};channel@8{reg=<8>;/* VAUX7 */};channel@9{reg=<9>;/* VAUX8 */};channel@10{reg=<10>;/* VAUX9 */};channel@11{reg=<11>;/* VAUX10 */};channel@12{reg=<12>;/* VAUX11 */};channel@13{reg=<13>;/* VAUX12 */};channel@14{reg=<14>;/* VAUX13 */};channel@15{reg=<15>;/* VAUX14 */};channel@16{reg=<16>;/* VAUX15 */};};};

测试脚本

read_vaux.sh

XADC输入为 0V 到 1.0V
最大采样率 1 MSPS, 12位

#!/bin/shIIO=/sys/bus/iio/devices/iio:device0forrawfin"$IIO"/in_voltage*_vpvn_raw"$IIO"/in_voltage*_vaux*_raw;do[-e"$rawf"]||continuebase=${rawf%_raw}name=$(basename"$base")raw=$(cat"${base}_raw")scale=$(cat"${base}_scale")awk-vname="$name"-vraw="$raw"-vscale="$scale"' BEGIN { mv = raw * scale printf "%-24s raw=%-5d %10.3f mV %8.6f V\n", name, raw, mv, mv / 1000 }'done

测试

root@ant:~# ./read_vaux.shin_voltage8_vpvnraw=7718.799mV0.018799V in_voltage10_vaux1raw=10525.635mV0.025635V in_voltage11_vaux2raw=14134.424mV0.034424V in_voltage12_vaux3raw=17442.480mV0.042480V in_voltage13_vaux4raw=20349.561mV0.049561V in_voltage14_vaux5raw=23557.373mV0.057373V in_voltage15_vaux6raw=27567.139mV0.067139V in_voltage16_vaux7raw=31777.393mV0.077393V in_voltage17_vaux8raw=31276.172mV0.076172V in_voltage18_vaux9raw=34383.740mV0.083740V in_voltage19_vaux10raw=34684.473mV0.084473V in_voltage20_vaux11raw=35085.449mV0.085449V in_voltage21_vaux12raw=35386.182mV0.086182V in_voltage22_vaux13raw=35185.693mV0.085693V in_voltage23_vaux14raw=32479.102mV0.079102V in_voltage24_vaux15raw=35486.426mV0.086426V in_voltage9_vaux0raw=215.127mV0.005127V
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 15:22:40

如何用OBS高级计时器插件提升直播时间管理的专业度

如何用OBS高级计时器插件提升直播时间管理的专业度 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer 还在为直播中的时间控制感到手忙脚乱吗&#xff1f;OBS Advanced Timer是一款专为OBS Studio设计的免费开源计…

作者头像 李华
网站建设 2026/7/14 15:22:36

zynq 烧写W25Q256FV Flash步骤

zynq中flash设置&#xff1a;QSPI时钟默认200MHz&#xff1b;生成bit文件后导出到vitis中&#xff0c;修改fsbbl_debug.h文件&#xff0c;添加#define FSBL_DEBUG_INFO&#xff0c;目的为了在烧写过程中打印烧写信息&#xff0c;生成fsbl.elf文件&#xff1b;打包BOOT.bin文件&…

作者头像 李华
网站建设 2026/7/14 15:22:31

C语言中不同浮点型的理解

一.什么是浮点型&#xff1f;在 C 语言中&#xff0c;浮点型&#xff08;floating-point type&#xff09; 是用于表示带有小数部分的数值的数据类型&#xff0c;能够处理整数、小数以及极大或极小的数值&#xff08;通过科学计数法&#xff09;。它的核心特点是通过 “浮动的小…

作者头像 李华
网站建设 2026/7/14 15:21:39

如何用NetPad轻松编写和运行C代码:零配置开发环境指南

如何用NetPad轻松编写和运行C#代码&#xff1a;零配置开发环境指南 【免费下载链接】NetPad A cross-platform C# editor and playground. 项目地址: https://gitcode.com/GitHub_Trending/ne/NetPad 想象一下&#xff0c;你刚刚学习C#编程&#xff0c;或者需要快速测试…

作者头像 李华
网站建设 2026/7/14 15:20:28

python文本操作

分享做题遇到的一些利用python所完成的文本txt操作&#xff0c;感觉日常工作学习中可以用得到( •̀ ω •́ )y&#xff01;将持续补充... 注&#xff1a;文本文件和执行的py文件需要在同一个路径下。 题目和答案来自未来教育题库&#xff0c;如有侵权请联系笔者删除&#x…

作者头像 李华