草庐IT

普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介

Milton 2023-03-28 原文

目录

PY32F0系列上市其实相当长一段时间了, 样品已经吃灰很久, 因为工作原因11月12月都很忙一直没时间, 最近终于有一点时间把功课做了.

PY32F0 简介

PY32F0 属于 32位 M0 内核的MCU, 配置上有 16KF+2KR, 20KF+3KR, 32KF+4KR, 64KF+8KR 这些组合, 根据外设的丰富程度分成了 PY32F002, PY32F003, PY32F030, PY32F072 这四个系列, 基础的外设 ADC, TIM, SPI, I2C, UART 都有, 除了002, 其它系列都带DMA支持, 1元左右的价格在市场上非常有性价比.

开发上, 因为是通用的 32位 M0内核, 可以在Keil5, IAR, VScode 等IDE上开发, 使用 STLink, DAPLink 或 JLink 烧录和调试.

官网产品页: https://www.puyasemi.com/cpzx3/info_267_aid_242_kid_235.html
从产品页上可以下载最新的资料包, 资料包里包含全部型号的数据手册, 使用手册, 以及代码库, 代码示例, 当前的后缀是 20221117, 里面甚至有页面上没列出来的002A和072的资料.

芯岭科技 XL32F003

芯岭科技的 XL32F003 系列与 PY32F003 属于同内核产品. XL32F003 提供 4x4 脚间距0.4mm 的QFN32封装, 这个封装在 PY32F0 系列中没有, 如果需要超小封装的可以考虑.

PY32F0 各系列具体配置对比

零售能见到的是 PY32F002A, PY32F003, PY32F030, 最后一个072还没见到实物. 从对寄存器的读写测试看, PY32F002A, PY32F003, PY32F030属于同一个内核的产品, 寄存器设置是通用的, 而 PY32F072 属于另一种内核, 因为在002A/003/032上读写072的寄存器地址无效.

每个系列的封装变化很多, 就算一个TSSOP20, 都有三四种引脚布局, 这里不按型号介绍了, 大致看一下各系列的容量和外设区别.

PY32F002 系列

20K Flash, 3K RAM, 这个系列没有见到实物, 只能从启动文件和连接脚本判断一下具体的外设

PY32F002A 系列

  • 32-bit ARM® Cortex® - M0+ CPU
  • Up to 32 MHz operating frequency
    • Internal 8 / 24 MHz RC Oscillator (HSI)
    • Internal 32.768 KHz RC oscillator (LSI)
    • 4 to 24 MHz crystal oscillator (HSE)
  • Maximum 20 Kbytes of flash memory
  • Up to 3 Kbytes SRAM
  • 1 x 12-bit ADC
    • Supports up to 9 external input channels
  • 1 x 16bit advanced control timer (TIM1)
  • 1 x general purpose 16-bit timers (TIM16)
  • 1 x low-power timer (LPTIM), supports wake-up from stop mode
  • 1 x Independent Watchdog Timer (IWDT)
  • 1 x SysTick timer
  • 1 x Serial Peripheral Interface (SPI)
  • 1 x Universal Synchronous / Asynchronous Transceivers (USARTs) with automatic baudrate detection
  • 1 x I2C interface , supports standard mode (100kHz) , Fast mode (400 kHz) , supports 7-bit addressing mode
  • Hardware CRC-32 module
  • Comparator * 2
  • Unique UID
  • Serial wire debug (SWD)
  • Operating voltage: 1.7V to 5.5V
  • Working temperature: -40℃ to 85℃
  • Package: SOP8, SOP16, ESSOP10, TSSOP20, QFN16

大致的资源描述: 宽电压1.7V到5.5V, 最高支持32MHz时钟, 内建24MHz, 最高20KB的flash, 3KB的SRAM, 带ADC, TIM, 低功耗TIM, WDT, SPI, UART, I2C, 还带两个比较器.

  • 宽电压这点很强, 3.3V和5V都覆盖了
  • 存储也还不错, 相比 HK32F030MF4P6 和 CH32V003 的 16KB flash + 2KB RAM 容量更高
  • 该有的外设都有, 如果能带个I2S就更好(?)
  • 比较器在有些场景下很有用, 省了外接了.

