Skip to content

projects: ad5706r: coraz7s: add project#1997

Open
actorreno wants to merge 2 commits intomainfrom
dev_ad5706r_spi_engine
Open

projects: ad5706r: coraz7s: add project#1997
actorreno wants to merge 2 commits intomainfrom
dev_ad5706r_spi_engine

Conversation

@actorreno
Copy link
Copy Markdown
Contributor

PR Description

The AD5706R devices are 4-channel, 16-/12-/10-bit resolution, low noise,
programmable current output, digital-to-analog converter (DAC) capable of
multiple operating modes and output current ranges with high power efficiency.
The family provides multiple programmable output current ranges up to 300mA.

The project uses SPI engine to reach 50MHz transactions on CoraZ7S FPGA.

PR Type

  • Bug fix (change that fixes an issue)
  • New feature (change that adds new functionality)
  • Breaking change (has dependencies in other repos or will cause CI to fail)
  • Documentation

PR Checklist

  • I have followed the code style guidelines
  • I have performed a self-review of changes
  • I have compiled all hdl projects and libraries affected by this PR
  • I have tested in hardware affected projects, at least on relevant boards
  • I have commented my code, at least hard-to-understand parts
  • I have signed off all commits from this PR
  • I have updated the documentation (wiki pages, ReadMe files, Copyright etc)
  • I have not introduced new Warnings/Critical Warnings on compilation
  • I have added new hdl testbenches or updated existing ones

Comment thread projects/ad5706r/README.md Outdated
@@ -0,0 +1,32 @@
\# AD5706R HDL Project
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the file is oddly formatted

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated this.

@actorreno actorreno force-pushed the dev_ad5706r_spi_engine branch from bbe5db3 to 439549e Compare January 28, 2026 03:05
@actorreno actorreno requested a review from gastmaier January 28, 2026 03:11
@actorreno actorreno force-pushed the dev_ad5706r_spi_engine branch from 439549e to ca65c57 Compare February 12, 2026 07:54
Copy link
Copy Markdown
Contributor

@gastmaier gastmaier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doc review changes

Comment thread docs/projects/ad5706r/index.rst Outdated

The design is built upon ADI's generic HDL reference design framework.
ADI distributes the bit/elf files of these projects as part of the
:dokuwiki:`ADI Kuiper Linux <resources/tools-software/linux-software/kuiper-linux>`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:external+adi-kuiper-gen:doc:`index`

no?
@mlradu What should devs link now-a-days?
or at lease

:external+documentation:ref:`kuiper`

for a generic landing page

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

edited to :external+documentation:ref:kuiper

Comment thread docs/projects/ad5706r/index.rst Outdated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Product datasheet: :adi:`AD5706R`
- `EVAL-AD5706R User Guide <https://www.analog.com/media/en/technical-documentation/user-guides/eval-ad5706r-ardz.pdf>`__
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `EVAL-AD5706R User Guide <https://www.analog.com/media/en/technical-documentation/user-guides/eval-ad5706r-ardz.pdf>`__
- :adi:`EVAL-AD5706R User Guide <media/en/technical-documentation/user-guides/eval-ad5706r-ardz.pdf>`

To have the adi branding in the link

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

applied

Comment thread docs/projects/ad5706r/index.rst Outdated
Comment on lines +87 to +92
axi_ad5706R_pwm_gen 0x44A00000
xadc_in 0x44a50000
spi_ad5706r_dac 0x44b00000
spi_clkgen 0x44c00000
spi_engine_pwm_gen 0x44d00000
spi_engine_dma 0x44e00000
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

upper case the addresses

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

edited

Comment thread docs/projects/ad5706r/index.rst Outdated
added to the base address from HDL (see more at :ref:`architecture cpu-intercon-addr`).

=================== ==========
Instance Zynq-7000
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Normally we use Zynq

Pro tip: you can navigate to an anchor
https://analogdevicesinc.github.io/hdl/projects/ad9081_fmca_ebz_x_band/index.html#cpu-memory-interconnects-addresses
Then use
Ctrl+Shift+alt+RightArrow (or Ctrl+Shift+alt+L) to navigate to the next page at the same anchor, so it is fast/easy to compare patterns.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

edited

and woah cool feature haha

Comment thread docs/projects/ad5706r/index.rst Outdated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

========= ================= =============
Signal AD5706R Testpoint Cora Z7-07S
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Normally we use Cora Z7s

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

edited

Comment thread docs/projects/ad5706r/index.rst Outdated
- :git-no-os:`AD5706R No-OS project source code <projects/ad5706r>`
- :git-no-os:`AD5706R No-OS Driver source code <drivers/afe/ad5706r>`
- :git-linux:`AD5706R Linux Driver source code <drivers/iio/dac/ad5706r>`
- :dokuwiki:`AD5706R No-OS Driver documentation <resources/tools-software/uc-drivers/ad5706r>`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread docs/projects/ad5706r/index.rst Outdated
- :git-no-os:`AD5706R No-OS Driver source code <drivers/afe/ad5706r>`
- :git-linux:`AD5706R Linux Driver source code <drivers/iio/dac/ad5706r>`
- :dokuwiki:`AD5706R No-OS Driver documentation <resources/tools-software/uc-drivers/ad5706r>`
- :dokuwiki:`AD5706R IIO Application <resources/tools-software/product-support-software/ad5706r_mbed_iio_application>`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

