Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - tha

Pages: [1] 2 3 ... 583
1
Color look-up table (CLUT)

The CLUT สามารถถูกเปิดใช้งานในขณะ run-time สำหรับทุกๆ layer ผ่านทาง the LTDC_LxCR register และมันมีประโยชน์เฉพาะในกรณีของสีที่จัดทำดัชนีเมื่อใช้ the L8, AL44 and AL88 input pixel format.

ขั้นแรก, the CLUT ต้องถูกโหลดด้วย the R, G and B values ที่แทนที่ the original R, G, B values ของ pixel นั้น(indexed color). แต่ละ color (RGB value) มี address ของมันเองซึ่งคือ the position ภายใน the CLUT.

The R, G and B values และ respective address ของพวกมันเองถูกโปรแกรมผ่านทาง the LTDC_LxCLUTWR register.
•   ในกณีของ L8 and AL88 input pixel format, the CLUT ต้องถูกโหลดโดย 256 colors. The address ของแต่ละ color จะถูก
     กำหนดค่าใน the CLUTADD bits ใน the LTDC_LxCLUTWR register.
•   ในกณีของ AL44 input pixel format, the CLUT ต้องถูกโหลดเพียง 16 colors เท่านั้น. The address ของแต่ละ color ต้องถูก
     เติมโดยการทำซ้ำ the 4-bit L channel เป็น 8-bit ดังนี้:
     –   L0 (indexed color 0), at address 0x00
     –   L1, at address 0x11
     –   L2, at address 0x22
     –   .....
     –   L15, at address 0xFF

2
Pixel input format

The programmable pixel format ถูกใช้สำหรับ the data ที่เก็บใน the frame buffer ของ a layer.

มากถึง 8 input pixel formats สามารถถูกกำหนดค่าสำหรับทุกๆ layer ผ่านทาง the LTDC_LxPFCR register

The pixel data ถูกอ่านจาก the frame buffer แล้วแปลงเป็น the internal 8888 (ARGB) format ดังนี้: ส่วนประกอบที่มีความกว้างน้อยกว่า 8 บิตจะขยายเป็น 8 บิตโดย bit replication. The selected bit range จะถูกต่อเข้าด้วยกันหลายครั้งจนกว่าจะยาวขึ้นมากกว่า 8 บิต. จากเวกเตอร์ผลลัพธ์, the 8 MSB bits ถูกเลือก. ตัวอย่าง: 5 bits ของ an RGB565 red channel กลายมาเป็น (bit positions): 43210432 (the 3 LSBs ถูกเติมด้วย the 3 MSBs of the 5 bits)

Table 118 อธิบาย the pixel data mapping ขึ้นอยู่กับ the selected format.




3
18.4.2 Layer programmable parameters

มากถึง two layers สามารถถูกเปิดใช้งาน, ถูกปิดใช้งานและถูกกำหนดค่าแยกกัน. The layer display order ถูกคงที่และจากล่างขึ้นบน. ถ้า two layers ถูกเปิดใช้งาน, the layer2 เป็น the top displayed window.

Windowing

ทุกๆ layer สามารถถูกวางตำแหน่งและปรับขนาดได้ และมันต้องอยู่ภายใน the active display area.

The window position and size ถูกกำหนดค่าผ่านทาง the top-left และ bottom-right X/Y positions และ the internal timing generator ซึ่งรวมถึง the synchronous, back porch size และ the active data area. ดูที่ LTDC_LxWHPCR and LTDC_WVPCR registers.

The programmable layer position and size กำหนด the first/last visible pixel of a line และ the first/last visible line in the window. มันยอมให้แสดงผลอย่างใดอย่างหนึ่ง the full image frame หรือเฉพาะส่วนหนึ่งของ the image frame. ดูที่ Figure 113.
•   The first and the last visible pixel in the layer ถูกเซ็ตโดยการกำหนดค่า the WHSTPOS[11:0] และ WHSPPOS[11:0]
     ใน the LTDC_LxWHPCR register.
•   The first and the last visible lines in the layer ถูกเซ็ตโดยการกำหนดค่า the WVSTPOS[10:0] และ WVSPPOS[10:0] ใน
     the LTDC_LxWVPCR register.


