info@panadisplay.com
FT800-FT801 שעון פנימי זמירה

FT800-FT801 שעון פנימי זמירה

Nov 03, 2018

FT800-FT801 שעון פנימי זמירה


בקרי הווידאו FTDI FT800 ו- FT801 מציעים פתרון בעלות נמוכה עבור דרישות גרפיקה משובצות. בנוסף גרפיקה, מסך מגע תשומות פלט שמע לספק ממשק מלא מחשב האדם אל העולם החיצון.

הערה יישום זה יספק רצף התכנות על איך לקצץ את השעון הפנימי של השבב לדיוק גבוה יותר, כך יישומים יכולים לפעול ללא קריסטל חיצוני.

השימוש במכשירי FTDI בתמיכת חיים ו / או יישומי בטיחות הוא כולו בסיכון של המשתמש, והמשתמש מסכים להגן, לשפות ולהחזיק FTDI מזיק מכל וכל נזק, תביעות, תביעות או הוצאות הנובעות משימוש כזה.


1. הקדמה

ה- FT800 / FT801 פועל כמערכת SPI או I²C למעבד מערכת ראשי, ובכך מספק חוויית ממשק אנושית בעלות נמוכה, אך מלאה, על-ידי שילוב של עיבוד גרפיקה, חישת מסך מגע ויכולות שמע. הוא נשלט על פני רוחב פס נמוך או ממשק I2C המאפשר כמעט כל microcontroller לשמש.

ה- FT800 / FT801 תומך הן בשעון הפנימי והן בשעון החיצוני

פעולות. השעון הפנימי הוא מתנד הרפיה אשר יכול להיות trimmed על ידי לרשום עבור דיוק גבוה יותר, כך עבור יישומים רבים קריסטל חיצוני או שעון אינו נדרש.


2 מעגל שעון

מעגלי השעון FT800 / FT801 כוללים מקור שעון קלט ו- PLL. ניתן לבחור מקור שעון

בין מתנד הרפיה פנימי למתנד קריסטל 12MHz. PLL יכפיל את הקלט

שעון על ידי 4 (ברירת המחדל) כדי ליצור שעון מערכת 48MHz נומינלי, אשר לספק את השעון עבור כל פנימי

רישומים, זיכרונות ומעבדים.

השעון הפנימי מתנד הרפיה נע בין 4.46MHz ל 12.11MHz (untrimmed) והוא יכול להיות

מקוצץ על ידי כתיבה לרשום לקצץ (REG_TRIM). לאחר זמירה השעון יכול להגיע 12MHz ב

כוונון הדיוק של + / - 2.5%. התדר המכוון עשוי להשתנות בין + / - 3% בכל הפעלה

הטמפרטורה והמתח.

FT800 / FT801 יש 2 סיכות פלט אשר ניתן להשתמש בהם כדי לפקח ולחשב את שעון המערכת

תדירות. PCLK את הסיכה יהיה פלט שעון עם תדירות שווה fsys_clk / REG_PCLK

(REG_PCLK מתוכנת לערך אפסי). לדוגמה, נניח ש- REG_PCLK מתוכנת

ל 5, ואת תדר הפלט PCLK נמדדת ב 9.6MHz, במקרה זה fclk_sys = 5 *

9.6MHz = 48MHz.

לחלופין, fclk_sys ניתן לחשב על ידי מדידת תדר השעון על סיכת AUDIO_L. ה

אותות AUDIO_L יציאות PWM אות עבור אות אודיו מונו. התדר של אות PWM הוא

fclk_sys / 512. אם התדר הנמדד על סיכת AUDIO_L הוא 93.75kHz, ולאחר מכן fclk_sys = 512 *

93.75kHz = 48MHz.

מעגל השעון FT800 / FT801 מוצג באיור 2-1. עבור יישומים באמצעות הרפיה פנימית

שעון בלבד, הגביש החיצוני אינו נדרש. במקרה זה, הסיכה X1 / CLKIN תהיה קשורה ל- GND

ואת הסיכה X2 יישאר מחובר, כפי שמוצג באיור 2-2.

image

איור 2-1 FT800 / FT801 מעגל השעון

image

איור 2-2 חיבור השעון במצב פנימי

 

3 שעון רצף זמירה

תדר מתנד הרלקסציה הפנימי נקבע על ידי הערך RC של מעגל המתנד.

הנגד על שבב וקבל יש די שונות רחבה על פני תהליך רקיק. על ידי כוונון

את ערך RC יעיל באמצעות רושמים, ניתן לקצץ את תדר השעון עבור גבוה יותר

