硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2215|回复: 0
收起左侧

[客户分享] AT32 MCU SDRAM测试--AT_SURF案例17

[复制链接]

41

主题

1

回帖

124

积分

初级会员

积分
124
发表于 2022-4-7 19:56:06 | 显示全部楼层 |阅读模式
简介
SDRAM 也就是同步动态随机存取内存,在计算机中得到了广泛的应用。在单片机应用中SRAM 和SDRAM 都用于扩展MCU 内存,通常SDRAM 用于大容量扩展,SRAM 用于小容量扩展。相比于SRAM,SDRAM 最大的不同是访问时有命令机制,而SRAM 可以直接访问,以及SDRAM需要在一定时间内刷新充电才能保存数据,否则数据将会消失,而SRAM 不需要刷新也能保存数据。SDRAM 在读取和写入时需要先发送命令例如:预充电命令、读命令、写命令等,具体的请参考SDRAM 芯片的数据手册。

表1. SDRAM 和SRAM 特点对比

SUFR 板载了一颗SDRAM 芯片,型号为W9825G6KH-6,容量为32M 字节,数据宽度为16 位,通过XMC 接口和MCU 连接。在288M 主频下,SDRAM 时钟为288 / 3= 96MHz。

资源准备
硬件环境:
对应产品型号的AT-SURF-F437 Board
软件环境:
AT32F435_437_Firmware_Library_V2.x.x\project\at_sufr_f437\examples\sdram

硬件设计
表2. 硬件资源使用
编号PIN Name外设功能备注
1PD14XMC_D10
2PD15XMC_D11
3PD0XMC_D12
4PD1XMC_D13
5PE7XMC_D14
6PE8XMC_D15
7PE9XMC_A0
8PE10XMC_A1
9PE11XMC_A2
10PE12XMC_A3
11PE13XMC_A4
12PE14XMC_A5
13PE15XMC_A6
14PD8XMC_A7
15PD9XMC_A8
16PD10XMC_A9
17PF0XMC_A10
18PF1XMC_A11
19PF2XMC_A12
20PF3XMC_A3
编号PIN Name外设功能备注
21PF4XMC_A4
22PF5XMC_A5
23PF12XMC_A6
24PF13XMC_A7
25PF14XMC_A8
26PF15XMC_A9
27PG0XMC_A10
28PG1XMC_A11
29PG2XMC_A12
30PC3XMC_SDCKE0
31PG8XMC_SDCLK
32PC2XMC_SDNE0
33PC0XMC_SDNWE
34PG15XMC_SDNCAS
35PF11XMC_SDNRAS
36PG4XMC_SDBA0
37PG5XMC_SDBA1
38PE0XMC_NBL0

对应的电路原理如下:
image.png
软件设计
1) SDRAM 测试
初始化TFT LCD
初始化SDRAM
写数据到SDRAM
从SDRAM 读数据
将信息显示在LCD 屏上

2) 代码介绍
main 函数代码描述
int main(void)
{
uint16_t i;
/* 初始化系统时钟 */
system_clock_config();
/* 初始化中断优先级分组 */

nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
/* 初始化延时函数 */
delay_init();
/* 初始化LCD */
lcd_init(LCD_DISPLAY_VERTICAL);
/* initialize sdram */
sdram_init();
/* 显示信息 */
lcd_string_show(10, 20, 200, 24, 24, (uint8_t *)"SDRAM Test");
/* 初始化数据 */
for(i = 0; i < BUF_SIZE; i++)
{
write_buf = i;
}
/* 写数据到 SDRAM */
sdram_data_write(0, write_buf, BUF_SIZE);
/* 从SDRAM 读取数据 */
sdram_data_read(0, read_buf, BUF_SIZE);
/* 对比读出和写入的数据 */
if(buffer_compare((uint8_t *)write_buf, (uint8_t *)read_buf, BUF_SIZE * 2) == 0)
{
lcd_string_show(10, 60, 310, 24, 24, (uint8_t *)"sdram write/read ok");
}
else
{
lcd_string_show(10, 60, 310, 24, 24, (uint8_t *)"sdram write/read ok");
}
while(1)
{
}
}

下载验证
写数据到SDRAM
从SDRAM 读数据
对比读取和写入的数据是否相等,将信息显示在LCD 屏上
image.png
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-16 03:23 , Processed in 0.036059 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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