目录

  • 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介
  • 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境
  • 普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单
  • 普冉PY32系列(四) PY32F002A/003/030的时钟设置
  • 普冉PY32系列(五) 使用JLink RTT代替串口输出日志

如同 STM32F103C8T6 与 CBT6 有着同样的128K flash容量一样, 市面上很多芯片, 同一系列的多个型号其实底下使用的是相同的硬件, 只是通过软件, 芯片ID, 某些隐藏寄存器(例如AIR32F103)或者物理熔断对容量进行限制. 让我们看一看 PY32F002AF15P 这颗标称 20K Flash, 3K RAM 的芯片还隐藏着哪些资源.

声明

任何在厂家数据手册之外的资源都是无保证的, 本文的内容仅对当前测试中使用的样品有效, 请勿以此作为选型参考, 一切以厂家手册为准. 因此产生的任何问题本人概不负责.

PY32F002A 的 RAM

当前样品的型号是 PY32F002AF15P, TSSOP20封装, 因为内存容量的检测只涉及代码修改, 对这片 PY32F002AF15P 进行了内存可用容量的测试

  1. 修改ld文件, 将内存设为 4KB, 写入成功, 读取成功
  2. 修改ld文件, 将内存设为 5KB, 无法启动
  3. 修改ld文件, 将内存设为 4196, 无法启动

实际上直接可用的内存为 4KB

PY32F002A 的 Flash

测试用的是 JLink, 修改 Flash 容量涉及到 Device 文件的修改, 首先修改 /opt/SEGGER/JLink/JLinkDevices.xml, 将 PY32F002AX5 的配置调整为32K Flash, 4K RAM

  <Device><ChipInfo Vendor="Puya" Name="PY32F002AX5"  WorkRAMAddr="0x20000000" WorkRAMSize="0x1000" Core="JLINK_CORE_CORTEX_M0"/><FlashBankInfo Name="Flash_32K" BaseAddr="0x08000000" MaxSize="0x8000" Loader="Devices/Puya/PY32F0xx_32.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/></Device>

然后修改ld文件, 将flash也设为32K

MEMORY
{RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 4KFLASH (rx)     : ORIGIN = 0x08000000, LENGTH = 32K
}

在代码中构造一个巨大的数组将 32K 填满, 从末尾开始打印, 编译烧录

32K容量, 写入读取成功

再改为48K, 写入失败, 读取也失败

实际直接可用的Flash容量为 32KB

PY32F002A 的运行频率

因为 PY32F002A 的库函数将最高频率限制在了24MHz, 而 PY32F003 没有PLL, HSI最高也只有24MHz, 既然 PY32F002A 可以使用 32K Flash + 4K RAM, 就直接将库参数修改为了 PY32F030Fx6. 将运行频率设为16MHz, 同时开启 PLL.

结果运行正常. 此时系统频率为 32MHz.

进一步将 HSI 设为 24MHz, 保持 PLL 开启, 也运行正常, 此时系统频率为 48MHz.

clk:48000000 flash:96 ram:de 8c 96␍␊
clk:48000000 flash:8c ram:8c 96 8c␍␊
clk:48000000 flash:64 ram:96 8c 64␍␊
clk:48000000 flash:4e ram:8c 64 4e␍␊
clk:48000000 flash:63 ram:64 4e 63␍␊
clk:48000000 flash:e6 ram:4e 63 e6␍␊

运行半小时, 没有任何问题.

可见当前这片 PY32F002AF15P 支持PLL, 实际直接可用的系统内置时钟为 48MHz, 如果使用外置晶振, 频率也许能更高

PY32F002A 测试DMA

运行SDK中 PY32F003 的 ADC_ContinousConversion_DMA 示例代码, 可以正常运行

当前这片 PY32F002AF15P 支持DMA

测试代码

测试RAM, Flash 和 PLL 的代码已经放到 GitHub, 地址
https://github.com/IOsetting/py32f0-template/tree/main/Examples/Raw/Test/PY32F002A_32KF_4KR

结论

到这里, 这颗 PY32F002AF15P 是哪个型号的马甲已经有点眉目, 进一步可以继续校验其它几个关键外设: SPI2, LED.

更新 2023-02-12

