-
Notifications
You must be signed in to change notification settings - Fork 0
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
FMC250M_4CH support #39
Merged
Conversation
This file contains 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
ericonr
force-pushed
the
fmc250
branch
2 times, most recently
from
July 11, 2024 19:53
022fb2e
to
b6034c7
Compare
This module needs to be instantiated before the eventual AD9510 module, so the fmc_active_clk constructor runs first and stops resetting the IC, allowing its startup routine to run.
Should MMCMRst be connected in some way to PllStatus?
This module should have the ASYN_CANBLOCK flag, since its implementation library blocks when accessing the device. This is not critical, however, since the main time when it receives write requests is during iocInit. We need to handle read_startup_regs() specially, since some AFC BPM boards don't have both FMCs installed, so we can't throw an exception and abort the IOC in case initializing the missing device fails. This doesn't cover the case when the core never stops being busy, where initialization simply stops, but it at least allows the IOC to startup when that doesn't happen.
It was necessary to add an alias for INFOClkFreq, because the old IOC had a mechanism to enable ADCSi57xFreq to follow the value of INFOClkFreq. Since this mechanism isn't necessary for us, we can simply omit it, and just make both PVs available for legacy clients, which depend on the value of INFOClkFreq.
This module should have the ASYN_CANBLOCK flag, since its implementation library blocks when accessing the device.
Use a bpm_single.req file for all discrete modules, instead of having them directly in bpm_common.req.
Though these modules are related to features of the FMC250M_4CH hardware, the actual fmc250m_4ch core isn't included at the moment, since we don't use any of its exposed features.
Also add the autosave .req files.
These records document the ratios between the available acquisition rates. They must be configured after the IOC is brought up, in order to have the right value for the hardware the IOC is connected to.
Using a CP link with the last input to be updated is a valid strategy, because once it generates a callback we know for sure that the new values have already been copied to the other records, even if they haven't finished processing [1]. [1] https://epics.anl.gov/tech-talk/2024/msg00837.php
This polynomial correction is reponsible for applying the non-linear correction to the beam's X, Y, Sum and Q values. Differently from the correction applied in bpm-epics-ioc, which requires that the polynomial coefficients include the gains in order to reach the correct magnitude, we use dimensionless coefficients, and apply the gain and offset as a last step.
ericonr
force-pushed
the
fmc250
branch
2 times, most recently
from
September 19, 2024 20:50
a698db3
to
006f0f1
Compare
The polynomial correction has been verified with the beam, for now. It was necessary to add initialization of prec so all pointers were null, since the function now takes more parameters.
The autosave file was missing most channels.
The flags were switched. tapfiles should use -j to run tests in parallel, test-results should use -s so only the actual test results show up on screen.
This package is no longer necessary.
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.
No description provided.