基于通过STM32的FSMC总线读取FPGA的实现

本文介绍了如何在嵌入式系统中,使用STM32的FSMC总线与FPGA进行通信。通过STM32的GPIO配置和FSMC寄存器设置,实现了FPGA的片选信号扩展,并提供了读写FPGA内部存储空间的宏定义及调用示例。在FPGA侧,展示了fsmc.v模块的代码,说明了写入和读取数据的逻辑。
摘要由CSDN通过智能技术生成

硬件环境是ICORE FPGA与ARM的双核心开发板

STM32配置的FSMC的代码(寄存器操作模式):

static int 

initialize(void)
{
GPIOD_R->CRH.W = 0xbbbbbbbb;
GPIOD_R->CRL.W = 0xbbbbbbbb;

GPIOE_R->CRH.W = 0xbbbbbbbb;
GPIOE_R->CRL.W = 0xbbbbbbbb;

FSMC_Bank1_R->BCR1 &= ~(1 << 1 | 1 << 2 | 1 << 3);

FSMC_Bank1_R->BCR1 |= 1 << 14; //EXTMOD

FSMC_Bank1_R->BTR1 = 0x300;

FSMC_Bank1E_R->BWTR1 = 0X300;

return 0;
}

icore 利用STM32的FSMC的地址总线AB23 AB22 跟CS 通过138译码器 扩展出4路片选信号,CS0,CS1,CS2,CS3

CS0为FPGA的片选信号 4路片选的宏定义如下所示:

#define CS0_BASE (0x60000000 + (0 << 23))

#define CS1_BASE (0x60000000 + (1 << 23))
#define CS2_BASE (0x600

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值