דיוק.

3.1 תיאור מרשם שימושי

ישנם מספר רושמים המעורבים ברצף זמירה השעון. סעיף זה מתאר

בפירוט את הפונקציה של אלה רושמים.

REG_TRIM

לרשומת החיתוך REG_TRIM יש 5 סיביות חוקיות [4: 0], המאפשרת 32 הגדרות לקצץ. ברירת מחדל

הוא 0. בעת הגדלת ערך לרשום לקצץ את הערך RC יעיל של ירידה מתנד, כך

כי תדר השעון עולה בהתאם.

REG_CLOCK

רישום זה של 32 סיביות סופר את מספר מחזורי השעון הראשי FT800 / FT801 מאז האיפוס. על ידי קריאה

זה להירשם, המארח MCU יכול לחשב את תדר השעון הראשי מבוסס על טיימר מדויק ב

את MCU.

REG_FREQUENCY

רשם זה של 32 סיביות מאחסן את הערך של תדר השעון הראשי הנוכחי. יש לעדכן את התוכנה

זה להירשם פעם חיתוך השעון הושלמה.

3.2 שיטת זמירה

במהלך ההפעלה באתחול, התוכנה יכולה לקצץ את שעון המתנד הפנימי

ערך רצוי. ערך היעד הוא 12MHz, כך שהשעון הראשי יופיע ב- 48MHz.

לאחר שבב הוא הכניס למצב פעיל, את השעון הפנימי, PLL, יהיה פועל ואת המערכת

השעון הראשי יהיה זמין. ה- REG_CLOC יתחיל לספור כל מחזור שעון ראשי. על ידי קריאה

את REG_CLOC פעמיים במרווח מוגדר (כלומר 1us מבוסס על שעון MCU או טיימר), את השעון הראשי

תדירות ניתן לחשב. אם התדר הנמדד נמוך מהיעד, הגדל את

הערך של REG_TRIM. חזור על פעולה זו עד התדר הנמדד הוא בתוך + / - 3%

תדירות היעד.

3.3 סדרות מפורטות

השלבים הבאים מספקים רצף תכנות מפורט לקצץ את השעון הפנימי.

.1 לאחר איפוס חומרה (הפעלה או הדלקה של סיכת PD_N), FT800 / FT801 נכנס ל - STANDBY

מצב. שעון מתנד הרפיה הפנימי נבחר כמקור השעון של PLL.

גם השעון הפנימי וגם ה- PLL מופעלים, אבל השעון הראשי אל לוגיקת הליבה הוא

כבוי.

2. להגדיר את השבב למצב פעיל על ידי ביצוע פעולה לקרוא דמה באמצעות ממשק המארח

(SPI או I2C).

.3 מדוד את תדר השעון הנוכחי

א. קרא את REG_CLOCK כ- t0

עיכוב 1us

c. קרא את REG_CLOCK בתור t1

ד. חישוב תדר השעון f = (t1-t0) / 1us

4. אם התדר הנמדד הוא פחות מ -48 מגה-הרץ - 3%, הגדל את רישום REG_TRIM ב -1

5. חזור על שלבים 3 ו -4 עד לתדר הנמדד הוא בתוך 48MHz +/- 3%, או

REG_TRIM כבר מגיע הערך המקסימלי של 31 (וזה לא סביר מאז זמירה

טווח מוגדר כדי להיות מסוגל לכוון את השעון אל היעד)

6. כתוב את התדר הנמדד הסופי ל- REG_FREQUENCY

להלן קוד C לדוגמה עבור זמירה השעון הפנימי, בשימוש על ידי יישום Gameduinuo 2:

/ ************************************************* *******

#define REG_CLOCK 0x102408

uint32_t GDClass :: measure_freq (void)

{

tigned ארוך t0 = GDTR.rd32 (REG_CLOCK);

() 15625;

tigned ארוך t1 = GDTR.rd32 (REG_CLOCK);

לחזור (t1 - t0) <>

}

#define REG_TRIM 0x10256C

#define REG_FREQUENCY 0x10240C

#define LOW_FREQ_BOUND 47040000UL

Void GDClass :: מנגינה (חלל)

{

ללא חתום i = 0;

uint32_t f;

עבור (בית i = 0; (i <31) &&="" ((f="measure_freq" ())="">

GDTR.wr (REG_TRIM, i);

GDTR.wr32 (REG_FREQUENCY, f);

}

מאז REG_TRIM יאפס ל 0 בכל פעם איפוס חומרה קורה, הוא נדרש לבצע

את השעון זמירה רצף בשגרת אתחול לאפס.