Matlab的SimuLink对FS32K144编程--SPI通讯控制12bitDAC输出

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​

1、硬件介绍,DAC芯片:AD5328BRUZ

DAC_SPI_SCK----PTD0(SPI1)

DAC_SPI_DIN----PTE0(SPI1)单片机输出

DAC_SPI_CS-----PTB17(SPI1_CS3)

2、分析芯片数据手册时钟图,芯片为SPI的从机

可知

片选信号"SYNC":低电平有效

数据"DIN":第一位数据为最高位

时钟"SCLK":下降沿采集信号

SPI通讯的四种模式

时钟极性通常写为CKP或CPOL

时钟相位通常写为CKE或CPHA

  • Mode0:CKP=0,CKE =0:当空闲态时,SCK处于低电平,数据采样是在第1个边沿,也就是SCK由低电平到高电平的跳变,所以数据采样是在上升沿(准备数据),(发送数据)数据发送是在下降沿。
  • Mode1:CKP=0,CKE=1:当空闲态时,SCK处于低电平,数据发送是在第2个边沿,也就是SCK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。
  • Mode2:CKP=1,CKE=0:当空闲态时,SCK处于高电平,数据采集是在第1个边沿,也就是SCK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。
  • Mode3:CKP=1,CKE=1:当空闲态时,SCK处于高电平,数据发送是在第2个边沿,也就是SCK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。

该芯片的时钟符合模式1:SPHA = 1,SPOL = 0;

3、查数据手册找数据位

该芯片一次通讯16bit

4、故该芯片SPI通讯格式如下

该芯片的时钟符合模式1:SPHA = 1,SPOL = 0;

一次通讯16bit

对接引脚

DAC_SPI_SCK----PTD0(SPI1)

DAC_SPI_DIN----PTE0(SPI1)单片机输出

DAC_SPI_CS-----PTB17(SPI1_CS3)

且Bit order = MSB first

5、配置SPI通讯模式,S32K144为主机,使用波特率为100000bps

6、SPI引脚分配

7、配置SPI通道

8、数据发送--查数据手册分析

最高位为0时数据输出模拟量信号,最高位为1时配置芯片寄存器,该芯片可以直接输出信号,故:最高位常为0。

A0,A1,A2可配置通道,AD5328有8个通道可独立控制

把A0,A1,A2进行二进制排列A0最低位A2最高位,即数值0-7各代表1个通道A-H

D的数值是D0~D11,D0为最低位D11为最高位,进行二进制组合排列,D的值在:0-4095之间

N是12,本电路中Vref为5V电压。

9、SPI输出,通道1,片选为通道3,片选低电平有效,没有反馈信息

10、由于一次输出只有8位,所以16bit由2个8位组成,第一个8位为低8为,第二个8位为高8位,输出信息无效,用display显示一下

11、数据处理如下

相关推荐
清风66666640 分钟前
基于STM32单片机的OneNet物联网粉尘烟雾检测系统
stm32·单片机·物联网·毕业设计·课程设计
文火冰糖的硅基工坊2 小时前
[硬件电路-192]:基级与发射极两端的电压超过1.5v可能是什么原因
单片机·嵌入式硬件·系统架构·电路·跨学科融合
源远流长jerry5 小时前
STM32之RTOS移植和使用
stm32·单片机·嵌入式硬件
2301_1472583695 小时前
STM32 单片机开发 - SPI 总线
单片机·嵌入式硬件
范纹杉想快点毕业12 小时前
ZYNQ PS 端 UART 接收数据数据帧(初学者友好版)嵌入式编程 C语言 c++ 软件开发
c语言·笔记·stm32·单片机·嵌入式硬件·mcu·51单片机
方圆工作室13 小时前
51单片机驱动数码管
单片机·嵌入式硬件·51单片机
乔宕一14 小时前
stm32 链接脚本没有 .gcc_except_table 段也能支持 C++ 异常
c++·stm32·嵌入式硬件
范纹杉想快点毕业15 小时前
STM32 串口接收数据包(自定义帧头帧尾)
stm32·单片机·嵌入式硬件
茯苓gao15 小时前
STM32G4 电流环闭环
笔记·stm32·单片机·嵌入式硬件·学习
单片机系统设计16 小时前
基于stm32的环境监测系统/智能家居/空气质量监测系统
stm32·单片机·嵌入式硬件·毕业设计·智能家居