OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11605|回复: 2

请教大家一个问题,有时间的兄弟进来看看。

[复制链接]

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
发表于 2012-11-18 19:16:17 | 显示全部楼层 |阅读模式
我用的是小马哥那里买的iCore核心板(STM32+FPGA),以前用的时候没注意,后来才发现这个程序上的BUG
STM32和FPGA采用的FSMC通信,由于VET6只有一个FSMC_NE1引脚,所以板子上有个138译码器。
还有一个重要的地方就是STM32的时钟由FPGA提供的,所以刚开机需要复位下STM32,或者STM32
做个延时,以此来得到稳定的ARM时钟


CS0  作为了FPGA的片选。

CS1,CS2,CS3可以用其它外设的片选,下面就说一下我的问题,我需要用这几个片选的其中
一个来外接RA8875的屏,
对于VET6来说,注意红体的地方只能配置成FSMC_Bank1_NORSRAM1
因为它只有一个FSMC_NE1引脚



  /*-- FSMC Configuration ------------------------------------------------------*/
    /*----------------------- SRAM Bank 4 ----------------------------------------*/
    /* FSMC_Bank1_NORSRAM4 configuration */
    timing.FSMC_AddressSetupTime = 2;
    timing.FSMC_AddressHoldTime = 0;
    timing.FSMC_DataSetupTime = 4;
    timing.FSMC_BusTurnAroundDuration = 0;
    timing.FSMC_CLKDivision = 0;
    timing.FSMC_DataLatency = 0;
    timing.FSMC_AccessMode = FSMC_AccessMode_A;
    /*
     LCD configured as follow:
        - Data/Address MUX = Disable
        - Memory Type = SRAM
        - Data Width = 16bit
        - Write Operation = Enable
        - Extended Mode = Enable
        - Asynchronous Wait = Disable
    */
   init.FSMC_Bank = FSMC_Bank1_NORSRAM1;
    init.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
    init.FSMC_MemoryType = FSMC_MemoryType_SRAM;
    init.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
    init.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
    init.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;    /* 注意旧库无这个成员 */
    init.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
    init.FSMC_WrapMode = FSMC_WrapMode_Disable;
    init.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
    init.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
    init.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
    init.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
    init.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
    init.FSMC_ReadWriteTimingStruct = &timing;
    init.FSMC_WriteTimingStruct = &timing;
    FSMC_NORSRAMInit(&init);
    /* - BANK 1 (of NOR/SRAM Bank 1~4) is enabled */
    FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);



使用的时候发现只有红体的地方才配置成FSMC_Bank1_NORSRAM4才能用,按道理来说
不能啊,应该配置成
FSMC_Bank1_NORSRAM1才能用啊。
后来尝试的解决办法:

1.  在别的VET6开发板上面,配置FSMC为FSMC_Bank1_NORSRAM2,
     FSMC_Bank1_NORSRAM3,FSMC_Bank1_NORSRAM4的时候RA8875的屏都能用,就是速度慢,
     只有配置能
FSMC_Bank1_NORSRAM1的时候才是正常的。
2.  后来干脆在FSMC_NE1引脚引出一根线直接接到RA8875的屏上,还是不行
  
     现在就差把FPGA吹下来了
,大家帮看看可能是什么问题。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-18 21:38:46 | 显示全部楼层
这问题确实比较怪异了,以独立的STM32为准吧。怀疑fpga是不是干扰到了LCD。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
 楼主| 发表于 2012-11-19 15:37:53 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子哥回复,后面把RA8875的屏去掉了,FSMC只和FPGA通信,没问题了。
RA8875采用SPI通信方式。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 20:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表