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.

[参考译文] MSP430G2955:SPI NEWHEAVEN GOP 接口

Guru**** 2553260 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/592722/msp430g2955-spi-newheaven-gop-interface

器件型号:MSP430G2955

大家好、

现在、我已经开始尝试对 MSP430和 NHD-C0216CZ-FSW-FBW-3V3之间的 SPI LCD 接口进行编程、我已经按照了新续流公司的代码示例 Viven 操作、但仍然无法实现再制造。因此、我的担忧如下:

1 -在数据表中、写入的最小串行时钟周期 为200ns、这意味着我可以选择5MHz 以下的任何频率。(如果我错了、请告诉我)、 另外、我不理解他们分别写入了 SCL H 脉冲宽度和 SCL 脉冲宽度最小值20ns 和160ns、我不知道如何在 SPI 上配置这些值。

2在第二个问题中、我遵循了公司给出的示例、使用 Txbuffer 而不是每位粗化数据位

命令公司给出的示例 为

空 writecom (int d)

CS = 0;//CS
RS = 0;//A0 =命令
for (serialcounter = 1;serialcounter <= 8;serialcounter++)//发送8位

if (((d&0x80)=0x80)//仅获取 MSB
SI=1;//if 1、然后 SI=1
其他
SI=0;//if 0、然后 SI=0
D=(d<1);//将数据字节向左移位
SCL = 0;
SCL = 1;
SCL = 0;//SCL

CS = 1;

我在 MSP430上的代码是

void command_lcd (int c){

   P4OUT &=~BIT0;          // P4.0低电平有效 CSB 芯片选择、选择 LCD
   P4OUT &=~BIT1;         //引脚 P4.1设置为低电平、LCD 引脚 RS、指令模式
   while (UCB0STAT 和 UCBUSY);
   while (!(IFG2 & UCA0TXIFG));   

   UCA0TXBUF=c;

   P4OUT |=BIT0;           // P4.0设置为高电平。   CSB
   P4OUT |=BIT1;           //引脚 P4.1设置为高电平。 Rs

我的担心是、在他们的示例中、他们也会手动向 SCL 输出高值和低值发送数据、因为您可以看到我理解的是、我只需在 UCA0TXBUF 上输入数据就可以通过 SPI 发送数据、而无需使用 如在设置每位位位的示例中所示。 我使用了相同的命令、但我仍然没有从 LCD 上获得任何东西

谢谢你



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

    由于新续流提供的示例代码使用 GPIO 进行通信、您是否还可以尝试使用 GPIO 而不是 UCA0? LCD 与 GPIO 通信一起工作后、返回检查 SPI 设置、您可以参考 MSP430G2X55示例代码:msp430g2x55_uscia0_spi_09.c 以了解 SPI 设置。

    此致
    Kc
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 KC、
    我有三个示例代码、这些示例代码是使用连接到 MSP430的 GPIO 提供的、但仍然无法正常工作、完全不响应、我认为也是因为它们使用 GPIO、我根本不需要使用 SPI。
    此致、
    Tarik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tarik、

    好的、然后使用示波器测量 GPIO 上的信号、以查看行为是否与您的代码匹配、这是调试问题的好方法。

    Kc
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 KC:
    我已经用示波器测量 GPIO 上的信号、并看到它的行为与我预期的完全相同、但仍然不起作用。 我需要注意的另一点是如何使用 GPIO 控制时钟和数据信号位的周期
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    即使采用保守的方法--假设高时钟和低时钟都为160ns --这仍然是320ns 的周期或大约3MHz。 使用 GPIO (也称为"软件 SPI")时、您不太可能超过此值。

    您已经显示了 writecom();我假设您也编写了 writedata()?

    此外、您是否遵循初始化序列的所有"执行时间"(即延迟)规则? 我看到10s 的微秒高达1ms。

    您可能需要检查背光。 也许您的电路板具有这种内置功能、但我不止一次发现自己开始使用"它必须工作" LCD 设置、我忘记连接背光、因此屏幕始终为空白。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruce、
    是的、我已根据命令和数据函数的示例编写了所有命令和数据函数。 对于背光的连接、我认为我已经连接了 PCB 上的所有组件(因为我制作了 PCB 并布置了所有组件)。 我觉得奇怪的是根本没有反应