3 Prenos podataka
FT800 podržava zajedničku šemu komunikacije podataka, bez obzira na to da li SPI ili I2C
odabran je interfejs.
FT800 koristi 4MB adresnog prostora za registre grafičkih, dodirnih i audio kontrolera, kao i
Memorijski baferi za upotrebu sa svakim kontrolerom. Kartica memorije je definisana u Poglavlju 5
FT800 Datasheet.
Domaćin čita i piše FT800 adresni prostor koristeći SPI ili I²C transakcije. Ovo
transakcije su definisane kao čitanje memorije, memorisanje i pisanje naredbe kao što je opisano u
sledeće sekcije.
Oba interfejsa koriste isti bajtni nalog. Više bajtova se šalju kao "Little Endian". Za
primjer, REG_FREQUENCY registar ima podrazumevanu vrijednost 0x02DC6C00 nakon resetovanja. Kada
čitajući ovu vrijednost, redosled bajtova na MCU sučelju je: 0x00, 0x6Ch, 0xDC, 0x02.
SPI podaci se šalju po najznačajnijem bitnom prvom, nulu režima.
I²C transakcije su enkapsulirane u I²C protokolu.
Za SPI operaciju, svaka transakcija počinje sa SS_N-om, a završava se kada SS_N ide visoko.
Nema ograničenja u dužini podataka unutar jedne transakcije, sve dok su memorijske adrese
kontinuirano.
Pristup adresnom prostoru se vrši preko tri komande interfejsa:
Host Memory Memory Read
Host Memory Memory Write
Host Command Write
Ne postoji čitanje naredbe.
-3.1 Čitanje Host Memory-a
Za transakciju čitanja SPI memorije, host piše dva nula bitova, a zatim 22-bitnu adresu
i lažni bajt. Nakon lažnog bajta, FT800 odgovara na svaki bajt domaćina sčitanim podacima
bajtova.
Tabela 3.1 FT800 Pročitajte podatke o memoriji preko SPI-a
"X" = ne zanima me, obično je postavljeno na 0.
Tokom vremena čita se sa FT800 na MISO signalu, aktivnost na MOSI signalu
se zanemaruje.
Za I2C memoriju čitanja memorije, bajtovi se pakuju u I2C protokol kao što slijedi. Lutka
bajt nije potreban:
-3.2 Write Host Host
Za transakciju zapisivanja SPI memorije, host piše jedan bit, nakon čega sledi nulti bit, a zatim sledi
22-bitnu adresu, a zatim slijedi podaci za pisanje. Svi podaci se emituju jednim odabirom čipa.
Imajte na umu da nema baze podataka između adrese i podataka za pisanje.
Tokom vremena podaci se upisuju na FT800 na MOSI signal, aktivnost na MISO signalu
se zanemaruje.
Za I2C memoriju za pisanje memorije, bajtovi se pakuju u I2C protokol na sledeći način:
-3.3 Host Command Write
Za SPI zapis komande za pisanje zapisa, host piše nulti bit, a zatim jedan bit,
zatim 5-bitna naredba, a zatim dva bita nule. Svi podaci se emituju pojedinačno
chip select.
Tabela 3.5 FT800 Napišite naredbu nad SPI
Tokom vremena komanda se piše na FT800 na MOSI signalu, aktivnost na MISO signalu se zanemaruje.
Za I2C memoriju za pisanje memorije, bajtovi se pakuju u I2C protokol na sledeći način:
Tabela 3.6 FT800 Napišite naredbu preko I2C
NAPOMENA: Izdavanje naredbe ACTIVE budi FT800 iz stanja spavanja ili pripravnosti. ACTIVE
komanda se postiže pisanjem tri bajta od 00h kako bi se adresirala nula.
Postoji samo šest komandi, pa bi bilo poželjno kreirati pojedinačne pozive u firmware-u za svaku
jedan:
Komanda | Vrijednost (uključujući bita 6 i 7) | Opis |
Režimi napajanja | ||
ACTIVE | 0x00 | Prebacite iz režima pripravnosti / spavanja u aktivni režim. Pisati tri bajta od 00h za izdavanje ACTIVE komande |
PRIČEKAJ | 0x41 | Stavite FT800 jezgro u režim mirovanja. Isključi sat, PLL i Oscilator ostaje uključen (podrazumevano). |
SLEEP | 0x42 | Stavite FT800 jezgro u režim spavanja. Isključi sat, PLL i Oscilator je isključen. |
PWRDOWN | 0x50 | Isključite unutrašnji regulator od 1.2V. Sat, PLL i Oscilator je isključen. |
Prebacivanje sata | ||
CLKEXT | 0x44 | Omogućite PLL ulaz iz kristalnog oscilatora ili eksternog ulaza sat. |
CLK48M | 0x62 | Prebacite PLL izlazni sat na 48MHz (podrazumevano). |
CLK36M | 0x61 | Prebacite PLL izlazni sat na 36MHz. |
Razno | ||
CORERST | 0x68 | Pošaljite resetuj puls na FT800 jezgro. Svi registri i stanje mašine će biti resetovane. |
Tabela 3.7 Komande FT800