4
ARM Processors / Re: STM32F7 18 LCD-TFT display controller (LTDC)
« on: December 09, 2022, 11:40:59 am »
Reload shadow registers

บาง configuration registers ถูก shadowed. The shadow registers values สามารถถูกโหลดใหม่ทันทีไปยัง the active registers เมื่อเขียนไปยัง registers เหล่านี้หรือที่การเริ่มต้นของ the vertical blanking period ตาม the configuration ใน the LTDC_SRCR register. ถ้า the immediate reload configuration ถูกเลือก, the reload ควรถูกทำให้ทำงานเฉพาะเมื่อทุก new registers ถูกเขียนแล้ว.

The shadow registers ไม่ควรถูกแก้ไขอีกครั้งก่อน the reload ถูกทำแล้ว. การอ่านจาก the shadow registers จะส่งคืนกลับ the actual active value. The new written value สามารถถูกอ่านเฉพาะหลังจาก the reload เกิดขึ้นแล้ว.

A register reload interrupt สามารถถูกสร้างถ้าถูกเปิดใช้งานใน the LTDC_IER register.

The shadowed registers คือทุก the layer1 and layer2 registers ยกเว้น the LTDC_LxCLUTWR register.

Interrupt generation event

ดูที่ Section 18.5: LTDC interrupts สำหรับ interrupt configuration.

5
ARM Processors / Re: STM32F7 18 LCD-TFT display controller (LTDC)
« on: December 09, 2022, 11:16:56 am »
Dithering

The dithering pseudo-random technique โดยใช้ an LFSR ถูกใช้เพื่อเพิ่ม a small random value (threshold) ไปยังแต่ละ pixel color channel (R, G or B) value, ดังนั้นจะปัดเศษ the MSB ขึ้นในบางกรณีเมื่อแสดง a 24-bit data บน 18-bit display. ดังนั้น the Dithering technique ถูกใช้เพื่อปัดเศษ data ที่แตกต่างจากเฟรมหนึ่งไปยังอีกเฟรมหนึ่ง.

The dithering pseudo-random technique นั้นเหมือนกับการเปรียบเทียบ LSBs กับค่าขอบเขตและเพิ่ม a 1 ไปยัง the MSB part เท่านั้น, ถ้า the LSB part >= the threshold. The LSBs โดยทั่วไปจะถูกทิ้งทันทีที่ dithering ถูกนำมาใช้.

ความกว้างของ the added pseudo-random value คือ 2 bits สำหรับแต่ละ color channel: 2 bits สำหรับ red, 2 bits สำหรับ green และ 2 bits สำหรับ blue.

ทันทีที่ the LCD-TFT controller ถูกเปิดใช้งาน, the LFSR สตาร์ทการรันด้วย the first active pixel และมันรันต่อไปแม้ว่าในระหว่าง blanking periods และเมื่อ dithering ถูกปิด. ถ้า the LTDC ถูกปิดใช้งาน, the LFSR จะถูกรีเซ็ต.

The dithering สามารถถูกสวิทช์ On and Off ได้ทันทีผ่านทาง the LTDC_GCR register.

6
ARM Processors / Re: STM32F7 18 LCD-TFT display controller (LTDC)
« on: December 09, 2022, 10:46:27 am »
Programmable polarity

The horizontal and vertical synchronization, data enable and pixel clock output signals polarity สามารถถูกโปรแกรมเป็นแอคทีฟ high หรือแอคทีฟ low ผ่านทาง the LTDC_GCR register.

Background color

A constant background color (RGB888) สามารถถูกโปรแกรมผ่านทาง the LTDC_BCCR register. มันถูกใช้สำหรับการผสมกับ the bottom layer.

7
ARM Processors / Re: STM32F7 18 LCD-TFT display controller (LTDC)
« on: December 09, 2022, 09:57:05 am »
Example of synchronous timings configuration

TFT-LCD timings (ต้องถูกดึงจาก panel datasheet):
•   horizontal and vertical synchronization width: 0xA pixels and 0x2 lines
•   horizontal and vertical back porch: 0x14 pixels and 0x2 lines
•   active width and active height: 0x140 pixels, 0xF0 lines (320x240)
•   horizontal front porch: 0xA pixels
•   vertical front porch: 0x4 lines

