OpenEdv-开源电子网

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

f429的fmc问题

[复制链接]

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2014-3-8
在线时间
11 小时
发表于 2014-10-29 16:36:57 | 显示全部楼层 |阅读模式
5金钱

现在有谁用stm32f429的fmc挂载sram或者8080接口的lcd成功的吗?我按照407的初始化方法,似乎不对啊,总线没啥反应……

最佳答案

查看完整内容[请看2#楼]

FMC的GPIO配置 [mw_shl_code=c,true]/****************************************Copyright (c)************************************************** ** This file is part of RT-Thread RTOS ** COPYRIGHT (C) 2006 - 2014, RT-Thread Development Team ** ** The license and distribution terms for this file may be ** found in the file LICENSE in this distribution or at ** http://www.rt-thread.org/license/LI ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3708
金钱
3708
注册时间
2011-5-23
在线时间
2010 小时
发表于 2014-10-29 16:36:58 | 显示全部楼层
FMC的GPIO配置
[mw_shl_code=c,true]/****************************************Copyright (c)************************************************** ** This file is part of RT-Thread RTOS ** COPYRIGHT (C) 2006 - 2014, RT-Thread Development Team ** ** The license and distribution terms for this file may be ** found in the file LICENSE in this distribution or at ** http://www.rt-thread.org/license/LICENSE ********************************************************************************************************/ static const struct { GPIO_TypeDef *GPIOx; uint16_t PinSource; } _fmc_conf[] = { /* D0~D7 */ {GPIOD, 14}, // D0 {GPIOD, 15}, // D1 {GPIOD, 0}, // D2 {GPIOD, 1}, // D3 {GPIOE, 7}, // D4 {GPIOE, 8}, // D5 {GPIOE, 9}, // D6 {GPIOE, 10}, // D7 /* D8~D15 */ {GPIOE, 11}, // D8 {GPIOE, 12}, // D9 {GPIOE, 13}, // D10 {GPIOE, 14}, // D11 {GPIOE, 15}, // D12 {GPIOD, 8}, // D13 {GPIOD, 9}, // D14 {GPIOD, 10}, // D15 /* A0~A23 */ {GPIOF, 0}, // A0 {GPIOF, 1}, // A1 {GPIOF, 2}, // A2 {GPIOF, 3}, // A3 {GPIOF, 4}, // A4 {GPIOF, 5}, // A5 {GPIOF, 12}, // A6 {GPIOF, 13}, // A7 {GPIOF, 14}, // A8 {GPIOF, 15}, // A9 {GPIOG, 0}, // A10 {GPIOG, 1}, // A11 {GPIOG, 2}, // A12 {GPIOG, 3}, // A13 {GPIOG, 4}, // A14 {GPIOG, 5}, // A15 {GPIOD, 11}, // A16 {GPIOD, 12}, // A17 {GPIOD, 13}, // A18 {GPIOE, 3}, // A19 {GPIOE, 4}, // A20 {GPIOE, 5}, // A21 {GPIOE, 6}, // A22 {GPIOE, 2}, // A23 /* CLK */ {GPIOD, 3}, // CLK {GPIOB, 7}, // NL /* R/W */ {GPIOD, 4}, // NOE {GPIOD, 5}, // NWE {GPIOD, 6}, // NWAIT /* CS */ {GPIOD, 7}, // NE1 {GPIOG, 9}, // NE2 {GPIOG, 10}, // NE3 {GPIOG, 12}, // NE4 {GPIOE, 0}, // NBL0 {GPIOE, 1}, // NBL1 {GPIOF, 11}, // SDNRAS {GPIOG, 8}, // SDCLK }; static void _do_conf_fmc(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource) { GPIO_InitTypeDef gps; gps.GPIO_Mode = GPIO_Mode_AF; gps.GPIO_Speed = GPIO_Speed_100MHz; gps.GPIO_OType = GPIO_OType_PP; gps.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_PinAFConfig(GPIOx, GPIO_PinSource, GPIO_AF_FMC); gps.GPIO_Pin = (1 << GPIO_PinSource); // GPIO_Pin GPIO_Init(GPIOx, &gps); } void fsmc_gpio_init(void) { int i; /* Enable GPIOs clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_GPIOG, ENABLE); /* Enable FMC clock */ RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FMC, ENABLE); for (i = 0; i < sizeof(_fmc_conf)/sizeof(_fmc_conf[0]); i++) { _do_conf_fmc(_fmc_conf.GPIOx, _fmc_conf.PinSource); } } [/mw_shl_code]
SRAM的BANK配置
[mw_shl_code=c,true] [mw_shl_code=c,true]/****************************************Copyright (c)************************************************** ** This file is part of RT-Thread RTOS ** COPYRIGHT (C) 2006 - 2014, RT-Thread Development Team ** ** The license and distribution terms for this file may be ** found in the file LICENSE in this distribution or at ** http://www.rt-thread.org/license/LICENSE ********************************************************************************************************/[/mw_shl_code] #include "rtthread.h" #include "board.h" void ext_sram_init(void) { FMC_NORSRAMInitTypeDef FMC_NORSRAMInitStructure; FMC_NORSRAMTimingInitTypeDef Timing_read,Timing_write; FMC_NORSRAMInitStructure.FMC_ReadWriteTimingStruct = &Timing_read; FMC_NORSRAMInitStructure.FMC_WriteTimingStruct = &Timing_write; FMC_NORSRAMStructInit(&FMC_NORSRAMInitStructure); /* TODO: mem_test passed but need more tuning. */ /*--------------------- read timings configuration ---------------------*/ Timing_read.FMC_AddressSetupTime = 0x1; /* [3:0] F2/F4 1~15 HCLK */ Timing_read.FMC_AddressHoldTime = 0x2; /* Don’t care in SRAM mode. */ Timing_read.FMC_DataSetupTime = 0xA; /* [15:8] F2/F4 0~255 HCLK */ /* [19:16] Time between NEx high to NEx low (BUSTURN HCLK) */ Timing_read.FMC_BusTurnAroundDuration = 0x2; Timing_read.FMC_CLKDivision = 0x2; /* Don’t care in SRAM mode. */ Timing_read.FMC_DataLatency = 0x1; /* Don’t care in SRAM mode. */ Timing_read.FMC_AccessMode = FMC_AccessMode_A; /*--------------------- write timings configuration ---------------------*/ Timing_write.FMC_AddressSetupTime = 0x0; /* [3:0] F2/F4 1~15 HCLK */ Timing_write.FMC_AddressHoldTime = 0x1; /* Don’t care in SRAM mode. */ Timing_write.FMC_DataSetupTime = 0x4; /* [15:8] F2/F4 0~255 HCLK */ /* [19:16] Time between NEx high to NEx low (BUSTURN HCLK) */ Timing_write.FMC_BusTurnAroundDuration = 0x1; Timing_write.FMC_CLKDivision = 0x1; /* Don’t care in SRAM mode. */ Timing_write.FMC_DataLatency = 0; /* Don’t care in SRAM mode. */ Timing_write.FMC_AccessMode = FMC_AccessMode_A; /* FSMC AccessMode */ /* Reset NOR/SRAM Init structure parameters values */ /*-------------------------- SRAM configuration --------------------------*/ FMC_NORSRAMInitStructure.FMC_DataAddressMux = FMC_DataAddressMux_Enable; FMC_NORSRAMInitStructure.FMC_MemoryType = FMC_MemoryType_PSRAM; FMC_NORSRAMInitStructure.FMC_MemoryDataWidth = FMC_NORSRAM_MemoryDataWidth_16b; FMC_NORSRAMInitStructure.FMC_BurstAccessMode = FMC_BurstAccessMode_Disable; FMC_NORSRAMInitStructure.FMC_AsynchronousWait = FMC_AsynchronousWait_Disable; FMC_NORSRAMInitStructure.FMC_WaitSignalPolarity = FMC_WaitSignalPolarity_Low; FMC_NORSRAMInitStructure.FMC_WrapMode = FMC_WrapMode_Disable; FMC_NORSRAMInitStructure.FMC_WaitSignalActive = FMC_WaitSignalActive_BeforeWaitState; FMC_NORSRAMInitStructure.FMC_WriteOperation = FMC_WriteOperation_Enable; FMC_NORSRAMInitStructure.FMC_WaitSignal = FMC_WaitSignal_Disable; FMC_NORSRAMInitStructure.FMC_ExtendedMode = FMC_ExtendedMode_Disable; FMC_NORSRAMInitStructure.FMC_WriteBurst = FMC_WriteBurst_Disable; FMC_NORSRAMInitStructure.FMC_ContinousClock = FMC_CClock_SyncOnly; /*------------------------------ SRAM init ------------------------------*/ FMC_NORSRAMInitStructure.FMC_Bank = FMC_Bank1_NORSRAM1; FMC_NORSRAMInit(&FMC_NORSRAMInitStructure); FMC_NORSRAMCmd(FMC_NORSRAMInitStructure.FMC_Bank, ENABLE); } [/mw_shl_code]

代码就是这样,建议使用代码对比工具查看。
如果还有问题,建议也先检查一下硬件。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2014-3-8
在线时间
11 小时
 楼主| 发表于 2014-10-29 16:36:58 | 显示全部楼层
回复【10楼】liyurich:
---------------------------------
已经可以了,是有根线短路了,所以一直没好,可以直接套用407的fsmc初始化,如果不打算用sdram的话
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2014-10-29 17:01:58 | 显示全部楼层
没搞过还,帮顶。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3708
金钱
3708
注册时间
2011-5-23
在线时间
2010 小时
发表于 2014-10-29 17:07:45 | 显示全部楼层
使用起来,好像除了比F407的FSMC少了个S外,代码都差不多呢。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2014-3-8
在线时间
11 小时
 楼主| 发表于 2014-10-29 17:31:06 | 显示全部楼层
回复【3楼】aozima:
---------------------------------
你测试成功了吗?我弄了半天总线都不工作,不知道怎么回事……407的跑的好好的。你能把代码发一份给我看看吗?wangxipeng618@163.com
回复

使用道具 举报

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2014-3-8
在线时间
11 小时
 楼主| 发表于 2014-10-30 17:01:23 | 显示全部楼层
回复【5楼】aozima:
---------------------------------
多谢你的代码,我对比了下,都差不多。检查了下,昨天测错了,一直测量的a17,我使用的a16……,总线是工作的,不过现在lcd不显示东西,应该是初始化或者时序的问题吧,毕竟429太快了,谢谢哈
回复

使用道具 举报

7

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2012-7-16
在线时间
504 小时
发表于 2014-10-30 23:04:28 | 显示全部楼层
回复【5楼】aozima:
---------------------------------
请问代码对比工具是什么。
回复

使用道具 举报

25

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2014-7-16
在线时间
5 小时
发表于 2014-11-1 14:22:35 | 显示全部楼层
FSMC是用来做动态内存的!!比如SDRAM,用LCD或者SRAM还是用FSMC!!
光圈电子科技 晓航 多多 啾儿 实验室
回复

使用道具 举报

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2014-3-8
在线时间
11 小时
 楼主| 发表于 2014-11-1 17:11:39 | 显示全部楼层
主要是想知道f429的FMC当使用FSMC功能的时候初始化与407是否一样,还是有什么寄存器需要多设置下。现在lcd读取id不对,一直卡在这里
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-6-5
在线时间
0 小时
发表于 2014-12-26 20:43:59 | 显示全部楼层
回复【9楼】wangxipeng:
---------------------------------
兄弟,429的FMC当作FSMC用能工作了吗?
回复

使用道具 举报

0

主题

18

帖子

0

精华

高级会员

Rank: 4

积分
560
金钱
560
注册时间
2013-4-1
在线时间
105 小时
发表于 2014-12-27 23:20:45 | 显示全部楼层
其实就是一个东西,就连寄存器地址都没有变,就是在429上面多加了sdram支持,所以改了名字而已。以前fsmc怎么用,现在fmc也是一样用的。
回复

使用道具 举报

10

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2014-3-8
在线时间
11 小时
 楼主| 发表于 2014-12-29 09:47:22 | 显示全部楼层
回复【11楼】nongxiaoming:
---------------------------------
确实是一个东西,只是多了几个寄存器,429的库函数改了个名字。是我硬件的问题,现在可以用了
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-6-5
在线时间
0 小时
发表于 2014-12-29 15:12:53 | 显示全部楼层
回复【12楼】wangxipeng:
---------------------------------
嗯,我是用429的FMC驱动RA8875,之前没有驱动成功,以为是FMC的驱动不对,后来查了很长时间的程序,结果是硬件的问题,换了一个RA8875就好了!
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-12-29 16:01:35 | 显示全部楼层
回复【14楼】liyurich:
---------------------------------
真是奢侈,F429x驱动RA8875。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-6-5
在线时间
0 小时
发表于 2015-1-7 15:27:06 | 显示全部楼层
回复【15楼】styleno1:
------------------------------
主要是想对比一下两个方案驱动7寸屏稳定性和刷新率,欢迎拍砖!
回复

使用道具 举报

12

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2014-10-28
在线时间
8 小时
发表于 2015-3-6 13:38:41 | 显示全部楼层
如果要用SDRAM呢?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 06:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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