2003-08-21 10:27 PM
DCLK PLL Calculations on Consumer II (C5) / Atlas
2003-08-21 07:29 AM
Hello Friends,
Today I spend a lot of time to investigate how exactly to calculate values for DCLK registers (0x42-0x43) on Consumer II and Atlas. It seems that entire chapters 13 in C4pm.pdf and 13 in a1pm.pdf come from another age. May be, even if they are accurate, are cut-and-past from some older docs? Based on information from that pages, I can’t recalculate from default values (0x76, 0x95) frequency 18MHz…see. p.240-241 on c4pm.pdf and p.302-303 on a2pm.pdf From STPC-KIT libhard I extract procedure HWCRTC_GetRegistersFromDotClock (read: calculate registers for given frequency ). From that procedure is very clear that STPC have two different technologies named HCMOS6 and HCMOS7, and DCLK registers are completely incompatible in this two versions – formulas and bits positions. Because I can’t find even a word about HCMOS technology in Data Sheets nor Programming Manual for both Consumer and Atlas, I just try both branches in calculation procedure. I am using Atlas based PC104 from Ampro. Reading from working registers give me values of 0x74/0xc5. Using branch of GetRegistersFromDotClock for HCMOS7, I receive values 0x73 and 0xc5 which seems very close. Probably another friendly mistake? This difference (from 0x73 to 0x74) adds 1 to P, which means division of the frequency by 2! So, which one is true: PDF, SDK or running system? Guess again… Did somebody encountering same problem? Where I can find any documented method for calculations? Regards, vess2003-08-21 08:56 PM
HCMOS are the different versions of manufacturing technology:
HCMOS6 = 0.35u = STPC Client, STPC Consumer, STPC Consumer-S and STPC Industrial HCMOS7 = 0.25u = STPC Elite, STPC Consumer-II and STPC Atlas HCMOS8 = 0.18u = STPC Vega In the STPC Kit algorithm, you must concider this for the Atlas: HWGENERIC_HAS_HCMOS6PLL is false HWGENERIC_HAS_HCMOS7NEWPLL is true The STPC Kit is used by most of the graphics drivers provided by ST (WinCE, WinNT and Linux) and you can use it as the reference. When I use it in my platform: HWCRTC_GetRegistersFromDotClock(25180000); I get 0x74/0xc5???... I didn't succeed to reproduce your 0x73/0xc5 so it is coherent with the value you get from the hardware. You can find in attachment my version of algorithm which correspond to the version from HWCRTC_GetRegistersFromDotClock after replacing the define. Farfalla ________________ Attachments : pllatlas.txt : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HtsY&d=%2Fa%2F0X0000000aYH%2FpWEUjqjy..zWZyN_qWySCw1iHUpbcpyVPoSmMpO1._I&asPdf=false2003-08-21 10:27 PM
Thank you Farfalla for fast and prompt reply. I found the mistake in my procedure due to your file.
vess