Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
XMOS xCORE
#28
Evo prvi pokušaj stavljanja na jedno mjesto XMOS MCU (XE216-512-TQ128) i sljedećih periferija:
  • TFT 4.3" LCD sa touchscreen kontrolerom
  • SDRAM
  • Flash (koristi se samo na početku za učitavanje firmvera)
  • USB host/device OTG
  • 10/100 Mbit full/half duplex eternet (MCU može i gigabit, ali nisam koristio takav PHY)
  • Audio izlaz (s malim pojačalom)
  • EEPROM
  • Micro SD Card
  • RTC sa supercap kao pomoćnim napajanjem
  • Programabilne LED x 3, 2 x otpoizolirani ulaz, 2 x optoizolirani izlaz
  • Opcionalni konektor za jeftini W5500 Eternet modul
  • Opcionalni konektor za Riverdi 20-pinski LCD

Prema novim saznanjima situacija sa slobodnim pinovima je bitno lošija nego li je to prikazano u postu #15. Ispada da USB i eternet libovi čine nefunkcionalnim dodatnih 16 pinova, što je ostavilo samo 3 slobodna pina za sve ostalo (u što se ne računa SDRAM i LCD kontrola). Kako bih dobio više slobodnih pinova, a da se ne gubi niti jedna od "native" funkcionalnosti (tj. USB i eternet) odlučio sam serijalizirati LCD. To bi moglo biti problematično iz razloga što se pikseli moraju slati brzinom koja je 24 puta veća od one potrebne za refresh ekrana. Dakle, ako je u paralelenom modu ta frekvencija 8 MHz, onda bi serijski clock trebao biti 192 MHz i trebao bi koristiti isto tako brze shift registre. Da bi se ovo svelo na nešto dohvatljivije, boje se mogu svesti na 16-bita pa time i serijski clock pada na 128 MHz, što se lako lovi sa AHC ili VHC logikom. Naravno ovo bi još uvijek mogao biti "račun bez krčmara", jer ne znam može li jedan MCU core serijalizirati takvom brzinom podatke i naravno da se sve to događa na 1-bitnom portu, a ne da moram trošiti 16-bitni jer onda sam opet na početku.

Sada mapa pinova izgleda ovako:

[Image: 9kgcSQt.png]

Šema prvog prijedloga bi izgledala ovako:

[Image: Kd9IaM0.png]

LCD se spaja preko 40-pinskog 0.5 mm FFC konektora, čiji je pinout manje-više standardan za 4.3" (480x282) displeje. Osnovna razlika koju sam pronašao je korištenje ili ne korištenje DE (Display Enable) signala (pin 34). Za touch kontroler sam izabrao jeftilen AR1021. Napajanje za WLED pozadinsko osvjetljenje je sa TPS61169 koji ima i PWM ulaz za dimming. Napajanja od 3.3 V i 1 V se dobivaju iz stabiliziranog napajanja od 5-16 V korištenjem dva TPS61208 koja su sekvencirana: prvo se pali 3.3 V i nakon toga 1 V. Sekvenciranje kontrolira TPS3808G33 koji prati stanje na 3.3 V. Serijalizacija LCD podataka radi se sa dva 74VHC595 shift registra. Boje su postavljene kao 5-6-5 (RGB) pa su nekorišteni LSB bitovi postavljeni na nulu.

[Image: QX8tbNJ.png]

Kontrola SDRAM-a je napravljena prema ref. dizajnu XMOS-a gdje su podaci i adrese multipleksirane, a njihov lib radi sav potreban "bit-banging" da stvar funkcionira. Ovdje imamo i reset generator korištenjem TPS3808G09 koji prati stanje na 1 V i koji se može i manuelno resetirati (SW1). Budući da XMOS mora učitati i firmver u interni RAM, korištenje modela sa ugrađenim flashom (XEF) nema puno prednosti. Zbog toga se koristi vanjski flash koji se prilikom reset-a spaja na QSPI bus koji je "hardcoded" (vidi u tablici gore: X0D01, X0D04-X0D07, X0D10) i kada se flash učita, korištenjem X0D00 linije se tih šest linija oslobađaju da bi se dalje koristile za SDRAM kontrolu. Za to se koriste dva brza quad 1-2 mux/demux (74CBTLV3257) i jedan D-latch (74AUP1G74) za pamćenje stanja.

[Image: kjx9ngE.png]

Ovdje imamo USB koji bi trebao biti device i host prema OTG (on-the-go specifikaciji). Zbog toga sam dodao i napajanje od 5 V kada je USB host. Ovo mi nije skroz jasno, u DS MCU-a nema dodatnih informacija što napraviti za OTG. Zasad sam stavio umjesto obične USB utičnice, 5-pinsku AB mini i USB_ID pin nije spojen.
MCU napajanja su od 1 V i 3.3 V, PLL napajanje mora imati na ulazu RC. Kao glavni clock se koristi kristalni oscilator od 24 MHz, što je jedan od preduvjeta kada se koristi USB. Ovdje se također izvučeni signali za JTAG sa 2-wire xCONNECT za potrebe realtime debugging-a.

[Image: XFkJffF.png]

16 linija na Tile 1 zjapi prazno, to je danak USB i ethernet libova (valjda). Ostalo ide na spajanje eternet PHY koji može biti i gigabitni. Ovdje je korišten vremešan 10/100 PHY koji dolazi u ljudskom pakovanju (nije QFN ili BGA). Za audio će se koristiti PCM koji će se peglati i slati na malo pojačalo. PHY mora imati svoj clock, od 25 MHz. MCU i eternet clock bi se mogli dobiti iz jednog čipa, recimo Si5351, ali na nesreću isti se mora isprogramirati što komplicira prvi start (trebalo bi izvući sa strane I2C linije za programiranje) jer dok nije programiran nema na izlazima "default" clock. Ovo je izgleda rješeno kod CDCE913 koji je nažalost višestruko skuplji.

