-
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
ADC Reset #44
Conversation
We name the file the same as the uhal module, but shorten it to fmc250m everywhere else.
# combining state with fmc_adc_common | ||
record(bi,"$(P)$(R)ClksLocked-Mon"){ | ||
field(DESC, "state of PLL and MMCM clocks") |
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.
We implement this record in fmc_active_clk because the MMCM clock always exists, but the AD9510 PLL clock is only available if the fmc_active_clk module is present.
This means such PV won't abstract away the existence of two states, right? If fmc_active_clk
module is not present, users will have to rely on MMCMLocked-Mon
to know if it is locked.
I assume this such situation will happen for different boards, so we don't bother about it. Is that it?
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.
Commit message updated to address this.
Looking at only the PLL or MMCM clock status is not enough to fully represent the status of the BPM clock chain. We implement this record in fmc_active_clk because the MMCM clock always exists, but the AD9510 PLL clock is only available if the fmc_active_clk module is present. All of our boards have an active clock, so we don't take boards without it into account for now.
Using this module, we implement a feature to automatically reset the relevant devices (ISLA216p ADCs and FPGA MMCM) when there is a transition from the device clocks being "not_locked" to "locked". This situation can happen during board startup, when the ADCs receive no clock signal, and can only be properly reset after they start receiving it; and during operation, if the clock reference is lost, making it necessary to reset the ADC and MMCM in order to guarantee stable behavior from them.
No description provided.