在线时间22 小时
UID3733915
注册时间2023-6-5
NXP金币385
该用户从未签到
中级会员
- 积分
- 258
- 最后登录
- 2024-9-20
|
本帖最后由 eefocus_3733915 于 2024-6-7 20:47 编辑
RT1176 sdram 工作一小会就异常 ?
sdram io 配置:
CLOCK_EnableClock(kCLOCK_Iomuxc); /* LPCG on: LPCG is ON. */
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_00_SEMC_DATA00, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_01_SEMC_DATA01, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_02_SEMC_DATA02, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_03_SEMC_DATA03, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_04_SEMC_DATA04, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_05_SEMC_DATA05, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_06_SEMC_DATA06, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_07_SEMC_DATA07, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_30_SEMC_DATA08, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_31_SEMC_DATA09, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_32_SEMC_DATA10, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_33_SEMC_DATA11, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_34_SEMC_DATA12, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_35_SEMC_DATA13, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_36_SEMC_DATA14, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_37_SEMC_DATA15, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_00_SEMC_DATA16, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_01_SEMC_DATA17, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_02_SEMC_DATA18, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_03_SEMC_DATA19, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_04_SEMC_DATA20, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_05_SEMC_DATA21, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_06_SEMC_DATA22, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_07_SEMC_DATA23, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_09_SEMC_DATA24, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_10_SEMC_DATA25, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_11_SEMC_DATA26, 0U); // 0x04U
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_12_SEMC_DATA27, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_13_SEMC_DATA28, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_14_SEMC_DATA29, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_15_SEMC_DATA30, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_16_SEMC_DATA31, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_09_SEMC_ADDR00, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_10_SEMC_ADDR01, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_11_SEMC_ADDR02, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_12_SEMC_ADDR03, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_13_SEMC_ADDR04, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_14_SEMC_ADDR05, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_15_SEMC_ADDR06, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_16_SEMC_ADDR07, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_17_SEMC_ADDR08, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_18_SEMC_ADDR09, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_23_SEMC_ADDR10, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_19_SEMC_ADDR11, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_20_SEMC_ADDR12, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_21_SEMC_BA0, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_22_SEMC_BA1, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_08_SEMC_DM00, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_38_SEMC_DM01, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_08_SEMC_DM02, 0U); // 0x04U
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_17_SEMC_DM03, 0U);
afio_init(IOMUXC_GPIO_EMC_B1_39_SEMC_DQS, 1U, 0x08U); // sdram 跑 200MHz 必须配置为悬空输入, 必须得配置,仅配置一下即可
// IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_18_SEMC_DQS4, 0U); // 这个管脚可以不用配置,不过是否可以作为普通的 io 使用还有待验证 ...
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_24_SEMC_CAS, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_25_SEMC_RAS, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_26_SEMC_CLK, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_27_SEMC_CKE, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_28_SEMC_WE, 0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B1_29_SEMC_CS0, 0U);
sdram 时序配置:
工作一会后出现:
测试成功:
测试 118 次都是成功 ok
测试 367 次成功 ok
测试失败:
以前测试时工作时正常的, 但是近期在搞 gui 时工作不正常, 单独测试 sdram 就出现这样的情况了, 请问这是 mcu 主控坏了还是 sdram 坏了呀 ?
测试 sdram 程序也是以前的那套程序, 硬件也还是那个硬件, 唯一改变的就是时间了
|
|