普冉PY32系列 SOP8, SOP10和SOP16封装的PY32F003/PY32F002A管脚复用
Posted Milton
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了普冉PY32系列 SOP8, SOP10和SOP16封装的PY32F003/PY32F002A管脚复用相关的知识,希望对你有一定的参考价值。
目录
- 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介
- 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境
- 普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单
- 普冉PY32系列(四) PY32F002A/003/030的时钟设置
- 普冉PY32系列(五) 使用JLink RTT代替串口输出日志
- 普冉PY32系列(六) 通过I2C接口驱动PCF8574扩展的1602LCD
- 普冉PY32系列(七) SOP8,SOP10,SOP16封装的PY32F002A/PY32F003管脚复用
PY32F0系列的封装
在PY32F0系列的封装可以分为两大类, 20PIN及以上的和小于20PIN的.
- 20PIN, 24PIN 和 32PIN, 带有独立的 NRST 和 BOOT0, PIN脚互相独立不复用;
- 8PIN, 10PIN 和 16PIN, 没有 BOOT0, 存在多个PIN脚共用同一个物理管脚的情况
这篇主要介绍没有BOOT0的情况如何修改Option Bytes, 以及如何在物理管脚上使用不同的PIN
PY32F002A 的封装
PY32F002AL15S, PY32F002AA15M, PY32F002AW15S
可以看到 SOP8 和 SOP10 存在复用情况
PY32F002AW15U, PY32F002AF15P
PY32F003 的封装
因为PY32F003型号较多, 这里只列出小于20PIN的封装
PY32F003L1xS, PY32F003L2XD, PY32F003L2xS
PY32F003A18N, PY32F003W1XS
PY32F002A/PY32F003 管脚复用
从上面的管脚配置可以看到, 大部分型号都存在同一物理管脚的复用情况, 有一些是功能脚(PF2/NRST)与普通IO脚的复用.
在 OB(Option Bytes)中禁用和启用 PF2/RESET
PF2/NRST这个PIN是比较麻烦的一个功能脚, 因为默认启用了RESET功能, 不受PIN模式的影响, 所以无论你把它设置成INPUT, OUTPUT 还是 ANALOG, RESET永远生效, 和这个PIN同处于同一个物理管脚的PIN就没法正常使用.
要禁用它的RESET功能, 要在芯片的 OB(Option Bytes)里修改. OB 位于地址 0x1FFF 0E80, 占用4个字节, 其中2字节是配置, 另外2字节是这两个字节的反码. 对应 RESET 功能的设置 NRST_MODE 存储于第14位, 0表示仅复位输入, 1表示禁用复位输入,启用 GPIO 功能.
对于正常带 PF4/BOOT0 的型号, 在上电时拉高 BOOT0, 就可以从 system memory 启动 boot loader, 通过 ISP 工具连接后在工具里修改 OB, 但是 SOP8 和 SOP16 这些封装没有 BOOT0, 所以没法使用 ISP 工具修改. 只能通过代码或第三方工具(例如JLink)修改. 以下以LL库为例, 说明在代码中修改OB的方法
在OB中关闭PF2复位输入的方法
static void APP_FlashSetOptionBytes(void)
FLASH_OBProgramInitTypeDef OBInitCfg;
LL_FLASH_Unlock();
LL_FLASH_OB_Unlock();
OBInitCfg.OptionType = OPTIONBYTE_USER;
OBInitCfg.USERType = OB_USER_BOR_EN | OB_USER_BOR_LEV | OB_USER_IWDG_SW | OB_USER_WWDG_SW | OB_USER_NRST_MODE | OB_USER_nBOOT1;
/*
* 默认的值: OB_BOR_DISABLE | OB_BOR_LEVEL_3p1_3p2 | OB_IWDG_SW | OB_WWDG_SW | OB_RESET_MODE_RESET | OB_BOOT1_SYSTEM;
*/
OBInitCfg.USERConfig = OB_BOR_DISABLE | OB_BOR_LEVEL_3p1_3p2 | OB_IWDG_SW | OB_WWDG_SW | OB_RESET_MODE_GPIO | OB_BOOT1_SYSTEM;
LL_FLASH_OBProgram(&OBInitCfg);
LL_FLASH_Lock();
LL_FLASH_OB_Lock();
/* 重新载入OB, 这会触发软复位, MCU重启 */
LL_FLASH_OB_Launch();
注意, 上面这个方法执行后会重启MCU, 所以在调用前要做个判断, 否则它会一直循环重启下去
/* 检查 PF2 是否已经关闭了复位 */
if(READ_BIT(FLASH->OPTR, FLASH_OPTR_NRST_MODE) == OB_RESET_MODE_RESET)
/* 如果没关闭则调用 */
APP_FlashSetOptionBytes();
// 否则继续正常执行
这样执行完之后, RESET按钮就失效了, 如果要恢复, 要再将OB改回默认的值
OB_BOR_DISABLE | OB_BOR_LEVEL_3p1_3p2 | OB_IWDG_SW | OB_WWDG_SW | OB_RESET_MODE_RESET | OB_BOOT1_SYSTEM;
同一物理管脚的其它PIN, 设为模拟(ANALOG)模式
以下以SOP16封装的为例, 启用 PF1, PF0, 禁用对应同一管脚的 PA14 和 PF2
static void APP_GPIO_Config(void)
//...
// PF1 SCL
GPIO_InitStruct.Pin = LL_GPIO_PIN_1;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_OPENDRAIN;
GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
GPIO_InitStruct.Alternate = LL_GPIO_AF_12;
LL_GPIO_Init(GPIOF, &GPIO_InitStruct);
// PF0 SDA
GPIO_InitStruct.Pin = LL_GPIO_PIN_0;
GPIO_InitStruct.Alternate = LL_GPIO_AF_12;
LL_GPIO_Init(GPIOF, &GPIO_InitStruct);
/**
* 根据数据手册第20页, 同管脚的其它PIN应当设为 ANALOG.
*/
// PA14
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_14, LL_GPIO_MODE_ANALOG);
// PF2
LL_GPIO_SetPinMode(GPIOF, LL_GPIO_PIN_2, LL_GPIO_MODE_ANALOG);
//...
电路连线避免干扰
管脚复用之后, 一些功能脚带的开关按钮和电阻电容就会对其它PIN造成影响.
例如对于复位键, 如果上面加了电容, 其容量一般是104(100nF), 用于避免按键抖动, 如果将这个脚禁用复位, 改为I2C的输出, 这个电容就会对输出信号造成干扰, 100nF的容量基本能消除掉1KHz以上的频率, 所以要将这样的电容去掉.
启动增加延时, 确保上电烧录
因为小封装没有 BOOT0, 所以在 SWD 口烧录失败的情况下, 没法用 ISP 工具救场, 如果你的程序加电后没有预留足够长时间的 delay, 又把 SWD 口的 PA13 PA14 给关掉了, 那下一次烧录就会干瞪眼.
一个好习惯是在设置完时钟之后, 保留一到两秒的延时, 可以在加电后从容不迫地按下烧录按钮.
int main(void)
uint8_t i;
BSP_RCC_HSI_24MConfig();
/**
* 在SWD口关闭前停留2秒, 保证上电后有足够长的烧录等待时间
*/
LL_mDelay(2000);
//...
代码示例
以 SOP16 封装的 PY32F003W18S 为例, 依然使用 1602LCD 作为参考.
代码通过禁用 PA14 和 PF2, 将 PF1 和 PF0 设置为 I2C 外设接口, 驱动 1602LCD.
源代码已经提交到 GitHub 仓库, 地址: https://github.com/IOsetting/py32f0-template/tree/main/Examples/LL/I2C/PCF8574_1602LCD_PY32F003W_PF0_PF1
运行示例
sop是啥意思
sop是什么意思
SOP(Standard Operating Procedure三个单词中首字母的大写 )即标准作业程序,就是将某一事件的标准操作步骤和要求以统一的格式描述出来,用来指导和规范日常的工作。
SOP是一种标准的作业程序。所谓标准,在这里有最优化的概念,即不是随便写出来的操作程序都可以称作SOP,而一定是经过不断实践总结出来的在当前条件下可以实现的最优化的操作程序设计。说得更通俗一些,所谓的标准,就是尽可能地将相关操作步骤进行细化,量化和优化,细化,量化和优化的度就是在正常条件下大家都能理解又不会产生歧义。
SOP不是单个的,是一个体系,虽然我们可以单独地定义每一个SOP,但真正从企业管理来看,SOP不可能只是单个的,必然是一个整体和体系,也是企业不可或缺的。
扩展资料:
起源:
在十八世纪或作坊手工业时代,制做一件成品往往工序很少,或分工很粗,甚至从头至尾是一个人完成的,其人员的培训是以学徒形式通过长时间学习与实践来实现的。随着工业革命的兴起,生产规模不断扩大,产品日益复杂,分工日益明细,品质成本急剧增高,各工序的管理日益困难。如果只是依靠口头传授操作方法,已无法控制制程品质。采用学徒形式培训已不能适应规模化的生产要求.因此,必须以作业指导书形式统一各工序的操作步骤及方法。
参考资料:百度百科-sop
vt. 吸水;浸湿;贿赂
vi. 湿透;渗透
所谓SOP,是 Standard Operation Procedure三个单词中首字母的大写 ,即标准作业程序,就是将某一事件的标准操作步骤和要求以统一的格式描述出来,用来指导和规范日常的工作.SOP的精髓,就是将细节进行量化,用更通俗的话来说,SOP就是对某一程序中的关键控制点进行细化和量化.
1. By Strict executing SOP and log all operation data in the logging sheets.
严格执行SOP操作程序,所有的数据记录在操作记录中。
. A good SOP should clearly point out the goals you have for your chosen program.
一篇好的读书计画应明确指出你对于选择的课程所设定的目标。 参考技术B 回答
5601sop是一个多义词,所指的意思分别是:1、sop指的是标准作业程序:所谓SOP,是 Standard Operating Procedure三个单词中首字母的大写 ,即标准作业程序,指将某一事件的标准操作步骤和要求以统一的格式描述出来,用于指导和规范日常的工作。2、sop指的是同源协议:现存的网络浏览器的安全模式是根据同源协议,并对网络应用提供了一些基础的保护功能。一般一个网址通常由 protocol,domain,port 三个部分所组成,而根据SOP协议,如果一个网址只要至少一个部分的不符合,便不能进入到先前进入的非同源地址。3、sop指的是导向流程:SOP,英文名是Support Oriented Process,支持导向流程,主要是用以支持COP(客户导向流程)的实施而进行的相关作业的流程。
5601sop是一个多义词,所指的意思分别是:1、sop指的是标准作业程序:所谓SOP,是 Standard Operating Procedure三个单词中首字母的大写 ,即标准作业程序,指将某一事件的标准操作步骤和要求以统一的格式描述出来,用于指导和规范日常的工作。2、sop指的是同源协议:现存的网络浏览器的安全模式是根据同源协议,并对网络应用提供了一些基础的保护功能。一般一个网址通常由 protocol,domain,port 三个部分所组成,而根据SOP协议,如果一个网址只要至少一个部分的不符合,便不能进入到先前进入的非同源地址。3、sop指的是导向流程:SOP,英文名是Support Oriented Process,支持导向流程,主要是用以支持COP(客户导向流程)的实施而进行的相关作业的流程。4、sop指的是集成电路封装:SOP封装的应用范围很广,而且以后逐渐派生出SOJ、TSOP、VSOP、SSOP、TSSOP及SOT、SOIC等在集成电路中都起到了举足轻重的作用。
参考技术C 是多义词,不知道你指的是哪方面的。SOP一般指:(标准操作程序)
SOP是Standard Operating Procedure三个单词中首字母的大写 ,即标准作业程序,就是将某一事件的标准操作步骤和要求以统一的格式描述出来,用来指导和规范日常的工作。本回答被提问者采纳 参考技术D SOP一般指标准作业程序。微盛企微管家的标准化SOP任务,可以快速流程化运营任务,抢占每一个营销先机。
对咱们刚接触企业微信运营的同学来说,用企业微信做获客拉新、营销转化时常常不知道该如何开展。使用企微管家新推出的标准化SOP任务,我们就能够用内置的方案模板来快速制定方案。
比如开展新客激活,点击模板,系统就能自动生成基本的任务内容,大家简单修改就能将各个环节的任务落实到每一位负责的同学,方便又省心。
目前标准化SOP任务已经上线了3大场景9大方案模板,无论是新客激活、裂变活动 ,还是社群营销、节日营销等,都能很好地帮助大家高效地铺开任务。
以上是关于普冉PY32系列 SOP8, SOP10和SOP16封装的PY32F003/PY32F002A管脚复用的主要内容,如果未能解决你的问题,请参考以下文章
乐得瑞推出LDR6028 SOP8 专为领夹式无线麦克风方案打造
IC电子元件中SOIC8 封装与SOP8 封装有啥区别吗 ?
H7-TOOL发布固件V2.21, 增加RTT快捷面板功能,脱机烧录增加英飞凌,Qorvo以及NXP,普冉,华大,灵动微等新系列(2023-03-26)