平常工作中,如果使用MSP430作为主控芯片,经常会遇到需要编写SPI 或 I2C 驱动,来读取和控制外设(比如LCD屏幕,一些传感器)的情况。为了减少重复性工作,本文以具体实例来总结SPI驱动编写的详细步骤(用MSP430FR6989来驱动集成模拟前端AFE4400):
单片机SPI引脚设置
SPI读写时序设置
寄存器写入
写在最后
单片机SPI引脚设置
一般SPI有3线和4线之分,区别在于是否带片选端——STE引脚,4个引脚功能说明:
UCxS0MI:主模式数据输入,从模式下数据输出;
UCxSIMO:主模式数据输出,从模式下数据输入;
UCxCLK:USCI SPI的时钟;
UCxSTE:USCI SPI的使能端;
引脚设置代码:
SPI读写时序设置
根据的数据手册,读懂模块的SPI读写时序是编写成功的关键步骤!!!
以下是AFE4400的SPI读写时序图:
读数据时:拉低STE,先发送一个字节的寄存器地址给AFE4400,等待一会后,AFE4400会返回该地址的数据到单片机,一个字节一个字节地发送,共3个字节24位数据。(单片机需要一次发送 三次接收)
写数据时:拉低STE,先发送想要写入的寄存器地址,然后依次发送3个字节24位的数据,就可以改变AFE4400中相应寄存器的数据。(单片机需要一次发送 三次接收)
SPI读取AFE4400寄存器值的代码:
SPI把数据写入AFE4400寄存器中的代码:
寄存器写入
完成以上两步我们后,AFE4400就可以乖乖地为我们所用,非常听我们的话!通过查看寄存器功能手册,写入相应的值对AFE4400的功能进行配置,可以实现我们想要的功能。
AFE4400的一些寄存器:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)