和 PY32F002 的区别:

  • 增加了比较器
  • 少了TIM6? 从启动文件比较看不出区别, 这个不确定

PY32F003 系列

  • 32-bit ARM® Cortex® - M0+ CPU
  • Up to 32 MHz operating frequency
    • Internal 4 /8/16/ 22.12 / 24 MHz RC Oscillator (HSI)
    • Internal 32.768 KHz RC oscillator (LSI)
    • 4 to 32 MHz crystal oscillator (HSE)
  • Maximum 64 Kbytes of flash memory
  • Up to 8 Kbytes SRAM
  • 3-channel DMA controller
  • 1 x 12-bit ADC
    • Supports up to 10 external input channels
  • 1 x 16bit advanced control timer (TIM1)
  • 4 x general purpose 16-bit timers (TIM3/TIM14/TIM16/TIM17)
  • 1 x low-power timer (LPTIM), supports wake-up from stop mode
  • 1 x Independent Watchdog Timer (IWDT)
  • 1 x Window Watchdog Timer (WWDT)
  • 1 x SysTick timer
  • RTC
  • 1 x Serial Peripheral Interface (SPI)
  • 2 x Universal Synchronous / Asynchronous Transceivers (USARTs) with automatic baudrate detection
  • 1 x I2C interface , supports standard mode (100kHz) , Fast mode (400 kHz) , supports 7-bit addressing mode
  • Hardware CRC-32 module
  • 2 x comparators
  • Unique UID
  • Serial wire debug (SWD)
  • Operating voltage: 1.7V to 5.5V
  • Working temperature: -40℃ to 85℃
  • Package: SOP8, SOP16, TSSOP20, QFN20

和 PY32F002A 的区别

  • 频率增加到最高 32MHz
  • Flash容量增加到最高 64 KBytes
  • RAM容量增加到最高 8 KBytes
  • 增加了 DMA
  • 增加了 WWDG
  • 增加了 RTC
  • 增加了 TIM3, TIM14, TIM17
  • 增加了 USART2

XL32F003 系列

这是芯岭科技出的一个型号系列, 放在这里是因为这个系列本质上和PY003系列是一样的, 但是只有64KF, 8KR的规格, 当前有三种封装:

  • TSSOP20: XL32F003TS20, 引脚布局和 PY32F003F2xP 系列一致
  • QFN20: XL32F003Q20, 引脚布局和 PY32F003F1xU, PY32F030F2xU 系列一致
  • QFN32: XL32F003Q32, 引脚布局和 PY32F030K2xM 系列一致, 封装更小, 是4x4的QFN, 脚间距0.4mm

PY32F030 系列

  • 32-bit ARM® Cortex® - M0+
  • Up to 48 MHz operating frequency
    • Internal 4/8/16/ 22.12/24 MHz RC oscillator (HSI)
    • Internal 32.768 KHz RC oscillator (LSI)
    • 4 to 32 MHz crystal oscillator (HSE)
    • 32.768KHz low speed crystal oscillator (LSE)
    • PLL (supports 2 frequency multiplication of HSI or HSE)
  • Up to 64 Kbytes flash memory
  • Up to 8 Kbytes SRAM
  • 3-channel DMA controller
  • 1 x 12-bit ADC
    • Supports up to 10 external input channels
  • 1 x 16bit advanced control timer (TIM1)
  • 4 x general purpose 16-bit timers (TIM3/TIM14/TIM16/TIM17)
  • 1 x low-power timer (LPTIM), supports wake-up from stop mode
  • 1 x Independent Watchdog Timer (IWDT)
  • 1 x Window Watchdog Timer (WWDT)
  • 1 x SysTick timer
  • RTC
  • 2 x Serial Peripheral Interface (SPI)
  • 2 x Universal Synchronous / Asynchronous Transceivers (USARTs) with automatic baudrate detection
  • 1 x I2C interface , supports standard mode (100kHz) , Fast mode (400 kHz) , supports 7-bit addressing mode
  • Support 4-bit 7-segment common cathode LED digital tube
  • Hardware CRC-32 module
  • 2 x comparators
  • Unique UID
  • Serial wire debug (SWD)
  • Operating voltage: 1.7 to 5.5 V
  • Working temperature: -40℃ to 85℃
  • Package: LQFP32, QFN32, TSSOP24, TSSOP20, QFN20

