GD32F103模拟3线SPI通信问题

[复制链接]
1343|11
手机看帖
扫描二维码
随时随地手机跟帖
zyftank|  楼主 | 2024-11-21 10:25 | 显示全部楼层 |阅读模式
本帖最后由 zyftank 于 2024-11-23 17:44 编辑

最近用GD32F103CBT6读一个3线SPI接口的ADC——芯海的CS1239,因为把连接画错了,只能用IO模拟SPI进行通信,但是在读取ADC芯片寄存器值的时候,一直返回0x00,我用万用表量了一下ADC的CS和SCK的PIN脚,都是高电平,SDA一直是低电平,不知道是什么原因,求大佬位帮忙看一下程序。

使用特权

评论回复
LcwSwust| | 2024-11-21 10:41 | 显示全部楼层
要想用万用表测,那得把每一步的延时加到特别大(比如1秒)才行.
建议准备一个示波器.
cs1239_read_reg就有问题,在读数据前怎么有个SDA_OUTPUT,不应是SDA_INPUT吗?

使用特权

评论回复
zyftank|  楼主 | 2024-11-21 10:48 | 显示全部楼层
LcwSwust 发表于 2024-11-21 10:41
要想用万用表测,那得把每一步的延时加到特别大(比如1秒)才行.
建议准备一个示波器.
cs1239_read_reg就有问 ...

cs1239_read_reg读寄存器值的时候,要先发读指令和地址,所以先是SDA_OUTPUT,发送指令后再改成SDA_INPUT。

使用特权

评论回复
LcwSwust| | 2024-11-21 10:58 | 显示全部楼层
zyftank 发表于 2024-11-21 10:48
cs1239_read_reg读寄存器值的时候,要先发读指令和地址,所以先是SDA_OUTPUT,发送指令后再改成SDA_INPUT ...

哦,是我没看仔细.
最好是用示波器看看波形,
如果没示波器,就用利用单片机的ADC造一个示波器.

使用特权

评论回复
xionghaoyun| | 2024-11-21 11:38 | 显示全部楼层
学习一下

使用特权

评论回复
两只袜子| | 2024-11-21 15:21 | 显示全部楼层
GPIO引脚连接是否正确

使用特权

评论回复
elephant00| | 2024-11-21 15:23 | 显示全部楼层
参考GD32F103CBT6和CS1239的数据手册

使用特权

评论回复
jcky001| | 2024-11-21 16:00 | 显示全部楼层
检查硬件连接是否有任何短路或断路情况。

使用特权

评论回复
cr315| | 2024-11-21 17:00 | 显示全部楼层
使用示波器来观察CS、SCK和SDA的波形是否符合SPI通信的规范。

使用特权

评论回复
zyftank|  楼主 | 2024-11-22 07:31 | 显示全部楼层
我将SDA设置成OUT_PP,然后将SDA拉高,用万用表测量只有0.9V,这是芯片坏了?

使用特权

评论回复
丙丁先生| | 2024-11-23 08:30 | 显示全部楼层
逐步排查时序、配置、连接和干扰问题,优化GPIO设置。

使用特权

评论回复
zyftank|  楼主 | 2024-11-23 17:44 | 显示全部楼层
搞了半天,最后是ADC芯片坏了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