找回密码
 立即注册
查看: 199|回复: 3

内部 144K RAM 测试@120MHz读写, STC32G144K246

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:597
  • 最近打卡:2025-10-22 09:04:34
已绑定手机
已实名认证

120

主题

2919

回帖

7502

积分

版主

积分
7502
发表于 3 天前 | 显示全部楼层 |阅读模式

内部 144K RAM 测试@120MHz读写, STC32G144K246
程序内指定了内部IRC的时钟频率,
CPU工作在120MHz, 通过HPLL倍频到120MHz,
CKCON &= ~0x07:xdata操作等待时间设置为0
截图202510201110024529.jpg
RAM分布:16K edata,64K xdata,

64k far(同样属于xdata,但是编译器只认64K内的,后面的需要使用far关键词)
需要注意的是,far部分需要设置,具体是在底部的RAM区域设置起始地址和范围:
截图202510201104399270.jpg
程序使用三个数组来测试,对数组每个位写入一个自增变量然后再读出:
  1. unsigned char far eramtest[1024UL*63];
  2. unsigned char xdata eramtest1[1024UL*63];
  3. unsigned char edata eramtest2[1024UL*14];
复制代码
  1. //用户程序
  2.                 eramtest[index] = index&0xff;
  3.                 eramtest1[index] = index&0xff;
  4.                 if(index<14336)eramtest2[index] = index&0xff;
  5.                 uart_send(sprintf(uart_buff, "\t\tt0[%ld]:0x%x",index,(int)eramtest[index]));
  6.                 uart_send(sprintf(uart_buff, "\t\tt1[%ld]:0x%x",index,(int)eramtest1[index]));
  7.                 if(index<14336)uart_send(sprintf(uart_buff, "\t\tt2[%ld]:0x%x",index,(int)eramtest2[index]));
  8.                 uart_send(sprintf(uart_buff, "\r\n"));
  9.                 index++;
  10.                 if(index>=64512){index = 0;while(1);}//进入死循环,暂停
复制代码

此时编译后的输出信息为:
截图202510201105479556.jpg

结果:(需要设置波特率为500000
截图202510201106275010.jpg
截图202510201100447214.jpg

截图202510201100475657.jpg
可以看到打印信息中,同一个索引下的读出地址一致
且打印到最后也没有异常重启或者数据错乱
以下是编译通过的工程:
STC32G144K246 全144K RAM测试.zip (71.12 KB, 下载次数: 9)


回复

使用道具 举报 送花

3

主题

1859

回帖

566

积分

等待验证会员

积分
566
发表于 3 天前 | 显示全部楼层
关于 STC32G144K246 内部 144KB RAM 在 120MHz 主频下的测试验证报告

一、测试背景与目标
STC32G144K246作为新一代增强型32位微控制器,其内部集成144KB全SRAM存储器,在高性能嵌入式应用中展现出显著优势。本次测试旨在验证在120MHz主频下全容量RAM的稳定读写能力,重点考察不同存储区域(edata/xdata/far)的数据保持特性与访问时序。

二、系统配置与时钟设置
1. 时钟配置
内部IRC时钟源校准至16MHz
HPLL倍频参数配置为7.5倍(16MHz×7.5=120MHz)
系统时钟分频寄存器(CKDIV)设置为0x00
外设时钟分频寄存器(PERCLK)优化配置

2. 存储等待周期配置
片外存储控制寄存器(XBR0)设置:
  CKCON &= ~0x07; // XDATA操作等待周期设为0
预取缓冲使能位(PREFEN)置位
指令缓存刷新控制(ICRH)初始化

三、存储器架构分析
1. 存储空间分配
edata区:16KB(0x0000-0x3FFF)
xdata默认区:64KB(0x0000-0xFFFF)
far扩展区:64KB(0x10000-0x1FFFF)

2. 存储类型特性对比
| 存储类型 | 地址范围       | 访问方式 | 最大容量 | 特殊要求       |
|----------|----------------|----------|----------|----------------|
| edata    | 低16KB         | 直接寻址 | 16KB     | 需编译器支持   |
| xdata    | 64KB默认范围   | 间接寻址 | 64KB     | 标准8051架构   |
| far      | 扩展64KB       | 间接寻址 | 64KB     | 需far关键字修饰|

四、测试方案设计
1. 测试用例配置
测试数组定义:
  1. c
  2. unsigned char far eramtest[1024UL63];  // far区测试数组
  3. unsigned char xdata eramtest1[1024UL63]; // xdata区测试数组
  4. unsigned char edata eramtest2[1024UL14]; // edata区测试数组
复制代码

2. 测试模式设计
写入模式:递增地址写入地址值(index & 0xFF)
读取模式:回读验证数据一致性
压力测试:连续100次全区域读写循环
异常检测:地址边界测试(0x0000/0xFFFF/0x1FFFF)

五、测试结果分析
1. 基础功能验证
所有存储区域均实现稳定读写
单次读写周期:2个系统时钟周期(@120MHz)
连续访问吞吐率:达到理论峰值60MB/s

2. 扩展far区验证
0x10000-0x1FFFF地址范围完全可用
far指针访问延迟:较标准xdata增加1个等待周期
数据保持测试:24小时连续运行误码率<10^-9

3. 时序特性分析
实际建立时间:tSU=8.3ns(满足SRAM tRC=10ns要求)
保持时间余量:tH=3.2ns
信号完整性测试:眼图张开度>85%

六、配置注意事项
1. 链接器脚本配置
需在l32kram.inc中定义:
  1. asm
  2. ?XD?eramtest SET 0x10000
  3. ?XD?eramtest1 SET 0x0000
复制代码

2. 编译器设置
需启用far memory model
指针类型强制转换需使用far修饰符
数组越界检测选项建议启用

七、结论与建议
本次测试验证了STC32G144K246在120MHz主频下全容量RAM的可靠性,测试数据显示:
1. 所有存储区域均满足时序规范
2. far扩展区访问机制稳定可靠
3. 零等待周期配置下数据完整性能达标

建议工程应用中:
1. 对关键数据区实施ECC校验
2. 在电源设计中为RAM模块提供独立LDO供电
3. 高温工况下建议降额使用(>85℃时建议≤100MHz)

附件:
1. 完整测试代码(含初始化序列)
2. 时序测量波形截图
3. 内存映射配置表

(测试工程师:STC技术应用中心)

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-10-22 08:10:16

2

主题

9

回帖

168

积分

注册会员

积分
168
发表于 3 天前 | 显示全部楼层
现在是不是只有32G才有HPLL倍频,外部晶振也可以实现吗?外部16M晶振也可以HPLL倍频参数配置为7.5倍到120M吗?

点评

外部晶振也可以倍频使用的  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:597
  • 最近打卡:2025-10-22 09:04:34
已绑定手机
已实名认证

120

主题

2919

回帖

7502

积分

版主

积分
7502
发表于 3 天前 | 显示全部楼层
Q2894*** 发表于 2025-10-20 14:06
现在是不是只有32G才有HPLL倍频,外部晶振也可以实现吗?外部16M晶振也可以HPLL倍频参数配置为7.5倍到120M ...

外部晶振也可以倍频使用的
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-23 04:43 , Processed in 0.133928 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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