STM32
直播中

张莉

7年用户 1216经验值
私信 关注
[问答]

STR71x系列外部存储接口EMI,读数据没时序怎么解决?

            STR71x系列,用EMI外部存储功能接口时,写数据时引脚有信号输出,但是读数据时引脚信号出不来(示波器测)
配置如下:
        GPIO_Config(GPIO2,0x0002,GPIO_AF_PP); //只使用Bank1,,配置CS.1引脚
        EMI_Enable(EMI_BANK0,DISABLE);
//        EMI_Enable(EMI_BANK2,DISABLE);
//        EMI_Enable(EMI_BANK3,DISABLE);
        EMI_Config(EMI_BANK1,EMI_SIZE_16,EMI_3_WaitStates);  
        
        EMI_Enable(EMI_BANK1,ENABLE);      //ʹÄÜEMI
//定义
        u16 *Ext_Address;  
        Ext_Address = (u16*)0x62000000;  

   *(Ext_Address) = 0x55AA;   //写数据
   *(Ext_Address+1) = 0xAA55;
    wait_us(1);
  Temp2= *(Ext_Address); //读数据
  Temp1=*(u8*)(0x62000000);  

外接的是一个FPGA的Bank 作为外部存储器,能抓到我写的数据,但是读的信号不行,,求指点

回帖(1)

李俊

2024-5-11 17:20:37
在STR71x系列微控制器中,外部存储接口(EMI)用于与外部存储器进行通信。根据您的描述,写数据时引脚有信号输出,但读数据时引脚信号出不来。这可能是由于时序问题或配置问题导致的。以下是一些建议和解决方案:

1. 检查时钟配置:确保EMI时钟已正确配置。在STR71x系列中,EMI时钟通常由系统时钟(SYSCLK)提供。请检查系统时钟设置,确保EMI时钟频率符合外部存储器的要求。

2. 检查EMI配置:确保EMI的配置正确。根据您的代码,您已经禁用了EMI_BANK0、EMI_BANK2和EMI_BANK3。请检查您的外部存储器是否连接到这些禁用的银行之一。如果是,请启用相应的银行。

3. 检查GPIO配置:您已经配置了GPIO2的CS.1引脚。请确保其他相关的GPIO引脚(如地址线、数据线和控制线)也已正确配置。

4. 检查外部存储器的时序要求:请查阅您使用的外部存储器的数据手册,了解其时序要求。确保STR71x系列的EMI接口满足这些要求。

5. 使用示波器检查信号:您已经使用示波器测量了引脚信号。请仔细检查读数据时的信号波形,确保没有异常。如果发现异常,请检查相关的GPIO引脚配置和EMI设置。

6. 检查代码逻辑:请检查您的代码逻辑,确保在读取数据时正确地设置了控制信号(如片选信号、读写信号等)。

7. 软件仿真:使用STR71x系列的仿真工具(如IAR Embedded Workbench或Keil MDK-ARM)进行软件仿真。这有助于识别代码中可能存在的问题。

8. 硬件调试:使用STR71x系列的调试工具(如J-Link或ST-LINK)进行硬件调试。这可以帮助您在实际硬件上检查信号和时序。

9. 固件更新:如果您使用的是较旧的固件版本,请尝试更新到最新版本。新版本的固件可能包含针对EMI接口的改进和修复。

10. 寻求技术支持:如果问题仍然存在,请联系STR71x系列微控制器的制造商或技术支持团队,寻求专业帮助。

通过以上步骤,您应该能够找到并解决STR71x系列外部存储接口EMI读数据时序问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分