Bosh sahifa > Yangiliklar > Kontent

FT800-FT801 Ichki soatni kesish

Nov 03, 2018

FT800-FT801 Ichki soatni kesish


FTDI FT800 va FT801 video nazorat qilish qurilmalari ko'milgan grafik talablari uchun arzon narxlardagi echimlarni taklif etadi. Grafika bilan bir qatorda, sensorli ekranli kirishlar va audio chiqishi tashqi dunyoga to'liq insonparvar mashinalar interfeysi bilan ta'minlaydi.

Ushbu ilova nizomi dasturlarning tashqi kristalsiz ishlashi uchun chipning ichki soatini qanday qilib yuqori aniqlikda tayyorlash bo'yicha dasturiy tartibini beradi.

FTDI qurilmalarini hayotiy qo'llab-quvvatlash va / yoki xavfsizlik ilovalarida foydalanish butunlay foydalanuvchining xavf-xataridadir va foydalanuvchi FTDIni bunday foydalanish natijasida kelib chiqqan har qanday zarardan, da'volardan, da'volardan yoki xarajatlardan himoyalashni kafolatlaydi.


1.Kirish

FT800 / FT801 bir asosiy tizim protsessori uchun SPI yoki I2C atrof-muhit birligi sifatida ishlaydi, shuning uchun grafik ishlov berish, sensorli ekranni sezgirlik va audio qobiliyatlarni birlashtirib, arzon, ammo to'liq, inson interfeysi tajribasini taqdim etadi. Bu, past tezlikli SPI yoki I2C interfeysi orqali boshqariladi, bu amalda har qanday mikrokontrolratorni ishlatishi mumkin.

FT800 / FT801 ichki soat va tashqi soatni qo'llab-quvvatlaydi

operatsiyalar. Ichki soat - bu juda ko'p aniqlik uchun tashqi kristalli yoki soatga talab qilinmaydi, shuning uchun yuqori aniqlik uchun registr bilan kesilishi mumkin bo'lgan gevşeme osilatörüdür.


2 soat davri

FT800 / FT801 soat sxemalari kirish soati manbai va PLL ni o'z ichiga oladi. Soat manbai tanlanishi mumkin

ichki gevşeme osilatörü va 12MHz kristalli osilatör orasida. PLL usuli ko'payadi

soatni 4 ga (odatiy) 48MHz nominal tizim soatini ishlab chiqaradi

yozuvlar, xotiralar va protsessorlar.

Ichki gevşeme oscillator soati, 4.46MHz dan 12.11MHz'e qadar (ishlab chiqarilgan) va

(REG_TRIM) trim registriga yozish orqali kesilgan. Soat kesilganidan keyin soat 12 MGts ga yeta olishi mumkin

+/- 2,5% sozlashning aniqligi. Sozlangan chastota ish sharoitida +/- 3% gacha o'zgarishi mumkin

harorat va kuchlanish.

FT800 / FT801 tizim soati monitoringi va hisoblash uchun ishlatilishi mumkin bo'lgan 2 chiqish piniga ega

chastota. PCLK pinining chastotasi fsys_clk / REG_PCLK ga teng bo'lgan bir soat chiqadi

(REG_PCLK hech qanday nol qiymatga dasturlashtirilgan). Masalan, REG_PCLK dasturlashtirilgan deb hisoblanadi

5 va PCLK chiqish chastotasi 9,6MHz da o'lchanadi, bu holda fclk_sys = 5 *

9.6MHz = 48MHz.

Shu bilan bir qatorda, fclk_sys AUDIO_L pinida soat chastotasini o'lchash yo'li bilan hisoblash mumkin. Ushbu

AUDIO_L PIN mono tovush signali uchun PWM signalini chiqaradi. PWM signalining chastotasi

fclk_sys / 512. Agar AUDIO_L pinidagi o'lchagan chastotalar 93.75kHz bo'lsa, fclk_sys = 512 *

93.75kHz = 48MHz.

FT800 / FT801 soat davri, shakl 2-1 da ko'rsatilgan. Ichki yengillikni qo'llagan dasturlar uchun

faqat soat, tashqi kristall shart emas. Bunday holatda X1 / CLKIN pin GND ga ulanishi kerak

va shakl 2-2 da ko'rsatilganidek, X2 pinini ajratilmaydi.

image

Shakl 2-1 FT800 / FT801 soat davri

image

Shakl 2-2 ichki soat rejimi pin aloqasi

 

3 soatni tozalovchi tartib

Ichki gevşeme osilatör chastotasi osilatör devresinin RC qiymati bilan aniqlanadi.

On-chip qarshiligi va kondansatör gofret jarayonida juda katta farq bor. Tuning

ro'yxatga olish vositalaridan samarali RC qiymati, soat chastotasini yuqori darajaga olib tashlash mumkin

