一个SPI可以有几个从设备
在zynq开发和外部ad相连时,经常需要spi进行寄存器配置,连线一定要注意,MOSI和MISO信号为SDI和SDO。

在程序中使用 s32 XSpiPs_SetSlaveSelect(XSpiPs *InstancePtr, u8 SlaveSel) 选择。其实就是吧对应设备的ss拉低。
备注:只选一个ss,可以不用指定。(感觉,还没测试)

这是xspips.c中定义的函数,发送和接收有 XSpiPs_Transfer 和 XSpiPs_PolledTransfer 两个函数,分别采用中断和轮询模式。
一、轮询模式
米联客参考代码,SpiPs_Init中部分和官方例程流程一样,SpiPs_Read和SpiPs_Send为精简版感觉,也可以直接使用xspips.c中 XSpiPs_PolledTransfer 函数替代。
int SpiPs_Init(u16 SpiDeviceId)
{
int Status;
XSpiPs_Config *SpiConfig;
/*
* Initialize the SPI driver so that it's ready to use
*/
SpiConfig = XSpiPs_LookupConfig(SpiDeviceId);
if (NULL == SpiConfig) {
return XST_FAILURE;
}
Status = XSpiPs_CfgInitialize((&SpiInstance), SpiConfig,<

本文介绍了在Zynq平台上使用SPI接口与外部AD设备连接的配置和编程方法。通过XSpiPs初始化、设置选项、选择从设备SS及中断与轮询模式的使用,详细阐述了SPI通信的过程。示例代码展示了轮询模式下读写操作,并提供了中断模式的框架,强调了中断处理程序在SPI通信中的作用。
33万+

被折叠的 条评论
为什么被折叠?



