Zynq中spi、iic等协议配置器件

首先打开EMIO,比如iic需要2个接口,那就打开两个emio-gpio口,在这配置zynq时记得打开spi、iic接口,在arm上初始化iic、spi等接口,记得绑定。zynq上的EMIO接口选择上会有三种类型:输出、输入、高阻状态,使用啥就make external ,绑定引脚。

下面是SPI初始化流程:

void initialspi(){
	int status;
	SpiPtr=XSpiPs_LookupConfig(SPI_DEV_ID);

	status=XSpiPs_CfgInitialize(&SpiPs,SpiPtr,SpiPtr->BaseAddress);
	if(status!=XST_SUCCESS){
		return XST_FAILURE;
	}

	status=XSpiPs_SetOptions(&SpiPs,XSPIPS_FORCE_SSELECT_OPTION|XSPIPS_MASTER_OPTION);
	if(status!=XST_SUCCESS){
		return XST_FAILURE;
	}

	status=XSpiPs_SetClkPrescaler(&SpiPs,XSPIPS_CLK_PRESCALE_32);
	if(status!=XST_SUCCESS){
		return XST_FAILURE;
	}

	status =XSpiPs_SetSlaveSelect(&SpiPs,0);
	if(status!=XST_SUCCESS){
		return XST_FAILURE;
	}
}

下面是初始化gpio流程

void initialgpio(){
	int status;
	GpioPtr = XGpioPs_LookupConfig(GPIO_DVE_ID);
	status = XGpioPs_CfgInitialize(&GpioPs, GpioPtr,GpioPtr->BaseAddr);

	XGpioPs_SetDirectionPin();

	XGpioPs_SetOutputEnablePin();

}

你可能感兴趣的:(zynq,arm开发,fpga开发,学习,c语言)