页次: 1
Timaker 说:官网和淘宝上都没看到这款单片机,是还没上市吗?
淘宝搜 PY32F071, 和 PY32F072 几乎一样的, 手册说没CAN
这个芯片是订制的?还是套了壳的?就像AIR103是W806的壳
下了固件库,怎么都没看到ll库读引脚电平的函数
用 LL_GPIO_IsInputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask)
__STATIC_INLINE uint32_t LL_GPIO_IsInputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask)
{
return (READ_BIT(GPIOx->IDR, PinMask) == (PinMask));
}
002是有,但是不敢在不确定性上做赌注哈,就怕后期砍了隐藏福利,那么SRAM就不够用了。
吐槽的是意思就是觉得PY32F003F1xP上的TIM1引脚设计不够合理,基本都跟其他功能SPI、I2C、ADC或SWDIO共用IO,如果用了TIM1,那么这个20pin的也没有其他什么引脚能够用得上了,反而造成了引脚浪费。不用呢又等于少了一个高级定时器功能。
隐藏福利应该不用担心, 合宙的air001已经在路上了, 资源就是32kf/4kr
https://wiki.luatos.com/chips/air001/index.html
https://github.com/Air-duino
发现其实普冉的SDK里就带了option bytes 的操作例子, 改了改 放到 GitHub 上了
https://github.com/IOsetting/py32f0-template/tree/main/Examples/LL/Flash/WriteOptionBytes
在代码里能直接修改, 但是在重新载入option bytes配置时, mcu会重启. 所以要加一个判断, 不然就一直重启进入死循环了
@happysoul
都用PA2 PA3就行, PY32F002A, 003, 030 都一样.
SPI 我写过几个例子, LL库的, 供参考 https://github.com/IOsetting/py32f0-template/tree/main/Examples/LL/SPI
PY32内存和flash容量不大, 用LL库更省资源
HK32F030MF4P6也没有预取, 不过据别人测试, 32MHz的时候用0等待也可以正常跑
https://www.eevblog.com/forum/microcontrollers/$0-25-hk32f030m-(cortex-m0-32mhz-16kb-2kb)/msg4615450/#msg4615450
PY32F0系列我还没用0等待测过, 如果在32MHz能用0等待, 性能就还可以.
昨天在合宙的QQ群中, 有群友试验成功在 AIR32F103CBT6 上解锁额外的 128K 字节 flash, 这样 AIR32F103CBT6, CCT6, RPT6 这三款型号实际上片上资源就统一了 -- 都是 96K 内存, 256K 闪存.
已经将这个解锁的hack添加到项目仓库, hack涉及的改动在 https://github.com/IOsetting/air32f103-template/commit/83459e2940a4ef1a8c5609f01b4c4b5a9a421b28
https://www.elektroda.com/rtvforum/topic3946116.html
可以看下第21楼之后的回复, 这人已经确认在 PY32F002AA15M6TU 上, 有两个spi, 两个uart
=============== update ================
2 USARTs, 2 SPI.
PY32F030 to PY32F002 pack
基本上可以确认是 PY32F030 了
从某宝的芯岭科技买了十片PY32F002AF15P
数据手册上是 20K Flash, 3K RAM, 最高 24MHz, 无DMA
实测资源为 32K Flash, 4K RAM, 支持 PLL 上 48MHz, 支持 DMA. 其它外设还没来得及测
https://www.cnblogs.com/milton/p/17052963.html
这货很可能是 PY32F030x6 的马甲, 换句话说, 换成 PY32F030 的库直接开发都行
如果仔细看看 PY32F072 的中断向量表, 你甚至会猜, 这货搞不好和072一样是全功能内核啊
0.65元的 TSSOP20 封装M0, 48MHz, 32KF, 4KR, 支持DMA. 无敌了
@IOsetting
好文章,感谢分享。gd32竟然用同等大小的ram来加载flash,真是夸张啊。
那么air32f103的96k ram,估计也是分出了64k ram作为flash加速吧。
你高估air32了, 正好这个博主, 紧接着就写了一篇air32 你可以看看, 他写的时间比较早, 这个96k ram的hack还没出来
什么乱七八糟的P都没说到点上, 好好看看正确说明
搜到了这个。
Questions:闪存零等待区(ZW)和非零等待区(NZW)有何区别?请说明。
Answer:
1. 零等待(ZW)是指 MCU 内核,以零等待周期从 FLASH 内取指令(取指无等待周期);
非零等待(NZW)是指 MCU 内核,以非零等待周期从 FLASH 内取指令(取指要等待周期)。
2. 零等待(ZW)和非零等待(NZW)的区域位置不同:
零等待(ZW)在 FLASH 前部分区域,非零等待(NZW)在 FLASH 后部分区域。
以 AT32F403AVGT7 为例:
零等待(ZW)大小区域为 256 KB, 是从 0X0800 0000 - 0X0803 FFFF;
非零等待(NZW)大小区域为 768 KB,是从 0X0804 0000 - 0X080F FFFF。
3. 零等待(ZW)和非零等待(NZW)的区域大小会随着 SRAM 区域大小的调整而改变。
以 AT32F403AVGT7 为例:
SRAM: 96 KB, ZW: 256 KB, NZW: 768 KB (默认配置)
SRAM: 224 KB, ZW: 128 KB, NZW: 896 KB。
4. 零等待(ZW)和非零等待(NZW)的运行速度有差别,非零等待(NZW)的执行速率约为零等待(ZW)的
0.4 倍。
以 AT32F403AVGT7 为例:
当系统时钟 240MHz,SRAM 默认为 96KB , 零等待(ZW) 默认为 256KB ,FW 大小为 512KB bin 文件,前
部分零等待(ZW)区域的 256KB 以 240MHz 速率执行,后部分 256KB bin 文件存放在非零等待(NZW)
区域,执行速率约为 96MHz。-------------------------------------
那么,好奇,stm32f103的flash读取是零等待吗?gd32呢?air32呢?
----------------------------------------
https://www.zhihu.com/question/574579916?utm_medium=social&utm_oi=31853956300800&utm_psn=1590961286078148608&utm_source=qq
正好再知乎上看到这个问题,提问者问为何国内mcu大都是嵌入式spi flash。
在 AIR32F103CBT6 和 AIR32F103CCT6 上开启 96K 内存
https://github.com/IOsetting/air32f103-template/tree/master/Examples/NonFreeRTOS/DMA
使用说明
写了个GCC Arm工具链的PY32F0项目模板 https://github.com/IOsetting/py32f0-template
页次: 1