From f47a6361a007cbd7bd25026dc92c79cf9e4cfb47 Mon Sep 17 00:00:00 2001 From: Tudor Gadalean Date: Wed, 15 Apr 2026 11:28:40 +0300 Subject: [PATCH] Add eval-ad488x-fmc doc pages Signed-off-by: Tudor Gadalean --- .../eval-ad488x-fmc/files/boot_msg.txt | 554 ++++++++++++++++++ .../files/eval_ad4884_fmcz_design_files.zip | 3 + .../eval-ad488x-fmc/images/ad4880_chip.png | 3 + .../images/ad4880_zed_setup.jpg | 3 + .../images/ad4884_block_diagram.png | 3 + .../eval-ad488x-fmc/images/ad4884_chip.png | 3 + .../images/eval_ad4884_clock_circuit.png | 3 + .../images/eval_ad4884_input_stage.png | 3 + .../images/eval_ad4884_power_tree.png | 3 + .../images/eval_ad488x_board.png | 3 + .../eval-ad488x-fmc/images/zed_otg.jpg | 3 + .../images/zed_sd_boot_jumpers.jpg | 3 + .../images/zed_vadj_jumpers.jpg | 3 + .../eval-ad488x-fmc/index.rst | 140 +++++ .../eval-ad488x-fmc/prerequisites.rst | 64 ++ .../eval-ad488x-fmc/quickstart/index.rst | 61 ++ .../eval-ad488x-fmc/quickstart/zed.rst | 184 ++++++ .../eval-ad488x-fmc/user-guide.rst | 206 +++++++ 18 files changed, 1245 insertions(+) create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/files/boot_msg.txt create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/files/eval_ad4884_fmcz_design_files.zip create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4880_chip.png create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4880_zed_setup.jpg create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4884_block_diagram.png create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4884_chip.png create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_clock_circuit.png create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_input_stage.png create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_power_tree.png create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad488x_board.png create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_otg.jpg create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_sd_boot_jumpers.jpg create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_vadj_jumpers.jpg create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/index.rst create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/prerequisites.rst create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/quickstart/index.rst create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/quickstart/zed.rst create mode 100644 docs/solutions/reference-designs/eval-ad488x-fmc/user-guide.rst diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/files/boot_msg.txt b/docs/solutions/reference-designs/eval-ad488x-fmc/files/boot_msg.txt new file mode 100644 index 0000000000..16022bafb6 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/files/boot_msg.txt @@ -0,0 +1,554 @@ +U-Boot 2018.01-01677-geb93226123b (Mar 09 2026 - 12:15:19 +0200), Build: jenkins-development-build_uboot-69 + +Model: Zynq Zed Development Board +Board: Xilinx Zynq +Silicon: v3.1 +DRAM: ECC disabled 512 MiB +MMC: sdhci@e0100000: 0 (SD) +SF: Detected s25fl256s_64k with page size 256 Bytes, erase size 64 KiB, total 32 MiB +*** Warning - bad CRC, using default environment + +In: serial@e0001000 +Out: serial@e0001000 +Err: serial@e0001000 +Net: ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id +eth0: ethernet@e000b000 +reading uEnv.txt +407 bytes read in 23 ms (16.6 KiB/s) +Importing environment from SD ... +Hit any key to stop autoboot: 0 +Device: sdhci@e0100000 +Manufacturer ID: 1d +OEM: 4144 +Name: 00000 +Tran Speed: 50000000 +Rd Block Len: 512 +SD version 3.0 +High Capacity: Yes +Capacity: 29.1 GiB +Bus Width: 4-bit +Erase Group Size: 512 Bytes +reading uEnv.txt +407 bytes read in 24 ms (15.6 KiB/s) +Loaded environment from uEnv.txt +Importing environment from SD ... +Running uenvcmd ... +Copying Linux from SD to RAM... +reading uImage +8274136 bytes read in 479 ms (16.5 MiB/s) +reading devicetree.dtb +18515 bytes read in 29 ms (623 KiB/s) +** Unable to read file uramdisk.image.gz ** +## Booting kernel from Legacy Image at 03000000 ... + Image Name: Linux-6.1.0-23032-g84c5807ef1f2- + Image Type: ARM Linux Kernel Image (uncompressed) + Data Size: 8274072 Bytes = 7.9 MiB + Load Address: 00008000 + Entry Point: 00008000 + Verifying Checksum ... OK +## Flattened Device Tree blob at 02a00000 + Booting using the fdt blob at 0x2a00000 + Loading Kernel Image ... OK + Loading Device Tree to 1eb12000, end 1eb19852 ... OK + +Starting kernel ... + +Booting Linux on physical CPU 0x0 +Linux version 6.1.0-23032-g84c5807ef1f2-dirty (tgadalea@HYB-vs9PLV6JDta) (arm-amd-linux-gnueabi-gcc.real (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240723) #4 SMP PREEMPT Tue Apr 14 13:00:25 EEST 2026 +CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d +CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache +OF: fdt: Machine model: Xilinx Zynq ZED +OF: fdt: earlycon: stdout-path /amba@0/uart@E0001000 not found +Memory policy: Data cache writealloc +cma: Reserved 128 MiB at 0x16800000 +Zone ranges: + Normal [mem 0x0000000000000000-0x000000001fffffff] + HighMem empty +Movable zone start for each node +Early memory node ranges + node 0: [mem 0x0000000000000000-0x000000001fffffff] +Initmem setup node 0 [mem 0x0000000000000000-0x000000001fffffff] +percpu: Embedded 11 pages/cpu s14420 r8192 d22444 u45056 +Built 1 zonelists, mobility grouping on. Total pages: 130048 +Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlycon rootfstype=ext4 rootwait clk_ignore_unused cpuidle.off=1 +Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear) +Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear) +mem auto-init: stack:all(zero), heap alloc:off, heap free:off +Memory: 361896K/524288K available (12288K kernel code, 817K rwdata, 10344K rodata, 1024K init, 470K bss, 31320K reserved, 131072K cma-reserved, 0K highmem) +rcu: Preemptible hierarchical RCU implementation. +rcu: RCU event tracing is enabled. +rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. +rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. +rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 +NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 +efuse mapped to (ptrval) +slcr mapped to (ptrval) +L2C: platform modifies aux control register: 0x72360000 -> 0x72760000 +L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000 +L2C-310 erratum 769419 enabled +L2C-310 enabling early BRESP for Cortex-A9 +L2C-310 full line of zeros enabled for Cortex-A9 +L2C-310 ID prefetch enabled, offset 1 lines +L2C-310 dynamic clock gating enabled, standby mode enabled +L2C-310 cache controller enabled, 8 ways, 512 kB +L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001 +rcu: srcu_init: Setting srcu_struct sizes based on contention. +zynq_clock_init: clkc starts at (ptrval) +Zynq clock init +sched_clock: 64 bits at 167MHz, resolution 6ns, wraps every 4398046511103ns +clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x26703d7dd8, max_idle_ns: 440795208065 ns +Switching to timer-based delay loop, resolution 6ns +clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns +timer #0 at (ptrval), irq=25 +Console: colour dummy device 80x30 +Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666) +pid_max: default: 32768 minimum: 301 +Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) +Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) +CPU: Testing write buffer coherency: ok +CPU0: Spectre v2: using BPIALL workaround +CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 +Setting up static identity map for 0x100000 - 0x100060 +rcu: Hierarchical SRCU implementation. +rcu: Max phase no-delay instances is 1000. +smp: Bringing up secondary CPUs ... +CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 +CPU1: Spectre v2: using BPIALL workaround +smp: Brought up 1 node, 2 CPUs +SMP: Total of 2 processors activated (666.66 BogoMIPS). +CPU: All CPU(s) started in SVC mode. +devtmpfs: initialized +VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 +clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns +futex hash table entries: 512 (order: 3, 32768 bytes, linear) +pinctrl core: initialized pinctrl subsystem +NET: Registered PF_NETLINK/PF_ROUTE protocol family +DMA: preallocated 256 KiB pool for atomic coherent allocations +thermal_sys: Registered thermal governor 'step_wise' +amba f8801000.etb: Fixing up cyclic dependency with replicator +amba f8803000.tpiu: Fixing up cyclic dependency with replicator +amba f8804000.funnel: Fixing up cyclic dependency with replicator +amba f889c000.ptm: Fixing up cyclic dependency with f8804000.funnel +amba f889d000.ptm: Fixing up cyclic dependency with f8804000.funnel +hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. +hw-breakpoint: maximum watchpoint size is 4 bytes. +e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 3125000) is a xuartps +printk: console [ttyPS0] enabled +SCSI subsystem initialized +usbcore: registered new interface driver usbfs +usbcore: registered new interface driver hub +usbcore: registered new device driver usb +mc: Linux media interface: v0.10 +videodev: Linux video capture interface: v2.00 +pps_core: LinuxPPS API ver. 1 registered +pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti +PTP clock support registered +jesd204: found 0 devices and 0 topologies +FPGA manager framework +Advanced Linux Sound Architecture Driver Initialized. +clocksource: Switched to clocksource arm_global_timer +NET: Registered PF_INET protocol family +IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear) +tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear) +Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) +TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear) +TCP bind hash table entries: 4096 (order: 4, 65536 bytes, linear) +TCP: Hash tables configured (established 4096 bind 4096) +UDP hash table entries: 256 (order: 1, 8192 bytes, linear) +UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) +NET: Registered PF_UNIX/PF_LOCAL protocol family +RPC: Registered named UNIX socket transport module. +RPC: Registered udp transport module. +RPC: Registered tcp transport module. +RPC: Registered tcp NFSv4.1 backchannel transport module. +armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing. +hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available +workingset: timestamp_bits=30 max_order=17 bucket_order=0 +NFS: Registering the id_resolver key type +Key type id_resolver registered +Key type id_legacy registered +nfs4filelayout_init: NFSv4 File Layout Driver Registering... +nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... +fuse: init (API version 7.37) +io scheduler mq-deadline registered +io scheduler kyber registered +zynq-pinctrl 700.pinctrl: zynq pinctrl initialized +dma-pl330 f8003000.dma-controller: Loaded driver for PL330 DMAC-241330 +dma-pl330 f8003000.dma-controller: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16 +brd: module loaded +loop: module loaded +Registered mathworks_ip class +SPI driver spidev has no spi_device_id for adi,swspi +spi-nor spi3.0: found s25fl256s1, expected n25q128a11 +spi-nor spi3.0: s25fl256s1 (32768 Kbytes) +5 fixed-partitions partitions found on MTD device spi3.0 +Creating 5 MTD partitions on "spi3.0": +0x000000000000-0x000000500000 : "boot" +0x000000500000-0x000000520000 : "bootenv" +0x000000520000-0x000000540000 : "config" +0x000000540000-0x000000fc0000 : "image" +0x000000fc0000-0x000002000000 : "spare" +MACsec IEEE 802.1AE +tun: Universal TUN/TAP device driver, 1.6 +hwmon hwmon0: temp1_input not attached to any thermal zone +macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 46 (00:0a:35:00:01:22) +usbcore: registered new interface driver asix +usbcore: registered new interface driver ax88179_178a +usbcore: registered new interface driver cdc_ether +usbcore: registered new interface driver net1080 +usbcore: registered new interface driver cdc_subset +usbcore: registered new interface driver zaurus +usbcore: registered new interface driver cdc_ncm +usbcore: registered new interface driver r8153_ecm +usbcore: registered new interface driver uas +usbcore: registered new interface driver usb-storage +usbcore: registered new interface driver usbserial_generic +usbserial: USB Serial support registered for generic +usbcore: registered new interface driver ftdi_sio +usbserial: USB Serial support registered for FTDI USB Serial Device +usbcore: registered new interface driver upd78f0730 +usbserial: USB Serial support registered for upd78f0730 +ULPI transceiver vendor/product ID 0x0451/0x1507 +Found TI TUSB1210 ULPI transceiver. +ULPI integrity check: passed. +ci_hdrc ci_hdrc.0: EHCI Host Controller +ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 +ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 +usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01 +usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 +usb usb1: Product: EHCI Host Controller +usb usb1: Manufacturer: Linux 6.1.0-23032-g84c5807ef1f2-dirty ehci_hcd +usb usb1: SerialNumber: ci_hdrc.0 +hub 1-0:1.0: USB hub found +hub 1-0:1.0: 1 port detected +ci_hdrc ci_hdrc.0: remove, state 1 +SPI driver ads7846 has no spi_device_id for ti,tsc2046 +usb usb1: USB disconnect, device number 1 +SPI driver ads7846 has no spi_device_id for ti,ads7843 +SPI driver ads7846 has no spi_device_id for ti,ads7845 +ci_hdrc ci_hdrc.0: USB bus 1 deregistered +SPI driver ads7846 has no spi_device_id for ti,ads7873 +i2c_dev: i2c /dev entries driver +i2c 0-0039: Fixing up cyclic dependency with 70e00000.axi_hdmi +adv7511 0-0039: supply avdd not found, using dummy regulator +adv7511 0-0039: supply dvdd not found, using dummy regulator +adv7511 0-0039: supply pvdd not found, using dummy regulator +adv7511 0-0039: supply bgvdd not found, using dummy regulator +adv7511 0-0039: supply dvdd-3v not found, using dummy regulator +at24 1-0050: supply vcc not found, using dummy regulator +at24 1-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write +gspca_main: v2.14.0 registered +usbcore: registered new interface driver uvcvideo +cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s +Xilinx Zynq CpuIdle Driver started +failed to register cpuidle driver +sdhci: Secure Digital Host Controller Interface driver +sdhci: Copyright(c) Pierre Ossman +sdhci-pltfm: SDHCI platform and OF driver helper +ledtrig-cpu: registered to indicate activity on CPUs +hid: raw HID events driver (C) Jiri Kosina +usbcore: registered new interface driver usbhid +usbhid: USB HID core driver +SPI driver fb_seps525 has no spi_device_id for syncoam,seps525 +mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA +adf4350 spi1.1: print1 +adf4350 spi1.1: print2 +adf4350 spi1.1: print3 +adf4350 spi1.1: print4 +adf4350 spi1.1: print5 +adf4350 spi1.1: print6 +adf4350 spi1.1: supply vcc not found, using dummy regulator +adf4350 spi1.1: print7 +adf4350 spi1.1: print8 +adf4350 spi1.1: print9 +adf4350 spi1.1: print10 +adf4350 spi1.1: print11 +adf4350 spi1.1: print15 +axi_sysid 45000000.axi-sysid-0: AXI System ID core version (1.01.a) found +axi_sysid 45000000.axi-sysid-0: [ad4880_fmc_evb] on [zed] git branch
git <194cb2059da9757f3de014a479446705ec88be08> clean [2026-04-09 05:55:45] UTC +fpga_manager fpga0: Xilinx Zynq FPGA Manager registered +usbcore: registered new interface driver snd-usb-audio +axi-i2s 77600000.axi-i2s: probed, capture enabled, playback enabled +NET: Registered PF_INET6 protocol family +mmc0: new high speed SDHC card at address 0001 +Segment Routing with IPv6 +mmcblk0: mmc0:0001 00000 29.1 GiB +In-situ OAM (IOAM) with IPv6 +sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver + mmcblk0: p1 p2 p3 +NET: Registered PF_PACKET protocol family +NET: Registered PF_IEEE802154 protocol family +Key type dns_resolver registered +zynq_pm_remap_ocm: OCM pool is not available +zynq_pm_suspend_init: Unable to map OCM. +Registering SWP/SWPB emulation handler +of-fpga-region fpga-full: FPGA Region probed +[drm] Initialized axi_hdmi_drm 1.0.0 20120930 for 70e00000.axi_hdmi on minor 0 +axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes +debugfs: File 'Capture' in directory 'dapm' already present! +cf_axi_adc 44a00000.ad4880: ADI AIM (10.03.) at 0x44A00000 mapped to 0x(ptrval) probed ADC AD4880 as MASTER +cf_axi_adc 44a10000.ad4880_chb: ADI AIM (10.03.) at 0x44A10000 mapped to 0x(ptrval) probed ADC AD4880 as MASTER +of_cfs_init +of_cfs_init: OK +clk: Not disabling unused clocks +ALSA device list: + #0: HDMI monitor + #1: ZED ADAU1761 +EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: disabled. +VFS: Mounted root (ext4 filesystem) on device 179:2. +devtmpfs: mounted +Freeing unused kernel image (initmem) memory: 1024K +Run /sbin/init as init process +systemd[1]: System time before build time, advancing clock. +systemd[1]: systemd 247.3-7+rpi1+deb11u6 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified) +systemd[1]: Detected architecture arm. + +Welcome to Kuiper GNU/Linux 11.2 (bullseye)! + +systemd[1]: Set hostname to . +systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. +systemd[1]: Queued start job for default target Graphical Interface. +ci_hdrc ci_hdrc.0: timeout waiting for 00000800 in OTGSC +random: crng init done +systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling. +systemd[1]: (This warning is only shown for the first unit using IP firewalling.) +systemd[1]: Created slice system-getty.slice. +[ OK ] Created slice system-getty.slice. +systemd[1]: Created slice system-modprobe.slice. +[ OK ] Created slice system-modprobe.slice. +systemd[1]: Created slice system-serial\x2dgetty.slice. +[ OK ] Created slice system-serial\x2dgetty.slice. +systemd[1]: Created slice system-systemd\x2dfsck.slice. +[ OK ] Created slice system-systemd\x2dfsck.slice. +systemd[1]: Created slice User and Session Slice. +[ OK ] Created slice User and Session Slice. +systemd[1]: Started Forward Password Requests to Wall Directory Watch. +[ OK ] Started Forward Password R…uests to Wall Directory Watch. +systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. +systemd[1]: Reached target Slices. +[ OK ] Reached target Slices. +systemd[1]: Reached target Swap. +[ OK ] Reached target Swap. +systemd[1]: Listening on Syslog Socket. +[ OK ] Listening on Syslog Socket. +systemd[1]: Listening on fsck to fsckd communication Socket. +[ OK ] Listening on fsck to fsckd communication Socket. +systemd[1]: Listening on initctl Compatibility Named Pipe. +[ OK ] Listening on initctl Compatibility Named Pipe. +systemd[1]: Condition check resulted in Journal Audit Socket being skipped. +systemd[1]: Listening on Journal Socket (/dev/log). +[ OK ] Listening on Journal Socket (/dev/log). +systemd[1]: Listening on Journal Socket. +[ OK ] Listening on Journal Socket. +systemd[1]: Listening on udev Control Socket. +[ OK ] Listening on udev Control Socket. +systemd[1]: Listening on udev Kernel Socket. +[ OK ] Listening on udev Kernel Socket. +systemd[1]: Condition check resulted in Huge Pages File System being skipped. +systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped. +systemd[1]: Mounting RPC Pipe File System... + Mounting RPC Pipe File System... +systemd[1]: Mounting Kernel Debug File System... + Mounting Kernel Debug File System... +systemd[1]: Condition check resulted in Kernel Trace File System being skipped. +systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped. +systemd[1]: Starting Restore / save the current clock... + Starting Restore / save the current clock... +systemd[1]: Starting Set the console keyboard layout... + Starting Set the console keyboard layout... +systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped. +systemd[1]: Starting Load Kernel Module configfs... + Starting Load Kernel Module configfs... +systemd[1]: Starting Load Kernel Module drm... + Starting Load Kernel Module drm... +systemd[1]: Starting Load Kernel Module fuse... + Starting Load Kernel Module fuse... +systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. +systemd[1]: Condition check resulted in File System Check on Root Device being skipped. +systemd[1]: Starting Journal Service... + Starting Journal Service... +systemd[1]: Starting Load Kernel Modules... + Starting Load Kernel Modules... +systemd[1]: Starting Remount Root and Kernel File Systems... + Starting Remount Root and Kernel File Systems... +systemd[1]: Starting Coldplug All udev Devices... + Starting Coldplug All udev Devices... +systemd[1]: Mounted RPC Pipe File System. +[ OK ] Mounted RPC Pipe File System. +systemd[1]: Mounted Kernel Debug File System. +[ OK ] Mounted Kernel Debug File System. +systemd[1]: Finished Restore / save the current clock. +[ OK ] Finished Restore / save the current clock. +systemd[1]: modprobe@configfs.service: Succeeded. +systemd[1]: Finished Load Kernel Module configfs. +[ OK ] Finished Load Kernel Module configfs. +systemd[1]: modprobe@drm.service: Succeeded. +systemd[1]: Finished Load Kernel Module drm. +[ OK ] Finished Load Kernel Module drm. +systemd[1]: modprobe@fuse.service: Succeeded. +systemd[1]: Finished Load Kernel Module fuse. +[ OK ] Finished Load Kernel Module fuse. +systemd[1]: Finished Set the console keyboard layout. +[ OK ] Finished Set the console keyboard layout. +systemd[1]: Started Journal Service. +[ OK ] Started Journal Service. +[FAILED] Failed to start Load Kernel Modules. +See 'systemctl status systemd-modules-load.service' for details. + Mounting FUSE Control File System... + Mounting Kernel Configuration File System... + Starting Apply Kernel Variables... +[ OK ] Mounted FUSE Control File System. +[ OK ] Mounted Kernel Configuration File System. +[ OK ] Finished Apply Kernel Variables. +[ OK ] Finished Remount Root and Kernel File Systems. + Starting Flush Journal to Persistent Storage... + Starting Load/Save Random Seed... + Starting Create System Users... +[ OK ] Finished Load/Save Random Seed. +[ OK ] Finished Create System Users. +[ OK ] Finished Coldplug All udev Devices. + Starting Helper to synchronize boot up for ifupdown... + Starting Create Static Device Nodes in /dev... + Starting Wait for udev To …plete Device Initialization... +[ OK ] Finished Flush Journal to Persistent Storage. +[ OK ] Finished Helper to synchronize boot up for ifupdown. +[ OK ] Finished Create Static Device Nodes in /dev. +[ OK ] Reached target Local File Systems (Pre). + Starting Rule-based Manage…for Device Events and Files... +[ OK ] Started Rule-based Manager for Device Events and Files. + Starting Show Plymouth Boot Screen... +[ OK ] Started Show Plymouth Boot Screen. +[ OK ] Started Forward Password R…s to Plymouth Directory Watch. +[ OK ] Reached target Local Encrypted Volumes. +[ OK ] Found device /dev/ttyPS0. +[ OK ] Reached target Hardware activated USB gadget. + Starting Load Kernel Modules... +[ OK ] Found device /dev/disk/by-partuuid/a22286d2-01. +[FAILED] Failed to start Load Kernel Modules. +See 'systemctl status systemd-modules-load.service' for details. +[ OK ] Finished Wait for udev To Complete Device Initialization. + Starting File System Check…isk/by-partuuid/a22286d2-01... + Starting Load Kernel Modules... +[ OK ] Started File System Check Daemon to report status. +[FAILED] Failed to start Load Kernel Modules. +See 'systemctl status systemd-modules-load.service' for details. +[ OK ] Finished File System Check…/disk/by-partuuid/a22286d2-01. + Mounting /boot... +[ OK ] Mounted /boot. +[ OK ] Reached target Local File Systems. + Starting Set console font and keymap... + Starting Raise network interfaces... + Starting Preprocess NFS configuration... + Starting Tell Plymouth To Write Out Runtime Data... + Starting Create Volatile Files and Directories... +[ OK ] Finished Set console font and keymap. +[ OK ] Finished Preprocess NFS configuration. +[ OK ] Reached target NFS client services. +[ OK ] Reached target Remote File Systems (Pre). +[ OK ] Reached target Remote File Systems. +[ OK ] Finished Tell Plymouth To Write Out Runtime Data. +[ OK ] Finished Create Volatile Files and Directories. + Starting Network Time Synchronization... + Starting Update UTMP about System Boot/Shutdown... +[ OK ] Finished Update UTMP about System Boot/Shutdown. + Starting Load Kernel Modules... +[ OK ] Finished Raise network interfaces. +[ OK ] Started Network Time Synchronization. +[ OK ] Reached target System Time Set. +[ OK ] Reached target System Time Synchronized. +[FAILED] Failed to start Load Kernel Modules. +See 'systemctl status systemd-modules-load.service' for details. +[ OK ] Reached target System Initialization. +[ OK ] Started CUPS Scheduler. +[ OK ] Started Daily apt download activities. +[ OK ] Started Daily apt upgrade and clean activities. +[ OK ] Started Periodic ext4 Onli…ata Check for All Filesystems. +[ OK ] Started Discard unused blocks once a week. +[ OK ] Started Daily rotation of log files. +[ OK ] Started Daily man-db regeneration. +[ OK ] Started Daily Cleanup of Temporary Directories. +[ OK ] Reached target Paths. +[ OK ] Reached target Timers. +[ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket. +[ OK ] Listening on CUPS Scheduler. +[ OK ] Listening on D-Bus System Message Bus Socket. +[ OK ] Listening on Erlang Port Mapper Daemon Activation Socket. +[ OK ] Listening on GPS (Global P…ioning System) Daemon Sockets. +[ OK ] Listening on triggerhappy.socket. +[ OK ] Reached target Sockets. +[ OK ] Reached target Basic System. + Starting Analog Devices power up/down sequence... + Starting Save/Restore Sound Card State... + Starting Avahi mDNS/DNS-SD Stack... +[ OK ] Started Regular background program processing daemon. +[ OK ] Started D-Bus System Message Bus. + Starting dphys-swapfile - …unt, and delete a swap file... + Starting Remove Stale Onli…t4 Metadata Check Snapshots... +[ OK ] Started fan-control. + Starting Fix DP audio and X11 for Jupiter... + Starting Creating IIOD Context Attributes...... + Starting Authorization Manager... + Starting DHCP Client Daemon... + Starting LSB: Switch to on…nless shift key is pressed)... + Starting LSB: rng-tools (Debian variant)... + Starting System Logging Service... + Starting User Login Management... + Starting triggerhappy global hotkey daemon... + Starting Disk Manager... + Starting WPA supplicant... +[ OK ] Finished Save/Restore Sound Card State. +[ OK ] Reached target Sound Card. +[ OK ] Started triggerhappy global hotkey daemon. +[ OK ] Started System Logging Service. +[ OK ] Finished Fix DP audio and X11 for Jupiter. +[ OK ] Started LSB: rng-tools (Debian variant). +[ OK ] Started LSB: Switch to ond…(unless shift key is pressed). +[ OK ] Started Avahi mDNS/DNS-SD Stack. +[ OK ] Started WPA supplicant. +[ OK ] Started Authorization Manager. +[ OK ] Started DHCP Client Daemon. +[ OK ] Reached target Network. +[ OK ] Reached target Network is Online. + Starting Modem Manager... + Starting CUPS Scheduler... +[ OK ] Started Erlang Port Mapper Daemon. + Starting Load USB gadget scheme... + Starting HTTP based time synchronization tool... + Starting Internet superserver... + Starting /etc/rc.local Compatibility... + Starting OpenBSD Secure Shell server... + Starting Permit User Sessions... +[ OK ] Started Internet superserver. +[ OK ] Finished dphys-swapfile - …mount, and delete a swap file. +[ OK ] Finished Load USB gadget scheme. +[ OK ] Started /etc/rc.local Compatibility. +[ OK ] Found device /dev/ttyGS0. +[ OK ] Started User Login Management. +[ OK ] Started CUPS Scheduler. + Mounting Mount FunctionFS instance... +[ OK ] Started Make remote CUPS printers available locally. +[ OK ] Started Unattended Upgrades Shutdown. +[ OK ] Started HTTP based time synchronization tool. +[ OK ] Finished Permit User Sessions. +[ OK ] Mounted Mount FunctionFS instance. + Starting Light Display Manager... + Starting Hold until boot process finishes up... +[ OK ] Finished Analog Devices power up/down sequence. +[ OK ] Started Modem Manager. +[ OK ] Started OpenBSD Secure Shell server. +[FAILED] Failed to start VNC Server for X11. + +Raspbian GNU/Linux 11 analog ttyPS0 + +analog login: root (automatic login) + +Linux analog 6.1.0-23032-g84c5807ef1f2-dirty #4 SMP PREEMPT Tue Apr 14 13:00:25 EEST 2026 armv7l + +The programs included with the Debian GNU/Linux system are free software; +the exact distribution terms for each program are described in the +individual files in /usr/share/doc/*/copyright. + +Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent +permitted by applicable law. +Last login: Tue Mar 18 20:17:20 GMT 2025 on ttyPS0 +root@analog:~# diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/files/eval_ad4884_fmcz_design_files.zip b/docs/solutions/reference-designs/eval-ad488x-fmc/files/eval_ad4884_fmcz_design_files.zip new file mode 100644 index 0000000000..b4f90a241d --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/files/eval_ad4884_fmcz_design_files.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90ceead9bbbdcd1ab66d180f362de4f8e27a7e2df7b2db7a91555fc64e39d530 +size 4014420 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4880_chip.png b/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4880_chip.png new file mode 100644 index 0000000000..e42c6ed568 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4880_chip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40a9440bc0d0ce210c8e8e457bdba1470582d0f4b6e9bc9433db5cf969f37c6c +size 686858 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4880_zed_setup.jpg b/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4880_zed_setup.jpg new file mode 100644 index 0000000000..1f2e3f008d --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4880_zed_setup.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8689a7b16c8b6753ac923aee2ea518ff13f897fdb942987eaf4598d0a0bdc606 +size 1970888 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4884_block_diagram.png b/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4884_block_diagram.png new file mode 100644 index 0000000000..c3f8ee512c --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4884_block_diagram.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c95166d5656c5a64a002f52be799f62ec5bd4d2d221b69c17a01ac0c85d8bb9d +size 42136 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4884_chip.png b/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4884_chip.png new file mode 100644 index 0000000000..f3ac462c5a --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/ad4884_chip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7bd18992528c9d57bb84cf6179735fcba7b1596d2ad3acbd78883e78b9f2d8e +size 4842872 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_clock_circuit.png b/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_clock_circuit.png new file mode 100644 index 0000000000..bb01708ab3 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_clock_circuit.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3fdf0f8244259f75574fed70ee478cebd88135de2ea2986fc516861293a1d87 +size 28219 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_input_stage.png b/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_input_stage.png new file mode 100644 index 0000000000..aacaf068aa --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_input_stage.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a553f7fb240601c9745ffd9bba843acf4f28601ca2e590cfcb223b875998e478 +size 29669 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_power_tree.png b/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_power_tree.png new file mode 100644 index 0000000000..7f72fd2430 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad4884_power_tree.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb22a07942aa4199ff880874dfef24067b91926aa025bfe3216d4cabd305173b +size 32583 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad488x_board.png b/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad488x_board.png new file mode 100644 index 0000000000..ab1a7e9481 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/eval_ad488x_board.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55a954b311c3ccbb4f75ae050b91b037d76becc03da4dbbd3e74aaa4e6ba8626 +size 1230046 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_otg.jpg b/docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_otg.jpg new file mode 100644 index 0000000000..e25c1307e2 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_otg.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:911cf80f640470b19ba8509a06357e758a565144418d065626acefeebe34cb0a +size 1031620 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_sd_boot_jumpers.jpg b/docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_sd_boot_jumpers.jpg new file mode 100644 index 0000000000..8fea0dae2a --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_sd_boot_jumpers.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea2ffc5d35a1a587603c5037e81e6d4a2fe9465637891f4a650e87ab0335ddf2 +size 341744 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_vadj_jumpers.jpg b/docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_vadj_jumpers.jpg new file mode 100644 index 0000000000..044cb47c55 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/images/zed_vadj_jumpers.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08efa5cb02292e29684a21a497b682a5c3c60eb52375d9728ffa8f5ff30b33af +size 87397 diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/index.rst b/docs/solutions/reference-designs/eval-ad488x-fmc/index.rst new file mode 100644 index 0000000000..f58f5a96d1 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/index.rst @@ -0,0 +1,140 @@ +.. _ad488x: + +EVAL-AD488X-FMC +=============================================================================== + +Evaluating the AD488x Family of Dual-Channel, Low Noise, High Speed SAR ADC + +.. image:: images/ad4880_chip.png + :align: left + :width: 150 + +.. image:: images/ad4884_chip.png + :align: left + :width: 150 + +.. clear-content:: + +Overview +------------------------------------------------------------------------------- + +The :adi:`EVAL-AD488X-FMC ` is an FMC evaluation board designed +to demonstrate the performance of the :adi:`AD4880` and :adi:`AD4884` +dual-channel, low noise, high speed successive approximation register (SAR) +analog-to-digital converters (ADC) with integrated fully differential drivers +(FDA) and gain setting resistors. + +The evaluation board is designed for use with the Digilent ZedBoard via the FMC +connector. The ZedBoard uses a Xilinx Zynq7000 system on chip (SoC) that runs +Analog Devices Kuiper Linux and LIBIIO included on the SD card supplied in the +evaluation board kit, enabling ADC configuration and data capture. + +Full specifications on the :adi:`AD4880` and :adi:`AD4884` are available in the +respective data sheets and must be consulted with this user guide when using +the :adi:`EVAL-AD488X-FMC ` evaluation board. + +Features: + +- Integrated fully differential ADC drivers +- Low-voltage digital signaling (LVDS) data output interface. +- Analog-to-digital converter (ADC) configuration via serial + peripheral interface (SPI). +- Internal or external generation of 1.1V regulated supply rails. +- Sampling rate capability between 1.25MSPS and 20MSPS. +- FMC form factor for easy connection to FPGA carrier boards + +Applications: + +- Digital imaging +- Cell analysis +- Spectroscopy +- High speed data acquisition +- Digital control loops, hardware in the loop +- Power quality analysis +- Source measurement units +- Nondestructive test + +.. figure:: images/eval_ad488x_board.png + :width: 800 + + EVAL-AD488X-FMC + +.. toctree:: + :hidden: + + user-guide + prerequisites + quickstart/index + +Recommendations +------------------------------------------------------------------------------- + +People who follow the flow that is outlined, have a much better experience +with things. However, like many things, documentation is never as complete as +it should be. If you have any questions, feel free to ask on our +:ref:`EngineerZone forums `, but before that, please make +sure you read our documentation thoroughly. + +Table of contents +------------------------------------------------------------------------------- + +#. Using the evaluation board/full stack reference design that we offer: + + #. :ref:`Prerequisites ` - what you need to get + started + #. :ref:`Quick start guides `: + + #. Using the :ref:`ZedBoard ` + + #. Configure an SD Card with :external+kuiper:doc:`Kuiper ` + + #. Linux Applications + + #. :ref:`iio-oscilloscope` + +#. Design with the AD488X + + - :ref:`ad488x block-diagram` + + - :adi:`EVAL-AD4884 product page ` + - :adi:`AD4880 Datasheet ` + - :adi:`AD4884 Datasheet ` + + - Resources for designing a custom AD488X-based platform + + #. For Linux software: + + #. `AD488X IIO ADC Linux Driver + `__ + + #. `HDL reference design + `__ + +#. :ref:`Help and Support ` + +.. _ad488x block-diagram: + +Block diagram +------------------------------------------------------------------------------- + +.. figure:: images/ad4884_block_diagram.png + :align: center + :width: 800 + + EVAL-AD488X-FMC Block Diagram + +More Information and Useful Links +------------------------------------------------------------------------------- + +- :adi:`AD4880 Product Page ` +- :adi:`AD4884 Product Page ` + +Warning +------------------------------------------------------------------------------- + +.. esd-warning:: + +Help and support +------------------------------------------------------------------------------- + +Please go to :ref:`Help and Support ` page. diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/prerequisites.rst b/docs/solutions/reference-designs/eval-ad488x-fmc/prerequisites.rst new file mode 100644 index 0000000000..f03fdba5e9 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/prerequisites.rst @@ -0,0 +1,64 @@ +.. _ad488x prerequisites: + +Prerequisites +=============================================================================== + +What you need, depends on what you are trying to do. As a minimum, you need to +start out with: + +Hardware prerequisites +------------------------------------------------------------------------------- + +#. The AD488X-based evaluation board: + :adi:`EVAL-AD488X-FMC ` +#. An FPGA carrier platform. Our recommended one can be found + :ref:`here `. + + - There are a few more boards, which do work, but are currently not + supported by us. The experience with the fabric-only solutions is very + close to the ARM/FPGA SoC based solutions, but the GUI runs on a host + PC (Windows or Linux). + +#. Some way to interact with the FPGA platform: + + #. for the ARM/FPGA SoC platforms, this normally includes: + + - Micro-USB cable for UART console + - LAN cable (Ethernet) for SSH or IIO applications + - HDMI or DisplayPort monitor (Optional) + - USB Keyboard (Optional) + - USB Mouse (Optional) + + #. for the FPGA-only, this includes: + + - LAN cable (Ethernet) + - Host PC (Windows or Linux) + - Micro-USB cable for UART + - Micro-USB cable for JTAG (PROG) + +#. Internet connection (without proxies makes things much easier) to update + the scripts/binaries on the SD card that came with the ADI FMC Card + (firewalls are OK, proxies make things a pain). + +#. Test equipment for generating analog input signals. + +#. An SD card with at least 16 GB of memory (in case you're using Linux). + You should have received one when purchasing the evaluation board. + +Software prerequisites +------------------------------------------------------------------------------- + +Normally, for basic functionalities regarding visualizing the data received +from the FPGA, we use the following: + +#. :external+scopy:doc:`Scopy ` v2.0 or later (must contain the IIO + plugin) + +#. :git-iio-oscilloscope:`IIO Oscilloscope ` + +#. UART terminal application (PuTTY/TeraTerm/Minicom), 115200 8N1 + +.. note:: + + :adi:`ADI <>` does not offer FPGA carrier platforms for sale or loan; + getting one yourself is the normal part of development or evaluation. diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/quickstart/index.rst b/docs/solutions/reference-designs/eval-ad488x-fmc/quickstart/index.rst new file mode 100644 index 0000000000..86f8e1da1a --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/quickstart/index.rst @@ -0,0 +1,61 @@ +.. _ad488x quickstart: + +Quickstart +=============================================================================== + +The Quick Start Guides provide simple step by step instructions on how to do +an initial system setup for the :adi:`EVAL-AD488X-FMC ` +board on various FPGA development boards. In these guides, we will discuss how +to program the bitstream, run a no-OS program or boot a Linux distribution. + +.. toctree:: + + On ZED + +.. _ad488x carriers: + +Supported carriers +------------------------------------------------------------------------------- + +The :adi:`EVAL-AD488X-FMC `, is, by definition a "FPGA +mezzanine card" (FMC); that means it needs a carrier to plug into. + +The carriers we support are: + +.. list-table:: + :header-rows: 1 + + - - FPGA board + - EVAL-AD488X-FMC + - - `ZedBoard `__ + - FMC LPC + +Supported environments +------------------------------------------------------------------------------- + +The supported OS are: + +.. list-table:: + :header-rows: 1 + + - - FPGA board + - HDL + - Linux software + - No-OS software + - - `ZedBoard `__ + - Yes + - Yes + - No + +Hardware setup +------------------------------------------------------------------------------- + +On most carriers, the :adi:`EVAL-AD488X-FMC ` board +connects to the FMC LPC connector (unless otherwise noted). The carrier +setup requires power, UART (115200), Ethernet (Linux), HDMI (if available) +and/or JTAG (no-OS) connections. A few typical setups are shown below. + +ZED + EVAL-AD488X-FMC +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Go to :ref:`the setup guide `. diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/quickstart/zed.rst b/docs/solutions/reference-designs/eval-ad488x-fmc/quickstart/zed.rst new file mode 100644 index 0000000000..2f71f07f36 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/quickstart/zed.rst @@ -0,0 +1,184 @@ +.. _ad488x quickstart zed: + +ZED Quickstart +=============================================================================== + +This guide provides quick instructions on how to set up the +:adi:`EVAL-AD488X-FMC ` on: + +- `ZedBoard `__ + FMC LPC + +.. image:: ../../images/ZedBoard.png + :width: 900 + +.. esd-warning:: + +Using Linux as software +------------------------------------------------------------------------------- + +Necessary files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. note:: + + The SD card includes several folders in the root directory of the BOOT + partition. In order to configure the SD card to work with a specific FPGA + board and ADI hardware, several files must be copied onto the root + directory. Using the host PC, drag and drop the required files onto the + BOOT partition, and use the EJECT function when removing the SD card from + the reader. + +The following files are needed for the system to boot: + + - HDL boot image: ``BOOT.bin`` + - Linux Kernel image: ``uImage`` + - Linux device tree: ``devicetree.dtb`` + +They can either be taken from the SD card -- already generated by us, or +you can build them manually: + + - Instructions on how to choose the boot files from the SD card can be + found in the **Platform-Specific Manual Steps** section from here + :external+kuiper:ref:`hardware-configuration`. + - Instructions on how to manually build the boot files from source can be + found here: + + - :ref:`linux-kernel zynq` + +.. important:: + + Some projects provide multiple devicetree files in the SD card's boot + folders. Make sure you select the devicetree that matches your specific + use case. + +Required software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- SD Card 16 GB imaged with :external+kuiper:doc:`Kuiper ` +- A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate + 115200 (8N1) + +Required hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- `ZedBoard `__ + Rev C or later +- :adi:`EVAL-AD488X-FMC ` FMC board +- SD card with at least 16 GB of memory +- Micro-USB cable +- Ethernet cable + +More details as to why you need these, can be found at +:ref:`ad488x prerequisites`. + +Testing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creating the setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: ../images/ad4880_zed_setup.jpg + :align: center + :width: 600 + +.. warning:: + + Before executing below steps, **VADJ must be set to 2.5 V**. + This can be done by changing VADJ jumper (JP18) to 2v5. + + .. image:: ../images/zed_vadj_jumpers.jpg + :align: center + :width: 300 + +#. Get the + `ZedBoard `__ +#. Set the BOOT mode switches (JP7-JP11) on the ZedBoard for SD card + boot. + + .. image:: ../images/zed_sd_boot_jumpers.jpg + :align: center + :width: 300 + +#. Insert the SD card with the boot files into the ZedBoard. +#. Connect the EVAL-AD488X-FMC to the FMC LPC connector. +#. Connect a micro-USB cable to the UART port (J14). +#. Connect an Ethernet cable to the ZedBoard. +#. Power on the ZedBoard. + +.. note:: + + *USB-OTG* feature: To use USB peripheral devices with ZedBoard, + install jumpers JP2 and JP3. + + .. image:: ../images/zed_otg.jpg + :align: center + :width: 300 + +.. seealso:: + For more detailed information on ZedBoard jumper settings, check the + *ZedBoard Hardware User Guide* (chapter "Configuration modes") + `here `__. + +Boot messages +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following is what is printed in the serial console, after you have +connected to the proper ttyUSB or COM port: + +.. collapsible:: Complete boot log + + .. literalinclude:: ../files/boot_msg.txt + :language: text + +Useful commands for the serial terminal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The below commands are to be run in the serial terminal connected to the FPGA. + +**Login Information** + +user: analog +password: analog + +To find out the IP of the FPGA board, run the following command and take +the IP specified at "eth0 inet": + +.. shell:: + + $ifconfig + +To see the IIO devices detected, run: + +.. shell:: + + $iio_info | grep iio:device + iio:device0: xadc + iio:device1: one-bit-adc-dac + iio:device2: /axi/spi@e0007000/adf4350@1 + iio:device3: ad9508 + iio:device6: ad4880 (buffer capable) + iio:device7: ad4880_chb + +To power off the system, run the following command, and wait for the final +message to be printed, then power off the FPGA board from the switch as +well. + +.. shell:: + + $poweroff + +To reboot the system, run: + +.. shell:: + + $reboot + +.. important:: + + Even though this is Linux, this is a persistent file systems. Care + should be taken not to corrupt the file system -- please shut down + things, don't just turn off the power switch. Depending on your monitor, + the standard power off could be hiding. You can do this from the + terminal as well with :code:`sudo shutdown -h now` or the + above-mentioned command for powering off. diff --git a/docs/solutions/reference-designs/eval-ad488x-fmc/user-guide.rst b/docs/solutions/reference-designs/eval-ad488x-fmc/user-guide.rst new file mode 100644 index 0000000000..a70bb58317 --- /dev/null +++ b/docs/solutions/reference-designs/eval-ad488x-fmc/user-guide.rst @@ -0,0 +1,206 @@ +.. _ad488x user-guide: + +User guide +=============================================================================== + +The complete user guide of the evaluation board can be found at +:adi:`EVAL-AD4884 User Guide `. + +Hardware guide +------------------------------------------------------------------------------- + +Input stage +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The input stage for each :adi:`AD4884` channel consists of a pair of +:adi:`LT6236` op amps. The LT6236 is selected for its wideband (90 MHz), low +noise, favorable distortion performance and low power consumption. The op amps +are set up as unity-gain buffers, ensuring that a preceding signal source or +sensor is presented with a high impedance. With supply rail values of +5 V and +-5 V, the valid range at each input of this stage is -3 V to +3.7 V. + +The input stage is designed to take in a fully-differential signal. With a +differential voltage span of +/-2.91 V, the full span of the ADC is exercised. +A single-ended signal can also be applied at the input, but modifications such +as adding gain or a bias level to one of the op amps might be needed to +exercise the full span of the ADC. + +.. figure:: images/eval_ad4884_input_stage.png + :align: center + :width: 400 + + Input stage simplified schematic for one channel + +The following can be configured in the input stage: + +- Stage bandwidth +- Additional band limiting through RC input filter and/or capacitors across + amplifier feedback +- Stage gain (unity gain by default, non-inverting gain setting available) +- Stage bypass (no bypass by default, bypass via amplifier mezzanine card is + an option for Channel A only) + +Gain configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +By default, the EVAL-AD488X-FMC is configured with a gain of 1.03x, and 220 pF +capacitors fitted for noise filtering across the feedback network of the AD4884 +on-chip FDAs. In this default configuration, an SNR of around 91.9 dB is +typically expected. + +Changing the gain at the AD4884 FDA stage requires light rework on the PCB +(removing or adding 0402 SMD resistors and/or shorting 0402 solder pads). For +the possible gain options and node shorting requirements, refer to the +:adi:`AD4884` data sheet. + +Voltage reference +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :adi:`AD4884` requires an external 3 V voltage reference. The ADC includes +an internal reference buffer and capacitor, which simplifies reference +selection and eliminates the need for an external buffer. + +The following references are available on the evaluation board: + +- :adi:`LTC6655`-3 (default): exceptional noise performance (0.1 Hz to 10 Hz + noise of 0.25 ppm p-p), initial accuracy of 0.025%, and low temperature drift + of 2 ppm/C. +- :adi:`LT6657`-3 (alternate option): also mounted on the board. + +.. list-table:: 3 V reference comparison + :widths: 40 30 30 + :header-rows: 1 + + * - Parameter + - LT6657 + - LTC6655 + * - Accuracy + - 0.10% + - 0.025% + * - Temperature coefficient (ppm/C) + - 1.5 + - 2 + * - 0.1 Hz to 10 Hz noise (ppm p-p) + - 0.5 + - 0.25 + * - Maximum load (mA) + - +/-10 + - +/-5 + * - Load regulation (ppm/mA) + - 0.7 + - 3 + * - Supply current (mA) + - 1.2 + - 5 + +Power supply +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The EVAL-AD488X-FMC is designed to operate from the 12 V and 3.3 V supplies +provided from the host controller board via the FMC connector. The FMC supplies +are regulated down using a combination of switching regulators and low dropout +(LDO) regulators to generate the necessary power rails for the on-board +circuitry. + +.. figure:: images/eval_ad4884_power_tree.png + :align: center + :width: 500 + + Evaluation board power tree + +ADC power supplies +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The :adi:`AD4884` requires three major power supplies: + +- VDD33: 3.3 V analog supply rail +- VDD11: 1.1 V ADC core supply +- IOVDD: 1.1 V digital interface supply + +The 1.1 V rails can be sourced from: + +- On-board :adi:`LT3045` LDO regulators (default) +- Internal AD4884 LDO regulator +- Off-board external supply + +The 3.3 V rail can be sourced from: + +- On-board LT3045 LDO regulator (default) +- Off-board external supply + +Amplifier power supplies +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +A +5 V rail (VDDAFE) and a -5 V rail (VSSAFE) are generated on the evaluation +board. These rails power all analog front-end circuitry, which includes the +four LT6236 discrete operational amplifiers in the input stage as well as the +on-chip fully differential amplifiers inside the AD4884 (via the +VS and -VS +pins). + +Clock generation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The EVAL-AD488X-FMC contains the necessary circuits to generate low jitter data +(CLK+/CLK-) and conversion (CNV+/CNV-) clocks across the full operating range +of the AD4884. + +The circuit consists of: + +- A 25 MHz CMOS reference oscillator +- The :adi:`ADF4350` wideband synthesizer +- The :adi:`AD9508` clock fan-out buffer + +The synthesizer takes in the 25 MHz signal and produces a higher frequency +output with a programmable multiplication factor. The output is then fed to +the clock buffer, which generates the CLK and CNV signals with separate +programmable frequency division factors. + +.. figure:: images/eval_ad4884_clock_circuit.png + :align: center + :width: 600 + + Simplified diagram of the clock circuitry + +Digital interface +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The EVAL-AD488X-FMC utilizes the FMC connector from the ZedBoard to support ADC +device configuration via 4-wire SPI, conversion result access using the LVDS +interface, and conversion control in LVDS mode. + +The AD4884 operates with a 1.1 V digital interface supply voltage. To translate +between this 1.1 V level and the digital interface voltage level of the +ZedBoard (VADJ), SN74AVC1T45DCKR bidirectional level translators are used on +the evaluation board. + +Schematic, PCB layout, bill of materials +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :widths: 60 40 + :header-rows: 1 + + * - Description + - Download + * - Design files (schematics, PCB layout, bill of materials) + - :download:`eval_ad4884_fmcz_design_files.zip <./files/eval_ad4884_fmcz_design_files.zip>` + +Software guide +------------------------------------------------------------------------------- + +The EVAL-AD488X-FMC hardware is controlled and configured through the +:adi:`ACE Software `. +ACE is a desktop software application that allows the evaluation and control of +multiple evaluation systems. The controller board supported by ACE with the +EVAL-AD488X-FMC is the ZedBoard. + +The evaluation board is also supported with the Libiio library. This library is +cross-platform (Windows, Linux, Mac) with language bindings for C, C#, Python, +and others. Applications that can be used with it are: + +.. include-template:: ../common/using-iio-osc.rst.jinja + + has_linux: true + has_no_os: false + +.. include-template:: ../common/using-scopy.rst.jinja