以下是一个基于HAL库的FMC配置代码示例,用于初始化连接在FMC_NE1上的32位SRAM: c #include "stm32h7xx_hal.h" SRAM_HandleTypeDef hsram1; FMC_SDRAM_TimingTypeDef SRAM_Timing; void MX_FMC_SRAM_Init(void) { FMC_NORSRAM_TimingTypeDef Timing; /* SRAM1 clock enable */ __HAL_RCC_FMC_CLK_ENABLE...
FMC_NE1 输出低电平: FMC_A11(B),FMC_A10(A) = 00时,1Y0输出的低电平,选择的是OLED。 FMC_A11(B),FMC_A10(A) = 01时,1Y1输出的低电平,选择的是74HC574。 FMC_A11(B),FMC_A10(A) = 10时,1Y2输出的低电平,选择的是DM9000。 FMC_A11(B),FMC_A10(A) = 11时,1Y3输出的低电平,选择的是...
-->FMC_A11(B),FMC_A10(A) = 11时,1Y3输出的低电平,选择的是AD7606。然后我们再计算译码器的地址,注意,这里地址的计算都是按照FMC的32bit访问模式计算的,因为我们的V7程序中是将NE1对应的FMC配置为32bit模式了。具体FMC的32bit访问模式,16bit访问模式和8bit访问模式的区别就在这里:32bit模式下,我们计算...
FMC_NE1 输出低电平: FMC_A11(B),FMC_A10(A) = 00时,1Y0输出的低电平,选择的是OLED。 FMC_A11(B),FMC_A10(A) = 01时,1Y1输出的低电平,选择的是74HC574。 FMC_A11(B),FMC_A10(A) = 10时,1Y2输出的低电平,选择的是DM9000。 FMC_A11(B),FMC_A10(A) = 11时,1Y3输出的低电平,选择的是...
FMC_A11(B),FMC_A10(A) = 11时,1Y3输出的低电平,选择的是AD7606。 然后我们再计算译码器的地址,注意,这里地址的计算都是按照FMC的32bit访问模式计算的,因为我们的V7程序中是将NE1对应的FMC配置为32bit模式了。 具体FMC的32bit访问模式,16bit访问模式和8bit访问模式的区别在第47章的2.4小节有详细讲解。
FMC硬件接口涉及到的知识点稍多,下面逐一为大家做个说明。 76.5.1 FMC的块区分配 FMC总线可操作的地址范围0x60000000到0xDFFFFFFF,具体的框图如下: 从上面的框图可以看出,NOR/PSRAM/SRAM块区有4个片选NE1,NE2,NE3和NE4,但由于引脚复用,部分片选对应的引脚要用于其他功能,而且要控制的总线外设较多,导致片选不够...
FMC总线除了复用到具体引脚上的A[25:0],共计26路地址以外,还有两条内部总线ADDR[27:26]。通过这两路线才区分出了FMC_NE1,FMC_NE2,FMC_NE3和FMC_NE4。即0x60xx xxxx,0x64xx xxxx,0x68xx xxx和0x6Cxx xxxx。 这些地址都是按照字节进行访问的,如果控制8位宽度的存储设备比较方便,如果控制16位,32位宽度...
FMC硬件接口涉及到的知识点稍多,下面逐一为大家做个说明。 76.5.1 FMC的块区分配 FMC总线可操作的地址范围0x60000000到0xDFFFFFFF,具体的框图如下: 从上面的框图可以看出,NOR/PSRAM/SRAM块区有4个片选NE1,NE2,NE3和NE4,但由于引脚复用,部分片选对应的引脚要用于其他功能,而且要控制的总线外设较多,导致片选不够...
76.9 AD7606驱动移植和使用AD7606移植步骤如下:第1步:复制bsp_fmc_ad7606.c和bsp_fmc_ad7606.h...
这个块区有4路片选,分别是FMC_NE1,FMC_NE2,FMC_NE3和FMC_NE4,这几个片选在芯片上都有对应的引脚,每个片选可以管理64MB的访问空间,这个是由FMC引出的26路地址线FMC_A[0:25]决定的,2^26 = 64MB。 FMC_NE1:首地址0x6000 0000,可以管理的地址范围0x6000 0000到0x63FF FFFF。 FMC_NE2:首地址0x6400 ...