MSP430F449的数字电位器分压功能设计
3 MSP430软件模拟SPI串口的实现
本文采用MSP430F449单片机的I/O口模拟SPI通信,选用SCK下降沿输出、上升沿输入的SPI三线接口类型。定义单片机MSP430F449的P3.4端口为输出MOSI,P3.5端口为时钟信号SCK,P3.7端口为片选输入CS,P4.0端口为输入MISO。在P3.5下降沿时,输出数据data的高位,然后把P3.5的电压拉高,data中的数据依次右移1位,再将P3.5的电平拉低,再次输出data的高位,实际这时输出的是原来data中的次高位,data如此重复有移8次就完成了1个宁符的输出。实现该功能的代码如下:


同理,把P3.5的输出电平拉高,制造时钟的上升沿,检测输入引脚P4.0的电平,将其记入data中,再将P3.5的输出电平拉低,这时就接收好1个字符位了,然后将data接收到的字符位右移1位,准备继续接收字符下一位,如此重复8次后就收到1个完整的字符,代码如下:

如果是选用SCK下降沿输入、上升滑输出的SPI接口类型,只需要把上面接收和发送程序中SCK的上升沿和下降沿交换即可满足时序要求。模拟串口通信的代码简单,灵活性强,可以在具体的SPI读写程序中实现其硬件接口的功能。1个SPI的时钟周期就是执行上述模拟串口指令所需要的时间,因此其串口速率主要由系统时钟来决定,提高系统时钟频率能够进一步提高SPI串口的传输速率。
4 MSP430模拟SPI驱动数字电位器实例
图5为芯片与单片机连接的引脚连接图。片选CS在低电平时有效。按照时序图和引脚连接图,首先需要定义MSP430F449的I/O端口,P3.4为MOSI,P3.5为SCK,P3.7为CS,P4.0为MISO。本文引用地址:https://www.eepw.com.cn/article/171507.htm
由于使用MSP430F449的I/O模拟串口通信,没有使用中断函数,只需要调用一个子函数就能实现其功能,因此在操作上相比硬件而言更加简单。下面给出了写数据命令和递增命令的子函数。
评论