-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Ad4630x refactor #1964
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
caosjr
wants to merge
3
commits into
main
Choose a base branch
from
ad4630x_refactor
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Ad4630x refactor #1964
+5,771
−5,276
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 tasks
8f1792e to
d3be203
Compare
Separates the 1CH (AD4030) HDL support from the 2CH (AD4630) support. Previously, whenever 1CH was used it was necessary to throw away half of the data because the project was always expecting 2 channels for the ADC. Updated the XDC files for each supported mode considering how the amount of channels the ADC. Also updated the tcl script variables, now there is a NUM_OF_CHANNEL, updated the NUM_OF_SDI to LANES_PER_CHANNEL, and inserted INTERLEAVE_MODE variable. NO_REORDER became an internal compilation variable that is enabled according to the combination NUM_OF_CHANNEL, LANES_PER_CHANNEL and INTERLEAVE_MODE. Setting INTERLEAVE_MODE to 1 with unsupported configuration throws an error. Inserts a GPIO to drive CNV pin in parallel with the PWM. The CNV pin is an "or" function of the GPIO[36] and PWM. Updated examples in the README FILE. Signed-off-by: Carlos Souza <carlos.souza@analog.com>
d3be203 to
2184bef
Compare
Updated the documentation with the new variables and features of the AD4630_FMC project. It is describing how to compile with the NUM_OF_CHANNEL, LANES_PER_CHANNEL, and INTERLEAVE_MODE. It also describes the EMIO inserted for controlling the CNV output. Signed-off-by: Carlos Souza <carlos.souza@analog.com>
2184bef to
7641442
Compare
LBFFilho
reviewed
Nov 27, 2025
Contributor
LBFFilho
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, builds fine, makes parametrization nicer, and fixes the weird usage for 1ch.
A few minor comments only.
Signed-off-by: Carlos Souza <carlos.souza@analog.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the TCL scripts for generating the correct controller for 1-channel or 2-channel ADC. In that manner, the programmer does not have to select the useful data when it is using a single channel ADC.
For that, it was added NUM_OF_CHANNEL and LANES_PER_CHANNEL variables. Interleave mode is now available under the INTERLEAVE_MODE variable, which only works with NUM_OF_CHANNEL=2 and LANES_PER_CHANNEL=1. NO_REORDER is an internal variable now that is enabled according to the configuration set.
Added GPIO support for CNV so the software can control the CNV in parallel with the PWM core.
Updated the testbench for those new features: https://github.com/analogdevicesinc/testbenches/tree/ad4630_update
Updated the documentation for describing the new features.
PR Type
PR Checklist