
Xilinx-AMD
赛灵思是FPGA、可编程SoC及ACAP的发明者, 其高度灵活的可编程芯片由一系列先进的软件和工具提供支持,可推动跨行业和多种技术的快速创新- 从消费电子类到汽车类再到云端。






https://chipdebug.com/forum-post/52660.html
https://chipdebug.com/forum-post/52681.html


7年前发布180次阅读


7年前发布279次阅读


7年前发布1037次阅读


7年前发布634次阅读


7年前发布191次阅读


2年前发布94次阅读


7年前发布178次阅读


7年前发布28次阅读


7年前发布36次阅读


3年前更新327次阅读


7年前发布183次阅读


7年前发布63次阅读


3年前更新37次阅读



我看了pyznq的代码,你用spi_open_device这上函数打开应该就可以实现slave,
spi spi_open_device(unsigned int device) {
int status;
u16 dev_id;
unsigned int base_address;
u32 control;
if (device < XPAR_XSPI_NUM_INSTANCES) {
dev_id = (u16) device;
}
else {
int found = 0;
for (u16 i = 0; i < XPAR_XSPI_NUM_INSTANCES; ++i) {
if (XSpi_ConfigTable[i].BaseAddress == device) {
found = 1;
dev_id = i;
break;
}
}
if (!found)
return -1;
}
status = XSpi_Initialize(&xspi[dev_id], dev_id);
if (status != XST_SUCCESS) {
return -1;
}
base_address = xspi[dev_id].BaseAddr;
// Soft reset SPI
XSpi_WriteReg(base_address, XSP_SRR_OFFSET, 0xA);
// Master mode
control = XSpi_ReadReg(base_address, XSP_CR_OFFSET);
// Master Mode
control |= XSP_CR_MASTER_MODE_MASK;
// Enable SPI
control |= XSP_CR_ENABLE_MASK;
// Slave select manually
control |= XSP_INTR_SLAVE_MODE_MASK;
// Enable Transmitter
control &= ~XSP_CR_TRANS_INHIBIT_MASK;
// Write configuration word
XSpi_WriteReg(base_address, XSP_CR_OFFSET, control);
return (spi) dev_id;
}


7年前发布183次阅读

Xilinx-AMD
赛灵思是FPGA、可编程SoC及ACAP的发明者, 其高度灵活的可编程芯片由一系列先进的软件和工具提供支持,可推动跨行业和多种技术的快速创新- 从消费电子类到汽车类再到云端。
帖子
1.1W+
互动
399
阅读
23.9W+
搜索