ARM:0015 LCD ILI9341

Greitas portas iš AVR versijos į ARM SAM7S kodą. Čia iškilo smulkių problemų ir nesusipratimų. Tačiau buvo nustatyta, kad ILI9341 datašytas biški meluoja:
Serial Clock Cycle (Write) min 100 – ns (10MHz)
Serial Clock Cycle (Read) min 150 – ns (6.66MHz)

Tačiau man kažkodėl visas SPI puikiausiai veikia su 24MHz SPI CLK!

ARM SAM7 and ILI9341 color LCD SPI
Tekstinis LCD čia beveik nereikalingas, nes jis buvo naudojamas kaip DEBUG, kad pamatyti ar praėjo softas per tam tikrus etapus.

Ko aš nepadariau. SAM7 moka per SPI transliuoti daugiau nei 8 bitus. Tačiau man nepavyko iššifruoti “buferio” persiuntimo per SPI (DMA). Daugelis komandų susideda iš 8 bitų komandos ir 8, 16 ar daugiau bitų duomenų. Tačiau kiek supratau (gal klaidingai), kad pakeisti 8-16-24-32 bitų transliacijas reikia perkonfiguruoti SPI. Tačiau man gi reikia dažnai daryti 8+16 siuntimą ir tada perkonfiguruoti SPI? Nesamonė. Kitas metodas- aprašyti buferį ir nurodyti hardwarei ką ir kaip perduoti. Deja tas man nesigavo.
Todėl teko vietoje “navarotnų” metodų panaudoti tą pačia strategiją kaip ir AVR kontroleryje.

Nu ir aišku source kodas bei kompiliuotas hex kodas, hexas sukompiliuotas Atmel AT91SAM7S256AU serijos čipui

P.S. projektų numeracija atitinka numeriams mano kietam diske. Tai visiškai nesusije su straipsnių seka. Pvz. 14 projektas yra tuščias projektas su minimalia konfiguracija- kad pradedant naują projektą per daug nevargti. Imi 14 projektą, kopijuoji ir darai naują. Template vienu žodžiu.

Leave a Reply

Your email address will not be published. Required fields are marked *