和 PY32F003 系列的区别

  • 频率增加到最高 48MHz
  • 支持 两倍PLL
  • 增加了 SPI2
  • 增加了 4位7段 LED数码管驱动

PY32F072 系列

从数据手册看, 与030系列相比Flash和RAM容量提升, 增加了LCD, CTC, TIM2, TIM6, TIM7, TIM15, I2C2, USB等外设. 根据手册上的寄存器测过002A/003/032, 应该是单独的核心, 与前面的三个型号不一样. 因为还未上市, 先不作比较.

文末的彩蛋

  • PY32F002A 标称是20KB Flash + 3KB SRAM, 但是实际上现在买到的都是 32KB Flash + 4KB SRAM
  • 开发上, 直接使用PY32F030F16的设置就可以了, PY32F030的外设在 PY32F002A 上都有, 已经在 TSSOP20 封装的 PY32F002AF15P 上验证

相关链接

有关普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  3. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  4. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  5. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

  6. ruby - 从结束值创建一系列字符串 - 2

    我使用irb。下面是我写的代码。“斧头”..“bc”我期待"ax""ay""az""ba"bb""bc"但结果只是“斧头”..“bc”我该如何纠正?谢谢。 最佳答案 >puts("ax".."bc").to_aaxayazbabbbc 关于ruby-从结束值创建一系列字符串,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7617092/

  7. STM32的HAL和LL库区别和性能对比 - 2

    LL库和HAL库简介LL:Low-Layer,底层库HAL:HardwareAbstractionLayer,硬件抽象层库LL库和hal库对比,很精简,这实际上是一个精简的库。LL库的配置选择如下:在STM32CUBEMX中,点击菜单的“ProjectManager”–>“AdvancedSettings”,在下面的界面中选择“AdvancedSettings”,然后在每个模块后面选择使用的库总结:1、如果使用的MCU是小容量的,那么STM32CubeLL将是最佳选择;2、如果结合可移植性和优化,使用STM32CubeHAL并使用特定的优化实现替换一些调用,可保持最大的可移植性。另外HAL和L

  8. ruby-on-rails - 用一系列时间增量填充选择,加上其他选项 - 2

    使用RubyonRails,我使用给定的增量(例如每30分钟)用时间填充“选择”。目前我正在YAML文件中写出所有的可能性,但我觉得有一种更巧妙的方法。我想我想提供一个开始时间、一个结束时间、一个增量,并且目前只提供一个名为“关闭”的选项(想想“business_hours”)。所以,我的选择可能会显示:'Closed'5:00am5:30am6:00am...[allthewayto]...11:30pm谁能想出更好的方法,或者只是将它们全部“拼写”出来的最佳方法? 最佳答案 此答案基于@emh的答案。defcreate_hour

  9. ESP32学习入门:WiFi连接网络 - 2

    目录一、ESP32简单介绍二、ESP32Wi-Fi模块介绍三、ESP32Wi-Fi编程模型四、ESP32Wi-Fi事件处理流程 五、ESP32Wi-Fi开发环境六、ESP32Wi-Fi具体代码七、ESP32Wi-Fi代码解读6.1主程序app_main7.2自定义代码wifi_init_sta()八、ESP32Wi-Fi连接验证8.1测试方法8.2服务器模拟工具sscom58.3测试代码8.4测试结果前言为了开发一款亚马逊物联网产品,开始入手ESP32模块。为了能够记录自己的学习过程,特记录如下操作过程。一、ESP32简单介绍ESP32是一套Wi-Fi(2.4GHz)和蓝牙(4.2)双模解决方

  10. Spring Security 6.0系列【32】授权服务器篇之默认过滤器 - 2

    有道无术,术尚可求,有术无道,止于术。本系列SpringBoot版本3.0.4本系列SpringSecurity版本6.0.2本系列SpringAuthorizationServer版本1.0.2源码地址:https://gitee.com/pearl-organization/study-spring-security-demo文章目录前言1.OAuth2AuthorizationServerMetadataEndpointFilter2.OAuth2AuthorizationEndpointFilter3.OidcProviderConfigurationEndpointFilter4.N

随机推荐