|
本帖最后由 yc2 于 2023-3-9 12:18 编辑
如同 STM32F103C8T6 与 CBT6 有着同样的128K flash容量一样, 市面上很多芯片, 同一系列的多个型号其实底下使用的是相同的硬件, 只是通过软件, 芯片ID, 某些隐藏寄存器(例如AIR32F103)或者物理熔断对容量进行限制.
让我们看一看 PY32F002AF15P 这颗标称 20K Flash, 3K RAM 的芯片还隐藏着哪些资源.
声明
任何在厂家数据手册之外的资源都是无保证的, 本文的内容仅对当前测试中使用的样品有效, 请勿以此作为选型参考, 一切以厂家手册为准. 因此产生的任何问题本人概不负责.
1、PY32F002A 的 RAM
当前样品的型号是 PY32F002AF15P, TSSOP20封装, 因为内存容量的检测只涉及代码修改, 对这片 PY32F002AF15P 进行了内存可用容量的测试
修改ld文件, 将内存设为 4KB, 写入成功, 读取成功
修改ld文件, 将内存设为 5KB, 无法启动
修改ld文件, 将内存设为 4196, 无法启动
实际上直接可用的内存为 4KB
2、PY32F002A 的 Flash
测试用的是 JLink, 修改 Flash 容量涉及到 Device 文件的修改, 首先修改 /opt/SEGGER/JLink/JLinkDevices.xml, 将 PY32F002AX5 的配置调整为32K Flash, 4K RAM
然后修改ld文件, 将flash也设为32K
在代码中构造一个巨大的数组将 32K 填满, 从末尾开始打印, 编译烧录
32K容量, 写入读取成功
再改为48K, 写入失败, 读取也失败
实际直接可用的Flash容量为 32KB
3、PY32F002A 的运行频率
因为 PY32F002A 的库函数将最高频率限制在了24MHz, 而 PY32F003 没有PLL, HSI最高也只有24MHz, 既然 PY32F002A 可以使用 32K Flash + 4K RAM, 就直接将库参数修改为了 PY32F030Fx6. 将运行频率设为16MHz, 同时开启 PLL.
结果运行正常. 此时系统频率为 32MHz.
进一步将 HSI 设为 24MHz, 保持 PLL 开启, 也运行正常, 此时系统频率为 48MHz.
运行半小时, 没有任何问题.
可见当前这片 PY32F002AF15P 支持PLL, 实际直接可用的系统内置时钟为 48MHz, 如果使用外置晶振, 频率也许能更高
4、PY32F002A 测试DMA
运行SDK中 PY32F003 的 ADC_ContinousConversion_DMA 示例代码, 可以正常运行
当前这片 PY32F002AF15P 支持DMA
5、PY32F002A 测试DMA
运行SDK中 PY32F003 的 ADC_ContinousConversion_DMA 示例代码, 可以正常运行
当前这片 PY32F002AF15P 支持DMA
6、总结
到这里, 这颗 PY32F002AF15P 是哪个型号的马甲已经有点眉目, 进一步可以继续校验其它几个关键外设: SPI2, LED.
更新 2023-02-12
从最近的测试看, 这颗 PY32F002AF15P 其实和 PY32F030 的外设是一样的, 按 PY32F030 的寄存器地址读写都有反应, 再进一步测试 PY32F003 系列的型号, 发现和 PY32F030 也一样. 所以对于这三个系列,
开发上就很简单了, 全部都用 PY32F030 的库函数就好了, 只需要区分Flash和RAM容量大小. ?
YC观点:6毛多含税,就能买到TSSOP20 封装、M0内核的PY32F002A,确实是性价比之王、 国产王炸中的战斗机?。以及良好的开发环境、便宜的仿真器,值得推荐。
PS:不是销售、不做生意,请不要私信哈。
原帖https://blog.csdn.net/michaelchain/article/details/128692398
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|