OpenEdv-开源电子网

标题: 三线SPI怎么写数据发送函数? [打印本页]

作者: 身心俱皮    时间: 2020-2-20 16:40
标题: 三线SPI怎么写数据发送函数?
问题描述:使用h743的SPI控制模数转换器AD5545,但是数据好像发不出去ad5545的特点1.spi三线串行数据接口,包括串行数据输入(SDI),时钟(CLK)和芯片选(CS)(没有返回数据的线)
2.接受2位地址+16位数据的共18位数据格式,且只接受片选CS拉高前的后18位,其余忽略.
3.根据时序图的clk线来看,时钟的空闲状态是低电平,且在上升沿进行数据发送
我自己总结的时序控制思路是:
首先拉低片选,然后发送三个8位数据,数据在时钟上升沿控制下送入移位寄存器,之后拉高片选,将数据送入输入寄存器,最后拉低拉高LDAC更新输出
据此自己写了一小段代码测试
spi的初始化参考的 实验36 NRF24L01无线通信实验 里面的设置
是我的数据发送函数选的不对吗,还是其他的,不知道问题出在哪(初学者,见谅)




作者: 正点原子    时间: 2020-2-20 23:20
测量下IO口是否有波形?一定要有CLK输出.
作者: 身心俱皮    时间: 2020-2-21 17:50
本帖最后由 身心俱皮 于 2020-2-21 17:51 编辑
正点原子 发表于 2020-2-20 23:20
测量下IO口是否有波形?一定要有CLK输出.

现在待开学在家,没有示波器
请问我的软件方面是否有问题呢关于spi配置和数据发送函数这方面
引脚我检查了好像没什么问题,会不会是我的spi初始化参数设置的不对,例程的初始化代码我修改了空闲电平,跳变沿和单线通信,其他的我不懂就没改动

作者: 正点原子    时间: 2020-2-21 23:14
身心俱皮 发表于 2020-2-21 17:50
现在待开学在家,没有示波器
请问我的软件方面是否有问题呢关于spi配置和数据发送函数这方面
引脚我 ...

配置可以参考我们开发板的
参考4线的配置,只是你的MOSI没有用到,但是你要正确接收,还是必须先写DR寄存器,然后再读DR。





欢迎光临 OpenEdv-开源电子网 (http://www.openedv.com/) Powered by Discuz! X3.4