取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
Visitor
Visitor
396 次查看
注册日期: ‎10-26-2020

Zynq-7000系列的PS端SPI設置問題

各位好:

想詢問一下,最近在開發上面遇到問題,

我想建立一個PS端的SPI來做使用,並且是透過EMIO來做傳輸,

而我有看了其他網站的相關資料

網頁1

網頁2

在VIVADO裡面我已經將SPI_0設定為EMIO,並且也有設定好了實體接線出來

接著再到SDK裡面,我有做相關的初始化,基本上跟第二篇所設定的,我都有設定

需要用的函數也加了,

而最後我在while loop裡面放了

XSpi_enable(.....)

XSpi_Transfer(.....)

XSpi_disable(.......)

這樣的式子,但我在開發板上用示波器量測EMIO所設置的腳位,

似乎連CLK都沒訊號,不知道是哪裡有需要修改的嗎?

另外在設定EMIO時,Design Block上面有I、O、T,

若是我將out的腳位接到PL腳位上,

是否T也得接呢?或是可以直接在腳位設定那裏,直接設定為pullup呢?

感謝。

0 项奖励
回复
4 回复数
Xilinx Employee
Xilinx Employee
347 次查看
注册日期: ‎06-19-2019

你在综合以后,查看一下网表,看一下你引出的EMIO接口是否连接了IOBUF。

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
回复
Visitor
Visitor
302 次查看
注册日期: ‎10-26-2020

請問該怎麼做呢?

不太清楚要去哪裡看IOBUF

0 项奖励
回复
Participant
Participant
236 次查看
注册日期: ‎10-22-2020

是否在.xdc中给SPI各个信号分配管脚?通过EMIO引出的信号需要指定管脚。看IO buf的话需要open synthesized design ,点击综合电路图上方的cells即可查看,默认情况下工具会自动给顶层input/output 分配缓冲器IBUF/OBUF。

0 项奖励
回复
Visitor
Visitor
202 次查看
注册日期: ‎10-26-2020

我現在確定SPI可以動作了,但現在我想做多個slave的切換

ex.第一個slave的資料傳完後,切到第二個slave,然後資料繼續送

但我現在連一開始就送至第二個slave都沒辦法完成了,不知道是否有那裡有設定做呢?

(PL端的設定已經完成了)

namejacky_0-1604027270178.png

而SDK的部分,不太確定還需要什麼參數嗎?

init(

SpiConfig.BaseAddress = XPAR_XSPIPS_0_BASEADDR;
SpiConfig.DeviceId = XPAR_XSPIPS_0_DEVICE_ID;
SpiConfig.InputClockHz = XPAR_XSPIPS_0_SPI_CLK_FREQ_HZ;

XSpiPs_LookupConfig(SPI_DEVICE_ID);
XSpiPs_CfgInitialize(&Spi, &SpiConfig, SpiConfig.BaseAddress);
XSpiPs_SetOptions(&Spi,(XSPIPS_MASTER_OPTION));
XSpiPs_SetClkPrescaler(&Spi, XSPIPS_CLK_PRESCALE_128);
XSpiPs_SetSlaveSelect(&Spi,1); 
XSpiPs_Enable(&Spi);

)

 

Thanks

0 项奖励
回复