Xilinx-AMD FPGA 开发调试分享
Xilinx-AMD-ChipDebug

Xilinx-AMD

帖子 1.1W+互动 376关注 108
赛灵思是FPGA、可编程SoC及ACAP的发明者, 其高度灵活的可编程芯片由一系列先进的软件和工具提供支持,可推动跨行业和多种技术的快速创新- 从消费电子类到汽车类再到云端。
Xilinx-AMD-ChipDebug
该帖子内容已隐藏,请登录后查看

登录后继续查看

该帖子内容已隐藏,请评论后查看

登录后继续评论

评分
1分享
该帖子内容已隐藏,请登录后查看

登录后继续查看

该帖子内容已隐藏,请登录后查看

登录后继续查看

评分
1分享
该帖子内容已隐藏,请评论后查看

登录后继续评论

评分
1分享
该帖子内容已隐藏,请评论后查看

登录后继续评论

该帖子内容已隐藏,请登录后查看

登录后继续查看

该帖子内容已隐藏,请评论后查看

登录后继续评论

该帖子内容已隐藏,请登录后查看

登录后继续查看

该帖子内容已隐藏,请评论后查看

登录后继续评论

该帖子内容已隐藏,请评论后查看

登录后继续评论

Spi模式設定(PYNQ-Z2)-ChipDebugSpi模式設定(PYNQ-Z2)-ChipDebugSpi模式設定(PYNQ-Z2)-ChipDebug
热门评论
chipdebug的头像-ChipDebugchipdebug徽章-创作大使-ChipDebug等级-LV3-ChipDebug超级版主2
我看了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;
}
评分
1分享
该帖子内容已隐藏,请登录后查看

登录后继续查看