aniqlik.

3.1 Foydali Registratsiya Tavsifi

Soat rejalashtirish tartibida ishtirok etgan qator registrlar mavjud. Ushbu bo'limda tasvirlanadi

batafsil ravishda ushbu ro'yxatga olish funktsiyalari.

REG_TRIM

REG_TRIM trim registri 5 ta joriy bitga ega [4: 0], bu esa umumiy 32 trim sozlamalarini beradi. Standart

trim registr qiymatini oshirishda osilatorning samarali RC qiymati kamayadi

soat chastotasi mos ravishda ortadi.

REG_CLOCK

Ushbu 32-bitli registr FT800 / FT801 asosiy soatlarning dastlabki davrlarini tiklaydi. O'qish

ushbu ro'yxatga olish jarayonida asosiy MCU asosiy taymer chastotasini aniq timer asosida hisoblashi mumkin

MCU.

REG_FREQUENCY

Ushbu 32-bitli reestrda joriy asosiy soat chastotasining qiymati saqlanadi. Dasturiy ta'minot yangilanishi kerak

soat registri tugallangandan so'ng bu ro'yxatga olish.

3.2 Trimming usuli

Quvvatni ishga tushirish vaqtida dasturiy ta'minot ichki damlamani osilator vaqtini kesishi mumkin

kerakli qiymat. Maqsad qiymati 12 MGts, shuning uchun asosiy soat 48 MGts da paydo bo'ladi.

Chip faol rejimga kiritilganidan so'ng, ichki soat, PLL va tizim ishga tushadi

Asosiy soatlar mavjud bo'ladi. REG_CLOCK har bir asosiy soat siklini hisoblashni boshlaydi. O'qish

REG_CLOCK belgilangan vaqt oralig'ida ikki marotaba (ya'ni, MCU soatiga yoki taymerga asoslangan holda), asosiy soat

Chastotani hisoblash mumkin. Agar o'lchanadigan chastotalar maqsaddan past bo'lsa, uni oshiring

REG_TRIM qiymati. Ushbu operatsiyani o'lchanadigan chastotaning +/-% 3 qismigacha takrorlang

maqsad chastotasi.

Batafsil detallar 3.3

Quyidagi qadamlar ichki soatni kesish uchun batafsil dasturlash tartibini ta'minlaydi.

1. Apparatni qayta tiklashdan so'ng (PD_N pinini yoqish yoki almashtirish) FT800 / FT801 STANDBY

rejimi. Ichki yengillik oscillator soati PLLning soat manbai sifatida tanlanadi.

Ichki soat va PLL ham yoqadi, lekin yadro mantiqiga asosiy soatlardir

o'chirilgan.

2. Xotira interfeysi orqali o'qish jarayonini amalga oshirish orqali chipni aktiv rejimga o'rnating

(SPI yoki I2C).

3. Joriy soat chastotasini o'lchash

a. T0 sifatida REG_CLOCK o'qing

b. Kechikish 1us

v. REG_CLOCKni t1 deb o'qing

g. Soat chastotasini hisoblang f = (t1-t0) / 1us

4. Agar o'lchash chastotasi f 48MHzdan kam bo'lsa - 3% bo'lsa REG_TRIM registrini 1 ga oshiring

5. O'lchagan chastotalar 48MHz +/- 3% oralig'ida bo'lguncha yoki 3 va 4-bosqichlarni takrorlang

REG_TRIM 31 maksimal qiymatiga yetadi (tuzatish vaqtidan buyon mavjud bo'lmagan)

soatni maqsadga sozlash uchun belgilanadi)

6. REG_FREQUENCY ga oxirgi chastotali chastotani yozing

Quyida Gameduinuo 2 ilovasi tomonidan ishlatiladigan ichki soatni tiklash uchun namunaviy kod mavjud:

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

REG_CLOCK 0x102408-ni tanlang

uint32_t GDClass :: measure_freq (void)

{

imzosiz uzun t0 = GDTR.rd32 (REG_CLOCK);

kechiktirishMikrosekundlar (15625);

imzosiz uzun t1 = GDTR.rd32 (REG_CLOCK);

qaytish (t1 - t0) <>

}

REG_TRIM 0x10256C ni tanlang

REG_FREQUENCY 0x10240C-ni tanlang

#Define LOW_FREQ_BOUND 47040000UL

void GDClass :: tune (void)

{

Belgilangan char i = 0;

uint32_t f;

(bayt i = 0; (i <31) &&="" ((f="o'lchami_freq" ())="">

GDTR.wr (REG_TRIM, i);

GDTR.wr32 (REG_FREQUENCY, f);

}

REG_TRIM har safar apparatni tiklashni boshlaganida 0 holatiga qaytganda, uni bajarish kerak bo'ladi

reset boshlash rutinindeki soatni ajratish tartibi.