Zigbee学习cc2430经验大全
【原创】ZigBee学习之2——SPI&LCD
今天的任务是用SPI总线方式点亮LCD屏幕,呵呵这里要涉及到两个内容,一个是SPI总线,一个LCD。
CC2430的话已经集成了SPI总线,只要将IO口配置为外设,然后将USART配置成SPI方式就可以了。
关于LCD其实也很简单,很多没有接触过的同学可能将其想象的太过复杂了,就是将字或者图像转换为一个一个的点,如果要这点显示东西呢,就把这点点亮,否则则不点亮。其实PCD8544已经将很多细节的东西做好了,我们要做的呢,就是发送一串命令序列,然后发送要显示的数据就可以了。看看PCD8544的芯片资料,我们还会发现在最后它竟然给出了操作实例,呵呵相信大家都能看懂的吧,如果有看不懂的可以给我留言或者是QQ联系我哦,我如果知道的话一定给大家详细的答复!
CC2430的SPI的是放在USART外设里面的,和UART放在一起,同一个USART即可以配置成UART也可以配置成SPI,SPI的主从模式通过相关的寄存器来选择。关于管脚的分配也不难,这里就不多说了,其实这里还算是8051的基础实验,对于8051很熟悉的同学肯定觉得我是在说废话了,哈哈!这里只提一下关于SPI应该注意的一点问题:
1、PCD8544的SPI是高电平采样,所以,主机端必须是高电平之前要把数据准备好。所以主机端的发送(MOSI)因该设为下降沿采样。
当用SPI和PCD8544
通信时,速率不能太低,否则点不亮LCD,或者是出来乱码
下面是引用网友的SPI总线心得,我觉得看看很有益处:SPI接口时钟配置心得:
在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要
搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。
但要注意的是,由于主设备的SDO连接从设备的SDI,从设备的SDO连接主设备的SDI,
从设备SDI接收的数据是主设备的SDO发送过来的,主设备SDI接收的数据是从设备SDO发送过来的,
所以主设备这边SPI时钟极性的配置(即SDO的配置)跟从设备的SDI接收数据的极性是相反的,
跟从设备SDO发送数据的极性是相同的。下面这段话是SychipWlan8100ModuleSpec上说的,
充分说明了时钟极性是如何配置的:
意思是:主设备在时钟的下降沿发送数据,从设备在时钟的上升沿接收数据。因此主设备这边SPI时钟极性应该配置为下降沿有效。又如,下面这段话是摘自LCDDriverICSSD1289:
意思是:从设备SSD1289在时钟的上升沿接收数据,而且是按照从高位到地位的顺序接收数据的。
因此主设备的SPI时钟极性同样应该配置为下降沿有效。
时钟极性和相位配置正确后,数据才能够被准确的发送和接收。
因此应该对照从设备的SPI接口时序或者Spec文档说明来正确配置主设备的时钟