我已经使用微芯片协调技术将PT6965 led控制器与Pic32 over SPI接口。我的问题是我无法理解使用spi向LED控制器写入的数据/命令将打开连接到LED控制器的3个RGB LED。我已经阅读了PT6965数据表,他们提到了如何使用数据命令,但是我无法理解应该如何使用它们。有人可以给我一个简单的例子,例如我如何打开红色指示灯。
我的整体项目结构
Pic32-> SPI-> LED控制器-> RGB LED
LED的连接如下。
红色LED-> PIN号20(SG12 / GR7)
蓝色LED-> PIN号19(SG11)
绿色LED-> PIN号18(SG10 / KS10)
到PT6965 led控制器数据表“ http://www.princeton.com.tw/Portals/0/Product/PT6965.pdf”的链接
答案 0 :(得分:1)
从机顶盒高电平开始。在每个命令之前将其拉低,在发送命令之后将其拉高,然后发送下一个命令。
由于您使用的是SG 11以上版本,因此在写入数据之前,需要更改显示模式(数据表中的命令1)。这可以通过发送0b00000000将控制器设置为4位14段模式来完成。 (这仅是必要的,因为您使用的是SG12引脚。这也意味着减少了以后写入的地址。)
接下来,您要设置数据设置(命令2)。这从0b0100开始,还有4位。下一位是0,因为我们不在测试模式下。您将需要在每次数据写入时增加地址,因此接下来要执行0。显示控制器还设计为读取键矩阵,但是您没有使用该键矩阵,因此我们要添加最后的00。这将得到0b01000000。
下一部分是困难的部分,因为您要设置需要写入的地址。这是我无法轻易为您提供帮助的地方,您需要了解这一点。命令3显示了您可以写入的所有地址。您想具体影响每个数字的段10到12。这意味着您要写入奇数地址处所有字节的字节1至3。由于您没有使用其他引脚,因此最简单,最快的方法是遍历所有地址。由于您不关心写到偶数地址的内容,因此可以对奇数地址写相同的内容。为简单起见,您需要先通过发送地址代码:0b1100,然后再发送地址0b0000,将地址设置为0来开始。这给出0b11000000。现在,无需将STB拉高,就可以开始发送数据字节。每次写入时,地址都会增加。由于我们之前将数字位数设置为4,因此我们只需要上至地址0x7。您可以通过发送包含0b0000RBG0的8个字节来实现此目的,其中字母代表颜色的状态。完成此操作后,您可以将闪光灯设置为高亮。 (这是假定阴极都连接到GND,从而忽略数字正极)
这当然是最低要求。最好只编写所需的位,而将其余的保留下来,但我试图使事情保持简单,即使这不是正确的工作方式。
您将要设置其他一些显示控件设置(命令4)。这些以0b1000开头。然后,您希望1保持显示开启,然后让111保持显示尽可能亮。这给出了0b10001111。
此组件不是为初学者设计的,您将其用于非预期目的会大大使事情复杂化。您正在滥用零件的目的。虽然这是一种很好的学习体验,但您实际上必须尝试学习。请花些时间阅读数据表,因为根据我所说的内容(取决于它的设置),它可能无法正常工作。我试图解释为什么发送每个命令,而不仅仅是发送命令。您需要在使用此命令之前先了解这些命令。浏览数据表,查看每个命令,以了解为什么我建议这样做。