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.

[参考译文] MSP430FR6047:8路复用器 LCD 问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1213744/msp430fr6047-8-mux-lcd-issue

器件型号:MSP430FR6047

您好!  

我使用的是 MSP430FR6047微控制器。 将8路复用 LCD 与此接口相连。  

正在使用8条公共线路和27条段线路。  

每个段行5位控制第一个数字行、最后3位控制第二个数字行。  

若要使用0-4位在第一个数字行中显示数字、无论我为0-4位更新的值如何都能在 LCD 中正确反映。  

当尝试使用5-7位在第二个数字行中显示数字时、即使更新 5-7位的单个位、所有段都将启用。  

这里的问题可能是什么? 请有人支持该功能。  

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

    您好!

    很抱歉耽误你的时间、你能详细说明你在做什么吗? 如在中所示、您使用的是哪些引脚、您的一些代码等 在更新5-7位时、我想知道您是否意外启用了段。  

    您还可以参考这个 应用报告 以获得与段式 LCD 的使用相关的信息。

    谢谢!

    苏珊

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

    您好 Susan Moore、

    使用 LCDS0 - LCDS4和 LCDS9 - LCDS30将用于段码线。 COM0 - COM7用于控制器中的公共线路。

    使用控制器的 LCD_C 驱动程序。

    例如、段的位格式(0-4与第一行相关、5-7与第二行相关)

    层叠 LCD 后、不在第一行写入任何值、直接在第二行写入值、在此期间、0-4位仅为0。

    在运行时从寄存器读取值、它可以确认我在寄存器上写入的值也与寄存器中反映的值相同。

    如下所示、将数据写入寄存器以在第二行中显示

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

    您好!

    我将对此进行研究、希望明天能为您提供一些解决方案。

    谢谢!

    苏珊

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

    您好!

    我将仔细检查 LCD 的段映射、以确保正确写入段。 如果要启用段而又不需要它们、那么您的代码或硬件布局可能会出现问题。 对于代码、请再次检查是否以正确的方式写入了正确的句段。

    对于硬件问题、我将首先查看 本 应用报告的第5节"LCD 布局和软件注意事项"。 该部分还提供软件提示、使您的代码对于 LCD 而言更易于管理。  

    此外、如果您可以向我发送有关 LCD 的信息(例如段映射图或数据表)、我可能能够提供更多有关您的应用中可能出现的问题的信息。

    谢谢!

    苏珊

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

    您好 Susan Moore、

    感谢您的回复。

    我的 LCD 段详细信息如下所示、

    我已经仔细检查了我的代码。 另外、在运行时、我检查了寄存器数据。 我向可分解段写入的内容、相同的数据仅反映了其中。

    并且额外的分段也是启用的。

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

    大家好、下面的表格中、我设计了2个数字行、

    const uint8_t row1_digit_value_3x_Array[10][3]=

       { 0x11、0x09、0x11 },
       { 0x11、0x00、0x00 }、
       { 0x05、0x09、0x14 },
       { 0x15、0x09、0x04 },
       { 0x15、0x00、0x05 },
       { 0x14、0x09、0x05 },
       { 0x14、0x09、0x15 },
       { 0x11、0x01、0x00 }、
       { 0x15、0x09、0x15 },
       { 0x15、0x09、0x05 }
    };

    const uint8_t Row2_Digit_Value_3x_Array[10][3]=

       { 0x60、0xA0、0x60 }、
       { 0x00、0x00、0x60 }、
       {0x40、0xE0、0x20}、
       {0x00、0xE0、0x60}、
       { 0x20、0x40、0x60 },
       {0x20、0xE0、0x40}、
       { 0x60、0xE0、0x40 },
       { 0x00、0x20、0x60 }、
       {0x60、0xE0、0x60}、
       {0x20、0xE0、0x60}
    };

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

    您好!

    我更了解您的 LCD 现在是如何工作的、谢谢。  
    当您说您将多个段"启用"时、应该"关闭"调光器的段是否比应该"打开"的段? 也可能存在噪声问题。

    根据您的 LCD 的尺寸、我建议阅读本  有关驱动大 LCD 的应用手册。  

    此外、我还要再次检查是否所有 LCD 段均已正确选择、以及8路复用器的偏置是否正确。

    希望这对您有所帮助、

    苏珊

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

    您好!

    我选择了 LCD 引脚、我都在使用这些引脚、如下所示、

       LCD_SetPinAsLCDFunction (LCD_segment_line_0、LCD_segment_line_4);
       LCD_SetPinAsLCDFunction (LCD_segment_line_9、LCD_segment_line_30);
       LCD_SetPinAsLCDFunction (LCD_segment_line_33、LCD_segment_line_38);

    LCD Init Detais、 选定8-MUX 和

    CONST LCD_InitParam LCD_init_param =

      LCD_CLOCKSOURCE_ACLK、
      LCDDIV_1、
      LCD_CLOCKPRECALAR_8、
      LCD_standard_waveforms、
      LCD_段_已启用
    };

    最后启用了电荷泵并清除了存储器。

    下面是初始化 setpsi 函数。 我错过了什么……

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

    是的。 这段应该关闭、但它导通了

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

    您好!

    请注意、对于8路复用器 LCD、您必须将电压偏置设置为1/3。 这意味着对于 LCDVCTL 寄存器、LCD2B = 0b。 我会确认情况是这样。

    此外、对于您的段行使能、我将确认 LCDCPCTL0 = 0xFE1Fh、LCDCPCTL1 = 0x7FFFh、并且 LCDCPCTL2 = 0x007Eh。

    正如我之前提到的、使能段上的对比度是多少? 与尝试在第二行启用1个段(不是整数、而是一个段)时、您能否发布一些有关 LCD 显示效果的照片?

    谢谢!

    苏珊

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

    您好!

    这是第一行号的显示方式。

    当我尝试启用第二行时、

    实际上、我在第二行显示的是123456。

    由于第二行显示、其相关完整段行将被启用(开启)。

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

    您好!

    下面是一个可供您尝试的调试:清除所有内容的存储器、然后、为每个段行(一次一个)将0xFFh 写入段行。 然后确认启用了正确的段。  

    例如,对于 LCD 图表上的针脚0,写入0xFFh 应显示段11F、11i、11G、11L、11E S20、S19和 S18。 确保为每个段行/引脚执行此操作。 这将帮助我们了解哪些段行/COM 导致要启用的额外段。  

    谢谢!

    苏珊