Matthew Guthaus
02/15/2023, 8:03 PMgatecat
02/15/2023, 8:18 PMTim Edwards
02/15/2023, 8:24 PMpowerup_sequence()
routine.
For the configuration, please post some code and I can check it to see if the configuration is valid. As @gatecat mentions, if you are trying to run more than about 1MHz, then the default output type, which has a slow fall time, may fail to reach a low logic value. Otherwise, it's probably a configuration issue.Matthew Guthaus
02/15/2023, 8:36 PMgatecat
02/15/2023, 8:38 PMMatthew Guthaus
02/15/2023, 8:38 PMTim Edwards
02/15/2023, 8:45 PMjeffdi
02/15/2023, 8:45 PMMatthew Guthaus
02/15/2023, 8:46 PMjeffdi
02/15/2023, 8:46 PMTim Edwards
02/15/2023, 8:47 PMgpio_config_builder.py
for user configuration. The key is to maximize the shortest run of zeros in the entire configuration. You will only be able to get a run of zeros of length N past (N - 1) dependent hold violations. Any more than that, the number of extra 1s that have to be added collides with the neighboring configuration word.
The current definition for C_USER_* bit configurations includes things like 0110000000010
for C_USER_OUT. Put two of those in neighboring channels, and your shortest run of zeros is two, meaning that you can get that configuration only through one dependent hold violation before it stops working.
Fortunately, since the user side interface is a three-pin bidirectional inteface, most of the configuration word doesn't even affect how the user project generates or accesses data. The only exceptions are the management enable bit (must be 0
for any user mode), and the 3-bit output mode. I would advise that C_USER_IN_NP
be set to 0010000000000
and C_USER_OUT
be set to 0110000000000
. User weak pull-up and weak pull-down input modes can be left as-is (but require that the user has understood that these modes require driving the output, which they will need to have done appropriately in their design). The abovementioned definitions will survive through a series of nine dependent hold violations. The output mode will have a weak pull-down, and users who need a >1MHz output should get in touch with us on how to arrange the configuration to make that happen.