info@panadisplay.com
Retall intern del rellotge FT800-FT801

Retall intern del rellotge FT800-FT801

Nov 03, 2018

Retall intern del rellotge FT800-FT801


Els controladors de vídeo FTDI FT800 i FT801 ofereixen una solució de baix cost per als requisits de gràfics incrustats. A més dels gràfics, les entrades de pantalla tàctil i una sortida d'àudio proporcionen una interfície completa de màquina humana al món exterior.

Aquesta nota d'aplicació proporcionarà una seqüència de programació sobre com retallar el rellotge intern del xip per obtenir una major precisió perquè les aplicacions es puguin executar sense un cristall extern.

L'ús de dispositius FTDI en aplicacions de suport vital o de seguretat és totalment a risc de l'usuari, i l'usuari es compromet a defensar, indemnitzar i mantenir intactes els FTDI contra qualsevol dany o perjudici, reclamació, demanda o despesa resultant d'aquest ús.


1. Introducció

El FT800 / FT801 opera com un perifèric SPI o I²C a un processador del sistema principal, oferint així una experiència d'interfície humana de baix cost, però completa, mitjançant la incorporació de la representació de gràfics, la detecció de la pantalla tàctil i les capacitats d'àudio. Es controla a través d'una interfície d'amplada de banda baixa SPI o I2C que permet utilitzar pràcticament qualsevol microcontrolador.

El FT800 / FT801 admet rellotge intern i rellotge extern

operacions El rellotge intern és un oscil·lador de relaxació que es pot retallar per un registre per obtenir una major precisió, de manera que per a moltes aplicacions no és necessari un cristall extern o un rellotge.


2 Circuit del rellotge

Els circuits de rellotge FT800 / FT801 inclouen la font de rellotge d'entrada i PLL. Es pot seleccionar la font del rellotge

entre l'oscil·lador de relaxació intern i l'oscil·lador de cristall de 12MHz. El PLL multiplicarà l'entrada

rellotge de 4 (per defecte) per generar un rellotge nominal de 48MHz, que subministra el rellotge per a tots els interns

registres, records i processadors.

El rellotge d'oscil·lador de relaxació intern oscil·la entre els 4,46 MHz i els 12,11 MHz (no tallat) i pot ser

retallat per escrit al registre de retall (REG_TRIM). Després de retallar, el rellotge pot arribar als 12MHz a

la precisió de sintonia de +/- 2,5%. La freqüència sintonitzada pot variar entre +/- 3% en funcionament

temperatura i voltatges.

El FT800 / FT801 té 2 pins de sortida que es poden utilitzar per monitoritzar i calcular el rellotge del sistema

freqüència. El pin fora de PCLK mostrarà un rellotge amb la seva freqüència igual a fsys_clk / REG_PCLK

(REG_PCLK programat sense valor zero). Per exemple, assumeixi que REG_PCLK està programat

a 5, i la freqüència de sortida PCLK es mesura a 9.6MHz, en aquest cas el fclk_sys = 5 *

9.6MHz = 48MHz.

Alternativament, fclk_sys es pot calcular mesurant la freqüència de rellotge en el pin AUDIO_L. El

AUDIO_L pin emet senyal PWM per al senyal d'àudio mono. La freqüència del senyal PWM és

fclk_sys / 512. Si la freqüència mesurada en el pin AUDIO_L és 93.75kHz, llavors fclk_sys = 512 *

93.75kHz = 48MHz.

El circuit de rellotge FT800 / FT801 es mostra a la figura 2-1. Per a aplicacions que utilitzen la relaxació interna

només el rellotge, el cristall extern no és obligatori. En aquest cas, el pin X1 / CLKIN estarà vinculat a GND

i el pin X2 no s'ha de connectar, com es mostra a la Figura 2-2.

image

Figura 2-1 Circuit de rellotge FT800 / FT801

image

Figura 2-2 Connexió interna del pin de mode de rellotge

 

3 Seqüència de retall de rellotge

La freqüència d'oscil·lador de relaxació interna està determinada pel valor RC del circuit oscil·lador.

La resistència i el condensador en xip tenen una variància molt àmplia a través del procés d'oblea. En sintonia

el valor de RC efectiu a través dels registres, és possible retallar la freqüència del rellotge per a majors

precisió.