从最近的测试看, 这颗 PY32F002AF15P 其实和 PY32F030 的外设是一样的, 按 PY32F030 的寄存器地址读写都有反应, 可能属于同一晶圆但是某些部分测试失败或者有缺陷而被区分打标的产品. 再进一步测试 PY32F003 系列的型号, 发现和 PY32F030 也一样. 所以对于这三个系列, 开发上就很简单了, 全部都用 PY32F030 的库函数就好了, 只需要区分Flash和RAM容量大小.

普冉PY32系列(三) PY32F002A 资源实测 - 这个型号不简单相关推荐

  1. 普冉PY32系列(六) 通过I2C接口驱动PCF8574扩展的1602LCD

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...

  2. 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...

  3. H7-TOOL发布固件V2.21, 增加RTT快捷面板功能,脱机烧录增加英飞凌,Qorvo以及NXP,普冉,华大,灵动微等新系列(2023-03-26)

    H7-TOOL所有资源汇总(含操作手册): H7-TOOL开发工具,1拖4/16脱机烧录,高速DAPLINK,RTOS Trace,CAN/串口助手, 示波器, RTT等,支持WiFi,以太网,高速U ...

  4. 后端如何发出请求_gRPC系列(三) 如何借助HTTP2实现传输

    本系列分为四大部分: gRPC系列(一) 什么是RPC? gRPC系列(二) 如何用Protobuf组织内容 gRPC系列(三) 如何借助HTTP2实现传输 gRPC系列(四) 框架如何赋能分布式系统 ...

  5. 数据库MYSQL学习系列三

    数据库MYSQL学习系列三 三.MYSQL事务与存储引擎 3.1-数据库事务 什么是事务 一系列有序的数据库操作: o要么全部成功 o要么全部回退到操作前的状态 o中间状态对其他连接不可见 事务的 ...

  6. 前端工程师和设计师必读文章推荐【系列三十三】

    <Web 前端开发精华文章推荐>自2011年6月20号发布第一期以来,历经三年半,总共发布了30多期.今天这篇是2015年第2期(总第33期),希望你能在这里发现有用的资料. 梦想天空专注 ...

  7. 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量...

    当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产 品可供参考,同时很多团队也会选择自主开发实现,而不管是 ...

  8. WPF快速入门系列(6)——WPF资源和样式

    WPF快速入门系列(6)--WPF资源和样式 一.引言 WPF资源系统可以用来保存一些公有对象和样式,从而实现重用这些对象和样式的作用.而WPF样式是重用元素的格式的重要手段,可以理解样式就如CSS一 ...

  9. 前端工程师和设计师必读文章推荐【系列三十六】

    <Web 前端开发精华文章推荐>自2011年6月20号发布第一期以来,历经五年半,总共发布了30多期.今天这篇是2017年第2期(总第36期),希望你能在这里发现有用的资料. 梦想天空专注 ...

最新文章

  1. 生成Excle模板,SXSSFWorkbook-2007之后版本不上传服务器
  2. 二叉树经典题之将二叉树分层打印
  3. 95-190-035-源码-window-Time Window 实现
  4. 获取Android Studio的Sha1
  5. CentOS-6 通过rsync下载yum源
  6. 【算法】排序_计数排序
  7. halcon 深度学习标注_halcon深度学习: 分类
  8. Blockchain -Corda框架研究一 sendfile-Attachments学习笔记
  9. 【谷粒商城】【认证服务】验证码、社交登录、分布式session、单点登录
  10. 一、万用表使用方法图解
  11. AfxBeginThread第二个参数LPVOID pParam的使用
  12. Virtual Dub——一个令人爱不释手的小工具
  13. 吉他指弹入门——特殊调弦
  14. 为什么这么优秀的女生要找男程序员做老公?
  15. ROS中处理回调数据
  16. 智能工厂设备无人值守系统方案
  17. DHCP-relay测试总结
  18. 挑选代表( 招商银行信用卡中心)
  19. Mifare S50控制条件
  20. ubuntu下安装libtorch

热门文章

  1. 关于计算机应用英语作文,计算机应用与办公自动化专业英文简历模板
  2. 【全面掌握windowXP系统优化的四个步骤 】
  3. html代码中title什么意思,html中title啥意思
  4. 如何用多线程实现归并排序
  5. iOS 集成FaceId和TouchID
  6. 腾讯汤道生:践行“科技向善”,推动可持续社会价值创新
  7. OpenTsdb官方文档中文版----聚合器
  8. 2019-01-21第六课
  9. 支付革新带来诸多便捷改变人们生活方式
  10. 婚宴座位图html5,婚礼座位安排必须注意的15个细节