This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C123GH6PGE:TivaWare 图形库

Guru**** 2535150 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/843503/tm4c123gh6pge-tivaware-graphics-library

器件型号:TM4C123GH6PGE
主题中讨论的其他器件:DK-TM4C129X

尊敬的所有 TI 工程师

https://e2e.ti.com/support/microcontrollers/other/f/908/p/836379/3118630#3118630

[逻辑计算]

----------------------------------------------------

#define DPYCOLORTRANSLATE8 (c)  (  (((c)& 0x00e00000)>> 16)|    \

                                (  ((c)& 0x0000e000)>> 11)|                \

                                (((c)& 0x000000c0)>> 6)    )

----------------------------------------------------

RGB888 24位100%红色(0x00FF0000)  --> RGB332 8位100%红色(0xE0), 转换 器正常

  (C)      0x00FF0000            (C)      0x00FF0000                  (c)    0x00FF0000               

&屏蔽  0x000E0000                &屏蔽  0x0000E000            &屏蔽  0x000000C0               

--------------        ------------------------           ------------------------           

>> 16 0x000E0000             >> 11    0x00000000        >> 6   0x00000000  

----------------------        --------------------------     ------------------------------

     0x0000_00E0                  0x0000_0000              0x0000_0000

 [结果]

   0x0000_00E0

    0x0000_0000

   | 0x0000_0000

  ------------

   0X000_00E0  => 0xE0

 

Q1> pvDisplayData 指针值是什么意思?

在 TM4C-GRL-UG 文档中、它称为指针。

pvDisplayData 是指向此显示驱动程序的驱动程序特定数据的指针。

----------------------------------------------------

const tDisplay g_sCFAL96x64x16 =

  sizeof (tDisplay)、                  // int32_t i32Size

  0、                             // void *pvDisplayData

  96、                            // uint16_t ui16Width

  64、                            // uint16_t ui16高度

  CFAL96x64x16 PixelDraw、         // void (* pfnPixelDraw)

  CFAL96x64x16 PixelDrawMultiple,  // void (* pfnPixelDrawMultiple)

  CFAL96x64x16线路牵引板、        //空(* pfnLineDrawH)

  CFAL96x64x16线路牵引板、        // void (* pfnLineDrawV)

  CFAL96x64x16RectFill、          // void (* pfnRectFill)

  CFAL96x64x16ColorTranslate、   // uint32_t (* pfnColorTranslate)

  CFAL96x64x16嵌入式            // void (* pfnflush)

};

----------------------------------------------------

此致。