@actorreno actorreno Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i actually thought this was ok to be placeholders

i actually am not familiar with mbed/iio and no-os so i can't create their docs

will just delete these, i've been told the wiki isn't as important as the github docu too

@actorreno actorreno force-pushed the dev_ad5706r_spi_engine branch 2 times, most recently from f13d5ed to 9074378 Compare February 13, 2026 05:30
@actorreno
Copy link
Copy Markdown
Contributor Author

v2:

  • Applied minor corrections in index.rst from reviews
  • RTL was requested to remove PWM and DMA now that I used light version of SPI Engine
  •  - updated the block diagram to remove pwm/dma
    
  •  - removed some entries in the docu regarding the pwm/dma
    

@actorreno actorreno force-pushed the dev_ad5706r_spi_engine branch from 9074378 to 62e53d9 Compare February 16, 2026 00:06
@actorreno actorreno requested a review from gastmaier February 16, 2026 00:24
Comment thread projects/ad5706r/common/ad5706r_bd.tcl Outdated
ad_ip_instance axi_clkgen spi_clkgen
ad_ip_parameter spi_clkgen CONFIG.CLK0_DIV 1
ad_ip_parameter spi_clkgen CONFIG.VCO_DIV 10
ad_ip_parameter spi_clkgen CONFIG.VCO_MUL 1
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

spi_clkgen is set to output 10MHz which seems wrong. It should be configured to output the maximum frequency intended to be used by the design - usually 2x the max SPI SCLK frequency.
also check the parameter validity since not all combinations are valid. vivado will throw out a critical warning when they are not. right now you have the following:
[DRC AVAL-46] v7v8_mmcm_fvco_rule1: The current computed target frequency, FVCO, is out of range for cell i_system_wrapper/system_i/spi_clkgen/inst/i_mmcm_drp/i_mmcm. The computed FVCO is 50.000 MHz. The valid FVCO range for speed grade -1 is 600MHz to 1200MHz. The cell attribute values used to compute FVCO are CLKFBOUT_MULT_F = 5.000, CLKIN1_PERIOD = 10.00000, and DIVCLK_DIVIDE = 10 (FVCO = 1000 * CLKFBOUT_MULT_F/(CLKIN1_PERIOD * DIVCLK_DIVIDE)).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed and patterned to other SPI engine projects, basically VCO_MUL 8 and CLK0DIV 5 for 160 MHz setup

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clkgen issue is still present in latest commit

Comment thread projects/ad5706r/README.md Outdated
Comment on lines +3 to +4
- Evaluation board product page:
- [EVAL-AD5706RARDZ](https://analog.com/eval-ad5706r)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Evaluation board product page:
- [EVAL-AD5706RARDZ](https://analog.com/eval-ad5706r)
- Evaluation board product page: [EVAL-AD5706RARDZ](https://analog.com/eval-ad5706r)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since there is only one supported evaluation board, there's no need to create a bullet point list.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

edited

@actorreno actorreno force-pushed the dev_ad5706r_spi_engine branch from 62e53d9 to 8a94515 Compare February 18, 2026 01:42
@actorreno
Copy link
Copy Markdown
Contributor Author

v3:

  • Adjusted TCL for clk_gen
  • Edited README as suggested

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add this line to fix critical warning generated by unconnected input

ad_connect $hier_spi_engine/trigger GND

Comment thread projects/ad5706r/common/ad5706r_bd.tcl Outdated
ad_ip_instance axi_clkgen spi_clkgen
ad_ip_parameter spi_clkgen CONFIG.CLK0_DIV 1
ad_ip_parameter spi_clkgen CONFIG.VCO_DIV 10
ad_ip_parameter spi_clkgen CONFIG.VCO_MUL 1
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clkgen issue is still present in latest commit

@actorreno actorreno force-pushed the dev_ad5706r_spi_engine branch from 8a94515 to a5ad418 Compare April 10, 2026 02:51
The AD5706R devices are 4-channel, 16-/12-/10-bit resolution, low noise,
programmable current output, digital-to-analog converter (DAC) capable of
multiple operating modes and output current ranges with high power efficiency.
The family provides multiple programmable output current ranges up to 300mA.

Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com>
The AD5706R devices are 4-channel, 16-/12-/10-bit resolution, low noise,
programmable current output, digital-to-analog converter (DAC) capable of
multiple operating modes and output current ranges with high power efficiency.
The family provides multiple programmable output current ranges up to 300mA.

Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com>
@actorreno actorreno force-pushed the dev_ad5706r_spi_engine branch from a5ad418 to 7051431 Compare April 10, 2026 03:04
@actorreno
Copy link
Copy Markdown
Contributor Author

v4:

  • simplified architecture, does not use spi_engine anymore and related IPs.
  • removed mention of those IPs in documentation

This change is to reflect the linux driver and the discussed requirements that makes this
simplification acceptable

@actorreno actorreno requested a review from sarpadi April 10, 2026 03:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants