APM32E103VET6S支持最高主频96MHZ,内置FLASH有512KB,及128KB的SRAM.支持EMMC,也内置了2MB的SDRAM.但实际评测发现,在追求最高主频96MHZ运行时,对内置SDRAM进行读写会有异常情况。
这种现象不会每片芯片出现,偶尔会有些芯片出现这种情况。而且呈现几种现象:1.主频降到72MHZ后,所有芯片测试正常,即使改变VDD电压值到2/3.3/3.6V且在高温低温都没有问题;2.主频升回96MHZ,不良样片常温下,VDD电压越低,失效机率越大,VDD电压设置为3.6V后状况改善。
这种现象不会每片芯片出现,偶尔会有些芯片出现这种情况。而且呈现几种现象:1.主频降到72MHZ后,所有芯片测试正常,即使改变VDD电压值到2/3.3/3.6V且在高温低温都没有问题;2.主频升回96MHZ,不良样片常温下,VDD电压越低,失效机率越大,VDD电压设置为3.6V后状况改善。
查看APM32E103VET6S用户手册,发现RCM_CFG时钟配置寄存器里有两个位SDRAMPSC专门针对SDRAM时钟频率限制的说明:
配置SDRAM时钟预分频系数(时钟预分频系数(SDRAM Clock Prescaler Configure)00:DMC时钟作为SDRAM时钟01:DMC时钟2分频后作为SDRAM时钟其他:DMC时钟4分频后作为SDRAM时钟注意:SDRAM的最高时钟频率为的最高时钟频率为50MHz。
可以看到,内置SDRAM的最高时钟频率不能超过50MHZ。
而工程师跑96MHZ主频时,AHB分频一般设置为1,所以给到DMCCLK的时钟频率就是96MHZ。如果SDRAMPSC不做分频,则SDRAM的时钟频率将达到96MHZ,远大于50MHZ的要求。所以读写SDRAM容易出错。
所以,大家在跑96MHZ主频且用到SDRAM时,记得将SDRAMPSC设置为01。这样读写SDRAM的可靠性就得到保证了。