嵌入式学习小组
直播中

李志强

7年用户 160经验值
私信 关注

如何通过SPI接口读写另外一个芯片的GPIO吗?

有人会通过SPI接口读写另外一个芯片的GPIO吗?现在需要读一个射频芯片的GPO口寄存器,射频芯片与主芯片通过SPI进行读写的,有大神知道吗,求指教了!

回帖(11)

袁沁茹

2020-4-30 08:42:00
云汉达人
没有人回答,那我就答一下吧。SPI只是个通讯方式,通讯内容就是协议,自定义的。举个例子,比如SPI发给芯片一个值1,那么这个芯片的程序判断接收到的是1,就去读IO口。同理,如果读到2,就去写IO口。就是个传输过程,每个芯片自己的功能都由自己完成,接口用于通讯。
举报

陈艾惠

2020-4-30 08:55:47
LiuYang 发表于 2016-7-12 20:25
没有人回答,那我就答一下吧。SPI只是个通讯方式,通讯内容就是协议,自定义的。举个例子,比如SPI发给芯片 ...

这个道理我也懂点哦 现在问题是我们项目组的板子,怎么通过串口终端运行读写函数,另外一个芯片相当于是一个SPI device了,我不清楚能不能直接通过串口终端进入系统操作,如想给另外一个芯片的GPO引脚拉个高电平或者读取另外一个芯片的GPO引脚的寄存器?
举报

刘晓燕

2020-4-30 09:08:50
云汉达人
1、板子上有系统么?什么系统?还是裸机程序?
2、若是裸机,那么你要做串口到SPI到GPIO口的协议来完成。
若是有linux系统,可以调用linux的SPI的操作程序通过SPI对射频芯片的GPO口寄存器读写。
3、无论是哪一种,你都要有射频芯片的数据手册与GPO口寄存器地址,还有要有通讯协议。
举报

蔡婷

2020-4-30 09:20:45
先确定你所说的RF芯片类型,你需要去看RF芯片的datasheet和manual。
情况一:有的RF芯片功能是固化的,并不是RF+处理器,或者说处理器不暴露给用户。
这样的芯片,一般提供某种接口,如UART、IIC、SPI等给用户。一般的操作形式就是:设置地址(寄存器)+读写数据。你要按照datasheet或manual中提供的地址列表去查找你所需要实现的功能。如果其中有设置和读写IO的功能(对应的地址),那就可以。不支持的话就没办法了。所以这种情况需要你去确定RF芯片的型号,并查找其文档,看是否提供该功能。
情况二:若RF芯片包含了一个MCU核,其通信协议是可编程的。
这样的芯片,你要拿到该RF芯片源码,修改协议栈,增加读写IO相关功能,将其添加至通信协议中。
情况三:RF芯片包含了一个MCU核,但协议是闭源形式的。
这种情况,最好通过其它通信接口与你的主芯片连接。功能自己编程实现。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分