[Image: iy5b2hg.png]

Zadnja slika sadrži ostale periferije. Tu se može vidjeti da se koriste dva SPI kanala (SPI1 i SPI2). Na prvom kanalu su sljedeće periferije: EEPROM, micro SD Card, RTC, I/O expander i opcionalni W5500 eternet (ako se neće koristiti glavni). Na SPI2 kanalu je postavljen opcionalni Riverdi LCD. Kako bi se uštedjelo na Chip select pinovima za svaku SPI periferiju, isti će se postavljati korištenje još jednog shift registra (IC24) koji je može postavljati maksimalnom brzinom pa u konačnici pristup pojedinoj periferiji ne bi trebao biti sporiji.

Ova eval. ploča bi trebala biti osnova za danji razvoj softvera, i ista bi se mogla kasnije pojednostavniti (svesti recimo samo na displej kontroler, sa ili bez periferija i ako treba i manjim/jeftinijim MCU).

Vaši komentari i kritike (i oči koje vide!) su više nego dobrodošli. U prilogu su i PDF-ovi.


Attached Files
.pdf   XE216-512-TQ128 portmap for EEZ evaluation board.pdf (Size: 73,02 KB / Downloads: 3)
.pdf   EEZ XMOS eval r1B2.pdf (Size: 139,34 KB / Downloads: 4)
Reply


Messages In This Thread
XMOS xCORE - by prasimix - 12-23-2017, 12:07 PM
RE: XMOS xCORE - by mikikg - 12-23-2017, 03:09 PM
RE: XMOS xCORE - by prasimix - 12-23-2017, 04:38 PM
RE: XMOS xCORE - by Macola - 12-23-2017, 10:04 PM
RE: XMOS xCORE - by mikikg - 12-24-2017, 01:07 AM
RE: XMOS xCORE - by prasimix - 12-25-2017, 11:12 AM
RE: XMOS xCORE - by mikikg - 12-24-2017, 03:10 AM
RE: XMOS xCORE - by prasimix - 12-24-2017, 10:32 AM
RE: XMOS xCORE - by mikikg - 12-24-2017, 11:54 AM
RE: XMOS xCORE - by prasimix - 12-24-2017, 04:18 PM
xCORE MCU tipovi - by prasimix - 12-24-2017, 04:20 PM
RE: XMOS xCORE - by mikikg - 12-26-2017, 12:31 AM
RE: XMOS xCORE - by mikikg - 12-26-2017, 01:19 AM
Pin mappings - by prasimix - 12-26-2017, 11:47 AM
RE: XMOS xCORE - by mikikg - 12-26-2017, 12:36 PM
RE: XMOS xCORE - by mikikg - 12-26-2017, 11:54 PM
RE: XMOS xCORE - by mikikg - 12-27-2017, 03:24 AM
RE: XMOS xCORE - by prasimix - 12-27-2017, 12:49 PM
RE: XMOS xCORE - by mikikg - 12-28-2017, 01:31 AM
RE: XMOS xCORE - by prasimix - 12-28-2017, 01:10 PM
RE: XMOS xCORE - by mikikg - 12-28-2017, 05:42 AM
RE: XMOS xCORE - by prasimix - 12-28-2017, 01:18 PM
RE: XMOS xCORE - by gorankg - 12-28-2017, 02:58 PM
RE: XMOS xCORE - by prasimix - 12-28-2017, 03:19 PM
RE: XMOS xCORE - by gorankg - 12-28-2017, 03:56 PM
RE: XMOS xCORE - by prasimix - 12-28-2017, 05:46 PM
xCORE eval. ploča - by prasimix - 01-04-2018, 03:33 PM
RE: XMOS xCORE - by vojinilic - 01-04-2018, 05:42 PM
RE: XMOS xCORE - by prasimix - 01-05-2018, 09:36 AM
RE: XMOS xCORE - by gorankg - 01-04-2018, 06:33 PM
RE: XMOS xCORE - by prasimix - 01-05-2018, 09:53 AM
RE: XMOS xCORE - by gorankg - 01-05-2018, 10:48 AM
RE: XMOS xCORE - by prasimix - 01-05-2018, 11:24 AM
RE: XMOS xCORE - by prasimix - 01-05-2018, 10:10 AM
RE: XMOS xCORE - by vojinilic - 01-05-2018, 04:20 PM
RE: XMOS xCORE - by prasimix - 01-05-2018, 04:59 PM
RE: XMOS xCORE - by vojinilic - 01-05-2018, 06:40 PM
RE: XMOS xCORE - by prasimix - 01-05-2018, 06:45 PM
RE: XMOS xCORE - by gorankg - 01-05-2018, 06:06 PM
RE: XMOS xCORE - by vojinilic - 01-05-2018, 07:06 PM
RE: XMOS xCORE - by prasimix - 01-09-2018, 12:33 PM
RE: XMOS xCORE - by gorankg - 02-06-2018, 10:19 PM
RE: XMOS xCORE - by prasimix - 02-06-2018, 11:02 PM
RE: XMOS xCORE - by prasimix - 02-17-2018, 11:55 AM

Forum Jump:


Users browsing this thread: 3 Guest(s)