I guess what we want to find is the test that takes the least amount of time.
I am really curious to see what you come up with regarding eLCD and generalt display stuff. I understand that you possess much knowledge about that stuff.This is why I made my code automatically use DQS for any frequency above 133MHz... it's guaranteed not to work otherwise, so why make it an option.
Cap Value | 13 test result in seconds | Errors found | 57 test result in seconds | Errors found | 57 test with 100 reReads in seconds | Errors found |
15 pF | 10,08 | 0 | 84,44 | 0 | 2439.02 | 0 |
18 pF | 10,08 | 0 | 84,44 | 0 | 2439.02 | 0 |
Wow even higher then 221MHz, I don't think the sketch supports higher. I am unsure.Zero errors found on all tests (including the test with no capacitor soldered) means a higher frequency is needed.
The code is on my github, with instructions in the elcdif_vga example describing how to build the R2R ladder for VGA output (except the pin numbers are still for Teensy 4.1 since there's no equivalents for micromod)... I'm not hoarding it by any means, the LCD register field definitions were already added to the core to make them more usable.I am really curious to see what you come up with regarding eLCD and generalt display stuff. I understand that you possess much knowledge about that stuff.
Sorry was busy with working the camera showed - trying to get camera working with FlexIO.I think that noCap set to true, means that the cap is there. Atleast from the tests I'm doing. It works at 221MHz. So I will continue as such.
uint32_t noCap = true; // "false" if a capacitor is present on pin EMC_39
But it's wrong. With that set to FALSE, all tests fail with all capacitors.Nope. noCap is just what is says no Cap is present on the board - comment next to says it:
Rich (BB code):uint32_t noCap = true; // "false" if a capacitor is present on pin EMC_39
Cap Value | 13 test result in seconds | Errors found | 57 test result in seconds | Errors found | 57 test with 100 reReads in seconds | Errors found |
15 pF | 10,08 | 0 | 84,44 | 0 | 2439.02 | 0 |
18 pF | 10,08 | 0 | 84,44 | 0 | 2439.02 | 0 |
Actually I believe you can go up to 166 or 198 without the cap - but its a good ideaThis is why I made my code automatically use DQS for any frequency above 133MHz... it's guaranteed not to work otherwise, so why make it an option.
Will make that change right now - and you are right.I am performing tests with the highest speed of 221MHz, altho Paul says that we should go higher. So what other speeds can we do?
I suggest changing the name of noCap to "UseDQS" where TRUE is with Capacitor present and FALSE is without.
if(NOCAP == 1) {
SEMC_MCR |= SEMC_MCR_MDIS | SEMC_MCR_CTO(0xFF) | SEMC_MCR_BTO(0x1F) | SEMC_MCR_DQSMD;
} else { // enable SEMC_MCR_DQSMD (EMC_39
SEMC_MCR |= SEMC_MCR_MDIS | SEMC_MCR_CTO(0xFF) | SEMC_MCR_BTO(0x1F);
}
Without a capacitor yes, but the control register must have DQSMD set in those cases. If it's not set there is no chance of those speeds working no matter if the pin is floating or connected to anything.Actually I believe you can go up to 166 or 198 without the cap - but its a good idea
I should stick with what works for now and finish the tests. It will take it's time. But once that's done I can test!@Dogbone06
Changes made!!! Can you give it a try
thanks - probably worked because the test was wrong.Without a capacitor yes, but the control register must have DQSMD set in those cases. If it's not set there is no chance of those speeds working no matter if the pin is floating or connected to anything.
If CCM_CBCDR_SEMC_CLK_SEL and CCM_CBCDR_SEMC_ALT_CLK_SEL are both cleared in CCM_CBCDR, the base clock (before CCM_CBCDR_SEMC_PODF is applied) is the CPU clock*. So you can use that with dividers to get other frequencies... but the downside is it also changes the CPU clockspeed.
As examples, CPU set to 720MHz divided by 3 (SEMC_PODF = 2) gives 240MHz. Or 600Mhz / 2 would be 300Mhz.
(* as long as AHB_PODF is 0, which it nearly always is except for very low CPU speeds.)
uint32_t speed = 198; // 133, 166, 198, 221
uint32_t useDQS = true; // "false" if a capacitor is not present on pin EMC_39
Clock | 13 test result in seconds | Errors found | 57 test result in seconds | Errors found |
166 | 12.7 | 0 | 93.38 | 0 |
198 | 11.04 | 0 | 87.37 | 0 |
221 | 10.08 | 0 | 84.44 | 131 |
Clock | 13 test result in seconds | Errors found | 57 test result in seconds | Errors found |
133 | 15.4 | 0 | 102.98 | 0 |
166 | 12.7 | 0 | 93.38 | 22,145,853,510 |
Saw that in your stuff that was the only reason didn't add that to the lib.but the downside is it also changes the CPU clockspeed
I want to go above 221MHz, I did a dirty test with 15pF cap and raised the NXP MHz to 720, it worked, but at 816MHz it gave errors.Saw that in your stuff that was the only reason didn't add that to the lib.