Jame、Shin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jame、您好!

     如图形库用户指南中所述、pvDisplayData 是 指向此显示驱动程序的驱动程序特定数据的指针。  因此、它取决于您要连接的图形显示。 不同的显示屏可能需要也可能不需要特定于驱动程序的数据。 您曾问 pvDisplayData 为什么指向0。 我的解释是、该特定显示(  由 Crystalfontz 制成的具有 SSD 1332控制器的 CFAL964-F-B1 OLED 面板)不需要任何特定数据、因此 pvDisplayData 为0。  CFAL964-F-B1 OLED 显示屏用于 TivaWare 示例所基于的 DK-TM4C129x 评估板。 如果您要与其他显示单元连接、您可能需要也可能不需要向图形库提供其他特定于驱动程序的数据。 您确实需要查看相应显示屏的数据表、以了解为什么需要向图形库提供其他数据才能呈现图形。  

     请在下方找到 带 SSD 1332控制器的 CFAL964-F-B1 OLED 面板数据表的链接、以了解更多信息。

    www.crystalfontz.com/.../CFAL9664B-F-B1_v1.1.pdf

     感谢 Jame、CB1和 BP101在本论坛中分享您的讨论。 您对图形显示的使用和应用有更深入的了解。 我不得不说,在这方面,你远远领先于我们。 如果我对 pvDisplayData 的回答中有任何缺陷、如果我错了、请纠正我的问题。 如果您使用的显示单元需要任何特定于显示驱动程序的数据、请向我们展示一个示例。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    员工/I... "感受您的痛苦。"

    请注意海报:

    • 特别请求(仅限)'T.I.'ers'   "尊敬的所有 TI 工程师"的回复
    • 此主题是他之前的"列表框小工具扩展挑战"中的"冲头"、这似乎是一个非常有疑问的问题、因此(所有)后续工作(无论受到何种启发/投资)都可能会徒劳无功!

    请员工注意、(著名的)"Tags (标签) "已经"走了 "**喜欢!**  (使员工很难找到"过去的帖子(祝福)和正确描述标签" (即、比 (ahem) "非常有限的" MCU 更"体贴/考虑/多彩"!)   标签现在(限)出现、且显示在主题帖 的打开帖子中!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    感谢你的答复。

    我之前就帧速率向美国的冷冻石英公司发送了一封邮件、但没有回复。

    我想知道每秒发送的数据的大小。

    每秒数据大小=宽度** 3像素(RGB)*每像素位数*帧速率(fps)

    我查看了 CFAR 964-FB1的数据表、其中显示了可编程帧速率105hz。

    我提出这一问题是因为文件不清楚或不充分。

    通常、我认为它是15fps、30fps、60fps 帧。

    Q1>让我知道每秒发送的帧数。 ?

    此致。

    Jame、Shin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jame、您好!

    最终、Crystal Fontz 需要回答、但查看 D/S、我的解释是、105Hz 是最大速率、因为听起来好像他们在尝试描述最坏情况下的正常模式功耗。 我想它也可以支持15/30/60 Hz。 105Hz 只是15的另一个倍数。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph 和 Charles、

    公司问题电子邮件中仍未回答 Crystal Fontz。

    请通过 TI 公司将以下问题正式发送给 Crystal Fontz 公司。

    将[图1]连接到顶部、以便更好地理解。

    Q1>如果将 RGB 888 24位转换为 RGB565 16位并将其发送到 SPI、应设置多少 SCLK?

        在 Tiva-TM4C MCU 中、[图1]中的数字1从 RGB888 24位更改为 RGB332 8位。

    [图1]中的 CFAL96x64x16Iint ()函数将 g_ui8DisplayInitCommand []数组值写入 SSD1332 OLED 面板控制器             CFAL96x64x16Write Command ()函数、用于在设置 SPI 接口和数据8位 SCLK 4Mhz 后初始化 OLED 面板。

    按以下方式分析初始命令值。

    (cfal96x64x16.c)

    静态

    uint8_t g_ui8DisplayInitCommands[]=

    //  0xAE、            //显示关闭

      0x87、0x07、      //主控电流7/16

      0x81、0xA0、      //对比度 A 控件

      0x82、0x60、      //对比度 B 控制

      0x83、0xB0、      //对比度 C 控制

      0xA0、0x20、//00 //重映射和数据格式-使用8位颜色模式

      0xBB、0x1F、      // VPA

      0xBC、0x1F、      // Vpb

      0xBD、0x1F、      // VPC

    //  0xAD、0x8E、  //内部 Vp、外部电源

      0x26、0x01、      //矩形填充已启用

      0xAF              //显示打开

    };

    1. 0xA0、0x20、//00 //重映射和数据格式-使用8位颜色模式

                  0xA0 //设置重映射和数据格式,

                  0x20 // A[0]=0水平地址增量(复位)

                              A[0]= 1、垂直地址增量

                              A[1]=0、列地址0被映射到 SEG0 (复位)

                             A[1]=1、列地址95映射到 SEG0

                              A[4]=0、从 COM 0扫描到 COM [N–1]

                              A[4]=1、从 COM [N-1]扫描到 COM0。 其中 N 是多路复用比。

                              A[5]= 0、禁用 COM 分割奇数偶数(复位)

                              A[5]=1、启用 COM 分割奇数偶数

                              A[7:6]=00;256色格式,01;65k 色格式(复位)

                  

              2.0xBB、0x1F、// VPA、  0xBC、0x1F、 // Vpb、  0xBD、0x1F、// VPC

                0xBB、0xBC、0xBD // VPA、VPB、颜色的 VPC 级别设置

                  0x1f // A[7:0] 0x00 0.43*VREF、0x3F 0.83* VREF、0xEF 1.0* VREF、1xxxxxxx  连接到 VCOMH  (复位)

                            VREF (+13V)/2^8 (256)= 50.78mV (1步长)、0x1F (31、31'd)、50.78mV * 31 = 1.574V

                            VPA、Vpb、VPC = 1.574V

    Q2>在上一篇文章中、我讨论了可将帧速率编程为高达105hz 的内容。

          有关 DCLK,请参阅[图1]顶部的第5号,数据表中的帧速率公式下面是“13 AC CHARACTERISTIS”。

          使用"示例代码命令"进行计算时、结果为891.5hz 超过105hz。

          请告诉我有什么问题。 ?

    FFRM (帧频率)=(Fosc x 1/(D x K x 64))

          Fosc = 0.97Mhz

          D:分频比(RESET=1),

          K:显示时钟的数量(RESET=136、即:相位1 DCLK +相位2 DCLK +相位3 DCLK = 4+7+125)

      (数据表中的 CFAL9664B-F-B1_v1.1.pdf 示例代码)

    --------------------------------------------------

    OLED_cmd (0xB1);//PHASE 1和周期调整(放电、充电)

    OLED_cmd (0xF1);

    OLED_cmd (0xB3);//显示时钟分频器/振荡器频率

    OLED_cmd (0xF0);

    --------------------------------------------------

              0xB1 //相位1和2周期调整(放电、充电)

              0xF1 // A[3:0]相位1周期、以1~16 DCLK 时钟为单位[复位= 4h]= 1

                    // A[7:4]相位2周期、以1~16 DCLK 时钟为单位[RESET=7h]= 16

            0xB3 //显示时钟分频器和振荡器频率

              0xF0 // A[3:0] DCLK 由 CLK 除以除法器+1 (即、1到16)= 1生成

                    // A[7:4] Fosc frequency,reset=D0H,频率随着电平的增加而增加

    D:分频比= 1

    K:显示时钟数= 1 + 16 =17

    [结果]

    FFRM (帧频率)=(Fosc x 1/(D x K x 64))

                           0.97e+6 x (1 /(1 x 17 x 64))= 891.5Hz

    Q3>[图1]第4号灰度表是 RGB565 16位时的值。

                      当 RGB332为8位时、灰度表的值是多少?

    Q4>[图1]在第6号中、RGB332 8位值映射到 RGB565 16位转换表值。

                      将8位转换为16位意味着什么?

              例如、MCU 8位数据是否已从 SSD1332 OLED 面板控制 IC 转换为16位!!

    Q5>[Figure1]在发送 RGB332 8位数据的起始点通过3号线显示第2号。 响应时间是多少?

              

    此致。

    Jame、Shin


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jame、您好!

    [引用用户="Jame shin"]正式地,请通过 TI 公司将以下问题发送给 Crystal Fontz 公司。

    这不是我们可以做的事情。 至少不是查尔斯和我

    如果您有当地的 TI 支持联系人、他们可能会这样做、但 Charles 或我都无法这样做。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph 和 Charles、

    感谢你的答复

    我说“正式”是因为我认为这个问题很容易沟通。

    我 是一个不审慎的说法。 抱歉、不是谦逊。

    我正在接收来自 OLED 公司 Crystalfontze 公司的邮件并进行交谈。

    因此、我将分享这个问题。

    谢谢你

    此致。

    Jame、Shin