3.1 Registre útil de registre

Hi ha diversos registres implicats en les seqüències de retall de rellotge. Aquesta secció descriu

en detall la funció d'aquests registres.

REG_TRIM

El REG_TRIM registrador de retallat té 5 títols vàlids Trim [4: 0], que permet una configuració total de 32 ajustos. Per defecte

és 0. Quan s'incrementa el valor de registre de retall, el valor de RC efectiu de l'oscil·lador disminueix, de manera que

que la freqüència del rellotge augmenta en conseqüència.

REG_CLOCK

Aquest registre de 32 bits explica el nombre de cicles de rellotge principals FT800 / FT801 des que es va restablir. En llegir

aquest registre, l'MCU host pot calcular la freqüència de rellotge principal basada en el temporitzador precís a

la MCU.

REG_FREQUENCY

Aquest registre de 32 bits emmagatzema el valor de la freqüència de rellotge principal actual. El programari necessita actualitzar-se

aquest es registra un cop finalitzada la retallada del rellotge.

3.2 Mètode de retall

Durant el procés d'inicialització, el programari pot retallar el rellotge de l'oscil·lador de relaxació intern al

valor desitjat. El valor objectiu és 12MHz, de manera que el rellotge principal funcionarà a 48 MHz.

Una vegada que el xip es posa al mode actiu, el rellotge intern, PLL, s'executarà i el sistema

el rellotge principal estarà disponible. El REG_CLOCK començarà a comptar tots els cicles principals del rellotge. En llegir

el REG_CLOCK dues vegades en un interval definit (és a dir, 1 segons el rellotge o temporitzador MCU), el rellotge principal

es pot calcular la freqüència. Si la freqüència mesurada és inferior a la del blanc, augmenteu la velocitat

valor de REG_TRIM. Repetiu aquesta operació fins que la freqüència mesurada estigui entre +/- 3% de la

freqüència de destinació.

3.3 Seqüències detallades

Els passos següents proporcionen una seqüència de programació detallada per retallar el rellotge intern.

1. Després d'un reset del maquinari (encès o alternant el pin PD_N), el FT800 / FT801 entra a STANDBY

mode. El rellotge d'oscil·lador de relaxació intern es selecciona com a font de rellotge del PLL.

Tant el rellotge intern com el PLL estan activats, però el rellotge principal de la lògica del nucli és

Apagat.

2. Establiu el xip al mode ACTIVE fent una operació de lectura simulada a través de la interfície de l'ordinador

(SPI o I2C).

3. Mida la freqüència de rellotge actual

a. Llegeix REG_CLOCK com t0

b. Retard 1o

c. Llegeix REG_CLOCK com t1

d. Calcula la freqüència de rellotge f = (t1-t0) / 1us

4. Si la freqüència mesurada f és inferior a 48MHz - 3%, augmenta el registre REG_TRIM per 1

5. Repetiu els passos 3 i 4 fins que la freqüència mesurada estigui a 48 MHz +/- 3% o la

REG_TRIM ja arriba al valor màxim de 31 (el que és improbable des de la retallada

es defineix el rang per poder ajustar el rellotge a l'objectiu)

6. Escriviu la freqüència mesurada final f a REG_FREQUENCY

A continuació es mostra el codi C de mostra per a la retallada del rellotge intern, usat per l'aplicació Gameduinuo 2:

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

#define REG_CLOCK 0x102408

uint32_t GDClass :: measure_freq (void)

{

sense signe llarg t0 = GDTR.rd32 (REG_CLOCK);

demoraMicrosegons (15625);

sense signe llarg t1 = GDTR.rd32 (REG_CLOCK);

retorn (t1 - t0) <>

}

#define REG_TRIM 0x10256C

#define REG_FREQUENCY 0x10240C

#define LOW_FREQ_BOUND 47040000UL

void GDClass :: tune (void)

{

cares sense signar i = 0;

uint32_t f;

per (byte i = 0; (i <31) &&="" ((f="measure_freq" ())="">

GDTR.wr (REG_TRIM, i);

GDTR.wr32 (REG_FREQUENCY, f);

}

Atès que REG_TRIM es restablirà a 0 cada vegada que es produeixi un restabliment del maquinari, s'ha de realitzar

la seqüència de retall de rellotge en la rutina d'inicialització de la restauració.