ค่าที่โปรแกรมใน the LTDC timings registers คือ:
•   LTDC_SSCR register: ถูกโปรแกรมเป็น 0x00070003. (HSW[11:0] คือ 0x7 และ VSH[10:0] คือ 0x3)
•   LTDC_BPCR register: ถูกโปรแกรมเป็น 0x001D0003 (AHBP[11:0] คือ 0x1D(0xA + 0x13) และ AVBP[10:0]A คือ
     0x3(0x2 + 0x1)).
•   LTDC_AWCR register: ถูกโปรแกรมเป็น 0x015D00F3 (AAW[11:0] คือ 0x15D(0xA + 0x14 + 0x13F) และ AAH[10:0]
     คือ 0xF3(0x2 + 0x2 + 0xEF).
•   LTDC_TWCR register: ถูกโปรแกรมเป็น 0x00000167 (TOTALW[11:0] คือ 0x167(0xA + 0x14 + 0x140 + 0x9).
•   LTDC_THCR register: ถูกโปรแกรมเป็น 0x000000F7 (TOTALH[10:0] คือ 0xF7(0x2 + x2 + 0xF0 + 3)

8
ARM Processors / Re: STM32F7 18 LCD-TFT display controller (LTDC)
« on: December 09, 2022, 09:02:49 am »
18.4 LTDC programmable parameters

The LCD-TFT controller จัดให้มี flexible configurable parameters. มันสามารถถูกเปิดใช้งานหรือถูกปิดใช้งานผ่านทาง the LTDC_GCR register.

18.4.1 LTDC global configuration parameters

Synchronous timings

Figure 112 แสดง the configurable timing parameters ที่สร้างโดย the synchronous timings generator block ที่แสดงใน the block diagram Figure 111. มันสร้าง the horizontal and vertical synchronization timings panel signals, the pixel clock and the data enable signals.



Note: The HBP and HFP คือ the horizontal back porch และ front porch period ตามลำดับ.
          The VBP and the VFP คือ the vertical back porch และ front porch period ตามลำดับ.


The LCD-TFT programmable synchronous timings คือ:
•   HSYNC and VSYNC width: horizontal and vertical synchronization width, ถูกกำหนดค่าโดยการโปรแกรมค่าของ   
     HSYNC width - 1 and VSYNC width - 1 ใน the LTDC_SSCR register
•   HBP and VBP: horizontal and vertical synchronization back porch width, ถูกกำหนดค่าโดยการโปรแกรมค่าสะสม   
     HSYNC width + HBP - 1 และค่าสะสม VSYNC width + VBP - 1 ใน the LTDC_BPCR register.
•   Active width and active height: the active width and active height ถูกกำหนดค่าโดยการโปรแกรมค่าสะสม           
     HSYNC width + HBP + active width - 1 และค่าสะสม VSYNC width + VBP + active height - 1 ใน the
     LTDC_AWCR register (เฉพาะมากถึง 1024x768 เท่านั้นถูกรองรับ).
•   Total width: the total width ถูกกำหนดค่าโดยการโปรแกรมค่าสะสม HSYNC width + HBP + active width + HFP - 1     
     ใน the LTDC_TWCR register. The HFP คือ the horizontal front porch period.
•   Total height: the total height ถูกกำหนดค่าโดยการโปรแกรมค่าสะสม VSYNC height + VBP + active height + VFP - 1 
     ใน the LTDC_TWCR register. The VFP คือ the vertical front porch period.

Note:   When the LTDC ถูกเปิดใช้งาน, the timings ที่สร้างจะสตาร์ทด้วย X/Y=0/0 position เป็น the first horizontal
            synchronization pixel ใน the vertical synchronization area และตามหลัง the back porch, active data display
            area และ the front porch.


เมื่อ the LTDC ถูกปิดใช้งาน, the timing generator block ถูกรีเซ็ตเป็น X = total width - 1, Y = total height - 1 และถือ the last pixel ก่อน the vertical synchronization phase และ the FIFO จะถูกล้าง. ดังนั้นเฉพาะ blanking data จะถูกส่งออกอย่างต่อเนื่อง.

Pages: [1] 2 3 ... 583